Введение
Компьютерная программа, проверяющая письменный текст на грамматическую правильность.
Грамматический проверочный модуль, в вычислительной технике, – это программа или часть программы, предназначенная для проверки письменного текста на грамматическую правильность. Грамматические проверочные модули чаще всего реализуются как функция более крупной программы, например, текстового процессора, но также доступны и в виде самостоятельных приложений, которые можно активировать из программ, работающих с редактируемым текстом. Реализация грамматического проверочного модуля основана на использовании обработки естественного языка.
История
Самыми ранними "проверками грамматики" были программы, которые проверяли пунктуацию и стилистические несоответствия, а не полный спектр возможных грамматических ошибок. Первая система называлась Writer's Workbench и представляла собой набор инструментов для написания, который входил в состав систем Unix еще в 1970-х годах. Весь пакет Writer's Workbench включал несколько отдельных инструментов для проверки различных проблем с текстом. Инструмент "diction" проверял текст на наличие многословных, заезженных, клишированных или неправильно использованных фраз. Инструмент выдавал список сомнительных фраз и предлагал варианты улучшения текста. Инструмент "style" анализировал стиль написания заданного текста, проводил ряд тестов на читаемость и выводил результаты, а также предоставлял статистическую информацию о предложениях в тексте. Компания Aspen Software из Альбукерки, штат Нью-Мексико, выпустила самую раннюю версию программы для проверки дикции и стиля для персональных компьютеров – Grammatik – в 1981 году. Grammatik впервые стал доступен для Radio Shack TRS 80, а вскоре появились версии для CP/M и IBM PC. Компания Reference Software International из Сан-Франциско, штат Калифорния, приобрела Grammatik в 1985 году. Разработка Grammatik продолжалась, и он превратился в полноценную программу проверки грамматики, способную обнаруживать ошибки в тексте, выходящие за рамки простой стилистической проверки. Другие ранние программы для проверки дикции и стиля включали Punctuation & Style, Correct Grammar, RightWriter и PowerEdit. Хотя все самые ранние программы начинались как простые проверки дикции и стиля, со временем все они добавили различные уровни обработки языка и приобрели определенные возможности проверки грамматики. До 1992 года программы проверки грамматики продавались как дополнительные приложения. В то время существовало множество различных текстовых редакторов, среди которых WordPerfect и Microsoft Word занимали лидирующие позиции по доле рынка. В 1992 году Microsoft решила добавить проверку грамматики в Word в качестве встроенной функции и лицензировала CorrecText – программу проверки грамматики от Houghton Mifflin, которая еще не продавалась как самостоятельный продукт. WordPerfect ответила на этот шаг Microsoft, приобретя Reference Software, и прямой потомок Grammatik до сих пор входит в состав WordPerfect. По состоянию на 2019 год программы проверки грамматики встроены в такие системы, как Google Docs и Sapling.ai, расширения для браузеров, такие как Grammarly и Qordoba, настольные приложения, такие как Ginger, бесплатное программное обеспечение с открытым исходным кодом, такое как LanguageTool, и плагины для текстовых редакторов, такие как те, что доступны от WebSpellChecker Software.
Технические вопросы
Самые ранние программы для проверки стиля проверяли текст на наличие многословных, заезженных, клишированных или неправильно использованных фраз. Этот процесс основывался на простом сопоставлении с образцами. Основным элементом программы был список из сотен или тысяч фраз, которые многие эксперты считают признаком плохой письменной речи. В этот список сомнительных фраз входили альтернативные варианты формулировок для каждой фразы. Программа проверки просто разбивала текст на предложения, искала совпадения в словаре фраз, помечала подозрительные фразы и предлагала альтернативы. Эти программы также могли выполнять некоторые механические проверки. Например, они обычно выявляли повторяющиеся слова, двойную пунктуацию, некоторые ошибки в использовании заглавных букв и другие простые механические погрешности. Настоящая проверка грамматики – задача более сложная. Если язык программирования имеет чёткий синтаксис и грамматику, то для естественных языков это не так. Можно составить достаточно полную формальную грамматику для естественного языка, но в реальном использовании обычно столько исключений, что формальная грамматика мало помогает при создании программы проверки грамматики. Один из важнейших компонентов грамматического анализатора естественного языка – это словарь всех слов языка с указанием части речи каждого слова. Тот факт, что одно и то же слово может использоваться в качестве разных частей речи (например, слово "free" может быть прилагательным, наречием, существительным или глаголом) значительно усложняет работу грамматического анализатора. Программа проверки грамматики находит каждое предложение в тексте, ищет каждое слово в словаре, а затем пытается синтаксически разобрать предложение, чтобы оно соответствовало грамматическим правилам. Используя различные правила, программа может выявлять различные ошибки, такие как согласование во времени, числе, порядке слов и так далее. Также можно обнаружить некоторые стилистические недостатки текста. Например, в некоторых популярных руководствах по стилю, таких как "Элементы стиля", критикуется чрезмерное использование пассивного залога. Программы проверки грамматики могут пытаться определить пассивные предложения и предлагать активные аналоги. Программные компоненты, необходимые для проверки грамматики, тесно связаны с некоторыми проблемами разработки, которые необходимо решить при создании программного обеспечения для распознавания речи. В системах распознавания голоса синтаксический анализ может использоваться для предсказания наиболее вероятного слова на основе его части речи и положения в предложении. При проверке грамматики синтаксический анализ используется для выявления слов, которые не соответствуют принятым грамматическим нормам. В последнее время исследования сосредоточены на разработке алгоритмов, способных распознавать грамматические ошибки на основе контекста окружающих слов.
Критика
Грамматические проверки рассматриваются как вид вспомогательного инструмента для написания на иностранном языке, который носители языка, не являющиеся родными, могут использовать для вычитки своих текстов, поскольку такие программы стремятся выявлять синтаксические ошибки. Однако, как и другие компьютерные средства для работы с текстом, такие как проверка орфографии, популярные грамматические проверки часто подвергаются критике, когда они не обнаруживают ошибки и ошибочно помечают корректный текст как ошибочный. Лингвист Джеффри К. Пуллум в 2007 году утверждал, что они, как правило, настолько неточны, что приносят больше вреда, чем пользы: "В большинстве случаев следование советам компьютерной грамматической проверки ухудшит ваш текст, порой до абсурдной бессвязности".