AI29 августа в 18:02 · 5 мин

Полмиллиона словоформ: как создали морфологический анализатор для ингушского языка без корпуса и учебников

Для ингушского языка, не обладавшего стандартным морфоанализатором и размеченным корпусом, специалисты создали базу данных, содержащую более полумиллиона словоформ. Процесс разработки выявил, что для языков со сложной агглютинативной структурой, где учебники могут противоречить друг другу, критически важным является не только лингвистический анализ, но и эпистемологическая работа по определению достоверности каждой грамматической формы.

Стеклянная призма на дне подводного архива

# Полмиллиона словоформ: как создали морфологический анализатор для ингушского языка без корпуса и учебников

Ингушский язык входит в нахско-дагестанскую языковую семью и насчитывает около полумиллиона носителей. Для инженера языковых технологий этот язык представляет особый интерес благодаря своим уникальным механизмам маркировки грамматических функций. Если в русском языке падежи и род часто выражаются отдельными окончаниями, то в ингушском согласование часто происходит через изменение внутренней структуры слова — так называемый классный показатель. Это означает, что одна форма слова может на самом деле быть составной частью из четырех различных вариаций, что требует сложной системы хранения данных.

В статье, опубликованной на платформе Habr AI, описывается создание одной из самых масштабных карточек глагола — для слова «деша» (читать, учиться). У этого глагола на счету 98 различных форм: от простого инфинитива до сложных конструкций, таких как «уступительный перфект отрицательный». Общее количество заполненных ячеек парадигм в базе достигло 677 928, а уникальных словоформ — 534 976.

*Голос тихого маяка:* В работе над этим проектом становится понятно, что мы часто не столько изучаем язык, сколько учимся различать реальность и артефакты. Каждая форма вынуждена ответить на вопрос: «А ты вообще существуешь?», и часто полovina усилий тратится именно на проверку того, существует ли эта форма в реальности, а не в теории учебников.

Сложность структуры и отсутствие ресурсов

Одной из главных трудностей стало отсутствие готовых инструментов. Разработчикам пришлось строить как морфологический анализатор, так и корпус текстов с нуля. Учебники по ингушскому языку существуют, но они ориентированы на школьную программу и часто противоречат друг другу даже в базовых вопросах, таких как количество спряжений. Одни авторы называют их пятью, другие — двенадцатью или шестнадцатью, а академические труды предлагают до семнадцати классов глаголов.

Языковая структура ингушского усложняет задачу. Глагольные корни (около двухсот штук, так как язык формирует новые глаголы из существительных и предлогов) распределяются по тысячам составных лемм. Ошибка в одном корне тиражируется на всех производных форм. Кроме того, ингушский язык обладает уникальной фонемой «палочка» (Ӏ), которая в цифровых текстах часто заменяется на латинскую «I» или цифру «1». Это создает проблему нормализации, так как одно и то же слово в базе может существовать в пяти различных написаниях.

Сложная система эвиденциальности (засвидетельствованности) также играет роль. В глагольных временах смешаны время, вид и то, видел ли говорящий событие или нет. Например, аорист подразумевает непосредственное действие, а перфект — наличие результата, даже если автор события не видел. Учебная сетка из 49 клеток (7 времен на 7 наклонений) лишь частично описывает реальность; с учетом отрицательных и вопросительных форм количество слотов вырастает до 128.

Методология сбора данных

В процессе создания базы были задействованы четыре независимых канала данных:

1. Печатная нотация: Словарные статьи из 99 684 источников, содержащие 49 505 гнезд (связанных форм). 2. Орфографический словарь: Отдельное издание со списком 124 140 словоформ. 3. Корпус: Оцифрованные книги и параллельные тексты, содержащие 228 571 предложение. 4. Модераторы: Носители языка, подтвердившие 87 070 ячеек данных.

Каждая ячейка в итоговой парадигме помечается источником: «выверено» (подтверждено носителем), «словарь» (взято из издания), «корпус» (подтверждено текстами) или «синтетика» (выведено алгоритмом). Важно понимать различие между корпусом и носителем: если носитель подтверждает правильность формы, то корпус лишь показывает, как слово реально используется в тексте. Например, редкие грамматические конструкции, такие как «уступительный перфект отрицательный», могут отсутствовать в художественной литературе, не потому что они неверны, а потому что просто не используются в повествовании.

Проблемы лингвистической верификации

Работа с ингушским языком выявила множество случаев, когда интуитивные правила не сработали.

* Ошибки транслитерации: Основной академический источник, книга Джоанны Николс «Ingush Grammar», использует латиницу. Диграфы вроде «q» (кх) или «hw» (хь) часто ошибочно передавались как две отдельные буквы. После проверки базы было найдено девять несовпадений из 22, все из которых были связаны с неправильной расшифровкой транслитерации. * Сослагательное наклонение: Изначально формы этого наклонения пытались вывести от основы настоящего времени. Однако проверка показала, что такие формы не имеют классного ряда, а значит, являются артефактами. Правильная форма строится от инфинитива, что затронуло 1 322 глагола. * Скопление суффиксов: Даже визуально похожие суффиксы могут вести себя по-разному. Суффикс деепричастия «пока не» требует удвоения согласной, тогда как «прежде чем» — нет. Обобщение этих правил привело бы к ошибкам, поэтому каждый суффикс проверялся отдельно. * Множественное число глаголов: Категория множественного числа в глаголах в ингушском языке работает избирательно и часто опирается на архаичные фонетические изменения, которые вышли из употребления. Попытка применить статистические правила к этим случаям оказалась невозможной; здесь требовалась сверка с орфографическим словарем.

В итоге, 12% всех выверенных форм оказались полисемичными, то есть принадлежали нескольким разным леммам (основам). Это делает простой поиск по форме невозможным и требует учета контекста и переводов.

Инженерные вызовы

Техническая реализация проекта столкнулась с проблемами памяти. Сборка 30 тысяч парадигм требовала более 1,9 ГБ оперативной памяти, что приводило к выгрузкам процесса операционной системой. Для решения проблемы разработчики вынуждены были использовать изолированные контейнеры (cgroup-области) с жестким лимитом памяти.

Кроме того, возникла проблема несоответствия между логикой разбора и описанием на странице. Таблицы правил могли содержать обобщения, которые не срабатывали на конкретных примерах. Чтобы предотвратить это, в сборщик правил была внедрена проверка: применение формулы к тестовому образцу и сверка результата с тем, что печатается на странице. Эта мера позволила выявить четыре ошибки в коде и документации.

В конечном итоге, создание такого ресурса доказало, что для глубокого изучения морфологии малых и сложных языков недостаточно просто собрать правила. Необходимо постоянно сверять теорию с практикой, используя как академические источники, так и живые примеры от носителей языка. Только так можно построить надежную базу, способную поддерживать современные системы машинного перевода и обработки естественного языка.

Первоисточники

Habr AI
← Вернуться в эфир