介绍一个基于simhash作海量文章排重的库:simhashpy
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 基于simhash的海量文章排重的实践 简单介绍 simhash是一种能计算文档相似度的hash算法。通过simhash能将一篇文章映射成64bit,再比较两篇文章的64bit的海明距离,就能知道文章的相似程序。若两篇文章的海明距离<=3,可认为这两篇文章很相近,可认为它们是重复的文章。 这篇博客有详细的介绍 simhash-py 要更准确的对文章进行排重,需要找到好的simhash算法。目前我知道的有 python-hashes ,simhash-py。两个库通过简单的修改,再加上中文分词库,可以比较好的对中文文章计算hash。 simhash-py 可使用我fork的版本以支持中文文章的simhash (通过里面的hash_token或hash_tokenpy两个函数实现对切词之后的中文文章进行simhash计算)。 simhash算法 simhash算法最简单实现的库应该是python-hashes库了。使用过程当中发现,对于排重的使用目的来说,这个库的simhash算法有缺点是:只考虑到文章存在哪些词,没有考虑到词的顺序。不过相应的优点是,可以实现海量文章相似度计算。文章相似度计算忽略词的顺序之后效果更好。 simhash-py内部实现了simhash算法。它里面的simhash使用了cyclic