【发布时间】:2014-04-21 19:06:31
【问题描述】:
将部分数据与完整记录进行比较以作为可能的重复匹配项的最佳方法是什么?
例如,假设您有一个客户数据库,其中存储联系信息,例如名字、姓氏、地址、城市、邮政编码,并允许每条记录有多个电话号码。
目标是找到所有可能的“匹配”,即某些数据非常接近匹配,或与输入的信息相同。
例子:
Real Data Contains
First Name: Robert
Last Name: Smithson
Phone Numbers: 1111231234, 1111241235
Zip/Postal: 90210
我希望该记录显示在结果中,不仅是完全匹配,而且如下所示:
- 罗伯·史密斯
- 90211
- 90120
- 鲍勃·伊森 = 鲍比·孙
现在我了解了上面的名称变体,我需要有一个单独的表,我可以使用它来智能地区分名称变体/部分,但是目标是有某种模糊逻辑可以合理地确定记录的重复性和/或在给定部分数据的情况下返回最可能的结果。
我考虑过以下方法:
- 对记录进行散列处理并使用该记录进行相对比较:由于与存储的数据相比变化太大,因此无法正常工作。
- 记录中的字符存储在 char 数组中以进行比较(又名,有多少
A's、B's 等):这会造成问题,因为正在查找的内容之间的差异可能无法解释足够的字符按字符进行全谱分析。
我正在寻找使用 PHP 以编程方式解决此问题的其他可能性。
数据库后端将在 MySQL 中,还没有结构。
【问题讨论】: