Проект выходного дня — правила украинского языка

Должен признаться — я пользуюсь спеллчекером, когда пишу на украинском. Я никогда не изучал язык — когда я впервые в жизни пошел в школу в Украине, то спросил у учительницы украинского «Как мне догнать остальных в классе?». В ответ я услышал примерно то, что знают все — «Где вы были восемь лет», то есть «А как вы догоните, если у вас оценок со второго по десятый класс нет?». Это понятно, потому что еще за месяц до этого я изучал в школе азербайджанский.

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

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

Я пользуюсь LanguageTool — это очень мощная штука, но она проверяет орфографию, пунктуацию и почти не ловит русизмы. Более того — в некоторых случаях именно моя самая большая проблема с «і» и «и» пролазит, поскольку само слово может правильно писаться и так, и так (такій, такий, это соответственно женский и мужской род местоимения). В общем, я помучился и решил посмотреть, что с этим и русизмами можно сделать.

Оказалось, что LanguageTool — это открытый продукт, который можно расширять, правда, только если вы разворачиваете его у себя. Это меня никогда не пугало, поэтому Claude получил задание и начал выполнять.

Мы (меня уже спрашивали, почему “мы” — скромный я, не могу приписать себе заслугу нескольких LLM) взяли корпус UA-GEC — это корпус ошибок, составленный Grammarly и выложенный в open-source. Из него вытащили разделы, где собраны ошибки по стилю, беглости, сочетаемости и калькам. Кроме того, добавили правила по согласованию. Первый вариант содержал более 1000 правил и давал кучу false positives. Пришлось переделывать, тестировать, но в итоге вроде бы получилось неплохо. Впрочем, конечно, не идеально.

Если кому-то интересно попробовать или даже пользоваться постоянно — вот репозиторий, содержащий и сами правила, и инструкцию по локальному развертыванию (вам понадобится Docker). Если найдете ошибки или есть что добавить — там можно отправить issue или даже сделать PR.