9.2 消除冗余文档,提高效率

为什么要进行文档去重?

  • 节省存储空间: 去除冗余信息,优化存储资源利用。
  • 提升检索效率: 减少检索结果中的重复内容,快速定位目标信息。
  • 优化用户体验: 节省用户浏览时间,提高信息获取效率。

一种常用的方法是比较文档的校验和(checksum)。校验和可以看作是代表文档内容的“指纹”。如果两个文档的校验和不同,则认为这两个文档内容不同。

校验和算法有很多种,例如 MD5 算法,它会生成一个 128 位的字节数组作为校验和。

9.3 利用语义指纹识别相似文档

识别近似重复的文档更加困难,因为很难对“近似”给出精确定义。类似的挑战也出现在识别转载文章时。

一种常见的方法是使用相似度阈值来判断两篇文档是否近似。例如,可以将向量余弦相似度大于 0.9 的两篇文档视为相似文档。

文档去重主要有两种应用场景:

  • 自查重: 在给定的文档集合内部进行去重。
  • 单条查重: 将某一文档与一个文档集合进行比较,判断该文档是否存在重复。

为了提高比较效率,通常不直接比较原文内容,而是比较文档的“语义指纹”。语义指纹是文档的精简表示,能够在保留关键信息的同时大幅减少计算量。