我正在使用 Dedupe 库来清理一些数据。但是,一旦使用Dedupe 对象完成第一次重复数据删除,我知道我们应该使用Gazetteer 对象将任何新传入数据与集群数据进行匹配。
为了解释这个问题,我们假设:
- 第一批数据是 50 万行餐厅,包含名称、地址和电话号码字段。
- 例如,第二批数据是当时不存在的 1k 家新餐厅,但我现在想与前 500k 家进行匹配。
如果我描述管道,它会是这样的:
- 步骤 1) 初始重复数据删除
- 在 500k 餐厅的样本上训练 Dedupe 对象
- 使用 Dedupe / Static Dedupe 对象对 500k 行进行聚类
- 步骤 2) 增量重复数据删除
- 在 500k 家餐厅和 1k 家新餐厅的样本上训练一个 Gazetteer 对象
- 将传入的 1k 行与前 500k 行匹配
- 根据实际匹配现有餐厅的 1k 行分配规范 ID
所以,问题是:
- 管道真的正确吗?
- 每次输入新数据时,我是否必须重新训练地名词典?
- 我不能使用我在第一步中学到的相同的阻止规则吗?或者至少是相同的标记对?当然假设字段是相同的,并且数据经过完全相同的预处理。
- 我知道我可以继续重做第 1 步,但从我读到的内容来看,这不是最佳做法。
@fgregg我浏览了所有 Stackoverflow 和 Github 问题(最近的一个是这个),但找不到任何有用的答案。
谢谢 !