与数据生成/重复数据消除的简单接口,使概率记录链接变得容易。

pgdedupe的Python项目详细描述


pgdedupe

https://img.shields.io/pypi/v/pgdedupe.svghttps://img.shields.io/travis/dssg/pgdedupe.svghttps://codecov.io/gh/dssg/pgdedupe/branch/master/graph/badge.svgDocumentation StatusUpdates

为大型重复数据消除提供标准接口的工作正在进行中 具有自定义预处理和后处理步骤的数据库。

接口

这提供了一个简单的命令行程序pgdedupe。两种配置 文件指定重复数据消除参数和数据库连接设置。到 在生成的数据集上运行重复数据消除,创建一个database.yml文件 指定以下参数:

user:
password:
database:
host:
port:

现在,您可以使用以下命令创建示例csv文件:

$ python generate_fake_dataset.py --csv people.csv
creating people: 100%|█████████████████████| 9500/9500 [00:21<00:00, 445.38it/s]
adding twins: 100%|█████████████████████████| 500/500 [00:00<00:00, 1854.72it/s]
writing csv:  47%|███████████▋             | 4666/10000 [00:42<00:55, 96.28it/s]

完成后,将此示例数据集存储在数据库中,其中:

$ python test/initialize_db.py --db database.yml --csv people.csv
CREATE SCHEMA
DROP TABLE
CREATE TABLE
COPY 197617
ALTER TABLE
ALTER TABLE
UPDATE 197617

现在可以删除此数据集的重复数据。这将运行重复数据消除以及 在config.yml中定义的自定义预处理和后处理步骤:

$ pgdedupe --config config.yml --db database.yml

自定义预处理和后处理

除了使用dedupe运行数据库级重复数据消除之外,此 脚本添加自定义的前处理和后处理步骤,以改进运行时和 结果,使其成为模糊匹配和记录链接的混合体。

  • 预处理:在运行重复数据消除之前,此脚本完全匹配 重复数据消除。一些系统创建许多相同的行;这可以使 重复数据消除在创建有效的数据块策略方面具有挑战性,通常 使模糊匹配变得更加困难和耗时。
  • 后处理:运行重复数据消除后,此脚本执行可选的 精确匹配跨列子集合并。例如,在某些情况下 姓氏和社保号码的精确匹配是 足够的证据表明两个集群确实是同一个身份。

进一步步骤

此脚本基于并扩展了中的示例 dedupe-examples。最好在所有地方都使用这个公共接口 数据库类型,甚至可能允许读取平面csv文件。

历史记录

0.2.1(2017-05-03)

  • 使命令行参数成为必需的,从而产生更好的错误消息。
  • 重构测试脚本,使其更加用户友好。

0.2.0(2017-04-19)

  • pypi上的第一个版本(作为pgdedupe)。

0.1.0(2016-12-14)

  • PYPI上的第一个版本(作为超级重复数据消除程序)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”