我以前从未构建过匹配算法,也不知道从哪里开始。所以这是我的基本设置以及我这样做的原因。如果我没有提出正确的问题,请随时纠正我。
我有一个人名和唯一标识符数据库。几个生成的标识符(内部生成的和一些第三方的)、姓氏、名字和出生日期是我将使用的主要标识符。
一年中我多次收到来自第三方的列表,需要导入并绑定到我数据库中的现有人员,但数据从来没有我的干净。ID 可能会改变,出生日期可能有错别字,名字可能有错别字,姓氏可能会改变,等等。
每次导入可能有 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'