Я искал алгоритм AI для исправления орфографии, и я нашел алгоритм расстояния Левенштейна, который сравнивает сходство между двумя строками, поэтому мой вопрос, должен ли я реализовать это сходство между неправильным словом со всеми словами в моем словаре? потому что, если да, время будет медленным. и мой второй вопрос, может ли этот алгоритм реализовать на двух строках, которые не имеют одинаковой длины, заранее спасибо
Расстояние Левенштейна - это другой способ вместо того, чтобы сравнивать неправильно написанное слово со всем словарным словом
Ответы (1)
Если вы работаете с Java или JavaScript, у меня есть библиотека, которая может найти все варианты написания в вашем словаре за линейное время по длине термина запроса:
https://github.com/universal-automata/liblevenshtein-java
Уловка заключается в том, что он пересекает автомат Левенштейна с вашим словарным автоматом и следует только по тем путям, которые приводят к терминам, имеющим расстояние Левенштейна не больше, чем то, что вы указываете из термина запроса.
Я установил демоверсию, с которой вы можете поиграть:
http://universal-automata.github.io/liblevenshtein/
person
Dylon
schedule
10.05.2016