搜索引擎判断重复性网页一般都基于一个思想:为每个网页计算出一组“DNA”,若两个网页有一定数量相同的DNA段,则认为这两个网页的内容重叠性很高,也就是说两个网页内容是相同的。
每个搜索引擎判断重复性内容的方法都不太一样,主要是以下两点的不同:
1、计算信息指纹算法;
2、判断信息指纹的相似程度的参数。
在描述具体的算法前,先说清楚两点:
1、什么是信息指纹?
信息指纹就是把网页里面正文信息,提取一定的信息,可以是关键字、词、句子或者段落及其在网页里面的权重等,对它进行加密,如MD5加密,从而形成的一个字符串。信息指纹如同人的指纹,只要内容不相同,信息指纹就不一样。
2、算法提取的信息不是针对整张网页,而是把网站里面共同的部分如导航条、logo、版权等信息(这些称之为网页的“噪音”)过滤掉后剩下的文本。
分段签名算法
这种算法是按照一定的规则把网页切成N段,对每一段进行签名,形成每一段的信息指纹。如果这N个信息指纹里面有M个相同时(m是系统定义的阙值),则认为两者是复制网页。
这种算法对于小规模的判断复制网页是很好的一种算法,但是对于像google这样海量的搜索引擎来说,算法的复杂度相当高。
基于关键词的复制网页算法
像google这类搜索引擎,他在抓取网页的时候都会记下以下网页信息:
1、网页中出现的关键词(中文分词技术)以及每个关键词的权重(关键词密度);
2、提取meta descrīption或者每个网页的512个字节的有效文字。
关于第2点,baidu和google有所不同,google是提取你的meta descrīption,如果没有查询关键字相关的512个字节,而百度是直接提取后者。这一点大家使用过的都有所体会。
以上肯定无法覆盖一个大型搜索引擎复制网页的所有方面,他们必定还有一些辅助的信息指纹判断,本文作为一个思路,给做搜索引擎优化的一个思路。