网页消重算法(via北大天网课题组)

算法基础

当前比较成功的搜索引擎系统大多是基于关键词匹配和结合向量空间模型来完成用户的检索请求的。典型的系统包括Google和天网系统。通常这类系统在对已抓取回来的网页进行分析时,要提取网页中出现的关键词和摘要信息,并以关键词作为网页的特征项。

天网系统在搜集并分析一篇网页时,提取并记录了网页中出现的关键词,同时根据公式赋予每个关键词一个权值,这些关键词的权值构成一个向量空间,可以用来表示该网页。另外,我们还从网页中提取了512个字节的有效文字(指用户实际访问该网页时能看到的文字,在html和其他格式的网页中,有一些用户看不到的文字,它们告诉浏览器该执行什么样的操作及如何显示网页,包括字体、颜色、排版等信息)作摘要。当用户查询时,摘要同网页的标题、URL等信息一起显示给用户,供用户了解网页的内容,选择感兴趣的进行浏览。

算法描述

考虑到基于关键词匹配的搜索引擎系统的特点,结合使用网页的向量空间模型,我们提出了5种网页消重算法,用于快速、有效地发现Web上的转载网页。下面逐一介绍这几种算法。在以下的描述中,用Pi表示第i个网页,其权值最高的前N个关键词构成的特征项集合为Ti={t1,t2,…,tin},其对应的特征向量为Wi=<Wi1,Wi2,…Wim>,其摘要用Abstract(Pi)表示,前N个关键词拼接成的字符串用Concatenate(Ti)表示,而先对N个关键词按字母序排序后再拼接成的字符串用Concatenate(sort(Ti))表示。另外,用MD5(X)来表示字符串X的MD5散列值,用Mirror(Pi,Pj)表示Pi和Pj互为转载网页,用A→B表示“若A成立则B成立”。

算法分析

可以看出,我们设计的第1种算法采用了对网页摘要求MD5散列值的方法,当两个网页的散列值(占16个字节)相同时,就认为二者是互为转载的。由于MD5算法的严格性保证了当两个网页的摘要内容有一个字节不同时,其散列值就不同,这样就使得本来应作为转载处理的却没有被确定为转载网页。为此,我们又基于向量空间模型理论,提出了第2种和第5种算法。第5种算法表明,当两个网页的权值最高的前N个关键词集合相同时就认为二者是互为转载的网页。第2种算法比第5种要严格一些,它不仅要求两个转载网页的前N个关键词相同,其顺序也是一致的(按权值排序),因而第2种算法有可能会漏掉一些转载网页。
算法2和算法5都只是要求转载网页的前N个特征项相同,没有考虑到这些特征项所构成向量的夹角大小。算法3和算法算法4则分别在算法2和算法5的基础上分别考虑了两个网页特征向量的相似度。但向量相似度的计算并没有使用夹角余弦值来定义,因为它只度量了两个向量的夹角大小,而没有考虑向量的长度。我们认为只有当两个向量的夹角小,同时其长度相差也小时,二者才是相似的。针对这一点,我们又设计了判断两个向量相似度的方法,即算法3和4的第二个条件:

可以看出,SIM能够同时兼顾向量的夹角和长度两个因素。当两个网页内容毫不相关时(即它们的关键词集合没有交集),Wi与Wj垂直,SIM的值为1。当两个网页相同时,SIM为0。当两个网页相似而不相同时,SIM的值介于0和1之间,于是SIM的值成为判断两个网页相似度的标准。另外,类似于算法5是对算法2的条件放松,算法4也是对算法3的放松。
后四种算法都对向量空间模型理论作了较大的简化。首先,我们只从网页中出现的所有关键词组成的M个特征向量提取了前 N个(N<M),这把理论模型的限制放松了。只所以可以这样做是因为:

1、特征向量的前N个分量绝对值大,基本能确定特征向量的方向。取较少的关键词能减少算法的复杂度。尽管有可能降低其准确度,降低多少,后面的实验将对其作出评测。

2、转载网页的制作人,对网页稍加改动变成相似网页时,不能改变其基本意思。而网页的基本意思一般通过其中出现的高频词来反映。后面的(M-N)个词出现的次数为1或2,相对而言,这些词的出现是不稳定的,当使用这些词来判断相似网页时,反而会漏掉一大批相似网页。

其次,后4种算法都要求前N个关键词组成的集合要相同。这却把理论模型的限制加强了。这主要是由于对算法复杂度的考虑,判断两集合交集大小需要先求出它们的交集。求交集运算的复杂度较大,而把一百万网页两两求交集,其1012量级的运算量是我们不敢提及的。我们只能考虑用MD5算法对集合签名,实际上就是对关键词序列签名,来表示集合的相同与不同。签名算法有极高的敏感性,作用对象稍有不同就会给结果带来很大的差异,并且不可能从签名差异的大小来判断原签名对象差异的大小。作这样的简化后,有可能出现这样的情况,位置在N附近的词在排序上出现的微小变动,如第N 个词与第N+1个词位置互换了,本来是两篇相似度很高的文章,可能会被我们的算法漏掉。这对算法的影响到底有多大,我们仍需通过实验来评测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值