搜索引擎原理上一节的《3.2.1、搜集信息的预处理--净化与数据提取》我们研究了搜索引擎是怎么进行网页正文的提取的,本文我们来看搜索引擎又是如何对重复的网页进行消重的呢。

一般来说,搜索引擎进行网页消重都要经过3个步骤。

1、特征抽取。

无论使用算法,搜索引擎都需要先给每个网页进行特征抽取,已用于当作该网页的“指纹”,然后只要通过各个网页的指纹进行对比就可以判断出是否重复了,这样的方法可以大大提高判断的速度。

下面介绍2个经典的特征抽取算法:

第一是I-Match算法,该算法是将正文进行中文分词,然后将高频词和低频词取出,因为高频词和低频词一般无法表达文章的主题,然后将中频词排序后作为该文章的特征项。

I-Match算法

第二种算法是Shingle算法,该算法是将正文切分成N的长度为M的片段,比如下图中,搜索引擎将一篇文章切分为多个长度为5的切片,这些切片就是该文章的特征项。

Shingle算法

2、相似度计算、评价是否相似。

有了各个网页的特征项,接下来就是进行网页间的相似度计算了,就I-Match算法来说,搜索引擎是看哪些网页的特征项是相似的,如果类似,则作为重复页面。

而对于Shingle算法来说,搜索引擎是判断哪些网页的特征项有多个切片是完全相同的,比如有4个切片是完全相同的就算做重复页面。

3、消重

找到重复页面,就简单了,删除掉即可。

小结

本节介绍的2种消重算法只是比较经典的算法,但是不代表各个搜索引擎就是运用该算法来进行消重的,但是大家只要知道搜索引擎有这么一个机制来实现网页消重即可。本章到此结束,主要介绍的是搜索引擎的预处理部分。从下一章起我们来学习查询服务部分的知识。请看下一节《4.1、搜集引擎信息查询服务--网页信息检索》