В последнее время мы выполняем такую работу без перерыва, и мы выбрали подходящую таблицу поиска или список псевдонимов. Если вы можете сбрасывать со счетов орфографические ошибки / неверные / неанглийские имена, то сложная часть убирается. В ваших примерах мы предполагаем, что первое слово и последнее слово - это имя и фамилия. Все промежуточное будет отброшено (отчества, инициалы). Берри и Бернард были бы в списке псевдонимов - и когда Цакала не совпадал с Берри, мы переключали порядок слов и затем получали совпадение.
Вам нужно понять одну вещь - базы данных / списки людей, с которыми вы имеете дело. В англоязычном мире отчество записывается непоследовательно. Таким образом, вы не можете сделать или отрицать совпадение, основанное на отчестве или отчестве. Soundex не поможет вам с общими псевдонимами имен, такими как «Дик» и «Ричард», «Берри» и «Бернард» и, возможно, «Стив» и «Стивен». В некоторых общинах люди часто живут по одному и тому же адресу и живут по 2-3 поколения с одним и тем же именем. Вы можете разделить их только по дате рождения. Дата рождения может быть или не быть записана. Если у вас есть влияние, вам, вероятно, следует сделать запись даты рождения обязательной. Многие «базы данных людей» либо не записывают дату рождения, либо не отдают их по причинам конфиденциальности.
По сути, сопоставление имен людей не так сложно. Это полностью основано на качестве предоставленных данных. На практике происходит то, что многие записи остаются несогласованными, и даже человек, смотрящий на них, не может устранить несоответствие. Человек может заметить псевдонимы имен, не записанные в списке псевдонимов, или может найти информацию о человеке в Интернете - но вы не можете ожидать, что ваша программа сделает это.
Банки, кредитные рейтинговые организации и правительство имеют много подробной информации о нас. Предыдущие адреса, дата рождения и т. Д. И это помогает им объединять имена. Но для нас, обычных программистов, не существует волшебной пули.