本文主要是介绍信息指纹与消重算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
信息指纹:就是提取一个信息的特征,通常是一组词或者一组词+权重,然后根据这组词调用特别的算法,例如MD5,将之转化为一组代码,这组代码就成为标识这个信息的指纹。
从理论上讲,每两个不同文本的特征信息是不同的,那么得到的代码也应该是不一样的,就象人的指纹。
搜索引擎在建立索引的时候需要对重复内容的网页进行识别和消重,这就要用到信息指纹。
例如,通常搜索引擎要先对网页进行消噪,就是净化网页,将一些模版类的,无用的广告等剔除调。然后得到预处理后的网页,然后对网页进行向量化处理,简单的讲就是分词,统计,并按照词频生成一个列表。
例如:
网页12
搜索10
引擎7
...
...
然后取前N个关键词作为信息的矢量,例如:[网页12搜索10引擎7] 这是可以直接进行MD5哈系,或者按照其它规则进行重拍后进行MD5哈系。例如本例,取前3个关键词,在进行哈系,得到的信息指纹就是:a7eb9d92a83cf438881915e0bc2df70b
这样a7eb9d92a83cf438881915e0bc2df70b 就作为本文档的指纹和以往的文档进行比较,如果有相同的,就说明指纹上看是一样的,就可以进入消重处理。
至于关键词的权重,因为有众多的提取算法,比较常用的是nf/df,这里不在赘述。另外高频词和停止词的消除也是必要的,这点可以参考基于信息噪音模型的分类算法,那个ppt里我细数了如何定义“噪音”,如何进行消噪。
这篇关于信息指纹与消重算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!