dedupe

GitHub
4.5k 571 非常简单 3 次阅读 昨天MIT数据工具
AI 解读 由 AI 自动生成,仅供参考

dedupe 是一款基于 Python 的开源库,专注于结构化数据的模糊匹配、记录去重与实体解析。面对数据中常见的拼写错误、格式不统一或缺乏唯一标识符等难题,dedupe 能够高效识别并合并重复记录。例如,它可以清理姓名地址表格中的冗余项,在没有客户 ID 的情况下关联订单历史,或是从捐款数据库中识别出同一人的不同记录。

与其他简单匹配方法不同,dedupe 的核心亮点在于引入机器学习技术。用户只需提供少量人工训练数据,dedupe 就能自动学习并生成最适合当前数据集的规则,即使在大规模数据库中也能快速找到相似记录。这种智能化的方式大幅提升了数据清洗的准确率与扩展性。

dedupe 非常适合开发者、数据分析师及研究人员使用,尤其是那些需要处理脏数据或进行跨源数据整合的 Python 用户。除了核心库,社区还提供了命令行工具 csvdedupe 及云端服务 Dedupe.io,方便不同需求的用户灵活选择。通过简单的 pip 安装即可上手,结合丰富的文档与示例,能帮助用户轻松实现高质量的数据治理。

使用场景

某零售企业的数据分析师急需合并线上商城与线下门店的会员数据,以构建统一用户视图,但双方系统缺乏统一 ID,且姓名和电话录入存在大量拼写错误与格式差异。

没有 dedupe 时

  • 人工核对十万级 Excel 表格耗时数周,且疲劳导致漏判率极高。
  • 传统规则无法识别“张三”与“张 三”、"13800138000"与"138-0013-8000"为同一人。
  • 重复记录导致促销短信重复发送,不仅浪费预算还引发用户投诉。
  • 无法准确计算真实活跃用户数,导致管理层对市场转化率判断失误。

使用 dedupe 后

  • dedupe 利用机器学习主动学习,仅需少量人工标记即可自动处理十万级数据。
  • 模糊匹配算法精准识别姓名空格、电话格式差异及常见拼写错误,召回率显著提升。
  • 自动去除重复项并生成唯一实体 ID,确保营销触达唯一性,大幅节省成本。
  • 成功打通多渠道数据孤岛,输出干净的标准数据集,支撑精准用户画像分析。

dedupe 通过智能实体解析技术,将混乱的多源数据转化为干净统一的资产,极大降低了数据清洗门槛并提升了治理效率。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes开发环境建议使用 virtualenv 和 virtualenvwrapper 管理虚拟环境。测试使用 pytest 框架。另有配套命令行工具 csvdedupe 可用于 CSV 文件的去重和链接。核心算法基于 Mikhail Yuryevich Bilenko 的博士论文研究。安装开发版需使用 pip install -e . --config-settings editable_mode=compat。
python未说明
未说明
dedupe hero image

快速开始

Dedupe Python 库

Tests Passingcodecov

dedupe 是一个 Python 库(library),利用机器学习(machine learning)在结构化数据(structured data)上快速执行模糊匹配(fuzzy matching)、去重(deduplication)和实体解析(entity resolution)。

dedupe 将帮助您:

  • 从包含姓名和地址的电子表格中__移除重复条目__
  • 将包含客户信息的列表与包含订单历史的另一个列表__链接__起来,即使没有唯一的客户 ID
  • 获取竞选捐款数据库,并__找出哪些是由同一个人捐款的__,即使每条记录的姓名输入略有不同

dedupe 接受人工训练数据,并为您的数据集制定最佳规则,以便快速自动地查找相似记录,即使数据库非常大。

重要链接

dedupe 库咨询

如果您或您的组织希望在使用 dedupe 库方面获得专业协助,Dedupe.io LLC 提供咨询服务。在此处阅读更多关于定价和可用服务的信息

基于 dedupe 构建的工具

Dedupe.io

一项由 dedupe 库提供支持云服务,用于数据去重和查找匹配项。它提供了一步一步的向导,用于上传数据、设置模型、训练、聚类(clustering)和审查结果。

Dedupe.io 还支持跨数据源的记录链接(record linkage),以及通过 API 进行持续匹配和训练。

更多信息,请参阅 Dedupe.io 产品网站如何使用它的教程,以及 它与 dedupe 库之间的区别

Dedupe 在 Python 社区中被广泛采用。查看这篇 博客文章,一个关于如何使用 Python 版 Dedupe 的 YouTube 视频,以及一个关于如何使用 Spark 大规模应用 Dedupe 的 Youtube 视频。

csvdedupe

用于去重和 链接 CSV 文件的命令行工具(command line tool)。在 Source Knight-Mozilla OpenNews 上阅读相关内容。

安装

使用 dedupe

如果您只想使用 dedupe,请通过以下方式安装:

pip install dedupe

熟悉 dedupe 的 API,并开始您的项目。需要灵感?看看 一些示例

开发 dedupe

我们建议使用 virtualenv(虚拟环境)和 virtualenvwrapper 在虚拟化开发环境中工作。阅读如何设置 virtualenv

设置好 virtualenvwrapper 后,

mkvirtualenv dedupe
git clone https://github.com/dedupeio/dedupe.git
cd dedupe
pip install -e . --config-settings editable_mode=compat
pip install -r requirements.txt

如果这些测试通过,那么所有内容都应该已正确安装!

pytest

之后,每当您想开发 dedupe 时,

workon dedupe

测试

