Реализация проверки грамматики и орфографии (Grammar Check)
Проверка грамматики и орфографии — задача, где простые инструменты покрывают 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 с горячими клавишами для быстрого принятия исправлений.







