项目介绍:text-dedup
text-dedup 项目是一组用于文本去重的脚本集合,其目标是帮助用户通过多种方法进行文本数据的去重操作。这些脚本可以直接使用,也可以根据用户的需要进行修改。
安装方法
要开始使用 text-dedup,用户可以通过以下命令安装:
pip install text-dedup
或者直接从 GitHub 仓库安装:
pip install git+https://github.com/ChenghaoMou/text-dedup
文档
该项目的详细文档可以在 GitHub Pages上查阅,文档提供了使用该项目的指南和参考。
功能特性
text-dedup 项目包含多种文本去重算法,适用于各种数据规模和去重需求,具体特性包括:
- RETSim/UniSim:基于嵌入的近似去重方法(开发中)。
- MinHash + MinHashLSH:适用于大规模(TB级)数据集的 Spark 实现。
- SimHash:支持 64 位或 128 位的去重。
- SuffixArray Substring:后缀数组子串去重。
- Bloom Filter:布隆过滤器用于去重。
- Exact Hash:支持文档级和行级去重。
未来计划
项目还计划了未来的发展方向,包括:
- 流处理的内存基准测试
- 跨数据集去重
- 用 Python 重写后缀数组
- 更多去重方法的集合,如 SuperMinHash, ProbMinHash 等
需要注意的是,该项目并不打算构建一个通用的去重库,因为每种使用情况可能非常不同,设计和考虑也需要针对具体需求进行调整。
致谢
text-dedup 项目的灵感来源于多个开源项目,并受到 BigScience 和 BigCode 项目的经验启发。此外,项目开发者也撰写了一篇关于开发历程的博客,鼓励任何形式的反馈。
快速示例
项目提供了一系列快速示例,用户可以通过这些示例快速了解如何在不同场景下应用 text-dedup:
- Native PySpark:适合大规模数据集处理。
- UniSim (WIP):基于 Google's RETSim 模型的近似去重方法。
- Suffix Array Substring Exact Deduplication:精确去重方法示例。
- MinHash Near Deduplication 和 SimHash Near Deduplication:提供了基于 MinHash 和 SimHash 的近似去重方法。
- Exact Hash 和 Bloom Filter Exact Deduplication:使用精确哈希或布隆过滤器进行去重。
性能基准
项目中提供了多个性能基准,帮助用户评估不同去重算法在特定数据集上的表现。用户可以参考这些基准来选择合适的去重方法。
许可证
text-dedup 项目遵循 Apache 2.0 许可证,确保项目的开源和可持续发展。
引用
如果您在研究或项目中使用了 text-dedup,建议按照以下格式引用:
@software{chenghao_mou_2023_8364980,
author = {Chenghao Mou and
Chris Ha and
Kenneth Enevoldsen and
Peiyuan Liu},
title = {ChenghaoMou/text-dedup: Reference Snapshot},
month = sep,
year = 2023,
publisher = {Zenodo},
version = {2023.09.20},
doi = {10.5281/zenodo.8364980},
url = {https://doi.org/10.5281/zenodo.8364980}
}
text-dedup 项目根植于丰富的研究基础和社区贡献,它不仅是一个工具集,更是一个可以激发去重技术新想法的平台。它让每一位使用者都可以根据自身项目特点,巧妙地设计出最合适的去重策略。