simhash进行文本查重
http://blog.csdn.net/lgnlgn/article/details/6008498 有1亿个不重复的64位的01字符串,任意给出一个64位的01字符串f,如何快速从中找出与f汉明距离小于3的字符串? 大规模网页的近似查重 主要翻译自WWW07的 Detecting Near - Duplicates for Web Crawling WWW上存在大量内容近似相同的网页,对搜索引擎而言,去除近似相同的网页可以提高检索效率、降低存储开销。 当爬虫在抓取网页时必须很快能在海量文本集中快速找出是否有重复的网页。 论文主要2个贡献: 1. 展示了simhash可以用以海量文本查重 2. 提出了一个在实际应用中可行的算法。 两篇文本相似度普遍的定义是比较向量化之后两个词袋中词的交集程度,有cosine,jaccard等等 如果直接使用这种计算方式,时间空间复杂度都太高,因此有了simhash这种降维技术, 但是如何从传统的向量相似度能用simhash来近似,论文没提,应该是有很长一段推导要走的。 Simhash 算法 一篇文本提取出内容以后,经过基本的预处理,比如去除停词,词根还原,甚至chunking,最后可以得到一个向量。 对每一个term进行hash算法转换,得到长度f位的hash码,每一位上1-0值进行正负权值转换,例如f1位是1时,权值设为 +weight,