Версия для печати


Еще раз о нечетком сравнении строк
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=727

Дмитрий Кузан
дата публикации 10-12-2002 16:11

Еще раз о нечетком сравнении строк

По мотивам обсуждения статьи Функция приблизительного/нечеткого сравнения строк

Второй вариант поиска : Compare1.zip (359 K)

Отличия от первого, по моим субъективным наблюдениям, в следующем:
1.Лучше находит похожие слова лежащие в одной плоскости
Соха - Сноха - совпадение 88 при том что в первом алгоритме составило 66 при длине фразы = 3
2.Хуже находит похожие (даже идентичные), но перевернутые слова
Тихий Дон - Дон Тихий - в первом способе совпадение 79 во втором 55 - очень существено.
Так что первый способ я рекомендовал для сравнения, например, полей двух баз данных.
Второй способ, по моему убеждению, лучше использовать в поиске по словарю или в тех местах, где надо найти фразу.

Вообще-то, существуют еще, кроме этих, алгоритмы поиска. Я бы выделил SoundEx для сравнения, но у него есть свои недостатки — он языкозависим, но отлично подходит для сравнения английских фраз.
Если вас это заинтересует то могу прислать в оригинале (написан он на C), но перевести в Pascal для людей которых это заинтересует, не составит труда.

И, напоследок, предлагаю вам архив с примерами алгоритмов анализа строк. К сожалению страницы указанные в архиве, как начальные, где можно найти информацию, не работают - поэтому высылаю слепок с сайта. Скачать Stephen.zip (185 К)

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

3. ОБЗОР АЛГОРИТМОВ 4. АЛГОРИТМЫ 4. 3 НЕЧЕТКОЕ СОПОСТАВЛЕНИЕ СТРОК
Кузан Дмитрий