Комментарии 13
я поставил программу ОРФО, она собственно от разразрабочиков русского проверочного модуля для MS Word но с расширенными функциями. Так вот увы ошибается программа все так же часто, в основном из за своей ограниченности. Например она знает что такое то определение должно соседствовать с существиетльным, но если искомое существительно находится в 2-3-х словах от него то выдается ошибка. Или программа знает что такое то слово надо брамлять запятыми, но существуют вполне очевидные случаи когла этого не требется, но они не учтены. Очень раздражает неумелая проверка закрытых-открытых скобок, ошибка практически всегда выдается если в скобках встречается точка с запятой и программа уже не видит закрывающей скобки и просит проверить есть ли она.
в то же время не ловится куча несогласованных падежей (ошибки этого рода сложнее всего поймать замыленным взглядом и в то же время они самые неприятные, даже хуже запятых).
При разработке таких вещей нужны лингвисты. Много хороших, умных лингвистов. Вы с лингвистами сотрудничаете?
Пока ещё мы не на том уровне, чтобы обсуждать вещи, выходящие за разумение простого человека (не-лингвиста).
С другой стороны, даже если бы у меня под боком был лингвист, я с ходу не могу придумать, чего этакого бы ему поручить.

Учебник/справочник по грамматике у меня есть. Руководство по стилистике языка тоже. И ресурсы вроде этого. Вот чего бы действительно пригодилось от лингвистов — так это классификация ошибок и анализ их частотности, но ведь не делают они этого почему-то.
> С другой стороны, даже если бы у меня под боком был лингвист, я с ходу не могу придумать, чего этакого бы ему поручить.

Тут нужно не столько поручать, сколько чтобы он присутствовал на каждом этапе разработки и сразу мог указывать на проблемы. Какие-то конкретные задачи тут выделить было бы сложно.
Посмотрим. В принципе, я сам не так уж и плохо разбираюсь в теме; кроме того, работа на несколько месяцев вперёд не вызывает вообще никаких вопросов — ясно, чем заняться. А вот дальше видно будет.
Мне кажется что Вам надо начинать с формулировки задачи. «Проверка правописания» слишком обще и должно формулироваться как-то иначе:
— либо формулировкой и алгоритмизацией правил, но тогда придется углубляться в определения составных предложения и прочие используемые для формулировки правил термины. Мне кажется эта задача несколько сложнее предполагаемой и уже близка к распознавании семантики языка.
— либо отображение правил в другой набор, который будет проще алгоритмизировать.
Обе задачи далеки собственно от программирования и находятся в сфере лингвистики.

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

Не совсем понял. Термин «проверка правописания» используется в MS Word именно в этом контексте, я ничего не выдумывал. По поводу алгоритмизации правил — это как? Взять учебник по грамматике и «вбить» его в компьютер?.. Мы до этого ещё дойдём, но ведь всё равно получится «исправление известных ошибок».

Если же речь о том, чтобы предложения, не удовлетворяющие правилам языка вообще за предложения не считались — да, окей, но это как раз случай «компиляции», в теории интересный, но на практике пока не применимый. Не доросли мы до него.
Пользуясь случаем спрошу, как решить такую задачу: На вход подается слово, на выходе нужно получить возможные опечатки(разумеется не все возможные, а реальные, часто встречающиеся), существуют ли алгоритмы? Есть ли словари опечаток(для русского языка)? Или как можно составить такой словарь?
У опечаток специфика, имхо, в том, что «неправильная» буква заменяется «клавиатурно» близкой, то есть метрика по клавиатуре. А дальше обычный алгоритм поиска ближайшего по этой метрике слова из словаря, наверное. Такое приходит в голову навскидку.
Да, правильно говорили — мой товарищ писал такую систему. Упрощённо говоря, суть в поиске в словаре слов, ближайших по edit distance + некоторые эвристики в виде частых ошибок, расширяющих поиск. Для каких-то европейских языков там есть ещё свои хитрости, но я в подробности не вдавался.
6 лет назад общался с Шамаевым Алексеем Эдуардовичем, он был мозгом проекта под названием SemLP (ООО «Рубрикант»). Одной из целей проекта был перевод текста на любые языки по смыслу, а также практически безошибочный грамматический анализатор. Они (а точнее, Алексей) достигли этих целей! Мне довелось видеть результат работы системы. Пусть она была раздробленной и недоделанной, но я был впечатлён. Идея перевода по смыслу воплотилась в жизнь! Впереди предстояло ещё много работы, но, что самое главное, фундамент был готов. К сожалению, вскоре Алексей Эдуардович скоропостижно скончался, проект был заброшены, а исходники… надеюсь они ещё есть у спонсора «на антресолях».

Порывшись в интернетах мне удалось найти крупицы информации по данному проекту, возможно они кому-нибудь пригодятся:
* web.archive.org/web/www.semlp.com/
* www.apmath.spbu.ru/ru/info/tuzov/onapr.html
* www.dialog-21.ru/materials/archive.asp?id=7403&y=2002&vol=6077

Также рекомендую ознакомиться с публикациями Тузова В. А. Его труды использовались при построении теоретической базы для SemLP:
* www.apmath.spbu.ru/ru/staff/tuzov/
* www.apmath.spbu.ru/ru/staff/tuzov/paper.rtf

Если кто-нибудь желает реанимировать этот проект, пишите личным сообщением, попробую связаться со спонсором.
Как бывший аспирант Тузова я хорошо знаю эту систему. Скажем прямо, там всё не так просто — сейчас другие времена и совершенно другие требования к подобного уровня системам. Я сам по логике вещей именно это направление продолжаю копать («компиляция» текста — неслучайный термин), но уже на несколько освежённых принципах. Правда, у меня одного сил не хватает, может, удастся привлечь побольше людей.
Жалко, что нет реализации для русского языка. На хабре очень помогла бы эта программа — тут каждый второй безграмотный
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.