Реалізація перевірки граматики та орфографії
Перевірка граматики та орфографії—завдання, де прості інструменти покривають 80% випадків, а решта 20% (контекстні помилки, стилістика, узгодження) потребують мовних моделей.
Інструменти за рівнями складності
Лише орфографія (словникова перевірка):
-
pyspellchecker—невеликий словник, працює без ML, 1ms/слово -
enchant(Python)—інтерфейс до системних словників (Hunspell), хороше покриття російської -
autocorrect—простра заміна з Edit Distance
Орфографія + граматика (правилові системи):
-
LanguageTool—open-source, Java, REST API. 2500+ правил для російської мови, підтримка через
language-tool-python. Найкращий вибір для production без LLM.
import language_tool_python
tool = language_tool_python.LanguageTool("ru-RU")
matches = tool.check("Я пошёл в магазин за хлебои.")
# Match: "хлебои" → "хлебом" (Rule: MORFOLOGIK_RULE_RU_RU)
LLM-based (найкраща якість):
- GPT-4o або Claude для контекстних помилок, стилістики
- Промпт: «Виправ граматичні та орфографічні помилки. Верни виправлений текст та список змін у JSON»
Російськомовна специфіка
Російська граматика складна для алгоритмічної перевірки: падежне управління, узгодження прикметників з іменниками, розставлення коми. LanguageTool покриває найчастіші випадки, LLM справляється з нюансами.
Для перевірки пунктуації: Яндекс.Спеллер API (безкоштовно, лише орфографія) + LanguageTool (пунктуація). Спільне використання підвищує recall.
Архітектура для редактора
У текстовому редакторі перевірка відбувається асинхронно. Підкреслення з'являється 500ms після припинення введення. Швидкий перший прохід (LanguageTool, < 100ms)—орфографія та базова граматика. Другий прохід (LLM, 1–3s)—контекстні помилки та стилістика. Suggestion UI з гарячими клавішами для швидкого прийняття виправлень.







