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

Карточка «деша»: главные части, переводы с кодами изданий, а в оглавлении справа — «Парадигма · 98»
Что за язык
Ингушский — нахско-дагестанская языковая семья, около 500 тысяч говорящих. Язык, между прочим, не рядовой: на его материале Николс сформулировала типологическую дихотомию head-marking vs. dependent-marking, вошедшую в учебники. Для инженера важно вот что.
Классные показатели. У существительного есть грамматический класс, и глагол с прилагательным согласуются с ним буквой внутри слова: кӏаьнк воагӏа (мальчик идёт) — йоӏ йоагӏа (девочка идёт) — бераш доагӏа (дети идут). Показатель не приставка и не суффикс: он может стоять в начале, в середине, а иногда его нет вовсе — категория частичная, классный показатель принимает лишь около трети глагольных корней и каждый десятый адъективный. Это значит, что одна «форма» — на самом деле ряд из четырёх, хранить их надо вместе, а есть ли у конкретного глагола такой ряд — заранее неизвестно.
Чередование гласной в основе. Времена различаются не окончанием, а корнем: деша → деш (наст.) → дийшар (прош.) → дешаргда (буд.). Ряд «инфинитив — настоящее — прошедшее» и есть ключ ко всей парадигме; ошибёшься в одной ступени — поедет половина форм.
Эвиденциальность внутри времён. В глагольных временах смешаны время, вид и засвидетельствованность: аорист — «сделал, видел сам», перфект — «сделано, есть результат», для событий, которых говорящий не видел, — отдельные формы. Учебник даёт сетку семь времён на семь наклонений — 49 клеток ещё до подтипов; добавьте отрицательные и вопросительные формы и классные ряды — вот откуда у нас 128 слотов.
Глагольных корней — около двухсот. Это закрытый класс: новые глаголы язык собирает из имени и лёгкого глагола («де» — делать, «хила» — быть) и превербов. Для данных следствие двоякое: спряжение двух сотен корней разлетается по тысячам составных лемм, ошибка в одном корне тиражируется на всех наследников — а короткие частотные корни вроде «де» оказываются исключением чуть ли не в каждом правиле.
Палочка. Буква Ӏ, отдельная фонема. На клавиатуре её нет, поэтому в текстах вместо неё пишут латинскую I, цифру 1, вертикальную черту, строчную l. Для поиска это означает, что одно и то же слово в базе существует в пяти написаниях, и нормализация — не косметика, а условие работоспособности. Глубже лучше не заглядывать: шва, долгота и аллофония гласных устроены так, что Николс прямо пишет — строго фонематическую письменность для ингушского построить почти невозможно.
Кому интересна типология сама по себе — на сайте переведены обзор ингушского по Николс и шесть явлений, которыми ингушский интересен мировой лингвистике: там минимальная тоновая система, дальнодистантная рефлексивизация и прочие радости, до которых парадигмы пока не добрались.
И ещё одно, чисто практическое: когда я начинал, готового морфологического анализатора не существовало, размеченного корпуса промышленного размера — тоже. Учебники есть, но они писались для школы, а не для того, чтобы по ним программировать. И анализатор, и корпус пришлось строить самому — параллельно с парадигмами.
Из чего собирали
Четыре независимых канала, и ни один из них не главный.
канал |
что это |
объём |
|---|---|---|
словарные статьи |
печатная нотация в самих статьях: «къажар (къож, къежар)» |
99 684 статьи, 49 505 гнёзд |
орфографический словарь |
отдельное издание, список словоформ |
124 140 форм |
корпус |
оцифрованные книги и параллельные тексты |
228 571 предложение |
носители |
модераторы, которые правят и подтверждают |
87 070 курируемых ячеек (выверено + словарь) |

Первый канал вживую: печатная нотация «деша (деш, дийшар, дийшад, дешаргда)» с кодами изданий и страницами. Выше — блок «Это же написание»: у «деша» три омонима
Каждая ячейка парадигмы на карточке помечена тем, откуда она взялась: выверено (подтвердил носитель), словарь (напечатано в издании), корпус (правило предложило, тексты подтвердили), синтетика (выведено правилом, человек не смотрел). Пометки эти в первую очередь рабочие: когда форма оказывается неверной, первое, что нужно знать, — кто её породил.
Тир «выверено» закреплён только за носителем. Соблазн подписать им корпусную находку большой — однажды такая пометка чуть не проскочила, остановил её вопрос на ревью: «выверено может же быть только у носителя, нет?». Пришлось заводить отдельный маркер для того, что подтверждено текстами. Разница принципиальная: корпус говорит «так пишут», носитель — «так правильно».
Слоты и правила
Слотов в парадигме сейчас 128. Не все из них — «падеж» или «время»: у глагола есть, например, «уступительное перфекта отрицательное» («даже если бы не сделал») или деепричастие «пока не». Каждый слот описан правилом вывода, и у каждого правила есть адрес в литературе.
Страница правил устроена так: слева название формы и вопрос к ней (по-ингушски и по-русски, плюс английский термин Николс с номером параграфа), в середине — разбор на морфемы и словесная формулировка, справа — примеры трёх видов.

