Форум сайта python.su
Привет, друзья!
Встала передо мной следующая задача.
Есть относительно короткая строка (чаще всего не больше 50 символов). С большой долей вероятности она состоит в основном не из осмысленных слов, а из мешанины разных символов, не несущих никакой смысловой нагрузки. При этом среди мешанины могут попадаться нормальные слова. Слова могут содержать опечатки.
Задача: выловить из текста все слова, похожие на нормальные, соответственно исправляя опечатки (возможно, генерируя при этом несколько возможных вариантов).
Соответственно, для этого нужен словарь… И каким-то образом искать слова из словаря по этому тексту, да ещё и нечётко, чтобы обнаруживать слова с опечатками. Но и хорошо бы, чтобы процесс поиска не затягивался, производительность важна. ))
Не выходит ничего толкового придумать, и нагуглить ничего тематического тоже не выходит. Помогите, плз? :)
PS: возможно, есть уже какие-то готовые средства для таких целей? быть может, под пайтон? :)
Офлайн
Сниффер пишете? Язык сообщений какой?
Если сниффер, то может легче и надежнее вникнуть в структуру пакета?
Офлайн
Нет, не сниффер. :) Это связано с распознаванием изображений. Язык заранее неизвестен, но можно взять за предположение любой, это в принципе не так критично. Например, пусть будет английский.
Офлайн
http://norvig.com/spell-correct.html как наипростейший вариант, нужен список слов. Слова в мешанине просто находите каким-нибудь + и пытайтесь распознать.
Офлайн
тыц
для сравнения слов попробуй использовать множества, например
len(set(введеное_слово) | set(слово_из_словаря)) - len(set(слово_из_словаря)) <= 1 # или 2, в зависимости от точности
Отредактировано (Март 17, 2011 18:57:23)
Офлайн