|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : yurik shestakov 2:5020/400 02 Sep 2004 12:03:17 To : Mikhail Polykovsky Subject : Re: Поиск похожего? -------------------------------------------------------------------------------- On Thu, Sep 02, 2004 at 03:55:11AM +0000, Mikhail Polykovsky wrote: MP> Здравствуйте. Существует ли распространенный алгоритм/модуль для MP> поиска слов в словаре, даже если введенное слово отличается от требуемого MP> - лишняя буква в любой позиции MP> - отсутствующая буква в любой позиции MP> - неверная буква MP> - перепутанные местами буквы MP> Причем желательно варьировать количество изменяемых при поиске букв. MP> Естественно, найденых слов может быть найдено более одного. MP> Что посоветуете? MP> З.Ы. Пример: должно быть найдено слово "паровоз" на введенные слова MP> "паравоз", "парвоз", "паро-воз". google://Levenshtein use Text::Levenshtein qw(distance fastdistance); print distance("foo","four"), "\n"; # печатает "2" print fastdistance("foo","four"), "\n"; # печатает "2" faster $"=','; my @words=("four","foo","bar"); my @distances=distance("foo",@words); print "@distances\n"; # печатает "2 0 3" my $word = "опечатка"; foreach (qw/очепятка опчатка печатка/) { print "LD('$word','$_')=",fastdistance($word, $_),"\n"; } MP> З.Ы. База - Mysql, если есть встроенные средства, тоже подойдут. AFAIR, нету. -- // yurik shestakov --- ifmail v.2.15dev5.3 * Origin: Unknown (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/10069be1dee60.html, оценка из 5, голосов 10
|