Я так понимаю проблема должна быть распостраненной.
Нужно сравнить два слова... Т.е. два созвучных слова(в моем случае это Фамилии)
Например...
:arrow: Пертов и Питроф - они одинаковы, но написаны с грубыми ошибками
:?: Сравнение слов
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Усложнять - легко, упрощать - сложно
Сравнивай какой-то процент слова. Например:
Петров и Питроф совпадают на 5/7 ~ 74%
Для фамилий:
Создай список фамилий, и сравнивай данную так со всеми в списке. При совпадении на 100% понятно.
Если один вариант больше 70% то это она.
Если несколько примерно похожих по проценту, то можно спосить у пользователя. Если совпадения меньше 40% процентов то предложи удостовериться в правильности и после этого добавь в базу.
(Цифры процентов и варианты поведения взяты от балды, их можно поподбирать)
Петров и Питроф совпадают на 5/7 ~ 74%
Для фамилий:
Создай список фамилий, и сравнивай данную так со всеми в списке. При совпадении на 100% понятно.
Если один вариант больше 70% то это она.
Если несколько примерно похожих по проценту, то можно спосить у пользователя. Если совпадения меньше 40% процентов то предложи удостовериться в правильности и после этого добавь в базу.
(Цифры процентов и варианты поведения взяты от балды, их можно поподбирать)
А еще можно задать созвучные буквы как знаки соответствующие на 50% - Б- П, В - Ф, Е - И... ИМХО, задача простенькая как раз тот случай, когда лучше быть писателем, чем читателем.
LanDyx, в принципе дельный совет. Я пожалуй так и поступлю, СПАСИБО.
severin, неа не пойдет...
1. Программа не может знать правильного слова
2. С вероятностью в 50% далеко не уедешь.
... Это такой прикол есть, когда читаешь книгу заменяй все запятые на слово боком, а точки раком. Также и с твоим алгоритмом, получится буквенная каша
severin, неа не пойдет...
1. Программа не может знать правильного слова
2. С вероятностью в 50% далеко не уедешь.
... Это такой прикол есть, когда читаешь книгу заменяй все запятые на слово боком, а точки раком. Также и с твоим алгоритмом, получится буквенная каша
Усложнять - легко, упрощать - сложно
Hup, во многих языках программирования (даже в SQL ), есть аналоги функции soundex которая возвращает один и тот же ключ для одинаково звучащих, но по-разному записываемых слов. Т.е. Питроф и Петров должны давать один и тот же ключ. Старики бают, что алгоритм этой функции описан в трёхтомнике Кнута.
З.Ы: soundex('Knuth') == soundex('Kant')
З.Ы: soundex('Knuth') == soundex('Kant')
Даже самый дурацкий замысел можно воплотить мастерски
AiK. я тут немного покапался в Инете и нашел
Блин, вот за это я и уважаю этот форум!!! Всегда дельные советы
Блин, вот за это я и уважаю этот форум!!! Всегда дельные советы
Усложнять - легко, упрощать - сложно