引擎断定复制网页一般都基于这么一个思惟:
为每个网页计算出一组信息指纹(Fingerprint),若两个网页有必定命量雷同的信息指纹,则认为这两个网页的内容重叠性很高,也就是说两个网页是内容复制的。
很多引擎断定内容复制的办法都不太一样,主如果以下两点的不合:
1、枷⒚鹋息指纹(Fingerprint)的算法;
4、MD5(Con(Ti))=MD5(Con(Tj))并且Wi-Wj的平方除以Wi和Wj的平方之和小于某个阙值a,则认为两者是复制网页。
2、断定信息指纹的类似程度的参数。
在描述具体的算法前,先说清跋扈两点:
1、什么是信息指纹?
以上肯定无法覆盖一个大年夜型引擎复制网页的所有方面,他们必定还有一些帮助的信息指纹断定,本文作为一个思路,给做引擎优化的一个思路。
信息指纹就是把网页琅绫擎正文信息,提取必定的信息,可所以关键字、词、句子或者段落及其在网页琅绫擎的权重等,对它进行加密,如MD5加密,大年夜而形成的一个字符串。信息指纹如同人的指纹,只要内容不雷同,信息指纹就不一样。
2、算法提取的信息不是针半数张网页
3、MD5(Sort(Ti))=MD5(Sort(Tj)),两个网页前n个关键词一样,权重可以不一样,也认为是复制网页。
而是把网站琅绫擎合营的部分如导航条、logo、版权等信息(这些称之为网页的“噪音”)过滤掉落后剩下的文本。
分段签名算法
这种算法是按照必定的规矩把网页切成N段,对每一段进行签名,形成每一段的信息指纹。如不雅这N个信息指纹琅绫擎有M个雷同时(m是体系定义的阙值),则认为两者是复制网页。
这种算法对于小范围的断定复制网页是很好的一种算法,然则对于像google如许海量的引擎来说,算法的复杂度相当高。
基于关键词典复制网页算法
像google这类引擎,他在抓取网页的时刻都邑记下以下网页信息:
1、网页中出现的关键词(中文分词技巧)以及每个关键词典权重(关键词密度)。
2、提取meta descrīption或者每个网页的512个字节的有效文字。
关于第2点,baidu和google有所不合,google是提取你的meta descrīption,如不雅没有萌芽关键字相干的512个字节,而百度是直接提取后者。这一点大年夜家应用过的都有所领会。
在以下算法描述中,我们商定几个信息指纹变量:
Pi表示第i个网页;
该网页权重最高的N个关键词构成集合Ti={t1,t2,...tn},其对应的权重为Wi={w1,w2,...wi}
摘要信息用Des(Pi)表示,前n个关键词拼成的字符串用Con(Ti)表示,对这n个关键词排序后形成的字符串用Sort(Ti)表示。
以上信息指纹都用MD5函数进行加密。
基于关键词典复制网页算法有以下5种:
1、MD5(Des(Pi))=MD5(Des(Pj)),就是嗣魅摘要信息完全一样,i和j两个网页就认为是复制网页。
2、MD5(Con(Ti))=MD5(Con(Tj)),两个网页前n个关键词及其权重的排序一样,就认为是复制网页。
5、MD5(Sort(Ti))=MD5(Sort(Tj))并且Wi-Wj的平方除以Wi和Wj的平方之和小于某个阙值a,则认为两者是复制网页。
关于第4和第5的那个阙值a,主如果因为前一个断定前提下,照样话苄很多网页被误伤,引擎开辟根据权重的分布比例进行调节,防止误伤。
这个是北大年夜天网引擎的去重算法(可以参考:《引擎--道理、技巧与体系》一书),以上5种算法运行的时刻,算法的效不雅取决于N,就是关键词数量标拔取。当然啦,选的数量越多,断定就会越精确,然则谁知而来的计算速度也会减慢下来。所以必须推敲一个计算速度和去重精确率的均衡。据天网实验结不雅,10个阁下关键词最恰当。
跋文
请作者接洽本站,及时附注您的姓名。接洽邮箱:edu#chinaz.com(把#改为@)。 |