Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.40.47] |
|
Сообщ.
#1
,
|
|
|
Есть некий текст (скорее всего будет браться из распознавалки). Естественно, что его орфография будет оствлять лучшего. Какие существуют алгоритмы по исправлению этого дела и т.д.?
Хотя бы в какую сторону копать? |
Сообщ.
#2
,
|
|
|
Мне кажется к словарю... т.е. по любому есть какие-то правило, которое позволяет безошибочно определить правильно ли написано слово. Допустим однокренные слова для проверки написания гласной к корне. Соответственно слова исключения это сто процентный словарь, по которому происходит поиск нужного слова... Собственно если есть большой словарь, то и правописание можно проверить... В Ворде по моему тоже словарь и правила, он даже синонимы подбирает и однокоренные слова... Короче словарь.. ))
Добавлено А вот пунктуация сложнее, хотя там тоже правила... куда без них.. ) |
Сообщ.
#3
,
|
|
|
Даже имея очень хороший словарь, нужен алгоритм, по которому выбирать из него слова...
Люди, подскажите хоть в каком направлении копать? /ключевые слова что ли/ |
Сообщ.
#4
,
|
|
|
Да, тебя спасет только словарь. Проблема в том, как найти похожие слова. Ну для начала, надо определиться с метрикой, т.е. что мы называем "похожим". Для этого вполне подойдет Levenshtein distance (так же известная как string edit distance). Да-да, если в слове "хлеб" сделать 4 ошибки, получится слово "пиво". Это как раз оттуда. Расстояние Левенштайна между этими словами как раз 4.
Далее. Разумеется, бежать по словарю из 40,000-60,000 слов и считать эту метрику - дело затратное. Т.е. нужна некая структура данных, которая позволила бы быстро находить все слова из словаря, которые находятся на расстоянии не более заданного (некая маленькая константа, скажем 2-3) от нашего слова. Это дело известно как fuzzy string matching. Смотри по ссылке на suffix trees, metric trees и т.д. для организации своего словаря. PS. Угу, я видел, что ты писал мне в аську. Дико извиняюсь, что не ответил, но ты выбрал самый неподходящий для этого момент - я смотрел Англия-Россия :) |