Строка правила: разбор на морфемы, формулировка, источник с параграфом, примеры из текстов и заметка модератора
Пример разбора, который видно на снимке: деш + аш = дешаш, правило «основа настоящего + „-аш" (после „в" — „-ш")», источник — Николс 2011, §13.9.1.2 и Аушева 2021, форма взята из выверенной ячейки, а рядом заметка модератора: «Глагол „де" — исключение».

Раскрытая строка «дешаш»: конструктор по живым данным, источник с параграфом и заметка модератора
Всего таких строк 119. У всех указан источник, у 54 приведена дословная цитата, изданий в списке 16. Опор несколько: по глаголу — «Ingush Grammar» Джоанны Николс (2011), по именам и спряжениям — «Морфологи» Аушевой и Оздоевой (2021), там, где академические описания молчат, — школьные грамматики Оздоевых и статьи Барахоевой; заголовки статей и печатная нотация главных форм — из ингушско-русского словаря под редакцией Л. У. Тариевой и ещё трёх печатных словарей.
Реестр источников целиком — все 16
Николс 2011 — Nichols, Johanna. Ingush Grammar. Berkeley: University of California Press, 2011 (University of California Publications in Linguistics, vol. 143). Именное склонение — глава 6; глагол — главы 12–13.
Аушева/Оздоева 2021 — Аушева Э. А., Оздоева Э. Г. ХӀанзара гӏалгӏай мотт. Морфологи. 2021.
Оздоев 6–7 — Оздоев И. А., Оздоев Р. И. ГӀалгӏай метта грамматика. 6–7 классашта. 2011.
Оздоев 2011, синтаксис — Оздоев И. А., Оздоев Р. И. ГӀалгӏай метта грамматика. ШоллагӀа дакъа: Синтаксис. 8–9 классашта. Магас: Сердало, 2011. Таблица вопросов придаточных, вопросительные и условные формы.
Гандалоева 2018 — Гандалоева А. З. ХӀанзара гӏалгӏай мотт. Синтаксис. Назрань: КЕП, 2018. Вопросительные формы, причинные деепричастия, запретительное «ма».
Барахоева, Костоева 2022 — Барахоева Н. М., Костоева Ф. М. Синтаксическая функция деепричастия в ингушском языке. 2022. Наши вопросы к деепричастиям — «фу деш?» и «фу даь?» — стоят на карточках дословно оттуда.
Оздоева и др. 2018 — Оздоева Э. Г., Алиева П. М., Дудургова Э. М. Временные формы глагола в ингушском языке // Филологические науки. Вопросы теории и практики. 2018. № 4 (82), ч. 1. С. 142–145.
Оздоева и др. 2019 — Оздоева Э. Г., Алиева П. М., Дудургова Э. М. Повелительное, условное и сослагательное наклонения в ингушском языке // Там же. 2019. Т. 12, вып. 5. С. 173–176.
Аушева 2019 — Аушева Э. А. Типы склонения в ингушском языке // Там же. 2019. Т. 12, вып. 4. С. 201–205.
Барахоева 2016 — Барахоева Н. М. Префиксальное словообразование глаголов в ингушском языке // Там же. 2016. № 7 (61), ч. 2. С. 48–51.
Ирезиев 2013 — Ирезиев С.-Х. С.-Э. Редукция согласных в структуре непроизводных глаголов в чеченском и ингушском языках при образовании временных форм. Чеченский государственный университет, 2013.
Яковлев 2001 — Яковлев Н. Ф. Синтаксис ингушского литературного языка. 2001.
Мальсагов 1963 — Мальсагов З. К. Грамматика ингушского языка. 2-е изд. Грозный, 1963.
БДИМТ09 — Ингушско-русский словарь под ред. Л. У. Тариевой, ~24 000 статей — опорный источник заголовков и печатной нотации.
КУР05 · КОД21 · КОД18 — печатные ингушско-русские словари, из которых взята нотация главных форм.
Внизу той же страницы — одиннадцать случаев, где общее правило не работает вовсе: четыре супплетива, дефектная связка «да», стянутое будущее у 69 глаголов («маргда», а не «моларгда» — и разобрать его обратно в причастие нельзя, такого причастия нет).
Отдельное удовольствие — сверять источники между собой. Сколько в ингушском спряжений? У Николс — 16 классов, у Аушевой — 12, в школьном учебнике Оздоева — 5 «плюс неправильное». Типов склонения насчитывают от трёх у Мальсагова до семнадцати в «Морфологии» 2012 года. Это не чей-то брак, а разные признаки деления — но правилу вывода нужно выбрать один, и этот выбор приходится документировать, как любое архитектурное решение.
Страница открыта: paydadosh.ru/grammar/forms — там все 119 правил с источниками, разбором и живыми примерами.
Собирается страница отдельным скриптом из того же кода, который строит карточки, и служит двум задачам: модератор видит, откуда взялась каждая форма и может оставить замечание прямо у правила, а я получаю место, где расхождение между «как описано» и «как исполняется» становится заметным. Дважды именно так и вышло — оба случая ниже, в инженерной части.
Правила не выводились из данных статистически. Они выписывались из книг, а потом проверялись на данных — и вот тут начинается самое интересное.
«Нет в текстах» ≠ «не существует»
Первое, обо что я разбился, — соблазн считать корпус арбитром.
Замер: взяли все курируемые ячейки — выверенные носителем или взятые из печатных изданий, то есть заведомо верные формы, — и поискали их в 228 тысячах предложений.
63,1 % не встретились ни разу (53 722 из 85 081 — столько курируемых ячеек было на момент замера).
Это не потому, что корпус плох. Это потому, что «уступительное перфекта отрицательное» от редкого глагола в художественной литературе просто не встречается. Отсутствие формы в текстах не говорит ничего.
Отсюда рабочее правило: корпус — подтверждающий канал, а не опровергающий. Если форма нашлась — хорошо, это доказательство. Если не нашлась — вопрос остаётся открытым, и решает его либо печатный источник, либо носитель.
Практическое следствие: любой замер «сколько наших форм подтверждается» надо делать по частотным леммам. На случайной выборке подтверждаемость синтетических форм у существительных вышла 23 %, а на частотных — 45 %. Вся разница — редкость слова, а не качество правила.
Пять случаев, где интуиция подвела
1. Сослагательное строится не от того, от чего кажется
Форма «зная, что делает» (дешалга) выводилась у нас от основы настоящего. Модератор Коазой Рашид прислал: у глагола «де» правильная форма — делга, а не дулга.
Проверять начали с частотности: взяли 62 глагола, у которых обе основы известны, и посмотрели, какая версия встречается в текстах. Настоящее выиграло 31 против 20 у инфинитива. По этому счёту надо было оставить как есть.
Приговор вынесла другая цифра. У форм, построенных от настоящего, оказался нулевой классный ряд — то есть в-, й- и б-варианты не встречались нигде, хотя для настоящей формы они обязаны существовать. Живая форма без класса — это не форма, а артефакт. Правило переписали на инфинитив, задело 1 322 глагола.
Мораль: частотность отвечает на вопрос «что чаще», а не на вопрос «что верно». Иногда решает структурный признак, а не счётчик.
2. Соседние суффиксы ведут себя противоположно
Деепричастие «пока не» требует удвоения согласной: диккъалца. Соседнее «прежде чем» — не требует: дикъалехь.
Цифры: у «-алца» удвоение подтвердилось на 57 глаголах из 65, у «-алехь» — на 29 из 29 без удвоения (против 4 с удвоением).
Выведи я правило по аналогии — «суффиксы похожи, значит ведут себя одинаково» — слот сломался бы целиком. Каждый суффикс проверяется отдельно, даже если он выглядит как сосед.
3. Транслитерация из грамматики — источник системных ошибок
Основной источник по глаголу — «Ingush Grammar» Джоанны Николс (2011), там ингушский записан латиницей: d.iesha, qoss, hwed. Латиница диграфная: q — это «кх», q' — «къ», hw — «хь», gh — «гӏ», ou — «ов», aa — «а», ä — «е».
Я трижды подряд передавал диграфы как две буквы. Каждый раз это ловила не внимательность, а сверка по базе: берёшь транслитерированную форму и ищешь её в словаре и орфографическом словаре. Из 22 пар таблицы 14-1 не находилось 9 — и все девять содержали ou или aa. После починки сошлись все 22.
Отдельно выяснилось, что мой парсер книги резал диакритику: mälar осел в данных как «лар», lätar — как «тар». Двадцать девять лемм терялось, две попадали в чужие слова.
Правило, которое из этого выросло: любая транслитерация проверяется поиском по собственной базе, а не глазами. Если форма из книги не находится ни в одном из четырёх каналов — сначала подозревай свою транслитерацию, потом книгу.
4. Множественное число глагола: правило есть, но применять его нельзя
В ингушском по числу меняются не все глаголы, а немногие: кӏаьнк вода — кӏаьнкаш болх (мальчик идёт — мальчики идут). Николс перечисляет 23 пары и пишет, что категория «could be viewed as either a lexical category or a partial derivational category».
Позже нашлось правило — у Аушевой и Оздоевой (2021, с. 97): гласные основы [а, о, и] меняются на [ов, ув], согласные [лл, д] — на [хк, лх]. Казалось бы, можно выводить.
Нельзя. Там же, абзацем ниже, сам источник оговаривает: «дукха да хандешаш» с теми же самыми звуками число не различают — говр къехк — говраш къехк. Форма основы не является достаточным условием. И добавляет, что показ числа гласной — «къаьнара гӏулакх», архаика на выходе из употребления.
Заводили списком: 17 глаголов, каждый проверен по орфографическому словарю.
Приятный побочный результат: школьный учебник третьего класса даёт трёхчастную типологию, которой нет ни у Николс, ни у Аушевой — (а) меняется только классный показатель, (б) меняются все звуки основы, (в) не меняется вовсе. Третий тип объясняет, почему у большинства глаголов такой формы нет законно, а не потому, что она просто не нашлась.
5. Каждая восьмая форма принадлежит нескольким словам
Замер по всем выверенным ячейкам: из 64 305 различных форм 7 802 (12 %) принадлежат больше чем одному гнезду. Чемпионы: «вахар» — 13 слов (уход, опьянение, жизнь, лишение…), «дехкар» — 10, «деша» — 5.
Это меняет постановку любой задачи поиска. Запрос «найди лемму по форме» не имеет однозначного ответа, и наивная реализация — SELECT ... WHERE form = ? LIMIT 1 — не поиск, а лотерея.
За один день я наступил на это трижды:
разбор слова «шо» брал первую статью с таким заголовком, а ею оказался «пшав» — и парадигма местоимения не находилась;
батч, заводивший парадигмы местоимений, целился по той же логике в глагол «хье» (месить) вместо возвратного «хье» (сам);
две ячейки множественного числа легли не туда: «ховш» приписалось глаголу «ха» (знать) вместо «ха» (насесть), «кхохк» — «кхолла» (создать) вместо «кхолла» (набросить).
Последнее поймала сплошная сверка с английскими глоссами Николс: xou 'sit down' не может быть «знать». Различитель нашёлся именно в источнике — не в частотности, не в длине, а в переводе.
Инженерная часть
Несколько вещей, которые к морфологии отношения не имеют, но съели времени не меньше.
Сборка правил не влезает в память прода. Три с лишним десятка тысяч парадигм, пик больше 1,9 ГБ. Первый прогон разбудил глобальный OOM-киллер, и тот выбирал жертву сам — мог выбрать веб-процесс. Лечится запуском в отдельной cgroup-области: systemd-run --scope -p MemoryMax=2400M. Локально не собирается, потому что локальная копия базы меньше боевой, тянуть ее каждый раз на локалку проблемно, и числа выходят другие.
Таблица классных хвостов годится переключателю классов, но не разбору. У деепричастия будущего в таблице записано «долаш/волаш/йолаш/болаш» — для переключателя верно, хвост меняется целиком. Как граница морфемы это давало разбор «дешаргда − да + долаш», будто классный показатель убирают и тут же возвращают. А исполняется правило «убрать конечное „а" + олаш». Соседний слот PartFut записи в таблице не имеет и разбирался правильно — расхождение видно только сравнением соседей.
Аналитические формы нельзя разбирать суффиксально. Отрицательный имперфект — два слова, «дешаш дацар» (деепричастие + отрицательная связка). Разбор всё равно пытался и печатал «дешаш · дешац · −ешац · +ацар».
Заслон «страница против кода». Страница правил собирается отдельным скриптом, и легко получить ситуацию, когда описание разошлось с тем, что реально исполняется. Поэтому в сборщик вшита проверка: взять формулу из таблицы вывода, применить её к образцу и сравнить с тем, что печатается. Она и поймала оба случая выше. Сплошная сверка «текст правила против разбора на кусочки» по всем 119 строкам дала 4 срабатывания: 1 настоящий брак и 3 промаха самой проверки — у двухветочных правил («+ш после гласного, иначе +аш») надо сравнивать с обеими ветками.
Измерительный инструмент врёт чаще, чем кажется. Оговорка: речь не про «посмотреть страницу» — глазами или скриншотом одну карточку проверить проще простого. Речь про проверки, которые после каждой сборки гоняет скрипт: 119 строк правил, сотни карточек, DOM вместо глаз. Три случая за неделю:
getBoundingClientRect()у потомков свёрнутого<details>возвращает ненулевую высоту — Chrome принудительно раскладывает скрытое поддерево, когда его о геометрии спрашивают. Проверка «видно 119 строк из 119» была ложью; честный ответ даётcheckVisibility();innerTextу скрытого элемента возвращает текст (по спецификации —textContent). Проверка «текст на месте» ничего не доказывает: блок был скрыт CSS, и правки на карточках не показывались;импорт приложения отдельным процессом даёт другую реальность:
app.state.dbне поднят, и функция, разрешающая имя пользователя, уходила в запасную ветку «moderator #347». Я успел решить, что сломано разрешение имён, — сломан был мой скрипт.
Общее правило после этого: проверять надо тем, что решает, а не тем, что кажется относящимся к делу. Высоту — высотой, видимость — checkVisibility, состояние базы — базой.
Что получилось в числах
лемм со словоизменительными парадигмами |
28 280 из 49 505 |
заполненных ячеек парадигм |
677 928 |
различных словоформ |
534 976 |
курируемых ячеек (выверено + словарь) |
87 070 у 20 058 гнёзд |
словник проверки орфографии |
237 377 словоформ |
слотов |
128 |
правил с указанным источником |
119 из 119 |
Ячейка и словоформа — не одно и то же: одна ячейка держит до четырёх классных вариантов, а одна форма может закрывать несколько ячеек, поэтому строк на карточках показывается заметно больше, чем «различных словоформ» в таблице.

