要识别论坛中被大量转载的同一篇文章,初看起来不是一个很难的技术问题,只要生成所有文章的信息指纹,再将相同指纹分组就可以了。至于产生信息指纹的方式,最简单的是用MD5或者SHA等单向Hash函数,如果为了减少存储以及提高性能,同时可以容许一定误差,可以再利用BloomFilter。
但是结合实际情况看一下,就能发现产生这种类别文章的指纹不能简单的用MD5产生,因为当一篇文章被大量复制转载的时候,未必是一字不差的。特别是一些发帖软件为了规避论坛的检查,会有意的将内容进行变形,插入空格,空白字符,或者进行个别词语的替换等等;而只要有哪怕一个字的区别,都会产生全然不同的MD5结果。
还有一个思路是文本向量的匹配,即将文本先分词再向量化之后比较他们在向量空间中的距离,设定一个阈值,距离小于该阈值的文本视为相同。这么做最大的好处是具有很好的抗干扰性,如果阈值调整合理,那么结果会有比较高的招回率。但是缺点也显而易见,即计算量太大,而且事实上把寻找大规模转载贴的问题又扩展成了聚类(Clustering)问题。
我们后来采用的方式是结合了两种方案,即不将全文作为文本向量,而是在文中选取我们认为重要的词汇(重要性可以根据该行业语料库的TF/IDF词频信息判断),保留相应的语序,再生成MD5。这里的基本假设是为了传达相同的信息,大规模转载贴的变形只会发生在相对不重要的词汇上(包含空格,标点等),由于我们的算法会
对大量转载贴识别算法的研究
最新推荐文章于 2022-12-02 16:34:54 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)