Я пытаюсь найти алгоритм для проверки сходства между двумя вводами данных. Скажем, у меня есть две структуры данных (поля в списке контакта) со следующими данными:Сравнение двух структур данных для similarties
// UserA addressbook.
name: Frank Sinatra
mobile: +44 555 555 555 55
// UserB addressbook.
name: Frank Albert Sinatra
phone: 004455555555555
я получил эти данные от различных поставщиков, UserA
синхронизируются свой счет Google, в то время как UserB
синхронизируются свой счет Microsoft, но я хочу, чтобы мой алгоритм для скажите мне, что оба пользователя знают одного и того же парня (с некоторой вероятностью).
Кто-нибудь знает, где я должен искать? Я попытался найти алгоритм хэширования, который создает «небезопасные» хэши, т. Е. Подобные хэши для аналогичных данных, но этот маршрут не был продуктивным.
Во-первых, вы можете выделить все имена (имя, фамилия, второе имя) в массив и удалить все знаки «+», пробелы и ведущие нули из числа. Затем проверьте соответствие номеров и если один из массивов содержит некоторые из элементов другого. –
Структуры данных - всего лишь примеры. Это могут быть настраиваемые поля или список сообщений. Мне нужно сравнить две структуры данных. –
Хммм. Я не думаю, что общий алгоритм подобия будет работать в вашем примере. Два похожих номера телефонов существенно отличаются. «Миллер Р», «Роберт Миллер» и «Миллер Боб» могут ссылаться на одного и того же человека и лексически разные, хотя они имеют общее подслово. Я думаю, что вы colud будете более успешными, если бы вы нормализовали данные так или иначе, как предлагалось H2CO3, а затем использовали пользовательское сравнение для каждого поля, сообщающее вам, что A _might_ be B, например, «J Rye» <«Jane Rye» <«Jane FE Rye "и" Rye, J "==" J Rye ". –