PaydaDosh: поиск по словарю и «слово дня».
В апреле я писал тут про PaydaDosh — открытый словарь и корпус ингушского языка. Та статья была про «вот, собрали всё в одном месте»: 66 тысяч статей, параллельный корпус, ИИ в разделе вопросов. С тех пор прошло два месяца, и проект перестал быть просто словарём. Мы начали строить грамматику — движок, который понимает, как устроено ингушское слово.
Это статья про то, как мы это делаем технически: почему ингушская морфология — это больно, как устроен разбор словоформ, где он ломается и что мы с этим делаем. Плюс короткий обзор всего, что наросло вокруг за эти недели — корпус, инструменты, сообщество и первые встречи с академическим институтом.
Сразу оговорюсь про честность. Движок работает, но он в бете. Часть форм строится по правилам и может содержать неточности. Я буду показывать и то, что получилось, и то, что пока промахивается — потому что для малого языка вторая часть важнее первой.
Где мы сейчас в цифрах
Живая статистика: счётчики обновляются автоматически.
Чтобы был масштаб, вот снимок базы на 21 июня:
|
Что |
Сколько |
|---|---|
|
Толкований |
97 487 |
|
из них лемм (начальных форм) |
47 634 |
|
связанных форм и вариантов из источников |
49 853 |
|
Морфологических форм в индексе |
119 826 |
|
Предложений в корпусе |
171 577 |
|
Связей корпус↔словарь |
1 564 292 |
|
Пословиц |
2 156 |
|
Фразеологизмов (устойчивых выражений) |
2 150 |
|
Источников |
28 |
И сразу — где у нас дыры, потому что про них врать смысла нет:
-
Примеры употребления — 24 617 лемм, это 51.7%. Хотим за 80%.
-
Привязка к корпусу — 30 598 лемм, 64.2%.
-
Озвучка — 41 лемма. 0.1%. Это главный провал проекта, и алгоритмом его не закрыть: голос должен записать носитель.
Все эти числа считаются из боевой базы при каждой загрузке страницы статистики — это не маркетинговый слайд, а живой счётчик.
Почему ингушскую морфологию нельзя просто заигнорить
В английском морфология — это «прибавь -s и -ed, и почти всё». Можно построить поиск на голых строках и не сильно проиграть. В ингушском так не выйдет, и вот почему.
Ингушский — нахский язык, эргативного строя, с очень богатой словоизменительной системой:
-
Падежи — и их даже не посчитать однозначно. В монографии П. К. Услара отмечено 16 падежей, у З. К. Мальсагова — тоже 16 (десять основных и шесть «менее употребительных»), в вузовском учебнике «Современный ингушский язык» — 12, в трёх группах. Мы на карточках держим практичный набор из восьми основных — именительный (цӀера дожар), родительный, дательный, эргативный (дера дожар), союзный, сравнительный, вещественный, местный — плюс производные формы местного падежа. Сам факт, что число падежей у разных авторов гуляет от 8 до 16, — уже сигнал: готовой таблицы, которую можно просто зашить в код, не существует.
-
Грамматические классы в / й / б / д. Это аналог рода, но шире: класс согласуется не только в именной группе, но и в глаголе. Один и тот же глагол меняет начальную согласную под класс подлежащего/объекта: веза / йеза / беза / деза. Для словаря это значит, что «беза», «веза», «деза» — формально разные строки, а по сути одно слово. И наоборот: класс часто единственное, что отличает омонимы — про
мукх(ячмень/нож/ржавчина) будет ниже. -
Семь временных форм глагола в трёх сферах — настоящее, будущее, прошедшее, — причём прошедшее представлено сразу четырьмя формами: имперфект, аорист, перфект, плюсквамперфект. Незаконченные формы строятся от основы повелительного наклонения, законченные — от неопределённой формы. Плюс масдар, каузатив (понудительная форма), причастия, деепричастия, потенциалис.
-
Аблаут — чередования корневых гласных. При словоизменении меняется не хвост, а середина слова, причём по закономерным рядам:
а → аь(ала → аьлар «сказал»),уо → иэ(мотта → меттар «показалось»),ов → эй(довза → дайзар «узнал»). Поэтому обрезать суффикс мало — нужно ещё уметь восстановить исходную гласную основы. -
Морфонология на стыках. При образовании будущего времени сходятся три согласных (
-ргд-,-ргб-) и срабатывает регрессивная ассимиляция: доагӀаргда → доагӀадда. Алгоритм, который этого не знает, такую словоформу не соберёт и не разберёт. -
Эвиденциальность. Грамматически закодировано, видел ли говорящий событие сам или знает с чужих слов.
И вишенка: даже типов склонения у разных исследователей разное число — у Мальсагова три, у Яковлева четыре, у Оздоева шесть, а в академической «Морфологии» 2012 года — целых семнадцать. Всё потому, что склонение идёт по принципу двух основ (прямая и косвенная) и осложнено теми самыми чередованиями и наращениями, которые, по словам лингвистов, «никакими фонологическими условиями не обусловлены».
Складываем: одно слово реально даёт десятки форм. И теперь главная проблема обычного словаря. Он знает только начальную форму. Пользователь встречает в тексте «наха», «хиннав», «фето» — лезет в словарь — и не находит ничего, потому что в словаре лежат «нах», «хила», «фета». Слово есть, а человек его не достал.
Добавьте сюда, что одна и та же форма настоящего времени может означать три разных времени по контексту: чуйоагӀа — это и «прихожу домой» (сейчас), и «приходил» (вчера), и «приду» (завтра). Никакой парсер строк такое не разведёт — нужна модель грамматики.
Морфоанализатор — это то, что закрывает разрыв между формой в тексте и статьёй в словаре. В обе стороны:
-
форма → лемма: по любой словоформе вернуть начальную форму и разбор (падеж, время, класс);
-
лемма → парадигма: по начальной форме построить всю сетку склонения/спряжения.
наха → нах (люди; эргатив)хиннав → хила (быть; прош., перфект)фето → фета (эргатив)тайпара→ тайпа (разновидность; форма на -ара)
Эти стрелки выглядят просто. За каждой из них — слой работы, про который дальше.
Как устроен разбор: лексикон, правила и онома́стикон
Движок собран из трёх компонентов данных:
-
Лексикон — выверенное ядро: леммы, их классы, основы, известные формы. Он у нас уже восьмой версии — цифра честно отражает, сколько раз мы переразбирали всю модель.
-
Курированные формы — формы, которые вручную подтвердил носитель или редактор. Это «золотой» слой: он всегда перебивает то, что насчитал алгоритм.
-
Онома́стикон — справочник имён и топонимов. Вынесен отдельно, потому что имена ломают разбор сильнее всего.
Когда на вход приходит словоформа, движок возвращает список разборов-кандидатов, у каждого — лемма, часть речи, набор грамматических признаков, метод (как форма получена) и уверенность. Метод — это важная штука: форма может быть «из словаря», «курированная», «по правилу» или «догадка». Чем надёжнее метод, тем выше форма ранжируется и тем «надёжнее» точка рядом с ней на карточке.
На карточке слова это видно прямо в интерфейсе. Каждая форма в парадигме помечена цветной точкой по источнику:
-
выверено — подтверждено носителем/редактором;
-
словарь — взято из словарной статьи;
-
корпус — встретилось в реальном тексте;
-
синтетика (бета) — построено по правилу, может врать.
Рядом с каждой формой — флажок 🚩, которым модератор отмечает форму как ошибочную. Это не косметика: ниже объясню, почему ручная отметка для нас дороже любого алгоритма.
Парадигма на карточке: цвет точки = источник формы, флажок — пометить ошибку.
Карточка слова: переводы из разных словарей и живые примеры.
Парадигмы на карточках
Обратная задача — лемма → парадигма — это то, что видно на карточке как раздел «Парадигма (бета)». Вот, например, глагол къажде («качать, раскачивать»):
Инфинитив къаждеНаст. къаждуПрош. (аорист) къаждир, къаждаьдПерфект къаждаьдБудущее къаждергдаДеепричастие къаждеш
А вот глагол хила («быть») — один из самых частотных и неправильных, у него парадигма разъезжается во все стороны:
Инфинитив хилаНаст. хул, хулий, хилацПрош. (аорист) хилари, хиланзар, хилацар, хиннавацар, хиннадацарПерфект хинна, хиннав, хиннай, хиннаб, хиннадацБудущее хургба, хургва, хургбац, Хургдац, хургьяПовелит. хилалахь, долда, хилалашДеепричастие хулаш, хилча, хуллашПричастие хиннача, болчча, хиннараш, хиннацох, волчоа
Сразу видно: «хиннав», которое пользователь встретит в тексте, и «хила» из словаря — это одно слово, но без разбора их не связать. И видно второе: формы вроде «хургба/хургва/хургья» — это тот самый классный разброс по в/й/б/д. Анализатор должен понимать, что это варианты одной ячейки парадигмы, а не пять разных слов.
Парадигмы помечены «бета» осознанно. Часть ячеек заполнена выверенными формами из словарей (БДИМТ09 дал нам около 27 600 глагольных форм с метками наст./прош./перф./буд.), часть достроена синтетикой по правилам. Мы показываем источник каждой формы, а не прячем — потому что пользователь имеет право знать, где данные твёрдые, а где гипотеза.
Самое интересное — там, где движок промахивается
Узнавать 80% словоформ корпуса научиться несложно: частотные формы частотных слов разбираются легко, и они дают основной объём. Сложность — в хвосте. В оставшихся процентах сидят ровно те случаи, которые делают язык языком: неправильные глаголы, классные чередования, аблаут, омонимия имени и нарицательного.
Чтобы системно выгрести этот хвост, мы сделали детерминированный пре-пасс — отдельный прогон, который не угадывает ответ, а готовит контекст для человека, который ответит. Логика такая:
1. токенизируем корпус (регуляркой, сохраняя палочку Ӏ как часть слова) → частоты форм2. оставляем формы, которые есть в реестре словоформ И встречаются в корпусе с freq ≥ 33. разбираем каждую форму движком4. форма попадает в MISS, если у неё нет ни одного разбора с confidence ≥ 0.6 и методом надёжнее, чем «догадка»5. для каждого промаха собираем «пакет контекста»: • примеры из корпуса (переведённые — первыми) • словарные кандидаты на лемму • догадки анализатора (даже слабые, ниже порога)
Почему freq ≥ 3 и только пересечение с корпусом: нет смысла разбирать форму, которой в живых текстах нет — она подождёт. А вот форма, которая встретилась в корпусе несколько раз и при этом не разбирается — это конкретный, заметный пробел. Его и надо закрыть в первую очередь.
На выходе — не «бесконечный океан языка», а конечный, обозримый список форм, к каждой из которых уже приложен контекст: кандидаты, примеры, переводы. Такой список реально пройти руками носителей. И, что важно, прогон по всему корпусу занимает считанные секунды — список можно пересобирать после каждого пополнения данных и смотреть, что осталось разобрать.
Как генерируются кандидаты на лемму
Для каждого промаха движок предлагает до 14 вариантов начальной формы — не чтобы выбрать автоматически, а чтобы носителю было из чего выбрать одним кликом. Стратегий четыре, по убыванию надёжности:
-
Точное совпадение — форма уже есть в словаре как заголовок (бывает, что слово есть, а связь потерялась).
-
Отрезание суффикса с восстановлением гласной. Перебираем падежные и множественные суффиксы (плюс набор частых «хвостов» вроде
-арча,-ашка,-гахьа), отрезаем, и — поскольку в основе гулял аблаут — пробуем дорастить основу гласной:а,е,и,о,ӏ. -
Догадки анализатора — даже те, что не дотянули до порога.
-
Перекрытие по началу слова — для аблаутных случаев, когда менялась середина: ищем леммы с тем же началом и близкой длиной.
Вот как это выглядит на реальной форме тайпара (частота в корпусе — 1971):
### тайпара freq=1971 кандидаты: тайпа (д,д) «разновидность» (−ара+а) тайпа (д,д) «структурно-семантический тип» (−ара+а) тайпан «родовой, фамильный» (prefix) пример [словарь]: тайп-тайпара басараш вӏашагӏъэде деза ru: Нужно смешать разные краски
Носитель видит форму, три-четыре осмысленных кандидата с пометами классов, и живой пример с переводом для контекста. Дальше — один клик, и форма привязана к правильной лемме навсегда, уже с методом «выверено».
Главная отдача: движок находит слова, которых в словаре не было
Самым неожиданным оказалось вот что. Значительная часть «промахов» — это не «движок не смог разобрать форму», а «слова просто нет в словаре». Кандидаты на лемму, которые предлагает пре-пасс, постоянно указывают на отсутствующую начальную форму другого слова — и тогда задача носителя не «привязать форму», а «добавить недостающую статью».
Так морфоанализатор превратился ещё и в инструмент пополнения словаря. За один проход мы выявили и добавили 52 слова, которых в базе не было, — и почти все это глаголы пространственного направления, образованные превербами (приставками дӀа-, ӏо-, хьа-, чу-, ара-, духьал-, тӀа-, юкъе-). Это ровно тот пласт, который в научной литературе описывают как основной способ глагольного словообразования в нахских языках: преверб не меняет грамматику основы, но даёт ей новое лексическое значение и пространственную привязку.
Вот часть того, что добавили:
-
дӀа-(от говорящего, в сторону): дӀаберза (отвернуться), дӀаякха (погасить), дӀахьуладе (скрыть, спрятать), дӀатаба (притаиться), дӀасоцаде (остановить, пресечь), дӀалелха (убежать), дӀакъовса (схватиться, сразиться), дӀакхаста (закружить), дӀайистхила (обратиться, заговорить), дӀадовла (уйти, разойтись), дӀагаргагӀерта (приближаться), дӀаберзабе (уладить, довести дело до конца); -
ӏо-(вниз): ӏочакхдувла (проникать сквозь), ӏохоададе (отрезать, разграничить), ӏотатта (толкнуть вниз), ӏомоассаде (вылить, высыпать), ӏолитта (изложить, излить), ӏолелха (сбежать вниз), ӏодагарде (отсчитать), ӏобоассабе (вытряхнуть); -
хьа-(сюда, к говорящему): хьаховша (подсесть), хьатакха (подползти), хьакховдаде (подать, протянуть), хьагӀовтта (вскочить, восстать), хьаготасса (обойти вокруг), хьабожабе (выронить, уронить), хьабоаттӀабе (разорвать, вспороть), хьаберзабе (повернуть к себе); -
духьал-(навстречу): духьалкхаста (кружиться навстречу), духьалтовса (метать навстречу), духьалбахка (выйти навстречу), духьалба (двигаться навстречу); -
остальные направления:
чу-— чухийца (спустить внутрь), чувоаллаве (запирать);ара-— араэца (вынести), аратувса (выбросить наружу), арабала (выходить);тӀа-— тӀаӏеха (лаять на), тӀабетта (приложить, набросить);юкъе-— юкъелатта (встать между, вмешаться).
Каждое из этих слов теперь — полноценная статья в словаре. Для языка, где словарь десятилетиями собирался вручную, «движок, который сам подсказывает пропущенные слова» — это качественно другой темп работы.
Омонимия и полисемия: один облик — сколько слов?
Короткие ингушские слова чудовищно многозначны. Но «многозначность» — это сразу две разные вещи, и словарь обязан их различать. Полисемия — это одно слово с разошедшимися значениями. Омонимия — это разные слова, случайно совпавшие в начальной форме. Как отличить одно от другого? Критерий простой, и он же объясняет, зачем нам вообще нужны полные парадигмы:
Если у двух карточек с одним заголовком все формы парадигмы совпадают — это одно слово (полисемия). Если расходятся хоть в одной позиции — это разные слова (омонимия).
Возьмём цӀи. Две карточки — «огонь» и «имя», — но парадигма у них одна до буквы: эргатив цӀеро, множественное цӀераш, класс й. По критерию это одно слово с двумя значениями — полисемия. (Связь между ними, возможно, не случайна — по одной из версий, имя ребёнка у ингушей ассоциировалось с огнём родового очага, — но это уже гипотеза.)
А теперь ха. Под одной формой именительного падежа — четыре разных набора форм:
ха (хано, ханаш), класс д — стража, караул, охранаха (хано, ханаш), класс й — время, пора, срокха (хаьно, хаьнаш), класс д — бедро, бокха (хов, хайнад), глагол — знать, уметь
Парадигмы разные — значит, это четыре разных слова, случайно (или нет…?) совпавших в заголовке. Омонимия. Причём «стража» и «время» расходятся вообще только классом (д против й): склоняются одинаково, а в речи дают разное согласование — «охранник пришёл» и «время пришло» строятся по-разному.
Тот же случай с мукх — три слова под одной строкой, и развести их можно только по классу:
мукх (б) — ячменьмукх (д) — складной нож, ножикмукх (й) — ржавчина
Одно слово — десятки значений и живых примеров.
И ка: ка (б, д) — «баран» или «колос», ка (й) — «рука, хватка». И де — два глагола под одним обликом: де (ду, даьд) «делать» и де (дув, дийнад) «убить», различишь только по спряжению.
Вывод для движка прямой: класс и полная парадигма — это не украшение карточки, а признаки, без которых нельзя ни отличить «ячмень» от «ножа», ни понять, одно перед нами слово или три. Поэтому класс мы протаскиваем через весь разбор, а спорные случаи (где разводить надо по смыслу предложения) уходят к носителю. Сюда же — имена собственные: «СаргӀилг» в одном предложении человек, а в другом часть оборота; для них есть отдельный онома́стикон и пометка «подозрение: имя», но окончательно разводит их живой глаз.
И это не пара курьёзов: тот же критерий, прогнанный по всей базе, выявил около 2 100 заголовков, под которыми прячется больше одной леммы (а у да́ккха, дохка, далар — по шесть–восемь). Разобрать этот пласт — отдельная большая работа по ревизии словаря, и парадигмы движка как раз дают для неё инструмент.
И совсем тяжёлый случай — кандидатов нет вообще
Есть формы, к которым движок не нашёл ни одной зацепки:
язъяь — причастие «написанный» (от язде)еча — форма с классным / аблаутным сдвигомдеце — «если нет» (отрицательная форма связки)
«язъяь» — это причастие («филологе Ӏилман доктор хила язъяь диссертаци» — «диссертация на соискание степени доктора филологических наук»). «деце» — отрицательная форма от «да / дац» в условном контексте. Это не редкие слова — это очень частотная грамматика, просто хитро устроенная. Именно такие формы и есть настоящая граница между «поиском по строкам» и «движком, который знает язык».
Почему всё держится на носителях, а не на модели
У нас нет иллюзий, что хороший морфоанализатор ингушского языка можно «сгенерить» большой моделью. Данных в обучении почти нет — ингушского в интернете исчезающе мало, и то, что есть, частью в старой орфографии и с ошибками распознавания со сканов. Модель будет уверенно галлюцинировать парадигмы.
Поэтому архитектура у нас обратная привычной: алгоритм не выдаёт ответ, он готовит вопрос. Машина делает то, что умеет хорошо и быстро — токенизирует корпус, считает частоты, перебирает суффиксы, поднимает кандидатов и подкладывает переведённые примеры. А решение — какая лемма верная, правильно ли построена ячейка парадигмы — принимает носитель, в один клик, по уже подготовленному контексту. Каждая выверенная форма уходит в курированный слой и больше не пересчитывается.
ИИ при этом не выкинут — он работает там, где силён:
-
в разборе морфоанализатор подсказывает встроенному ИИ-переводчику падежи, классы и кто подлежащее в эргативной конструкции — и перевод становится точнее;
-
в разделе вопросов (Хаттараш) к каждому новому вопросу формируется предварительный ответ на основе словаря, корпуса и грамматики — он опирается на реальные данные через RAG, а не сочиняет, и носители его правят или принимают как лучший.
Но фундамент — выверенные людьми формы. «Каждая выверенная носителем форма для нас дороже любого алгоритма» — это не лозунг, это буквально про то, какой слой данных перебивает какой.
ИИ даёт черновой ответ по словарю, носитель уточняет и записывает звук.
Что ещё наросло за два месяца
Морфоанализатор — главное, но не единственное. Коротко по остальному, потому что многое из этого кормит тот же движок.
Корпус заметно прибавил. Кроме «Магас Благословенный» Кодзоева, добавили:
-
исторический эпос Кодзоева «Магате-Фаьрате» — около 6 800 предложений (для ~930 есть изданный авторский перевод как эталон сверки);
-
роман Дахкильгова «Берд» (1990) — 5 796 предложений с русским переводом, плюс повесть «Кукий денал» (235);
-
сборник Джека Лондона «Дувцараш» в переводе А. Плиева 1941 года — оцифровали со скана;
-
учебник Яковлева «Синтаксис ингушского литературного языка» — 2 361 параллельное предложение, со старой орфографией, которая теперь модернизируется при поиске на лету.
Каждый такой текст — это и материал для чтения, и топливо для анализатора: из него движок учит новые формы и имена. Параллельных выровненных корпусов для нахских языков почти нет, так что каждая такая книга — реальный ресурс для вычислительной лингвистики.
Параллельный корпус: ингушский и русский выровнены по предложениям.
Большой словарь БДИМТ09 (Тариева, Бекова и др., 2009, 24 000 слов) перезалили с улучшенным распознаванием: 21 893 чистые карточки, около 27 600 глагольных форм с парадигмами, 22 497 примеров, и — важное для движка — 574 связи между классными вариантами глаголов (Б↔В↔Д↔Й↔Я).
Числа прописью — отдельный инструмент. Ингушский счёт двадцатеричный (база-20): 40 — это «два по двадцать» (шовзткъа), 60 — «три по двадцать» (кховзткъа), 80 — дезткъа, а 99 — «восемьдесят и девятнадцать» (дезткъе ткъеста). Конвертер берёт любое число до квинтиллиона и пишет его словами, с переключателем количественное ↔ порядковое. Это та грамматика, которую руками не наберёшь — а она нужна и людям, и тому же ИИ.
Двадцатеричный счёт: любое число словами на ингушском.
Викторина (/quiz) — игровой режим на 14 976 карточек: показываем ингушское слово и четыре русских варианта. Формы, заимствования и имена отфильтрованы автоматически (чтобы не было задач «автобус → автобус»), полисемия учтена — любое из значений многозначного слова засчитывается.
Викторина: угадай перевод — игровой режим словаря.
Хаттараш: сообщество отвечает, носители получают пометку.
Хаттараш и Хранители — социальный слой. В разделе вопросов уже сформирована начальная база носителей и вопросов с ответами: появились шаблоны ответов, векторный поиск похожих вопросов перед публикацией, запись аудио прямо в форму ответа. А система «Хранители» — это геймификация вклада: уровни от ондарг до Ӏилманхо, восемь категорий бейджей за слова, примеры, озвучки, исправления. Знание носителей теперь течёт обратно в словарь — ответ можно прикрепить к карточке слова.
Наука подключилась
В июне у нас прошли две рабочие встречи с Ингушским НИИ гуманитарных наук им. Ч. Э. Ахриева. Это для проекта поворотный момент: до сих пор это была история одного разработчика и сообщества энтузиастов, а теперь к ней подключается академический институт — авторы тех самых словарей, которые лежат у нас в базе.
Что из этого вышло конкретно:
-
Сделал рабочий кабинет для учёных — детальная правка статей, текстов и словоформ, плюс возможность ставить материалу статус «проверено специалистом». Это поднимает планку с «выверено носителем» до академической точности.
-
Внедрил логирование модерации — каждая правка видна прямо на сайте, с автором и историей. Для академической работы прозрачность правок обязательна.
-
Институт заявил о готовности передать свои научные материалы и электронные данные в базу. Мы, в свою очередь, используем выверенные академические словари и параллельные корпуса для обучения встроенного ИИ.
-
Шеф-редактор газеты «Сердало» Ибрагим Курскиев показал свой опыт цифровизации — ингушскую раскладку клавиатуры, спеллчекер для MS Office и корпус из 96 тысяч параллельных предложений для интеграции в «Яндекс.Переводчик». Будем обсуждать обмен данными.
-
Главный итог — решение создать на базе ИнгНИИ рабочую группу по цифровым языковым технологиям, чтобы свести в одну точку академическую науку, разработку и медиа.
Планы — что хотим сделать дальше
Держу планы открытыми — часть из них это приглашение помочь, а не дорожная карта в вакууме.
По морфоанализатору:
-
Закрыть хвост непокрытых форм руками носителей — пакеты контекста уже готовы, нужен проход.
-
Поднять долю узнавания словоформ корпуса с ~80% к 98%+, в первую очередь за счёт классных вариантов (в/й/б/д) и аблаутных чередований — это самые системные ошибки.
-
Развести омонимию имени и нарицательного: довести онома́стикон и проверку «подозрение: имя» до автоматического разрешения по контексту предложения.
-
Снять с парадигм метку «бета» там, где все ячейки выверены — карточка за карточкой.
-
Достроить классы склонения существительных и основы глаголов как формальную модель, а не набор частных правил — это то, где особенно нужны лингвисты.
По данным и текстам:
-
Поднять покрытие примерами с 51.7% выше 80%.
-
Перевести и выверить черновые машинные переводы корпуса (Магас, Берд) — статус «выверено носителем» ставится только после проверки.
-
Открыть отдельный раздел «Чтение» с кликабельным текстом и переключением языков — сначала учебные материалы по грамматике ингушского языка, затем художественную литературу.
Звук: от живых озвучек к синтезу речи.
-
Набрать базу озвучек носителями — сейчас 0.1%, это стыдный провал. Запись в одну кнопку везде: на сайте, в боте, в приложении.
-
На собранных голосах обучить TTS (синтез речи) для ингушского — чтобы любое слово и любой пример озвучивались автоматически даже там, где живой записи нет. Для этого нужен корпус «текст + чистый звук», и копим мы его именно сейчас.
-
Записать эталонно, в студийном качестве, звуки и фонемы языка — фарингальные, абруптивы, ту самую палочку Ӏ и звуки кӀ, кх, хӀ и прочие. На бытовых записях они слышны плохо, а для учащихся это критично.
Обучение: приложения для детей и взрослых.
-
Две траектории: для детей — игровая, через картинки, звук и повторение; для взрослых — с грамматикой, разбором форм, опорой на словарь и корпус.
-
Два уровня сложности: начальный (алфавит, базовая лексика, простые фразы — на готовых уроках разговорника и викторине) и продвинутый (падежи, классы, времена глагола — на парадигмах морфоанализатора и примерах из корпуса).
-
Морфоанализатор здесь — ядро: он показывает форму, разбирает её и строит парадигму, а это ровно то, на чём держатся упражнения «поставь слово в нужный падеж, класс, время».
По сотрудничеству:
-
Запустить рабочую группу при ИнгНИИ и наладить регулярный обмен данными с институтом, «Сердало» и другими заинтересованными лицами.
-
Договориться об объединении наших морфологических форм с уже существующими параллельными корпусами и о совместной интеграции в массовые переводчики (тот же «Яндекс.Переводчик») — чтобы усилия разных команд не дублировались, а складывались.
Ахча — без этого дальше не уехать.
До сих пор проект держался на чистом энтузиазме: код, оцифровка, модерация — всё бесплатно и силами сообщества. Но следующий рубеж бесплатно не берётся. Качественная озвучка десятков тысяч слов, студийная запись звуков и фонем, обучение TTS, перевод и верификация корпуса профессиональными лингвистами — это оплачиваемая работа, и её много. Поэтому честный пункт плана — искать финансирование: гранты на сохранение языков, поддержку институтов и фондов, краудфандинг сообщества. Модель видится смешанной: оплачиваемое добавление озвучек носителями, оплата лингвистам за выверку парадигм и переводов, студийная запись звука — при том что сам словарь, корпус и инструменты остаются открытыми и бесплатными для всех. Если у вас есть опыт с грантами на сохранение малых языков — это та помощь, которой нам сейчас особенно не хватает.
Открытость. Базовое остаётся бесплатным и открытым. Цель — не «удобный переводчик», а работающая инфраструктура для исследователей, преподавателей и тех, кто учит язык всерьёз.
Что почитать про грамматику, на которую опирается движок
Чтобы не выглядело так, будто я тут сам придумал восемь падежей и семь времён, — вот разбор грамматики из академических источников, который мы оцифровали и держим на сайте. Эти же статьи — карта проблем, которые морфоанализатору приходится решать:
Раздел статей: оцифрованная академическая грамматика.
-
Категория падежа в ингушском языке — восемь основных падежей, эргатив и четыре производные формы местного.
-
Типы склонения в ингушском языке — почему типов склонения у разных авторов от трёх до семнадцати, и принцип двух основ.
-
Временные формы глагола в ингушском языке — семь времён, аорист и чередования корневых гласных.
-
Префиксальное словообразование глаголов — те самые превербы, по которым мы нашли пропущенные слова.
-
Семантико-грамматическая характеристика местоимений, Количественная аспектуальность и Вспомогательные глагольные элементы аналитических форм — про местоимения, аспект и аналитические формы.
Если хотите помочь
Проект упирается ровно в три типа людей, и если вы из любого — напишите.
-
Носители языка — самое ценное. Увидели на карточке неверную форму — жмите флажок «Сообщить об ошибке». Добавляйте живые примеры и озвучку. Одна выверенная форма закрывает то, что алгоритм не закроет никогда.
-
Лингвисты и преподаватели — нужны классы склонения, основы глаголов, правила чередований, разведение омонимов. Это та формальная грамматика, на которой движок стоит. Редактор парадигм уже готов и ждёт своих
героевлингвистов. -
NLP-инженеры и те, кто работал с эргативными языками, нестандартной графикой или строил морфоанализаторы для малых языков — нам особенно интересен ваш опыт. Где вы ловили грабли на классном согласовании и аблауте? Как разводили онома́стикон и нарицательную лексику?
Всё открыто на paydadosh.ru. Журнал всех обновлений — на /updates, живая статистика — на /about/stats, а морфоанализатор можно потрогать прямо на карточках слов в разделе «Парадигма».
Буду рад вопросам в комментариях — особенно по грамматике (которую я сам не знаю) и по тому, как такие вещи делают для других малых языков.
Проект целиком — на paydadosh.ru: словарь и поиск по формам, параллельный корпус, морфоанализатор на карточках слов, статьи о грамматике ингушского языка, словарь в цифрах и журнал обновлений.
Подписаться и поставить: Telegram-канал @paydadosh и бот-словарь · ВКонтакте · Instagram · Facebook · Android — PaydaDosh и офлайн-словарь.
ссылка на оригинал статьи https://habr.com/ru/articles/1050186/