В большинстве систем редактирования текста имеется инструмент автоматической проверки орфографических ошибок (когда в слове одна или несколько букв написаны неправильно; в английском языке — орфографист ).
Принцип их работы: программа анализирует каждое слово в тексте и ищет в базе одинаковые все слова и их различные формы.
Такая проверка текста гарантирует, что слова в тексте будут написаны правильно (как в словаре), но не защищает от ошибок согласования и синтаксических ошибок в предложении.
Например, предложение «Я читаю интересный журнал» неверно, но система редактирования текста не покажет правильный вариант: «Я читаю интересный журнал».
Избежать таких ошибок помогает программа проверки грамматических ошибок в предложении (на английском языке - программа проверки грамматики ).
Для проверки орфографических ошибок создано множество программ.
Но пока (насколько мне известно) нет программ, проверяющих грамматические ошибки в предложении (для флективных/флектируемых языков - в которых слова имеют много форм); то есть проверка на ошибки не только орфографические, но и ошибки согласования и синтаксиса.
Поэтому я хотел бы представить программу, которая это делает (насколько это возможно).
В 2003-2007 годах я написал программу (три ее версии), которая максимально быстро анализировала текст (на литовском языке) и исправляла не только орфографические ошибки, но и исправляла грамматические ошибки и ошибки связи в предложении.
В январе 2011 года через Википедию я наткнулся на сайт habrahabr.ru, а затем и статьи пользователя rg_software "Заметки по НЛП" и "НЛП: Проверка орфографии - Взгляд изнутри" и наткнулся на фразу "как создать шаблон для правила "сказуемое должно иметь тот же род, что и подлежащее?" Я подумал, что об этом стоит написать.
моя работа - возможно она будет интересна специалистам и неравнодушным.
Потом за полтора месяца сделал русскую версию программы.
Программа работает по принципу парсера языков программирования: используется большой «универсальный шаблон/шаблон предложения», описывающий все возможные варианты согласования слов в предложении; все возможные предложения.
Парсер немного доработан под человеческий язык (подробнее в описании в pdf); Кроме того, чтобы программа предлагала более удачный (по ее мнению) вариант входного предложения – для этого необходимо рассмотреть все формы каждого слова из входного предложения.
Например, для предложения «эта компьютерная программа распознает простой текст» ожидается рассмотрение 13 934 592 комбинаций вариантов (24*24*12*7*24*12); это завершается примерно за 5 секунд.
Помимо исправления грамматики программа:
* Поддерживает многовариантность слов и словосочетаний на всех уровнях синтаксического дерева предложения.
* Показывает графически дерево выбранного (исправленного) варианта предложения или его распознанной части; Также показаны «деревья» шаблона универсального предложения, «слова» входного предложения и их варианты.
** В окнах графического отображения структуры исправленного предложения и шаблона универсального предложения можно: перемещать вид, щелкать левой или правой кнопкой мыши по пустому размещать (отменяет выделение элемента), по элементам (слева - разворачивает/сворачивает элемент (ссылка "-EXP-"), справа - выделяет его) или по их частям (только левой кнопкой мыши - по ссылкам "-И) -» (по горизонтали) и «-ИЛИ-» (по вертикали) — открывает/сворачивает их).
Вот ссылки (для быстрого ознакомления) на страницы этой программы на разных языках: На русском: site.google.com/site/sergprogrammer/main/main_ru/grammar_ru По-английски: site.google.com/site/sergprogrammer/main/main_en/grammar_en На данный момент там можно скачать литовскую «урезанную» версию программы, в которой отключено графическое отображение элементов всех деревьев/графов и отключены некоторые возможности, и более открытую русскую версию.
Последняя версия программы (на русском языке и для работы с русским языком) находится на сайте проекта Мультиграмматика по адресу: sourceforge.net/projects/grammar-multi/files Там же вы можете скачать большое PDF- или документальное описание того, как все это работает. Также есть форум, где я могу ответить на вопросы незарегистрированных пользователей.
Интерфейс "русской" версии программы изменяется в файле "messages.txt", словарь (микроскопический) - в файле "dic.txt", шаблон универсального предложения - в файле "rules.txt".
Я все еще пытаюсь создать английскую версию; полученная версия предназначена больше не для использования, а для демонстрации принципа работы.
Обновление от 15 ноября 2011: Решил сюда добавить скриншоты английской версии грамматики:
Последний, кстати, показывает структуру разбираемого предложения в программном виде согласно версии файла «шаблон универсального предложения» Rules.txt.
Теги: #искусственный интеллект #обработка слов #обработка слов #обработка естественного языка #компьютерная лингвистика #анализ текста #проверка грамматики #проверка грамматики
-
Html 5 – Будущее Интернета?
19 Oct, 24 -
Невероятная Машина Или Мой Лучший Тест
19 Oct, 24 -
Как Чему-Либо Научиться?
19 Oct, 24 -
Бесплатные Мероприятия Azure В Марте
19 Oct, 24