Я никогда раньше не создавал алгоритм для сопоставления и не знаю, с чего начать. Итак, вот мои основные настройки и почему я это делаю. Не стесняйтесь поправлять меня, если я не задаю правильные вопросы.
У меня есть база данных имен и уникальных идентификаторов для людей. Несколько сгенерированных идентификаторов (внутренних и сторонних), фамилия, имя и дата рождения являются основными, которые я буду использовать.
Несколько раз в течение года я получал список от третьей стороны, который нужно импортировать и привязать к существующим в моей базе данных людям, но данные никогда не бывают такими же чистыми, как мои. Идентификаторы могут измениться, даты рождения могут содержать опечатки, имена могут содержать опечатки, фамилии могут измениться и т. Д.
В каждом импорте может быть 20 000 записей, поэтому, даже если он будет на 99% точным, это все равно 200 записей, которые мне нужно будет ввести вручную и сопоставить. Я думаю, что я ищу более 99,9% точности, когда дело доходит до сопоставления входящих людей с моими пользователями.
Итак, как мне создать алгоритм, который может это понять?
PS Даже если у вас нет точного ответа, но вы знаете о некоторых материалах, ссылки на которые также могут быть полезны.
PPS Некоторые примеры будут похожи на то, что написал m3rLinEz:
ID: 9876234 Fname: Jose LName: Guitierrez Birthdate:01/20/84 '- Original'
ID: 9876234 Fname: Jose LName: Guitierrez Birthdate:10/20/84 '- Typo in birth date'
ID: 0876234 Fname: Jose LName: Guitierrez Birthdate:01/20/84 '- Wrong ID'
ID: 9876234 Fname: Jose LName: Guitierrez-Brown Birthdate:01/20/84 '- Hyphenated last name'
ID: 9876234 Fname: Jose, A. LName: Guitierrez Birthdate:01/20/84 '- Added middle initial'
ID: 3453555 Fname: Joseph LName: Guitierrez Birthdate:01/20/84 '- Probably someone else with same birthdate and same last name'