|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Anton Y. Shevtsov 2:5020/400 02 Sep 2004 12:14:07 To : Mikhail Polykovsky Subject : Re: Поиск похожего? --------------------------------------------------------------------------------
Mikhail Polykovsky wrote:
> Здравствуйте. Существует ли распространенный алгоритм/модуль для
> поиска слов в словаре, даже если введенное слово отличается от требуемого
> - лишняя буква в любой позиции
> - отсутствующая буква в любой позиции
> - неверная буква
> - перепутанные местами буквы
>
> Причем желательно варьировать количество изменяемых при поиске букв.
> Естественно, найденых слов может быть найдено более одного.
> Что посоветуете?
>
> З.Ы. Пример: должно быть найдено слово "паровоз" на введенные слова
> "паравоз", "парвоз", "паро-воз".
>
> З.Ы. База - Mysql, если есть встроенные средства, тоже подойдут.
>
Это называется нечеткий поиск. Общего способа нет.
Кто-то пытается считать сумму кодов букв в слове и тогда при выпадении
одной ссумма найденного слова не очень будет отличатся от заданного.. но
все это лажа)) особенно на коротких словах.. чтобы сделать реально
работающее, нужно приложить математику.
Вообщето для этого полно в инете
http://www.3ka.mipt.ru/vlib/books/Programming/ComputerScience/StryngAnalysis/ind
ex.html
http://algolist.manual.ru/search/fsearch/
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=722
http://www.pereplet.ru/nauka/perl/find.html
у буржуев это назвается fuzzy logic (вроде)
--
Aesma Daeva - O Death (Rock me asleep)
--- ifmail v.2.15dev5.3
* Origin: TNGF (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/4409b8e1b7dd.html, оценка из 5, голосов 10
|