Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.25;
Скачать: CL | DM;

Вниз

Подскажите аглоритм проверики строки на примерную схожесть   Найти похожие ветки 

 
leonidus ©   (2007-02-05 08:56) [0]

Господа, есть такая задача. Человек вводит в строке поиска некое слово и жмет кнопку "искать" если данное слово на найдено, программа делает предположение что слово набрано с грамматической ошибкой и должна показать юзеру список слов "похожих" на введенное для того, чтобы он мог быстро повторить поиск, собственно так поступает яндекс. Как реализовать подобный алгоритм?


 
Separator ©   (2007-02-05 08:59) [1]

Яндекс поступает не так


 
Думкин ©   (2007-02-05 09:02) [2]

Надо ввести на множестве слов метрику. Близкими считать слова, которые имеют расстояние до заданного меньше некоторого фиксированного предела.


 
novill ©   (2007-02-05 09:04) [3]

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

В данном случае расстояние - количество элементарных операций для получения слова находящегося в словаре.


 
leonidus ©   (2007-02-05 09:25) [4]

>novill словарь правильных слов есть, а как посчитать "расстояние" до ближайших слов, каков в данном случае критерий?


 
pasha_golub ©   (2007-02-05 09:31) [5]


> leonidus ©   (05.02.07 09:25) [4]

Критерий близкорасположенности клавиш на клавиатуре в основном. Ну, и безударные глассные.


 
@!!ex ©   (2007-02-05 09:32) [6]


> leonidus ©   (05.02.07 09:25) [4]

Количество различных символов + смещение.


 
Kolan ©   (2007-02-05 09:44) [7]

Есть дома функция которая в процентах возвращает похожесть строк. С этого форума брал, вечером поищу...


 
novill ©   (2007-02-05 09:55) [8]

> [4] leonidus ©   (05.02.07 09:25)
Это уже мат. теория, я сейчас всю ее не расскажу, лучше посмотри в нете.

Если "на пальцах"
За единицу расстояния берется одна элементарная операция с буквами слова например: замена, перестановка, удаление, вставка буквы. Дальше перебор кобминаций. Нахождение наименьшего количества операций между выбранной парой слов. Обычно расстояние >1 не берут, накладно это.

Еще есть смысл предварительно отфильтровать слова пере расчетом расстояний (например по длине и наличию одинаковых букв)

ЗЫ еще раз рекомендую посмотреть алгоритмы в нете.


 
TUser ©   (2007-02-05 10:16) [9]

Вот тут почитай первую главу
http://monkey.belozersky.msu.ru/~evgeniy/genetext_analizys.djvu (3 метра)


 
leonidus ©   (2007-02-05 11:10) [10]

>novill  а как такой алгоритм по научному называется

>TUser спасибо за ссылочку, сейчас почитаю.


 
leonidus ©   (2007-02-05 11:11) [11]

>Kolan поищите пожалуйста, буду очень признательно


 
Думкин ©   (2007-02-05 11:14) [12]

http://algolist.manual.ru/search/lcs/



Страницы: 1 вся ветка

Текущий архив: 2007.02.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1170418278
DVM
2007-02-02 15:11
2007.02.25
Самый быстрый алгоритм шифрования.


2-1170912666
ryslan56
2007-02-08 08:31
2007.02.25
выгрузка


2-1170405465
wrtyu
2007-02-02 11:37
2007.02.25
Как выполнить http-скрипт?


8-1151000056
гость333
2006-06-22 22:14
2007.02.25
покадровое воспроизведение видео


2-1170575336
Golik
2007-02-04 10:48
2007.02.25
Запрос к БД! Где Ошибка ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский