:?: Сравнение слов

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
Hup
Сообщения: 207
Зарегистрирован: 05 мар 2004, 05:31
Откуда: Владивосток
Контактная информация:

17 сен 2004, 13:09

Я так понимаю проблема должна быть распостраненной.
Нужно сравнить два слова... Т.е. два созвучных слова(в моем случае это Фамилии)
Например...
:arrow: Пертов и Питроф - они одинаковы, но написаны с грубыми ошибками
Усложнять - легко, упрощать - сложно
LanDyx
Сообщения: 3
Зарегистрирован: 17 сен 2004, 20:18

17 сен 2004, 20:30

Сравнивай какой-то процент слова. Например:
Петров и Питроф совпадают на 5/7 ~ 74%

Для фамилий:
Создай список фамилий, и сравнивай данную так со всеми в списке. При совпадении на 100% понятно.
Если один вариант больше 70% то это она.
Если несколько примерно похожих по проценту, то можно спосить у пользователя. Если совпадения меньше 40% процентов то предложи удостовериться в правильности и после этого добавь в базу.
(Цифры процентов и варианты поведения взяты от балды, их можно поподбирать)
severin
Сообщения: 11
Зарегистрирован: 01 сен 2004, 14:03

17 сен 2004, 20:50

А еще можно задать созвучные буквы как знаки соответствующие на 50% - Б- П, В - Ф, Е - И... ИМХО, задача простенькая как раз тот случай, когда лучше быть писателем, чем читателем.
Hup
Сообщения: 207
Зарегистрирован: 05 мар 2004, 05:31
Откуда: Владивосток
Контактная информация:

19 сен 2004, 02:41

LanDyx, в принципе дельный совет. Я пожалуй так и поступлю, СПАСИБО.
severin, неа не пойдет...
1. Программа не может знать правильного слова
2. С вероятностью в 50% далеко не уедешь.
... Это такой прикол есть, когда читаешь книгу заменяй все запятые на слово боком, а точки раком. Также и с твоим алгоритмом, получится буквенная каша
Усложнять - легко, упрощать - сложно
Аватара пользователя
AiK
Сообщения: 2271
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

19 сен 2004, 02:54

Hup, во многих языках программирования (даже в SQL :) ), есть аналоги функции soundex которая возвращает один и тот же ключ для одинаково звучащих, но по-разному записываемых слов. Т.е. Питроф и Петров должны давать один и тот же ключ. Старики бают, что алгоритм этой функции описан в трёхтомнике Кнута.

З.Ы: soundex('Knuth') == soundex('Kant') :)
Даже самый дурацкий замысел можно воплотить мастерски
Hup
Сообщения: 207
Зарегистрирован: 05 мар 2004, 05:31
Откуда: Владивосток
Контактная информация:

19 сен 2004, 05:33

AiK. я тут немного покапался в Инете и нашел :)
Блин, вот за это я и уважаю этот форум!!! Всегда дельные советы
Усложнять - легко, упрощать - сложно
Ответить