搜索引擎判定复制网页一般都基于这么一个思想:为每个网页计算出一组信息指纹(Fingerprint),若两个网页有一定数目相同的信息指纹,则以为这两个网页的内容重叠性很高,也就是说两个网页是内容复制的。5 }; |# |9 h. @6 [* L0 d+ q
很多搜索引擎判定内容复制的方法都不太一样,主要是以下两点的不同:
. D8 T5 P ~5 @; D4 |+ w; O) G6 Y$ Y1、计算信息指纹(Fingerprint)的算法;
7 g/ r# S! g: s5 I2、判定信息指纹的相似程度的参数。! F% M# O2 m6 J( z5 |7 Z, S3 x& ~
在描述具体的算法前,先说清楚两点:
+ O" T6 t' j4 |; l: Q$ b1、什么是信息指纹?信息指纹就是把网页里面正文信息,提取一定的信息,可以是关键字、词、句子或者段落及其在网页里面的权重等,对它进行加密,如MD5加密,从而形成的一个字符串。信息指纹如同人的指纹,只要内容不相同,信息指纹就不一样。
' x3 Z6 b" x: P( l) D% z) a2、算法提取的信息不是针对整张网页,而是把网站里面共同的部分如导航条、logo、版权等信息(这些称之为网页的噪音)过滤掉后剩下的文本。
( R; w8 f0 t2 n9 _! l; h5 h分段签名算法
3 ^! w& r2 g0 E6 H$ F2 k* A# |) d G这种算法是按照一定的规则把网页切成N段,对每一段进行签名,形成每一段的信息指纹。假如这N个信息指纹里面有M个相同时(m是系统定义的阙值),则以为两者是复制网页。( I- b( j* r+ d1 m4 D7 l8 W/ @
这种算法对于小规模的判定复制网页是很好的一种算法,但是对于像google这样海量的搜索引擎来说,算法的复杂度相当高。7 J- L( W( d+ e
基于关键词的复制网页算法
, y3 j$ S* ?0 N! z5 w像google这类搜索引擎,他在抓取网页的时候都会记下以下网页信息:3 Z7 q; f* K( ]/ j0 G6 j
1、网页中出现的关键词(中文分词技术)以及每个关键词的权重(关键词密度); 0 w }/ m9 h$ l+ R2 U! d4 F4 A
2、提取meta descrīption或者每个网页的512个字节的有效文字。
; Q/ w% g. r5 N$ j, P0 M6 w关于第2点,baidu和google有所不同,google是提取你的meta descrīption,假如没有查询关键字相关的512个字节,而百度是直接提取后者。这一点大家使用过的都有所体会。+ R* P9 V$ M* C6 X" }
在以下算法描述中,我们约定几个信息指纹变量:
$ e2 U& c$ h. p( ^Pi表示第i个网页;
5 ^ L f4 U& V+ u7 K: W, _该网页权重最高的N个关键词构成集合Ti={t1,t2,...tn},其对应的权重为Wi={w1,w2,...wi} - E8 n8 a7 i& u. u+ U4 s0 V9 \& h
摘要信息用Des(Pi)表示,前n个关键词拼成的字符串用Con(Ti)表示,对这n个关键词排序后形成的字符串用Sort(Ti)表示。
% X8 r# e, k" O; Q2 }1 {" {5 u- p+ f以上信息指纹都用MD5函数进行加密。% s! u# |% L. R: D# ?0 C- h
基于关键词的复制网页算法有以下5种:
. H2 T8 T; A, n. `% z1、MD5(Des(Pi))=MD5(Des(Pj)),就是说摘要信息完全一样,i和j两个网页就以为是复制网页; , ]5 |2 \9 L& c- K
2、MD5(Con(Ti))=MD5(Con(Tj)),两个网页前n个关键词及其权重的排序一样,就以为是复制网页; , v8 I- R: t( Q# w, w( X& }
3、MD5(Sort(Ti))=MD5(Sort(Tj)),两个网页前n个关键词一样,权重可以不一样,也以为是复制网页。
% i: K P3 y3 |# h* ?4、MD5(Con(Ti))=MD5(Con(Tj))并且Wi-Wj的平方除以Wi和Wj的平方之和小于某个阙值a,则以为两者是复制网页。 / e: q% R3 p# n. S& \
5、MD5(Sort(Ti))=MD5(Sort(Tj))并且Wi-Wj的平方除以Wi和Wj的平方之和小于某个阙值a,则以为两者是复制网页。
+ k4 [8 X: w6 X9 ]$ ~# z" b关于第4和第5的那个阙值a,主要是由于前一个判定条件下,还是会有很多网页被误伤,搜索引擎开发根据权重的分布比例进行调节,防止误伤。这个是北大天网搜索引擎的往重算法(可以参考:《搜索引擎--原理、技术与系统》一书),以上5种算法运行的时候,算法的效果取决于N,就是关键词数目的选取。当然啦,选的数目越多,判定就会越精确,但是谁知而来的计算速度也会减慢下来。所以必须考虑一个计算速度和往重正确率的平衡。据天网试验结果,10个左右关键词最恰当。后记 + H7 n% @) D1 @ A; z6 N9 N
以上肯定无法覆盖一个大型搜索引擎复制网页的所有方面,他们必定还有一些辅助的信息指纹判定,本文作为一个思路,给做搜索引擎优化的一个思路。
+ `* p; i8 u( K* x淮安无痛人流:www.0517hym.com$ h% k9 R5 b, M, D! s- _
7 E j: F& |4 c* Y$ ?1 d0 c
6 _, U3 z) |' b4 J |