问题标签 [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 投票
1 回答
200 浏览

python - Python Dedupe 包错误:“记录不符合数据模型”。但一切看起来都不错

我在网上关注各种关于 python 重复数据删除的教程,但无论我尝试哪一个,都会遇到这个错误:

有人在他们的 github 上遇到了同样的问题:https ://github.com/dedupeio/csvdedupe/issues/55 ,开发人员说训练示例必须具有此错误消息中的任何记录。

我的数据有firstname记录,字段变量也有。

要删除的数据:

以下是字段:

错误是在这里引起的:

两者都有firstname

我哪里错了?

我尝试过转置数据框并以各种方式转换为 dict 。我无法让它工作。

0 投票
1 回答
378 浏览

python - 如何为 Python Dedupe 使用预先标记的训练数据

我正在使用 Python Dedupe包进行记录链接任务。这意味着将一个数据集中的公司名称与另一个数据集中匹配。

Dedupe 包允许用户标记对以训练逻辑回归模型。但是,这是一个手动过程,需要为屏幕上显示的每一对输入 y/n。

我想加载一个包含 3 列的培训文件,例如 Company 1、Company 2、Match 如果 Company 1 和 Company 2 分别相同或不同,则 Match 可以取值是或否。

我正在关注此源代码,但找不到加载文件进行培训的方法。

此外,文档显示可以更改默认分类器,但不确定如何执行此操作

谁能帮我解决这个问题

0 投票
1 回答
111 浏览

python-dedupe - 对于大型数据集,`dedupe.match(generator=True)` 和 `dedupe.matchBlocks()` 之间是否存在性能差异?

我正准备使用 Python 在相当大的数据集(400,000 行)上运行重复数据删除。在DedupeMatching该类的文档中,既有matchmatchBlocks功能。对于match文档,建议仅在中小型数据集上使用。通过查看代码,我无法收集在匹配时如何比仅在更大的数据集上matchBlocks表现block_data更好。matchgenerator=True

我尝试在一个小型数据集(10,000 个实体)上运行这两种方法,但没有发现差异。

然后是方法A:

或方法 B

(然后计算密集型部分正在对象for-loop上运行clustered_dupes

我期望/想知道是否存在性能差异。如果是这样,您能否指出显示这一点的代码并解释原因?

0 投票
1 回答
88 浏览

python - deduper.blocker() 函数 - 无法解压不可迭代的 int 对象

我正在尝试使用 dedupe.io Python 库,但是出于我的需要,我需要连接到 MS-SQL 数据库。

所以我决定首先让 csv 示例工作(我做了)然后我想我会尝试将 pgSQL 示例转换为 MS-SQL 版本。目前,当我遇到问题时,我已经完成了转换脚本的一半。

本质上,我被困在脚本试图将阻塞图写入 csv 文件的地方。这是似乎失败的线路/呼叫:

根据文档,它应该:

产生 (predicate, record_id) 的元组

但是我收到以下错误:

所以我想也许我做错了什么,所以我遵循相同的逻辑并尝试将函数调用应用于似乎工作的 CSV 版本(因为它运行并输出重复项)但我得到了同样的错误。所以现在我在想我缺少一些东西或者它是一个错误。无论哪种方式,我都想知道如何解决它?

0 投票
0 回答
258 浏览

python - 如何在 Python Dedupe 库中实现自定义比较器?

我正在使用迄今为止很棒的Dedupe 库来帮助链接来自多个提供商的记录。我比较的字段之一是电话号码字段。我想使用谷歌的电话号码库来规范这些电话号码。另一个不错的功能是能够比较数字并返回从 0(根本不匹配)到 4(每个组件完全匹配)的匹配类型。

所以这似乎很适合Dedupe 的自定义变量。但是我对自定义比较器实现应该是什么样子有点困惑。文档中的示例只是匹配/不匹配的简单 0 对 1。

我基本上想确保,在幕后,我的自定义比较器将向 Dedupe 指示 4 表示电话号码非常接近,0 表示它们相距非常远。

那会奏效吗?还是我必须以其他方式退货?例如,我必须用 0 表示完全匹配吗?

0 投票
1 回答
351 浏览

python - 使用python去重库错误的模糊重复检查

我正在尝试使用 python dedupe 库对我的模拟数据执行模糊重复检查,但我不断收到此错误:

IndexError:无法从空序列中选择

这是我正在使用的代码:

知道我做错了什么吗?谢谢。

0 投票
1 回答
232 浏览

python - 如何擦除 pandas_dedupe.dedupe_dataframe 训练集?

我正在使用 python pandas_dedupe 包,特别是 pandas_dedupe.dedupe_dataframe。

我已经通过交互式提示训练了 dedupe_dataframe 模块。但现在我需要重新训练 dedupe_dataframe 模块。如何擦除训练集并从头开始?

我曾尝试删除 dedupe_dataframe_learned_settings 和 dedupe_dataframe_training.json 文件,但随后 python 脚本引发错误。

我使用 PyCharm 作为我的 IDE。

任何提示将不胜感激。谢谢!

0 投票
1 回答
273 浏览

python - Python Dedupe.io 从 SQL Server 读取数据的问题

我正在尝试从 SQL Server 中提取一个大型数据集,并使用 Python 的重复数据删除库对信息进行重复数据删除。我使用 pyodbc 作为数据库连接器,但我无法弄清楚如何使用 SQL Server 将数据转换为正确的格式。在 MySQL 上工作正常,但没有读取 Dict 行,数据的格式使我无法理解。目前,我看到以下错误:

TypeError:行索引必须是整数,而不是 str

这是尝试构建数据的代码:

这是输出和完整跟踪:

我尝试了多种不同的方法从 SQL Server 读取数据,但无济于事 - MySQL 查询将数据转储为正确的字典格式,我似乎无法使用 SQL Server 以正确的格式获取数据。

0 投票
0 回答
133 浏览

java - 如何在 Java 中向正在运行的进程发送输入?

在 java 8 中,我使用 Process 和 ProcessBuilder 启动一个进程来运行 python 文件

当进程运行时,它要求我输入。

我在 ProcessBuilder 中看到有一个方法 redirectInput,我试过了,效果很好。但问题是输入不能是静态的。它总是根据 python 处理的值而变化。

有没有办法在不使用redirectInput的情况下向正在运行的进程发送输入?

在java中

在命令行中

0 投票
1 回答
390 浏览

python - 尝试运行 De-dupe 时出现 KeyError

嗨,我是 Python 新手,不知道如何解决以下错误:

我有一个包含大约 200 万条记录和 20 列商店数据的数据框,我按状态对商店进行分组,并尝试在每个状态上运行 dedupe_dataframe 在一个状态上对其进行训练。

这是我的代码的外观(np 是 numpy,dp 是 pandas pandas_dedupe):

我收到以下错误: