Какой алгоритм лучше всего подходит для ближайшего слова? - PullRequest
5 голосов
/ 30 августа 2010

Какой алгоритм лучше всего подходит для ближайшего слова.

Указан возможный словарь слов, и первые символы входного слова могут быть неправильными.

Ответы [ 3 ]

7 голосов
/ 31 августа 2010

Один из вариантов - BK-деревья - см. Мой пост в блоге о них здесь . Другой, более быстрый, но более сложный вариант - автоматы Левенштейна, о которых я также писал, здесь .

4 голосов
/ 31 августа 2010

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

3 голосов
/ 31 августа 2010

Вы можете использовать BLAST

и изменить его, чтобы использовать тот факт, что слова в словаре являются дискретными единицами, что делает процесс сопоставления более специфичным в отличие от длинной строки ДНК.

В BLAST уже встроено понятие редактирования расстояний.

В качестве альтернативы вы можете использовать суффиксные деревья (у Дана Гусфельда есть отличная книга по основным алгоритмам сопоставления строк) и встроить идею редактирования расстояний.в.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...