Использование алгоритма Винклера для веб-форм
Из веб-формы клиент отправляет мне много переменных, таких как имя, фамилия, идентификатор, адрес и т. Д. Иногда пользователь отправляет мне имя как;
Elviz Aaronn Presley
С помощью алгоритма Винклера я хочу сравнить все записи с записями в БД.
- Элвиса будут сравнивать с "Элвизом"
- Аарона сравнивают с "Аароном"
- Пресли будут сравнивать с Пресли
Тогда Винклер вернет мне значение. для первого и второго случаев он вернет значение больше 90. И это хорошо. Когда дело доходит до имен, таких как
Elviszfd Aaronn Presley
Первый случай будет меньше 90. И это не приемлемо. Но когда я сравниваю со вторым именем и получаю среднее из всех трех. Точка будет снова поднята за 90. И я хочу принять это.
Это хорошая и правильная практика, чтобы использовать алгоритм Winkler? Или я должен выбрать другой алгоритм, чтобы сделать это.
1 ответ
В общем, Jaro Winkler - это хорошее решение для сравнения имен, и оно довольно неплохо, но я бы также рассмотрел сравнение строк Monge-Elkan и SoftTFIDF.
Вот документ, описывающий производительность, а также временную / пространственную сложность этих подходов.