Каков наилучший алгоритм для ближайшего слова.Каков наилучший алгоритм для ближайшего слова
Дано заданное слово слова и первые символы во входном слове могут быть неправильными.
Каков наилучший алгоритм для ближайшего слова.Каков наилучший алгоритм для ближайшего слова
Дано заданное слово слова и первые символы во входном слове могут быть неправильными.
Одним из вариантов является BK-деревья - см. Мой пост в блоге о их here. Другой, более быстрый, но более сложный вариант - это Levenshtein Automata, о котором я также писал, here.
Я использую Hunspell, и он возвращает 10 результатов, таких как «дыра», «привет», «помощь», «герой» и т. Д., Когда я вводил «helo». Я ожидаю только «привет», что делает Google, когда я ищу «helo». Теперь это также основано на статистических данных, или просто изменить расстояние может быть достаточно, чтобы предложить только «привет»? – SexyBeast
Есть такие инструменты, как HunSpell (open-source spell-checker широко, включая OpenOffice), которые подошли к проблеме с нескольких точек зрения. Одним из широко используемых критериев для определения того, насколько близки слова, является Levenshtein distance, который также используется в HunSpell.
Вы можете использовать BLAST
и изменить его, чтобы использовать тот факт, что слова в словаре являются дискретными единицами, что делает процесс согласования более конкретными в отличии от строки длинной ДНК.
BLAST уже встроил в него понятие дистанций редактирования.
В качестве альтернативы можно использовать суффикс деревья (Dan Gusfeld имеет отличную книгу по основным алгоритмам строка соответствия) и построить в идее редактирования расстояний в
Почему только первые символы могут быть неправильными? – Leonid
Не могли бы вы сначала дать свое определение «ближайший»? – FrustratedWithFormsDesigner
Я имею в виду, что первые символы могут быть неправильными. – Avinash