核心 dedupe 函数的单元测试(unit tests)

pytest

使用 Bilenko 研究中的规范数据集进行测试

使用去重(Deduplication)

python -m pip install -e ./benchmarks
python benchmarks/benchmarks/canonical.py

使用记录链接(Record Linkage)

python -m pip install -e ./benchmarks
python benchmarks/benchmarks/canonical_matching.py

团队

  • Forest Gregg, DataMade
  • Derek Eder, DataMade

致谢

Dedupe 基于 Mikhail Yuryevich Bilenko 的博士论文:Learnable Similarity Functions and their Application to Record Linkage and Clustering

错误 / Bugs

如果某些行为不符合直觉,那就是一个 bug(缺陷),应该被报告。 在此处报告

关于补丁/拉取请求的说明

  • Fork(项目分支)项目。
  • 进行功能添加或 bug 修复。
  • 向我们发送 pull request(拉取请求)。如果是主题分支(topic branches)会有加分。

版权

Copyright (c) 2022 Forest Gregg 和 Derek Eder。根据 MIT License 发布。

此分发中的第三方版权在适用处注明。

引用 Dedupe

如果您在学术作品中使用 Dedupe,请引用以下内容:

Forest Gregg and Derek Eder. 2022. Dedupe. https://github.com/dedupeio/dedupe.

版本历史

wide_windows_build
vpython34x64
v3.0.3
v3.0.2
v3.0.1
v3.0.0a1
v2.0.24
v2.0.24.redux
v2.0.23
v2.0.22
v2.0.21
v2.0.21.py.typed
v2.0.20
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

scikit-learn

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最

65.6k|★☆☆☆☆|今天
开发框架其他数据工具

keras

Keras 是一个专为人类设计的深度学习框架,旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。 无论是刚入门的学生、专注算法的研究人员,还是需要快速落地产品的工程师,都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。 Keras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码,即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性,还允许开发者根据需求自由选择:利用 JAX 或 PyTorch 的即时执行模式进行高效调试,或切换至速度最快的后端以获得最高 350% 的性能提升。此外,Keras 具备强大的扩展能力,能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群,是连接原型开发与生产部署的理想桥梁。

63.9k|★★☆☆☆|昨天
开发框架数据工具其他

crawl4ai

Crawl4AI 是一款专为大语言模型(LLM)设计的开源网络爬虫与数据提取工具。它的核心使命是将纷繁复杂的网页内容转化为干净、结构化的 Markdown 格式,直接服务于检索增强生成(RAG)、智能体构建及各类数据管道,让 AI 能更轻松地“读懂”互联网。 传统爬虫往往面临反爬机制拦截、动态内容加载困难以及输出格式杂乱等痛点,导致后续数据处理成本高昂。Crawl4AI 通过内置自动化的三级反机器人检测、代理升级策略以及对 Shadow DOM 的深度支持,有效突破了这些障碍。它能智能移除同意弹窗,处理深层链接,并具备长任务崩溃恢复能力,确保数据采集的稳定与高效。 这款工具特别适合开发者、AI 研究人员及数据工程师使用。无论是需要为本地模型构建知识库,还是搭建大规模自动化信息采集流程,Crawl4AI 都提供了极高的可控性与灵活性。作为 GitHub 上备受瞩目的开源项目,它完全免费开放,无需繁琐的注册或昂贵的 API 费用,让用户能够专注于数据价值本身而非采集难题。

63.2k|★★☆☆☆|3天前
数据工具Agent

meilisearch

Meilisearch 是一个开源的极速搜索服务,专为现代应用和网站打造,开箱即用。它能帮助开发者快速集成高质量的搜索功能,无需复杂的配置或额外的数据预处理。传统搜索方案往往需要大量调优才能实现准确结果,而 Meilisearch 内置了拼写容错、同义词识别、即时响应等实用特性,并支持 AI 驱动的混合搜索(结合关键词与语义理解),显著提升用户查找信息的体验。 Meilisearch 特别适合 Web 开发者、产品团队或初创公司使用,尤其适用于需要快速上线搜索功能的场景,如电商网站、内容平台或 SaaS 应用。它提供简洁的 RESTful API 和多种语言 SDK,部署简单,资源占用低,本地开发或生产环境均可轻松运行。对于希望在不依赖大型云服务的前提下,为用户提供流畅、智能搜索体验的团队来说,Meilisearch 是一个高效且友好的选择。

57k|★★☆☆☆|今天
图像Agent数据工具

Made-With-ML

Made-With-ML 是一个面向实战的开源项目,旨在帮助开发者系统掌握从设计、开发到部署和迭代生产级机器学习应用的完整流程。它解决了许多人在学习机器学习时“会训练模型但不会上线”的痛点,强调将软件工程最佳实践与 ML 技术结合,构建可靠、可维护的端到端系统。 该项目特别适合三类人群:一是希望将模型真正落地的开发者(包括软件工程师、数据科学家);二是刚毕业、想补齐工业界所需技能的学生;三是需要理解技术边界以更好推动产品的技术管理者或产品经理。 Made-With-ML 的亮点在于注重第一性原理讲解,避免盲目调包;同时覆盖 MLOps 关键环节(如实验跟踪、模型测试、服务部署、CI/CD 等),并支持在 Python 生态内平滑扩展训练与推理任务,无需切换语言或复杂基础设施。课程内容结构清晰,配有详细代码示例和视频导览,兼顾理论深度与工程实用性。

47.1k|★★☆☆☆|今天
语言模型其他数据工具