3

我有几个包含个人数据的表格来源,如下所示:

SOURCE 1
ID, FIRST_NAME, LAST_NAME, FIELD1, ...
1, jhon, gates ...

SOURCE 2
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
1, jon, gate ...

SOURCE 3
ID, FIRST_NAME, LAST_NAME, ANOTHER_FIELD1, ...
2, jhon, ballmer ...

因此,假设来自来源 1 和 2 的 ID 为 1 的记录是同一个人,我的问题是如何确定每个来源中的记录是否代表同一个人。此外,确保并非所有记录都存在于所有来源中。所有的名字,主要是用西班牙语写的。

在这种情况下,需要放宽精确匹配,因为我们假设数据源没有经过国家官方身份验证局的严格检查。此外,我们需要假设拼写错误是常见的,因为收集数据的过程的性质。更重要的是,每个来源的记录数量约为 2 或 3 百万……

我们的团队曾考虑过这样的事情:首先,强制在 ID NUMBER 和 NAMES 等选定字段中进行精确匹配,以了解问题的难度。第二,放宽匹配条件,数一数还能匹配多少条记录,但是问题来了:如何放宽匹配条件,既不会产生太大的噪音,又不会限制太多?

什么工具可以更有效地处理这个问题?例如,您是否知道某些数据库引擎中的某些特定扩展以支持这种匹配?您是否知道诸如soundex 之类的巧妙算法来处理这种近似匹配,但对于西班牙语文本?

任何帮助,将不胜感激!

谢谢。

4

7 回答 7

3

这听起来像是客户数据集成问题。搜索该术语,您可能会找到更多信息。此外,在The Data Warehousing Institude中四处逛逛,您也可能会在那里找到一些答案。

编辑:此外,这里有一篇文章可能会让您对西班牙语语音匹配感兴趣。

于 2008-09-23T19:00:10.087 回答
3

我以前也做过类似的事情,我所做的是对名字使用双变音位语音搜索。

不过,在比较名称之前,我尝试通过在我创建的昵称表中查找名称来规范化任何名称/昵称差异。(我用我在网上找到的人口普查数据填充了表格)所以叫 Bob 的人变成了 Robert,Alex 变成了 Alexander,Bill 变成了 William,等等。

编辑:Double Metaphone 专门设计为比 Soundex 更好,并且可以使用英语以外的其他语言。

于 2008-09-23T19:04:12.683 回答
3

问题的关键是计算每对条目之间的一个或多个距离度量,然后当其中一个距离小于某个可接受的阈值时认为它们是相同的。关键是设置分析,然后改变可接受的距离,直到达到您认为是假阳性和假阴性之间的最佳权衡。

一种距离测量可以是语音。您可能会考虑的另一个是Levenshtein 或整体之间的编辑距离,它会尝试测量拼写错误。

如果您对应该拥有多少人有一个合理的想法,那么您的目标就是找到您获得正确人数的最佳位置。让你的匹配太模糊,你就会太少。把它限制起来,你会有太多的。

如果您大致知道一个人应该拥有多少条目,那么您可以将其用作衡量您何时接近的指标。或者,您可以将记录数除以每个人的平均记录数,并获得您要拍摄的粗略人数。

如果您没有任何数字可供使用,那么您就只能从分析中挑选出多组记录并手动检查它们是否看起来像同一个人。所以这是猜测和检查。

我希望这会有所帮助。

于 2008-09-23T20:20:35.900 回答
2

SSIS,尝试使用模糊查找转换

于 2008-09-23T18:53:09.153 回答
1

只是为了添加一些细节来解决这个问题,我发现这个模块适用于 Postgresql 8.3

于 2008-09-25T19:04:39.107 回答
0

您可能会尝试通过将名称与字典进行比较来规范化这些名称。
这将允许您发现一些常见的拼写错误并更正它们。

于 2008-09-26T12:53:48.590 回答
0

听起来你有一个记录链接问题。您可以使用链接中的参考资料。

于 2008-11-11T10:18:06.323 回答