Использование алгоритма Винклера для веб-форм

Из веб-формы клиент отправляет мне много переменных, таких как имя, фамилия, идентификатор, адрес и т. Д. Иногда пользователь отправляет мне имя как;

Elviz Aaronn Presley

С помощью алгоритма Винклера я хочу сравнить все записи с записями в БД.

  1. Элвиса будут сравнивать с "Элвизом"
  2. Аарона сравнивают с "Аароном"
  3. Пресли будут сравнивать с Пресли

Тогда Винклер вернет мне значение. для первого и второго случаев он вернет значение больше 90. И это хорошо. Когда дело доходит до имен, таких как

Elviszfd Aaronn Presley

Первый случай будет меньше 90. И это не приемлемо. Но когда я сравниваю со вторым именем и получаю среднее из всех трех. Точка будет снова поднята за 90. И я хочу принять это.

Это хорошая и правильная практика, чтобы использовать алгоритм Winkler? Или я должен выбрать другой алгоритм, чтобы сделать это.

1 ответ

В общем, Jaro Winkler - это хорошее решение для сравнения имен, и оно довольно неплохо, но я бы также рассмотрел сравнение строк Monge-Elkan и SoftTFIDF.

Вот документ, описывающий производительность, а также временную / пространственную сложность этих подходов.

Другие вопросы по тегам