问题标签 [python-dedupe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
436 浏览

python - 重复数据删除 - AttributeError:“NoneType”对象没有属性“indexAll”

我正在使用重复数据删除库,在使用训练数据进行重复数据删除之前一切正常,但是在使用相同的数据集计算阈值时,它会出现以下错误:

我的数据集:

0 投票
2 回答
2908 浏览

fuzzy-comparison - 使用 Python dedupe 库返回所有匹配混乱的数据集

首先,如果您还没有看过 Python 的Dedupe库:它太棒了。就像 TensorFlow 一样,它是将机器学习带给大众(比如我)的好方法。

我正在尝试针对单个、大型、混乱的数据集记录名称的链接。我现在正在使用启发式方法,并且它开始无法处理更复杂的数据集。

问题:

有没有办法执行单个记录的匹配(一个接一个或批量)并返回所有潜在的匹配?

地名词典说一侧必须干净,没有重复。如果名称可以重复但序列号不能重复(并且序列号不用于匹配),那不是重复吗?

语境:

美国有 160 万台专业建筑机械。有一个数据库,其中包含机器类型、所有者名称(最多两个,包括公司)、序列号和维护信息,例如last_service_date.

人们经常询问他们机器的维护和销售情况(100-250/天),我保持着运行记录。问题是将手机上的名称与他们拥有的机器相匹配。我需要将表格上的名称与所有权记录上的名称相匹配,以便事后了解有关机器的更多信息并了解机器的生命周期。

样本数据:

也许我也需要一些指导……对于我们的启发式方法,我基本上将两个数据集中的名称字段分开,并以 6 或 7 种不同的方式进行比较。现在我们收到了可以帮助匹配的多个名称的查询。也许更多的启发式方法会起作用,但这个工具似乎非常适合这项工作。

0 投票
1 回答
770 浏览

python-2.7 - 让 Dedupe 从现有的标签数据中学习

我知道Dedupe使用主动学习来删除重复项并执行记录链接。

但是,我想知道我们是否可以将带有已匹配对(标签数据)的 excel 表作为主动学习的输入传递?

0 投票
0 回答
124 浏览

python-dedupe - 对 Dedupe 聚簇表中的新记录进行聚簇

我正在使用 Python Dedupe 对我们的 MDM 数据库进行重复数据删除,到目前为止,经过充分的训练后它工作正常,并且形成了一个实体映射表,其中显示了 Cluster_id、规范名称和分数。

我被卡住了,不确定数据库中插入的新记录,如何将这条新记录与 entity_map 表中的现有集群合并。我在重复数据删除文档中也找不到函数。

为新记录再次运行整个过程(创建阻塞映射、复数键和集群重复)将是昂贵的,因此只需寻找一种成本较低的解决方案来将新记录与实体映射表中的现有集群进行集群

0 投票
3 回答
3087 浏览

python - 对有拼写错误的 Pandas 数据框进行重复数据删除的最有效方法是什么?

我有一个需要重复数据删除的名称和地址数据框。问题是其中一些字段可能有拼写错误,即使它们仍然是重复的。例如,假设我有这个数据框:

拼写错误可能出现在名称或邮政编码中,但让我们担心这个问题的名称。显然 0 和 2 和 1 和 3 一样是重复的。但是计算上最有效的方法是什么?

我一直在使用 Levenshtein 距离来计算来自fuzzywuzzy 包的两个字符串之间的距离,当数据框很小并且我可以通过以下方式迭代它时效果很好:

显然这不是一种可以很好扩展的方法,不幸的是我需要对大约 7M 行长的数据帧进行重复数据删除。显然,如果我还需要对邮政编码中的潜在拼写错误进行重复数据删除,情况会变得更糟。是的,我可以用 来做到这一点.itertuples(),这将使我的速度提高约 100 倍,但我是否错过了比这个笨重的O(n^2)解决方案更明显的东西?

有没有更有效的方法可以对这些嘈杂的数据进行重复数据删除?我已经研究了dedupe 包,但这需要标记数据用于监督学习,我没有任何也没有印象,这个包将处理无监督学习。我可以推出自己的无监督文本聚类算法,但如果有现有的更好的方法,我宁愿不必走那么远。

0 投票
0 回答
243 浏览

r - R等效项中的重复数据删除

R 中是否有与 Python 中的 dedupe 库类似的等效包?

原因是我过去使用过“Record Linkage”包,但是当涉及到更大的数据集时,它似乎很难。Dedupe 似乎在 Python 中运行得非常快,并引入了机器学习的元素。

任何人有已证明成功的建议?

0 投票
1 回答
283 浏览

python-dedupe - How to understand Dedupe library?

Two questions:

  • How to interpret the 'confidence score' when there is cluster with 3 rows and 3 confidence scores (0.98, 0.45, 0.45). Where this confidence scores come from? From logistic regression or somehow from hierarchical clustering?

  • 10 000 of my 16 millions is labeled as duplicates, should I put this all as trening data? or only 10 positive and 10 negative will be enough? what number will be better for quality and time of execution?

0 投票
1 回答
159 浏览

python-dedupe - 集群组件

集群时,我收到以下警告

这是什么意思?

我的原始阈值规范为 0.191,如下所示

0 投票
0 回答
566 浏览

mysql - 使用 mysql DB 将 Dedupe 包功能扩展到大数据

我现在一直在尝试制作一个地名词典/重复数据删除的工作示例,该示例可以扩展到连接到 SQL 的半大型数据集(使用包提供的示例)并且没有成功。如果有人可以为我提供一些帮助或分享他们的工作样本,我将不胜感激。

到目前为止我尝试过的事情:

  • 我已经尝试过SQL 示例。我不得不打破一些 sql 代码来分隔创建和插入语句以满足 GTID 标准,但其他一切都遵循示例。我遇到的问题是当它到达集群部分时(在看似成功运行到该点之后)并给我以下错误:
    “dedupe.core.BlockingError:没有记录被阻止在一起。是你的数据试图像你训练的数据一样匹配?” 无论我做了什么,这都没有解决(我正在对相同的数据进行训练和测试,所以这个错误对我来说没有意义。)

  • 对于大型地名词典,我曾尝试使用此示例开始,但这是我得到的错误:“TypeError:train() 最多需要 3 个参数(给定 4 个)”。我在这里所做的唯一更改是连接到 mysql 数据库。此外,我找不到任何关于如何实际扩展地名词典匹配所有部分的指导(或者只是不明白这个例子是如何帮助的)。

有没有人能够使用 mysql 将这些实际扩展到大数据?

如果我需要提供更多信息或代码片段,请告诉我。

提前致谢。

0 投票
1 回答
226 浏览

mysql - 在 python2.7 中使用 pool.apply_async 不将值插入 MySQL 表

我正在尝试运行以下代码来为某个应用程序并行填充表。首先定义了以下函数,它应该连接到我的数据库并使用给定的值执行 sql 命令(插入到表中)。

然后是这一段:

一切正常,没有错误。但最后,我的表是空的,这意味着插入不成功。在许多谷歌搜索之后,我已经尝试了很多方法来解决这个问题(包括添加列名以进行插入)并且没有成功。任何建议,将不胜感激。(在python2.7,gcloud(ubuntu)中运行代码。注意,在这里粘贴后缩进可能有点混乱)

另请注意,“块”完全遵循所需的数据格式。

笔记。这是此示例的一部分 请注意,我在上面的示例(链接)中唯一更改的是,我将创建和插入表的步骤分开,因为我在 gcloud 平台上运行我的代码并且它强制执行 GTID标准。