Python 记录链接、模糊匹配和去重

Posted

技术标签:

【中文标题】Python 记录链接、模糊匹配和去重【英文标题】:Python Record Linkage, Fuzzy Match and Deduplication 【发布时间】:2018-05-09 08:17:38 【问题描述】:

我有 3 个包含 7 列的客户数据集。

客户名称

地址

电话

商店名称

手机

经度

纬度

每个数据集都有 13000-18000 条记录。我试图模糊匹配它们之间的重复数据删除。我的数据集列在此匹配中的权重不同。我怎么能处理???? 你知道适合我的案例的好图书馆吗?

【问题讨论】:

@fgregg 我可以在这种情况下使用重复数据删除吗? 是的,Dedupe 可以在这里工作,只需将 3 个数据集合并为一个并通过 dedupe 运行以获得可能的重复项所需的集群,我已经广泛使用 dedupe 来完成此类任务。 【参考方案1】:

我认为 Recordlinkage 库会适合您的目的

您可以使用比较对象,需要各种匹配:

compare_cl.exact('CustomerName', 'CustomerName', label='CustomerName')
compare_cl.string('StoreName', 'StoreName', method='jarowinkler', threshold=0.85, label='surname')
compare_cl.string('Address', 'Address', threshold=0.85, label='Address')

然后定义匹配,您可以自定义您想要的结果,即如果您希望至少匹配 2 个功能

features = compare_cl.compute(pairs, df)    
matches = features[features.sum(axis=1) > 3]

【讨论】:

以上是关于Python 记录链接、模糊匹配和去重的主要内容,如果未能解决你的问题,请参考以下文章

python模糊匹配库能否定制匹配关系

python 模糊模糊中的模糊匹配w /数

Python基础-----re模块(模糊匹配)

oracle 中查询的模糊匹配

python 之实现模糊匹配

数据库SQL模糊匹配查询