基于云平台的消除近似重复网页方法

文档序号:6517701阅读:157来源:国知局
基于云平台的消除近似重复网页方法
【专利摘要】本发明公开一种基于云平台的消除近似重复网页的实现方法,该方法包括以下步骤:网页预处理,提取网页正文;在正文中提取特征项用于表征正文内容;计算特征项的指纹,对特征项进行压缩或降维处理以方便存储和检索;基于特征指纹计算相似度,判定原始网页是否近似。本发明具有能够极大程度地减少遗漏近似重复网页重复,能较好地支持多种网页结构下的相似度计算等优点。
【专利说明】基于云平台的消除近似重复网页方法
【技术领域】
[0001]本发明涉及基于云平台的消除近似重复网页方法。
【背景技术】
[0002]利用搜索引擎检索新闻、博客或RSS阅读器的人可能会时常遭遇信息过载和重复的问题,经常能看到一个事件发生之后每个网页的内容基本相同,观点相同的文章。重复的信息过多,导致用户花大量的时间阅读重复的信息。
[0003]以Google为例,Googlebot网页爬虫每天都会爬取大约200亿个网页,而在总量上,它追踪着300亿个左右的独立URL链接。如此庞大的数据量之中网页质量难免参差不齐,查询时返回给用户的信息存在大量的重复,很多时候用户找不到所需要的信息。目前的搜索引擎没有很好的解决这个问题。例如在Google输入“iPad mini发布搭载苹果A5双核未配Retina 〃进行搜索,在搜索结果显示中第一页10个条目中有9条内容是重复的,而大多数人关心的恰恰是第一页的搜索结果。
[0004]搜索最大的问题主要来自三个方向:搜索质量的问题;搜索用户体验的问题;以及整个搜索生态系统的问题。搜索的质量是搜索引擎竞争的关键,大量重复的网页对于搜索质量的影响是致命的。多的重复网页既浪费抓取时间又浪费存储空间。尤其在建立索引时必须对大量的重复网页建立索引,也使倒排文件变得庞大,影响提供查询服务时的响应速度。如果能够找出这些重复网页并从网页数据库中去掉,就能够节省一部分存储空间,进而可以利用这部分空间来存放更多的有效网页内容来进行增量收集,同时也提高了 web页面检索质量。所以,如何高效、准确的去掉重复的网页,提高检索效率,增加用户的检索体验是我们所要解决的问题。
[0005]在当前大数据时代悄然来临的背景下,应当从处理数据和信息的过程中发掘其背后的商业价值。网络中大量的网页重复现象给互联网应用如搜索引擎带来了资源的浪费、索引负担重、影响服务效果等问题。如何有效、准确的将重复网页去掉,对挖掘节约带宽、提高挖掘的速率、挖掘时效性强的资源等都有重要的意义。

【发明内容】

[0006]本发明所要解决的技术问题是要提供一种能最大程度地减少近似重复网页的基于云平台的消除近似重复网页方法。
[0007]为了解决以上的技术问题,本发明提供了一种基于云平台的消除近似重复网页方法,其特征在于:
该方法包括以下步骤:
⑴网页预处理,提取网页正文;
⑵在正文中提取特征项用于表征正文内容;
⑶计算特征项的指纹,对特征项进行压缩或降维处理以方便存储和检索;
⑷基于特征指纹计算相似度,判定原始网页是否近似。[0008]上述步骤⑴、⑵、⑶是对给定的网页进行预处理,并将网页正文表示为分块指纹集合的过程,这一阶段的算法步骤如下:
步骤①:网页预处理,去除网页噪声,提取网页正文;
具体的正文提取方法使用基于加权DOM树的网页正文提取算法。
[0009]步骤②:对网页正文中待处理的自然分块,以标点符号作为分隔符,如“,”、“。”、“?”和“! ”作为分隔符分块划分为多个句子,在这些句子中提取字数不少于k个字的长句作为分块的特征项,对每个提取的长句,根据网页的主题语义及长句自身特性计算其权重;
步骤③:利用分块的加权长句计算分块指纹,并将分块指纹加入正文的分块指纹集;步骤④:若还有新的分块,则转到上述步骤②继续对新分块进行长句提取和指纹计算;若全文结束,则这一阶段结束,得到全文的分块指纹集合。
[0010]上述步骤⑷是对已得到的分块集合进行相似度计算,并依此判定它们的正文是否近似,步骤如下:
步骤①:设近似阈值为r ;
步骤②:计算相似度,若相似度>r,则判定是近似网页;否则,不是近似网页。
[0011]准确的正文提取是进行近似检测的重要前提,能够同现有的网页搜集系统较好的整合,同时通过实验验证具备较高的有效性和准确性,并且处理效率上得到了明显的提高。
[0012]与现有技术相比,本发明具有以下优点:
(1)针对相似网页去重的应用,利用网页分块和主题信息提取技术,提取网页的特征向量。网页分块主要基于DOM语法树对其中的内容节点合并成大粒度的网页块;主题内容块的提取方法主要基于文本相似度的比较,同时通过Bayes方法计算后验概率进行优化改进。通过上述处理,可以完成对影响网页去重的网页噪音信息的去除、文本内容的词项切分、网页特征向量的提取,较以往方法性能有明显提升;
(2)分析传统的基于Shingle的相似网页去重方法的基本原理,并在此基础上,基于映射/规约编程模型提出了改进的算法,在分布式运行环境下,该改进的算法将增加处理的效率,并具备良好的横向扩展性;
(3)结合Shingle和Simhash两种算法对传统的网页指纹计算技术进行改进,该指纹具有网页间内容越相似,指纹间的汉明距离越接近的特征,并且在处理效率和精确性上作了较好的权衡;针对上述方法得到的网页指纹,分析了 Manku的相似指纹快速探测算法,通过以空间换时间的方式使得时间消耗大量减少;
(4)介绍了类GFS分布式计算平台的工作原理和映射/规约这一海量数据分布式处理模型,并提出了基于开源框架Hadoop的分布式计算集群的部署方案。基于该平台,将指纹比对的任务分散并行化,在各个执行任务的单机上利用Manku的相似指纹快速探测技术进行指纹比对,然后系统归并所有执行任务单机的处理结果,在得到原有指纹库中与待添加指纹相似的条目后,就可以完成对原有指纹库的相应指纹以及网页库的相应网页的删除工作。
【专利附图】