Вся парадигма «деша», свёрнутая до оглавления: 14 групп, 98 форм
Пролистать парадигму по группам

Нефинитные: инфинитив, масдар, деепричастия и причастия

Настоящее, прошедшие и будущее: у отрицательного имперфекта источник «корпус», у отрицательного перфекта — «словарь», у отрицательного настоящего — «авто»

Пять повелительных и оптатив, ниже — свёрнутые группы со счётчиками форм

Та самая группа из первого абзаца: «уступительное перфекта отрицательное» — дийшадоацашшехьа, «даже если не сделал»
На карточке пять групп раскрыты сразу — от нефинитных до повелительного, — и ещё девять свёрнуты: деепричастия времени и причины, изъяснительные, уступительные, вопросительные, условные, запретительные и другие. У каждой формы вопрос на двух языках, ряд классных вариантов и подпись, откуда форма взялась.
Что осталось нерешённым
Плюративность (однократное против многократного действия) — категория, которой у нас нет. Таблица 14-2 у Николс даёт 39 пар; обе леммы нашлись у 19, и то после ручной сверки: сопоставление по русскому переводу дало 90 % мусора.
Начинательный и взаимный залоги. Суффикс начинательного известен (
-luпротив каузативного-d.u), но пометы в словаре нет, а выводить морфологией после двух неудач с плюративом я не рискую.Тоновые пометы. В ингушском минимальная тоновая система, и у Николс тон различает формы: имперфект — тон на первом слоге (môlar), аорист — на окончании (mälâr). При оцифровке пометы слетели. Латиница стоит без них: дорисовывать помету, которой нет, я не стал.
1 705 гнёзд без части речи. Пока часть речи неизвестна, вид парадигмы выбрать нельзя, и слово остаётся без форм вовсе.
Спорные формы. Есть пары, где источники расходятся, а носитель не уверен. Я их не сглаживаю: если два издания спорят, на странице так и написано, что это спор. Иногда с печатью спорит сам язык: аорист от «дала» (дать) напечатан как «далар», но в живых текстах 367 раз стоит «делар» против 105 — клетка помечена спорной, читателю видны обе формы.
Что бы я сделал иначе
Раньше завёл бы тиры источников. Первые месяцы всё лежало одной кучей «выверенных» форм, и когда обнаружилась ошибка, нельзя было ответить на вопрос «откуда она взялась». Пометка источника у каждой ячейки — инструмент отладки: без неё каждая ошибка анонимна.
Раньше начал бы мерить до, а не после. Половина правок, которые «очевидно улучшают», на замере давали ноль или уходили в минус. Одна правка ударения дала ровно ноль изменений, и это выяснилось только потому, что счётчик снимали до деплоя.
Не доверял бы аналогии между похожими вещами. Соседние суффиксы, соседние слоты, соседние омонимы — три разных случая, где «оно же такое же» стоило дороже всего.
И главное: в языке без готовых ресурсов основная работа не в том, чтобы сгенерировать формы, а в том, чтобы обосновать каждую. Генератор пишется за неделю. Ответ на вопрос «а эта форма точно есть?» пишется год — и состоит он не из кода, а из четырёх независимых каналов, дисциплины замера и готовности выбросить собственное красивое правило, когда оно не сходится с текстами.
Причём тут другие языки
Ингушский в этой истории можно заменить почти на любой из десятков языков России и сотен языков мира в том же положении: печатные словари и грамматики есть, цифровых ресурсов нет, а большие языковые модели такой язык почти не видели в обучающих данных. На прямой вопрос LLM уверенно порождает несуществующие словоформы, и пользователь не может отличить правильное от правдоподобного — для учителя это опаснее отсутствия ответа.
Методика из этой статьи от языка не зависит: реестр печатных источников с паспортизацией (код источника стоит у 99,9 % наших статей), правила из академических описаний вместо статистики, независимые каналы подтверждения и тир доверия у каждой ячейки. Эта же обвязка позволила посадить поверх данных ИИ-помощника, который отвечает только тем, что подтверждено базой, а при невозможности разбора прямо говорит об этом. В разделе вопросов схема доведена до конца: ИИ даёт предварительный разбор, отвечает носитель, его правка возвращается в базу эталоном. Человек здесь не проверяет машину постфактум — он следующее звено того же конвейера.
Спрос на такие инструменты обычно недооценивают. Платформой без рекламы пользуются около 6 900 человек в месяц из 77 регионов России и более чем 60 стран — заметная часть аудитории это диаспора, у которой нет языковой среды: средний визит из Испании длится двенадцать с половиной минут.
Кто мне помогал
Разбор спорных форм, вопросы, на которых выросли новые слоты, и проверка всего, что не выводится правилом, — модераторы Коазой Рашид и Stella Nova. Двадцать форм, которых на карточке не было вовсе — сослагательное, уступительное, «пока не», «прежде чем», — появились по их вопросам; все двадцать потом нашлись в грамматике Николс, ни одной выдуманной.
Отдельно стоит сказать, зачем это нужно называть. В таких проектах легко представить дело так, будто формы «сгенерированы»: написали правило, прогнали скрипт, получили миллион строк. На деле каждое спорное место упиралось в вопрос, на который отвечает только человек, знающий язык, — и половина историй выше начинается со слов «модератор прислал».
Парадигмы — только часть платформы. За кадром остались проверка орфографии на 237 377 словоформ (Hunspell-словарь и расширение для LibreOffice / OpenOffice), проверка грамматики с классным согласованием, библиотека на 150 книг с поиском по корпусу, викторина с дуэлями, офлайн-приложения и ИИ-помощник Оатхал — хроника по неделям лежит в обновлениях.
Открытого API пока нет: он живёт внутри — на нём работают ИИ-тесты и инструменты модерации; появятся ресурсы на масштабирование — откроем. Как устроены права на данные, разобрано на странице «О проекте»: наша разметка, сведение и переводы поверх печатных изданий, для научной работы — со ссылкой на PaydaDosh и на исходное издание. Дальше в планах озвучка (TTS) и курс уроков с ней.
Я уже писал на Хабре, как устроена платформа и как работает морфоанализатор — написанное там про архитектуру в силе, но цифры устарели: словарь с апреля вырос в полтора раза, а парадигм на карточках тогда не было вовсе.
Если вы работали с морфологией других языков — особенно эргативных или с классным согласованием — буду рад сравнить грабли в комментариях.
Проект: paydadosh.ru — ингушско-русский словарь. Открытая часть: карточки слов с парадигмами, корпус, разговорник, раздел вопросов. Стек: Python, FastAPI, SQLite (FTS5), aiogram для телеграм-бота — нарочно скучный: вся сложность здесь живёт в данных, а не в инфраструктуре