英文搜索引擎是如何进行网页重复检测?
[ 2010-7 | Author: 佚名 ]
在互联网上,网页重复情况非常极端。除了一般的重复来源,抄袭和垃圾(SPAM)是很普遍的,还有使用多个URL地址指向同一个网页以及镜像站点(mirror site),都会使爬虫程序产生大量的重复页面,研究表明,在一个大型的信息采集系统中,30%的网页是和另外70%的网页完全重复或者近似重复的。
话说回来,现在市面上出现大量的伪原创相关工具,技巧等,我们该如何判断伪原创是否真的“原创”,值得我们研究探讨。究竟是通过搜索引擎来反馈原创性(例如文章收录、长尾流量递增等)还是通过网民阅读是否能够通顺来反馈?综合各种说法,返璞归真,我们要从原理上去了解一个大型的搜索引擎判断重复网页的过程是如何展开的。
一、对完全重复的文档检测
这个是一个相对简单的任务,可以使用检验和技术,什么是检验和技术?说白了,就是根据文档内容计算的一个数值。最直接的检验和是文档文件中各字节的和。例如对于一个含有文本“Tropical fish”的文件,可以按照如下的方式计算(十六进制表示)
T r o p i c a l f i s h 各字节的和
54 72 6F 70 69 63 61 6C 20 66 69 73 68 508
由此说明:
含有相同文本的任意文档会含有相同的检验和。当然,任意的文档如果恰好具有相同的检验和,也将被认为是重复的文档。例如,文件中含有相同的字符但顺序不同的,会具有相同的检验和。除此以外,还会有一些复杂函数加进检测过程,这里就不一一展开了,例如CRC循环冗余校验,考虑到字节出现的位置。
鉴于以上观点,市面上很多使用段落扰乱的伪原创方法,建议大家就别折腾了。
二、对近似重复的文档检测
相对于完全重复的文档来说,近似重复的文档检测比较困难,甚至如何定义近似重复也是不容易的。这里引用百度站长俱乐部官方人员LEE的一篇回帖,帖子标题是《百度对重复内容是如何处理的?》,回帖内容如下:
"这的确是个显著的问题。这表明我们在这方面的策略上有极大改进空间。这类积重的问题,非一朝一夕能搞定,需要伤筋动骨的动动手术才行。所以请大家耐心。
另外需要说明的是,搜索引擎的排序出发点,是用户的搜索体验。虽然说,很多时候尊重原创和用户体验是一致的。但是,毕竟也有一些case,转载的体验会比原创更好。这时候原创者的排序未必会高于转载者。但无论如何,原创者的应该以另外一种方式被肯定,而不是简单的被聚合掉。"
可想而知,判断近似重复的页面是一项庞大的工程,所以在这里个人建议大家不要太执着网页内文字的处理,可以通过搜索引擎其他方面的评价体系,去将网站的权重提升到一定高度。不过就算是一个不完善的技术方案,他也有可取之处,至少可以处理大部分的CASE。下文描述的是近似重复文档判断技术实现过程,在此引用一个“文档指纹”的说法,文件指纹和人的指纹从根本上有相同的特点,它可以从一定程度上代表该文件的唯一性。
判断近似重复文档有两大步骤:第一步是生成文档的指纹、第二步使用向量空间模型计算余弦相似度,来判断两个文档是否相似,这一步涉及大量的数学知识,暂不讨论,下面先说一下一个网页文档生成指纹的过程,有以下五步:
一、首先对文档进行分词处理。删除那些不是词的内容,如标点、HTML标签和空格。
二、对文档里面每个词进行加权 ,大家了解最多的关键词密度,也属于其中一个加权法则,就是根据词频来加权。
三、对每个词生成一个不同的散列值。
四、进行英文搜索引擎比较重要的步骤,例如词素切分、停用词去除、词干提取、短语和N元串等,可能大家对这些概念比较模糊,举点例子:
(1) 一个简单词素切分:
切分前: Bigcorp's 2010 bi-annual report showed profits rose 10%.
切分后:bigcorp 2010 annual report showed profits rose
(2)停用词去除
the,a,an,that,those,over,under,above,below等等
(3)词干提取
假如希望搜索“Mark Spitz”的游泳运动事业的相关新闻报道,可能向搜索引擎输入“mark spitz swimming”。然而,许多新闻报道通常是对已发生事件的总结,因此它们有可能包含“swam”而非“swimming”。这个时候就需要词干提取将 “swimming”和“swam”归结为相同的词干"swim"。之前大家提出的单复数问题,也是同样的道理,会被提取。
五、在N维的向量V中,分别对每维向量进行计算。涉及到数学知识,我就解释一下。这一步主要就是计算文档里面每个词的特征,然后通过这个文档的所有词的特征来表明这个文档的特征,来表明文档的唯一性。
举例:
1、原始文本:Tropical fish include fish found in tropical environments around the world,includeing both freshwater and salt water species.
2、对词加权(统计每个词的出现次数)
tropical 2 fish 2 include 1 found 1 environments 1 around 1 world 1 including 1 both 1 freshwater 1 salt 1 water 1 species 1
3、 生成每个词的8位散列值
tropical 0110001 fish 10101011 等等。。在此不列举
4、进行词素切分、词干提取,剩下8个词。通过散列值计算每个词的特征,得到一个向量V来表示那个文档,就是这8个词代表了这个文档。
V={1 0 1 0 1 1 1 1}
5、最终得到这个文档的指纹。
以上粗略谈论了一下判断重复网页的过程,还有很多知识点没加进去,希望能帮助大家开阔思路。
该篇文章来自:外贸商机网 (http://www.tradeurl.com.cn),复制请注明.