【附图说明】
[0013]图1为本发明的流程图; 图2为本发明网页搜集系统体系架构图;
图3为本发明网页正文表示为分块指纹集合的流程图;
图4为本发明改进的SimHash算法与Manku传统算法的对比表;
图5为本发明改进的SimHash算法与Manku传统算法运行时间的对比表。
【具体实施方式】
[0014]下面结合附图和具体实施例对本发明进行详细说明。
[0015]如图1所示,本发明提供了一种基于云平台的消除近似重复网页方法,其特征在于:
该方法包括以下步骤:
⑴网页预处理,提取网页正文;
⑵在正文中提取特征项用于表征正文内容;
⑶计算特征项的指纹,对特征项进行压缩或降维处理以方便存储和检索;
⑷基于特征指纹计算相似度,判定原始网页是否近似。
[0016]如图3所示,上述步骤⑴、⑵、⑶是对给定的网页A和B进行预处理,并将网页正文表示为分块指纹集合的过程,这一阶段的算法步骤如下:
步骤①:网页预处理,去除网页噪声,提取网页正文;
具体的正文提取方法使用基于加权DOM树的网页正文提取算法。
[0017]步骤②:对网页正文中待处理的自然分块,以标点符号作为分隔符,如“,”、“。”、“?”和“! ”作为分隔符分块划分为多个句子,在这些句子中提取字数不少于k个字的长句作为分块的特征项,对每个提取的长句,根据网页的主题语义及长句自身特性计算其权重;
步骤③:利用分块的加权长句计算分块指纹,并将分块指纹加入正文的分块指纹集;步骤④:若还有新的分块,则转到上述步骤②继续对新分块进行长句提取和指纹计算;若全文结束,则这一阶段结束,得到全文的分块指纹集合。
[0018]设给定网页A的自然段数目为n,图中S是网页A的分块指纹集合。
[0019]上述步骤⑷是对已得到的分块集合进行相似度计算,并依此判定它们的正文是否近似,步骤如下:
将Sa和Sb的相似度定义为sim (SA,Sb),设近似阈值为r:
步骤①:计算Sa和Sb的相似度sim (SA, Sb)。
[0020]步骤②:若sim(SA,SB) >r,则判定网页A和B是近似网页;否则,它们不是近似网页。
[0021]至此,网页近似判定阶段结束。
[0022]如图2为本发明网页搜集系统体系架构图,包括以下步骤:
(I)异步抓取原始网页
对于互联网的网页下载,通常需要涉及到DNS地址的解析,在高并发的情况下如果不采取措施,DNS地址解析会成为一个重要的瓶颈,通过多线程并发的DNS客户端来提高DNS解析的速率,同时通过DNS Cache来缓存DNS解析的结果,此外DNS客户端应当通过UDP网络协议来获取结果,同时获取的过程应该使用异步非阻塞的方式来提高性能。[0023](2)解析网页
针对网页内容做解析,具体解析方式和解析内容可以通过配置文件进行灵活配置,具体功能的实现包含提取网页特征向量和提取链接。
[0024](3)提取特征向量和网页去重
两者作为相似网页去重系统被集成到网页搜集系统中,并根据不同的工作模式对网页指纹进行处理,如果运行在在线模式下,那么每下载一个网页就需要对其进行分析提取网页特征指纹,使用改进的Simhash算法进行相似网页探测,对于判断到的原有网页库中与新下载页面近似相似的网页集合则进行删除。
[0025]( 4 )提取网页中的链接
链接提取模块主要从网页的内容中提取所有的链接,同时针对网络上不规范的链接进行不规范,例如补齐链接的Canonical名称、添加显式端口号、大小写转换等。
[0026](5)链接过滤和Robots控制
链接过滤和Robots控制主要针对链接进行处理,用于以下方面:首先,部分站点使用robots, txt来建议性的控制爬行器的行为,作为网页搜集系统应当严格遵守约定;其次,该模块可以对需要被过滤的链接进行预定义,定义的方式主要基于正则表达式;再次,对于网络爬行陷阱,该模块应当确定适当的规则,例如限定爬行链接的深度,过滤URL重写链接等机制来进行处理;最后,由于网页搜集系统并行化的需求,单点需要对提取的链接进行散列计算确定获取该链接的主机。
[0027](6)队列负载监控
具体控制策略可以分为两级,首先根据爬行链接进行优先级划分,然后将链接按照访问主机进行划分,从而限制对于某主机的频繁访问。
[0028]具体以测试数据为例进一步阐述本发明的技术方案。该案例实验环境设计如下:1台机器作为NameNode, 24台机器作为DataNode。每台节点硬件配置如下:联想扬天T4600v,CPU为Intel赛扬E3200 (2.6GHZ);内存为2GB ;硬盘为250GB/7200rpm。使用的操作系统为RedHat5.3, Java环境为JDK1.6, Hadoop版本为0.20.2,每台机器配置4个slots,即同时处理4个map/reduce任务。
[0029]案例主要通过与原始算法的对比实验验证改进的基于SimHash网页去重算法的有效性。这里抓取了约150万网页,作为实验的数据集。为了能够模拟测试网页去重的过程,按照文本长度随机选择了 5000个互不重复的网页正文,对其正文进行随机的少量增、删、改操作,生成了 10000个近似重复的网页正文,插入到数据集中。最终提取到一个约5GB的文本文件存储网页正文的相关信息。分别使用Manku的算法和改进的算法进行对数据集进行处理,结果如图4所示。
[0030]从图中可以看出,结果的差异主要体现在对于较短篇幅网页的识别上,显然改进的算法的查全率要优于传统的Manku算法,这主要体现在对于短文本的识别上。
[0031]为了给算法加速,Manku提出以下方法:(1)对64 bit的指纹数据进行分块;(2)对指纹进行置换扩展,通过空间的冗余来换取时间的消耗,而改进的算法将全局范围的比较减少为局部范围的比较,以较小精度的牺牲换取了较低的时间和空间复杂度。在改进的算法中,原来的一个Job在改进算法中分解为5个Job完成,如图5中计算时间均为算法完成的总时间。从图中可以看出在程序处理时间上,随着文件集规模的增大,改进算法的运行时间也是要优于传统算法的。
[0032]在数据集不同规模下比较算法运行时间,从而验证算法是否具有较高的伸缩性。实验分别比较了在30万到150万个网页数据集下的计算时间,由图可知,时间消耗基本按照线性增长,因此该改进的算法在并行计算的环境下具备较高的可扩展性。
【权利要求】
1.一种基于云平台的消除近似重复网页方法,其特征在于: 该方法包括以下步骤: ⑴网页预处理,提取网页正文; ⑵在正文中提取特征项用于表征正文内容; ⑶计算特征项的指纹,对特征项进行压缩或降维处理以方便存储和检索; ⑷基于特征指纹计算相似度,判定原始网页是否近似。
2.根据权利要求1所述的基于云平台的消除近似重复网页方法,其特征在于:所述步骤⑴、⑵、⑶是对给定的网页进行预处理,并将网页正文表示为分块指纹集合的过程,这一阶段的算法步骤如下: 步骤①:网页预处理,去除网页噪声,提取网页正文; 步骤②:对网页正文中待处理的自然分块,以标点符号作为分隔符,分块划分为多个句子,在这些句子中提取字数不少于k个字的长句作为分块的特征项,对每个提取的长句,根据网页的主题语义及长句自身特性计算其权重; 步骤③:利用分块的加权长句计算分块指纹,并将分块指纹加入正文的分块指纹集; 步骤④:若还有新的分块,则转到上述步骤②继续对新分块进行长句提取和指纹计算;若全文结束,则这一阶段结束,得到全文的分块指纹集合。
3.根据权利要求1所述的基于云平台的消除近似重复网页方法,其特征在于:所述步骤⑷是对已得到的分块集合进行相似度计算,并依此判定它们的正文是否近似,步骤如下: 步骤①:设近似阈值为r ; 步骤②:计算相似度,若相似度>r,则判定是近似网页;否则,不是近似网页。
【文档编号】G06F17/30GK103559259SQ201310537406
【公开日】2014年2月5日 申请日期:2013年11月4日 优先权日:2013年11月4日
【发明者】向阳, 陈佑雄, 张依杨, 平宇, 张波, 袁书寒 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1