最近在做网页排重(排除重复,deduplicate),使用的是Moses S. Charikar在其论文Similarity Estimation Techniques from Rounding Algorithm中提到的随机映射(Random Projection)算法,算法本身很简单,先给每个词语(Token)生成随机的特征向量,保存为一个集合,然后对网页正文进行分词,得到一系列的词语,从词语的特征向量集合中取出这些词语的特征向量(如果词语不在在集合中,那么给词语生成一个随机的特征向量,将其加入集合),将这些特征向量按位进行一个特殊的加运算,最后得到网页的特征向量。判断两个网页是否具有相似或重复内容就可以通过判断它们特征向量相同的位数(bit)来进行。Monika Henzinger在其论文Finding Near-Duplicate Web Pages: A Large-Scale Evaluation of Algorithms中通过大量实验给C算法提供了合理的参数,另外他还比较了Andrei Z. Broder算法和Charikar算法的优略,并提出了一个先使用B算法找出相似对然后再使用C算法进行过滤的网页排重方案。