CN112307303A - 基于云计算的网络页面高效精准去重系统 - Google Patents
基于云计算的网络页面高效精准去重系统 Download PDFInfo
- Publication number
- CN112307303A CN112307303A CN202011183312.2A CN202011183312A CN112307303A CN 112307303 A CN112307303 A CN 112307303A CN 202011183312 A CN202011183312 A CN 202011183312A CN 112307303 A CN112307303 A CN 112307303A
- Authority
- CN
- China
- Prior art keywords
- webpage
- fingerprint
- tag
- web page
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000007781 pre-processing Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 38
- 241000239290 Araneae Species 0.000 claims abstract description 30
- 238000001514 detection method Methods 0.000 claims abstract description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 63
- 238000012545 processing Methods 0.000 claims description 46
- 230000011218 segmentation Effects 0.000 claims description 45
- 238000004364 calculation method Methods 0.000 claims description 26
- 239000013598 vector Substances 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 238000011144 upstream manufacturing Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000007689 inspection Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 8
- 101100149023 Bacillus subtilis (strain 168) secA gene Proteins 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 claims description 5
- 230000018109 developmental process Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 claims description 5
- 230000006872 improvement Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000011160 research Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000004904 shortening Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 abstract description 4
- 238000011897 real-time detection Methods 0.000 abstract 1
- 230000008030 elimination Effects 0.000 description 7
- 238000003379 elimination reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供的基于云计算的网络页面高效精准去重系统,针对现有的搜索引擎搜集到的网页大部分是静态网页,由于大量转载、抄袭的存在,很多网页的主体内容都是重复的,对于搜索引擎来说,重复网页无形中增加索引存储的负担,同时也会耗费更多的检索时间;本发明结合开源框架设计并实现了基于Hadoop云平台的网页去重系统,采用蜘蛛程序抓取网页后实时检测判重的方式,能更好的衔接搜索引擎的其它模块,基于云计算的网络页面高效精准去重系统在海量网页搜集阶段,就能预先对网页进行前置处理,进行网页相似性检测与发现,除去重复或相似性高的网页,从而提高索引质量,优化检索结果,给用户良好的搜索体验。
Description
技术领域
本发明涉及一种网页精准去重系统,特别涉及基于云计算的网络页面高效精准去重系统,属于网页去重技术领域。
背景技术
伴随电子通信和计算机网络技术飞速发展,网页形式的站点高速增长,网页数量更是达到千亿级别,要从海量的信息库中找到自己关注的信息成为用户最大的困扰。搜索引擎很好的解决了这一难题,搜索引擎从网络搜集信息,并对搜集来的信息进行组织处理,然后为用户提供简单易用的检索系统,用户只需通过检索系统输入自己关注内容的关键字即可搜索到想要的信息。
现有的搜索引擎搜集到的网页大部分是静态网页,由于大量转载、抄袭的存在,很多网页的主体内容都是重复的,此外还存在着利用恶意程序自动产生的大量的词组级重复网页,在庞大的网络系统中,重复网页不仅是指重复的文章内容,还包括重复的网站结构、网站布局等。对于搜索引擎来说,重复网页无形中增加索引存储的负担,同时也会耗费更多的检索时间。因此,搜索引擎应当在从海量网页搜集阶段,就能预先对网页进行前置处理,进行网页相似性检测与发现,除去重复或相似性高的网页,从而提高索引质量,优化检索结果,给用户良好的搜索体验。
现有技术最早对网页是否重复或相似度过高的检测是基于大型文件系统中普通文本数据相似度检测开始的,由于是对文本数据进行检测,检测方式单一,后来应用到网页相似性检测,而网页是结构化的数据,其中包含各种html标签等重复性元素,其相似性检测不单只是文本的比较;对于一个成功的网页相似性检测算法,首先应当能够浏览解析html标签元素,并且能利用html标签含义和网页布局等信息进行网页特征提取,用提取的网页特征与待检测网页特征比较,判断是否重复。根据提取网页特征技术的不同,现有技术的去重算法分为三类:基于特征码去重、基于指印去重、基于聚类去重。
现有技术基于特征码的网页去重的特征码是能够表述网页内容的关键字,根据网页内容关键字权重的不同,制定一定策略选取一系列能够表征网页主体内容的关键字组成网页的特征码,判断网页是否重复,只需要检测网页特征码的相似程度即可。该算法依据两个重要的参考依据即逆文本词频因子和特征字典,逆文本词频因子是词语重要性判断标尺,一般将所样本文件总数与文件中所出现的词频个数进行相对比较,并将最后的结果进行对数化处理。特征字典是特征词的集合,包含了几乎所有的关键性词语。但该算法还存在很多问题。首先该算法很容易出现误判,尤其是网页内容只是一个很短的短文本时,其词组较少,在经过特征词典过滤之后,只剩下很少几个的特证词,很容易把两个原本不重复的网页判定为重复的;其次是算法稳定性低,对网页修改很敏感。假如对网页A做出一点修改后生成网页B,即常见的的网页转载、修改,那么这个算法很可能判断出这两个网页是不重复的。
现有技术基于指印的网页去重中最有影响的谷歌使用的SimHash,SimHash算法的主要思想是降维,将高维的特征向量映射成一个f-bit的指印,通过比较两个网页的f-bit指印的海明距离)来确定网页是否重复或高度相似。算法利用降维很好的节省了空间资源,但在比较两个网页海敏距离时,计算时间会伴随数据量的增加而递增,假设有90亿条已有的网页指印,每条指印比对都要90亿次的比较,当检测的网页数量过于庞大时,比对过程消耗的时间大幅增加;此外,SimHash算法对于长文本(多于480个字符)有较好的效果和较低的误判率,对于类似微博等较短的文本,处理效果很不理想。
现有技术基于聚类的网页去重算法是以向量空间模型VSM为基础的,网页的内容通过所使用的词语来表达。将整篇文档的相似度比较简化为特征向量的比较,即每篇文档用一个向量来表示,通过空间向量的多种计算获得文档的相似度。
综上,现有技术都还存在一些明显不足,表现在以下方面:
一是现有的搜索引擎搜集到的网页大部分是静态网页,由于大量转载、抄袭的存在,很多网页的主体内容都是重复的,重复网页不仅是指重复的文章内容,还包括重复的网站结构、网站布局等。对于搜索引擎来说,重复网页无形中增加索引存储的负担,同时也会耗费更多的检索时间;搜索引擎在从海量网页搜集阶段,不能进行网页相似性检测与发现,无法除去重复或相似性高的网页,导致索引质量低,检索结果差,用户良好搜索体验不好;
二是现有技术基于特征码的网页去重的特征码存在很多问题,首先该算法很容易出现误判,尤其是网页内容只是一个很短的短文本时,其词组较少,在经过特征词典过滤之后,只剩下很少几个的特证词,很容易把两个原本不重复的网页判定为重复的;其次是算法稳定性低,对网页修改很敏感;现有技术基于指印的网页去重在比较两个网页海敏距离时,计算时间会伴随数据量的增加而递增,当检测的网页数量过于庞大时,比对过程消耗的时间大幅增加;SimHash算法对对于类似微博等较短的文本,处理效果很不理想;
三是现有技术的网页去重算法按照网页特征提取的粒度分为三类:一是以单词为粒度,由于粒度较细,算法的复杂度过高,运用该算法处理海量网页信息不切实际,该类算法还有最大的缺陷:稳定性差,两个网页中只要有个别单词不同,最终计算结果千差万别;二是介于单词和文档之间为粒度提取网页特征值,比以整个网页为粒度小,比以单词为粒度大,粒度选择争议性大,如果粒度选择过大,变化较小的网页可能被认为不重复,如果粒度选择过小,一方面会增加计算量,另一方面也会因为过细的粒度导致网页内容变化较大但整体句子相似的网页判断为不重复,三是以整个网页为粒度的去重算法,该算法由于粒度为整个网页,很难识别出差别不大的网页,不推荐使用;
四是现有技术不能实现较高的效率和准确度,时间和空间资源限制较多,系统一般无法在线实时运行,不能很好的衔接搜索引擎的其它模块,不是一个单独的系统,无法独立运行和又能够对外提供接口,无法与蜘蛛系统和索引系统共同工作,对于复杂且大量的页面精准去重的实现较弱,只适合于小规模页面去重,且精度不高、可移植能力较差,一般只运用于特定的领域,同时存在交互性能弱、智能化程度低、可扩展性低、去重速度慢精度低等缺陷。
发明内容
本发明提供的基于云计算的网络页面高效精准去重系统,针对SimHash算法面对海量网页的相似性检测,不能实现较高的效率和准确度,考虑到时间和空间资源限制,本发明基于云计算的网页去重方法,其时间复杂度和空间复杂度都较为优异,通过基于云计算的SimHash算法改良优化,大幅减少计算海明距离的开销,基于云计算的网页去重实用高效、易于扩展、精准高速,解决了海量网页的快速去重问题,是一种具备显著创新性,且优势突出的网页去重方法;设计并实现基于Hadoop的网络页面高效精准去重系统进行网页指印比对,所用时间大幅缩短,结果精度明显提高。
为达到以上技术效果,本发明所采用的技术方案如下:
基于云计算的网络页面高效精准去重系统,首先对网页结构进行前置处理,补齐未正常关闭的标签,去掉没有实际意义的标签元素,去掉跟网页主题内容无关的内容;对网页结构重新整理后,利用汉语分词工具,对网页内容作分词处理,去掉停用词;设计并实现基于Hadoop的网络页面高效精准去重系统进行网页指印比对,高效提升计算速度;
本发明通过前置处理和汉语分词准确提取到表征网页内容的特征字符串,设计并实现基于Hadoop的网络页面高效精准去重系统;主要包括:
一是网页前置处理,对抓取到的网页前置处理,剔除导航条、广告、版权信息的噪声内容;利用汉语分词工具对网页分词并计算词频作为权重,使用停用词表除去无意义的停用词,处理完成后的特征词组和权重作为去重算法的输入;
二是基于云计算的网页去重方法改良优化,以去重精度较高的SimHash算法为原型,设计适用于MapReduce计算模型的网页去重改良优化算法,精确识别微小改动的网页,借助Hadoop平台有效缩短计算时间;
三是云计算网页去重系统的设计实现,设计并实现基于Hadoop的网页去重系统,包括前置处理模块、汉语分词模块和网页精准去重核心模块,其中网页精准去重核心模块基于Hadoop平台的并行计算方式运行,计算过程所用时间缩短、结果精度提高。
基于云计算的网络页面高效精准去重系统,进一步的,网页去重的前置处理的第一步为补齐网页HTML标签,补齐标签分为三个步骤:
步骤1,解析HTML网页,按照HTML标签分类逐个取得标签的详细信息,并存入相应对象中;
步骤2,解析完成后检查标签是否正常闭合,是否有书写错误;
步骤3,针对没有正常闭合的标签进行补齐处理;
HTML标签解析和补齐:在解析网页时考虑网页可能含有未正常闭合的标签的情况,并将没有闭合的标签也作正常处理;首先读取整个网页,获取标签元素,建立该标签的对象,并读取标签中间的内容存入对象,若下一个标签不是对应的关闭标签,将下一标签作为该标签的子标签处理;
标签属性检验和补齐:整个网页解析完成后,将网页标签统一作标记;对正常关闭的标签不作处理,对于未正常关闭的标签,做进一步的分析,对未正常关闭的标签再做属性检验。在解析网页后,检查每个标签的属性及其内容,属性缺少引号或独立标签未正常关闭的按照HTML标签定义予以补齐。
基于云计算的网络页面高效精准去重系统,进一步的,网页HTML去噪采取比较页面长宽比来除去噪声,根据HTML标签的使用场景和网页布局框架,分析除去网页噪声的流程;网页包含的表格标签<table>和</table>之间,检查标签是否还包含标签<p>或者<br>,包含这二种标签可认为该表格部分是网页主体内容;根据表格标签占整个网页的大小,检查标签<table>的width或者height属性,若这二个属性的值占页面的百分比较大则认为该表格标签包含的部分是网页主体内容;网页布局的复杂性导致可能出现多层嵌套标签<table>,这时认定网页的主体内容存在于嵌套的table中的某一层;还有一些网页并没有标签<table>,采用div+css方式布局网页,但其最终也是用div+css布局出类似于表格的样式展现网页内容,因此存在多层嵌套的div标签时也采用类似表格的处理方式;针对含有<table>标签的网页,假设主体内容都放在网页布局的中间部分,并且该部分长度和宽度占比都比较大,相对在网页边缘部分的内容,其重要性相比中间部分弱,该区域布局比较狭长;对于不含<table>标签的网页,通过div+css布局页面,若是多层次的嵌套div,依然按照表格的处理方式进行处理;若各个div标签包含的内容都比较独立,通过判断标签字数确实是否是主体内容;网页的主体内容字数较大,而相对用来修饰布局页面的内容字数很少,设定一个临界值,当div标签中字数大于临界值则认定为网页主体内容;最后将提取出的网页主体内容变转化为文本文件;
基于云计算的网络页面高效精准去重系统,进一步的,基于云计算的网页去重方法改良优化,以去重精度较高的SimHash算法为原型,SimHash将一个网页转换成一个64位特征字或特征码,通过判断二个网页计算出的特征字的海明距离是不是小于n,如果是则判定网页重复或者相似,反之则否;SimHash算法利用汉语分词工具除去经过网页前置处理文本中的停词虚词,得到关于这个网页的字符串列表,然后每一个字符串映射到a维空间的一个向量,对应相同的字符串,最终映射向量唯一;最终得到的向量的和代表整个网页的特征,为网页的指印,长度64位SimHash计算出的指印,其海明距离在3以内的文本判定为相似文本;
本发明假设从指印库中查询海明距离小于3的指印,依据抽屉原理只要将64位的二进制指印划分为4个部分,重新规划上述的64位指印,将4部分的任意一个部分作为新指印的前16位,总共组成4种新的指印,然后使用新的指印到指印库中精确匹配前16位相同的指印。
基于云计算的网络页面高效精准去重系统,进一步的,基于MapReduce的网页去重方法:网络蜘蛛定期从各网站抓取站点内的所有网页,获取网页后,经过网页前置处理,提取出网页指印,然后去原有的网页库中比对查询,除去相似的网页,若仅是网页标注的时间戳不同的网页,只需要更新网页库中的数据,将其数据戳更新为最新时间点的数据;关键步骤是利用提取到的网页特征字符串计算得到的网页指印与网页指印库中的数据进行查询比对,若该网页指印与网页指印库中的某个指印的海明距离小于3,则认定为该网页与网页库中的网页存在重复,该网页丢弃不作处理,如果网页指印和网页信息分开存储,同时删除该网页信息;
核心的网页指印库存储所有已经检测的指印,最开始指印库中没有数据,其建立过程为:建立一个存储网页指印信息的库文件,初始值设为空,当第一条网页指印需要比对时,判断库文件中数据是否为空,若库文件中无任何信息,直接将该条网页指印和网页信息插入库文件当中,然后后面抓取到的网页以库文件中的数据为基础进行比对查询,判定不重复则直接插入库文件,重复则丢弃;考虑到网页的其它相关信息也要保存,每个网页占用八行;
Map函数接受前置处理得到的扩展待比对指印列表参数,然后取得指印库的一条指印记录,待比对指印也要扩展为四块,将扩展后的四条指印与扩展后的指印库列表进行比对,若发现扩展后的待比对指印与指印库列表中的数据其汉明距离小于3,将该条指印库中的指印作为key,待比对指印的原始指印作为value输出,提供给Reduce任务继续下一步的处理;合并阶段的工作是将各个Map任务的比对结果合并输出,将得到的结果都转化为文本类型输出到最终的结果文件中;通过Reduce任务最终得到待比对指印是否存在重复,因此最后将重复的网页剔除;若没有重复的指印,该比对指印需要添加到指印库中;具体操作过程为:判断Reduce结果的value是否有数据,将出现在value数组中的指印对应的网页信息删除,若value中没有数据,说明不存在重复,将新搜集的指印加入到原指印库中去,将其对应的网页信息加入对应的网页信息库中;利用hadoop分布式计算平台的横向扩展性,通过增加机器数提升系统的运行效率,从而缩短算法执行时间。
基于云计算的网络页面高效精准去重系统,进一步的,本发明基于网页前置处理模块和基于hadoop的Map/Reduce计算模型的SimHash算法,结合开源框架设计并实现了基于Hadoop云平台的网页去重系统;系统在线实时运行,采用蜘蛛程序抓取网页后实时检测判重的方式;基于Hadoop云平台的网页去重系统只是搜索引擎的一部分,提出能够与网页去重相连接的上下游系统无缝结合的方案,即基于Hadoop云平台的网页去重系统是一个单独的系统,能够独立运行,又能够对外提供接口,与蜘蛛系统和索引系统共同工作;
基于Hadoop云平台的网页去重系统是网络蜘蛛系统的下游系统,网络蜘蛛程序按照指定的策略爬取到网页之后,将网页文件传输给网页去重系统,网页经过去重系统处理后交给下游系统索引系统;本发明的网页去重系统共分为三部分,包括网页前置处理模块、汉语分词模块和网页精准去重核心模块。
基于云计算的网络页面高效精准去重系统,进一步的,网页前置处理模块负责对抓取到的网页进行语法解析、标签属性检验和网页去噪,通过对HTML网页解析,按照标签分类提取网页内容,并对未正常关闭的标签作标记,标签属性检验是对标签包含的属性作分析,防止未闭合的属性描述混合到网页主体内容中,网页去噪则通过网页布局及标签的特殊使用场景,去掉广告条、导航信息和版权信息噪声信息,最后隐藏掉标签以纯文本形式保存;
获取网页文件后,遍历网页内容构建DOM树,DOM适用于HTML网页文件的编程接口,通过DOM提供的各种访问HTML网页元素,方便取得网页的便签及其内容,并能动态的增加修改网页内容;
完成DOM树构建之后,遍历DOM树检查各结点元素,若遇到未正常关闭的标签通过DOM提供的方法补齐标签;完成标签元素的修改,通过构造DOM树、标签补齐处理网页后,遍历DOM树获得完整的网页内容,此时的网页还包括诸多的无用的噪声内容,根据本发明提出的网页去噪处理方式,设置网页去噪器;网页去噪器的处理流程为:
步骤一,提取<meta>标签keywords属性内容;
步骤二,提取<body>内容,过滤<script>、<style>、<li>、<a>标签包含内容;
步骤三,提取连续的<p><div><spam>标签包含内容;
步骤四,提取非<p><spam><div>标签内容但含有keywords内容的标签内容;
步骤五,提取剩余标签文本字符个数大于25的文本内容;
步骤六,合并提取的文本;
网页去噪器根据网页表格和DIV对整个网页的占比选取网页主体内容,通过以上步骤的过滤筛选,除去包含广告条、版权信息、布局修饰标签及其内容。
基于云计算的网络页面高效精准去重系统,进一步的,汉语分词模块对网页前置处理后的文本进行分词,同时去掉停词、虚词没有实际意义的短语或者词组,最终得到一个关于网页主体内容的特征集合;本发明采用中国科学院计算技术研究所提供的汉语分词系统MLPIR,该系统提供开发接口,开发者在系统之上实现定制化的功能,本系统汉语分词模块实现读取中文文本、去掉非中文字符、汉语分词处理和除去无意义的停词虚词;其中非中文字符包括标点符号、文档格式字符和英文字符,分词完成后以数组的形式输出;停用词是语气词、助词、人称代词,本发明采用哈工大提供的停用词表检测除去停用词;最后将分词后的内容以数组的形式输出。
基于云计算的网络页面高效精准去重系统,进一步的,网页精准去重核心模块将文件存储和相似性检测任务交由Hadoop云平台管理,充分利用Hadoop云平台提供的HDFS文件系统和MapReduce计算模型并行处理海量网页指印比对过程;
本系统指印库的建立从零开始逐渐累计,起初只有一个空文件,并提交给Hadoop的文件系统HDFS管理,当第一次比对过程没有发现重复,将该记录插入到这个文件当中,当文件足够大时Hadoop申请重新分配文件,将指印库均匀分配到各个数据结点当中;
如果当前指印和指印库中某一条记录相似,但网页发布日期却不同,根据网页发布日期确定是否丢弃该网页,如果当前指印对应网页的发布日期较早,则将该网页指印插入指印库,对应的网页信息也存储到本地,如果当前指印对应的网页发布日期较迟,则认为当前网页抄袭重复,作丢弃处理。
基于云计算的网络页面高效精准去重系统,进一步的,本发明设计两种类型的接口对接上游系统:
第一种,直连数据库接口:网页数据存储在本地,存放在本地数据库中,系统提供直接访问网页数据库接口,通过访问存储在本地数据库中的网页文件来获取到要处理的网页;通过设定时间戳,定时获取一定时间间隔内的网页数据;由于数据库种类较多,针对每个数据库设计一个访问接口是不实际的,根据JDBC规范,设计一个提供通用的数据库访问接口,通过匹配不同的驱动器来选取合适的数据库连接,并提供可配置化的参数动态配置访问的数据库;
第二种,文件流接口:对蜘蛛程序直接将抓取到的网页发送给本系统,设计一个接受文件流的接口,这个接口可以接受单个文件,也可以接受文件列表;考虑到蜘蛛程序抓取网页的速度和本系统去重处理的计算速度可能不匹配,在二个系统直接设置缓冲层,通过设计一定数目的缓冲队列,蜘蛛程序抓取到网页后立即放入缓冲队列,然后继续下一个网页的下载,本系统则从缓冲队列中提出网页文件流数据;通过设置一个缓冲队列管理器管理队列,提高两个系统之间协调工作。
与现有技术相比,本发明的贡献和创新点在于:
第一,本发明提供的基于云计算的网络页面高效精准去重系统,针对现有的搜索引擎搜集到的网页大部分是静态网页,由于大量转载、抄袭的存在,很多网页的主体内容都是重复的,重复网页不仅是重复的文章内容,还包括重复的网站结构、网站布局等。对于搜索引擎来说,重复网页无形中增加索引存储的负担,同时也会耗费更多的检索时间;基于云计算的网络页面高效精准去重系统在海量网页搜集阶段,就能预先对网页进行前置处理,进行网页相似性检测与发现,除去重复或相似性高的网页,从而提高索引质量,优化检索结果,给用户良好的搜索体验;
第二,本发明提供的基于云计算的网络页面高效精准去重系统,针对重复网页不仅影响搜索效率和搜索精度,导致用户体验差,同时还大量浪费存储空间。通过检测并除去重复网页提高搜索结果的准确性,前置处理后的网页显著简化网页的结构,其标签的剔除和噪声内容的删除使得网页的大小大幅减少,节省了大量的储存空间,也为进行网页去重减少了计算时间,对海量网页在准确检测到重复网页的同时还能保证较高效率,设计并实现基于Hadoop的网络页面高效精准去重系统进行网页指印比对,所用时间大幅缩短,结果精度明显提高;
第三,本发明提供的基于云计算的网络页面高效精准去重系统,针对SimHash算法面对海量网页的相似性检测,不能实现较高的效率和准确度,考虑到时间和空间资源限制,本发明基于云计算的网页去重方法,其时间复杂度和空间复杂度都较为优异,通过基于云计算的SimHash算法改良优化,大幅减少计算海明距离的开销,基于云计算的网页去重实用高效、易于扩展、精准高速,解决了海量网页的快速去重问题,是一种具备显著创新性,且优势突出的网页去重方法;
第四,本发明提供的基于云计算的网络页面高效精准去重系统,结合开源框架设计并实现了基于Hadoop云平台的网页去重系统,系统在线实时运行,采用蜘蛛程序抓取网页后实时检测判重的方式;为更好的衔接搜索引擎的其它模块,本发明能够与网页去重相连接的上下游系统无缝结合的方案,即基于Hadoop云平台的网页去重系统是一个单独的系统,能够独立运行,又能够对外提供接口,与蜘蛛系统和索引系统共同工作,具有交互性能强、智能化程度高、可扩展性高、去重速度快精度高、语言移植能力好等优势,具有巨大的利用价值和市场运用空间。
附图说明
图1是本发明的网页一般布局示意图。
图2是本发明SimHash改良优化指印比对过程示意图。
图3是本发明的网页前置处理流程示意图。
图4是本发明构造完成后的DOM树结构示意图。
图5是本发明的网页文本汉语分词处理流程示意图。
图6是本发明的网页去重指印比对流程示意图。
具体实施方式
下面结合附图,对本发明提供的基于云计算的网络页面高效精准去重系统的技术方案进行进一步的描述,使本领域的技术人员可以更好的理解本发明并能予以实施。
伴随网络技术的高速发展,作为网络信息载体的网页呈爆炸式增长,在这些海量网页中不乏大量转载、分享的重复信息,这些重复网页不仅影响搜索引擎的搜索效率和搜索精度,导致用户体验差,同时还大量浪费存储空间。提高搜索结果的准确性需要检测并除去重复网页,但海量网页去重面临最大的挑战,即准确检测到重复网页的同时还能保证较高效率。为此本发明提出针对大型搜索引擎在搜集海量网页时的相似度检测去重方法,考虑到当前网页结构的复杂性,大部分网页都是按照标准html规范编写的,但依然存在一定数量的网页,其网页结构、布局排版并不规范,有的甚至存在很多网页编辑器自动生成的无用的html标签,更有的标签只有开始标签没有闭合标签,导致网页结构混乱且难以被机器识别。因此本发明首先对网页结构进行前置处理,补齐未正常关闭的标签,去掉没有实际意义的标签元素,去掉跟网页主题内容无关的内容;对网页结构重新整理后,利用汉语分词工具,对网页内容作分词处理,去掉停用词;设计并实现基于Hadoop的网络页面高效精准去重系统进行网页指印比对,高效提升计算速度。
本发明提出基于云计算的网络页面高效精准去重方法,通过前置处理和汉语分词准确提取到表征网页内容的特征字符串,设计并实现基于Hadoop的网络页面高效精准去重系统,最后通过实验分析验证了系统的可行性、高效性和精准性;本发明的主要包括:
一是网页前置处理,鉴于网页内容的特殊性,同时为提高去重精度,对抓取到的网页前置处理,剔除导航条、广告、版权信息的噪声内容;利用汉语分词工具对网页分词并计算词频作为权重,使用停用词表除去无意义的停用词,处理完成后的特征词组和权重作为去重算法的输入;
二是基于云计算的网页去重方法改良优化,以去重精度较高的SimHash算法为原型,设计适用于MapReduce计算模型的网页去重改良优化算法,该算法能够高效精确识别微小改动的网页,并能借助Hadoop平台有效缩短计算时间;
三是云计算网页去重系统的设计实现,设计并实现基于Hadoop的网页去重系统,包括前置处理模块、汉语分词模块和网页精准去重核心模块,其中网页精准去重核心模块基于Hadoop平台的并行计算方式运行;通过分析实验结果验证本发明相比现有技术的网页去重算法,其计算过程所用时间大幅缩短、结果精度明显提高。
一、网页去重的前置处理
(一)网页HTML标签补齐
标准HTML网页包含标签元素,必须按照HTML语言的定义使用便签,但由于是手工编写网页,加上浏览器处理HTML网页时一般的错误网页依然会正常显示,但这些包含错误的页面会影响网页去重的最终效果,必须除去错误内容,由于无法从语义上识别错误内容,必须依靠HTML标签含义除去这些错误的无用内容,所以第一步需补齐网页HTML标签,补齐标签分为三个步骤:
步骤1,解析HTML网页,按照HTML标签分类逐个取得标签的详细信息,并存入相应对象中;
步骤2,解析完成后检查标签是否正常闭合,是否有书写错误;
步骤3,针对没有正常闭合的标签进行补齐处理。
1、HTML标签解析和补齐
由于网页可能含有未正常闭合的标签,在解析网页时考虑这种情况,并将没有闭合的标签也作正常处理;首先读取整个网页,获取标签元素,建立该标签的对象,并读取标签中间的内容存入对象,若下一个标签不是对应的关闭标签,将下一标签作为该标签的子标签处理。
2、标签属性检验和补齐
整个网页解析完成后,将网页标签统一作标记;对正常关闭的标签不作处理,对于未正常关闭的标签,做进一步的分析,未正常关闭的标签本身可能包含描述标签的属性,这些标签属性内容会影响网页主题内容,如果这些内容不作处理,可能会混合到网页主体内容当中,最终会影响网页的去重检测,因此必须对未正常关闭的标签再做属性检验。在解析网页后,必须检查每个标签的属性及其内容,属性缺少引号或独立标签未正常关闭的按照HTML标签定义予以补齐。
(二)网页HTML去噪
网页中包含的与主体内容无关的内容为网页噪声,网页噪声是在网页内与页面主体内容无关的区域和项;网页遵循HTML语言,其整个页面都有一定布局,分左右两部分或是四个边缘部分,主体内容位于中间;网页噪声布局在页面中次要位置,网页主体内容放在网页的最显眼最中间部分;噪声部分是以较狭长的方式出现,因此采取比较页面长宽比来除去噪声。网页一般布局如图1所示。
根据HTML标签的使用场景和网页布局框架,分析除去网页噪声的流程。网页包含的表格标签<table>和</table>之间,检查标签是否还包含标签<p>或者<br>,包含这二种标签可认为该表格部分是网页主体内容;根据表格标签占整个网页的大小,检查标签<table>的width或者height属性,若这二个属性的值占页面的百分比较大则认为该表格标签包含的部分是网页主体内容;网页布局的复杂性导致可能出现多层嵌套标签<table>,这时认定网页的主体内容存在于嵌套的table中的某一层;还有一些网页并没有标签<table>,采用div+css方式布局网页,但其最终也是用div+css布局出类似于表格的样式展现网页内容,因此存在多层嵌套的div标签时也采用类似表格的处理方式;针对含有<table>标签的网页,假设主体内容都放在网页布局的中间部分,并且该部分长度和宽度占比都比较大,相对在网页边缘部分的内容,其重要性相比中间部分弱,该区域布局比较狭长;对于不含<table>标签的网页,通过div+css布局页面,若是多层次的嵌套div,依然按照表格的处理方式进行处理;若各个div标签包含的内容都比较独立,通过判断标签字数确实是否是主体内容;网页的主体内容字数较大,而相对用来修饰布局页面的内容字数很少,设定一个临界值,当div标签中字数大于临界值则认定为网页主体内容;最后将提取出的网页主体内容变转化为文本文件,对网页去重处理提供很大的方便。
最终处理后的网页是关于整个网页主体内容的一个文本文件,经过网页文件前置处理,包括网页HTML标签补齐,除去无用的噪声信息,得到一个关于网页主体内容的文本,针对这个文本做网页去重处理,相对于对整个网页文件做去重,其复杂度大幅降低,而且没有与网页主体内容无关的信息,其去重准确度大幅度提高。更为重要的是,前置处理后的网页显著简化网页的结构,其标签的剔除和噪声内容的删除使得网页的大小大幅减少,节省了大量的储存空间,也为进行网页去重减少了计算时间。
二、基于云计算的网页去重方法改良优化
现有技术的网页去重算法按照网页特征提取的粒度分为三类:一是以单词为粒度,典型算法有I-match,对数量很少的网页而言,使用单词级别比较相似性,但由于粒度较细,算法的复杂度过高,运用该算法处理海量网页信息不切实际,该类算法还有最大的缺陷:稳定性差,两个网页中只要有个别单词不同,最终计算结果千差万别;二是介于单词和文档之间为粒度提取网页特征值,比以整个网页为粒度小,比以单词为粒度大,粒度选择争议性大,如果粒度选择过大,变化较小的网页可能被认为不重复,如果粒度选择过小,一方面会增加计算量,另一方面也会因为过细的粒度导致网页内容变化较大但整体句子相似的网页判断为不重复,三是以整个网页为粒度的去重算法,该算法由于粒度为整个网页,很难识别出差别不大的网页,不推荐使用。利用网页特征值计算hash来表示网页的整个特征,在特征值的提取上千差万别,粒度太小导致计算量级数增长,粒度太大难以检测发现相似网页,取折中值,却因为网页内容千奇百怪,难以取舍最终的粒度。以上三种类型的算法是将原始网页的内容均匀的映射到一个hash值,如果二个网页计算出的hash值相等则表示网页相似,这种处理方式可能因为一个单词的差别最终导致计算的hash差别极大。
谷歌采用的去重算法是SimHash算法,SimHash将一个网页转换成一个64位特征字或特征码,通过判断二个网页计算出的特征字的海明距离是不是小于n(n一般取值为3),如果是则判定网页重复或者相似,反之则否;SimHash算法利用汉语分词工具除去经过网页前置处理文本中的停词虚词,得到关于这个网页的字符串列表,然后每一个字符串映射到a维空间的一个向量,对应相同的字符串,最终映射向量唯一;最终得到的向量的和代表整个网页的特征,称为网页的指印,长度64位SimHash计算出的指印,其海明距离在3以内的文本判定为相似文本。
SimHash算法简单实现容易,但面对海量网页的相似性检测,该算法不能实现较高的效率和准确度,考虑到时间和空间资源限制,本发明基于云计算的网页去重方法,其时间复杂度和空间复杂度都较为优异,假设从指印库中查询海明距离小于3的指印,依据抽屉原理只要将64位的二进制指印划分为4个部分,重新规划上述的64位指印,将4部分的任意一个部分作为新指印的前16位,总共组成4种新的指印,然后使用新的指印到指印库中精确匹配前16位相同的指印,假设指印库中存有234的hash指印,则新生成的每个指印返回2(34-16)=262144个查询结果,然后在这20多万的指印中比对,大幅减少计算海明距离的开销。其计算过程如图2所示。
(一)基于MapReduce的网页去重方法
网络蜘蛛定期从各网站抓取站点内的所有网页,获取网页后,经过网页前置处理,提取出网页指印,然后去原有的网页库中比对查询,除去相似的网页,若仅是网页标注的时间戳不同的网页,只需要更新网页库中的数据,将其数据戳更新为最新时间点的数据;关键步骤是利用提取到的网页特征字符串计算得到的网页指印与网页指印库中的数据进行查询比对,若该网页指印与网页指印库中的某个指印的海明距离小于3,则认定为该网页与网页库中的网页存在重复,该网页丢弃不作处理,如果网页指印和网页信息分开存储,同时删除该网页信息。
核心的网页指印库存储所有已经检测的指印,最开始指印库中没有数据,其建立过程为:建立一个存储网页指印信息的库文件,初始值设为空,当第一条网页指印需要比对时,判断库文件中数据是否为空,若库文件中无任何信息,直接将该条网页指印和网页信息插入库文件当中,然后后面抓取到的网页以库文件中的数据为基础进行比对查询,判定不重复则直接插入库文件,重复则丢弃;考虑到网页的其它相关信息也要保存,每个网页占用八行。
设置原始的指印库文件,设定文件名qFile,伴随数据的级数倍增长,qFile库文件可能达到数百GB甚至TB规模,在利用hadoop的hdfs文件系统后,hadoop将文件自动划分为块文件存储于各个数据结点DataNode当中;通过配置冗余因子的大小,将块文件的数据备份存储以保证数据的可靠性;在hadoop平台下将qFile文件移到hadoop的文件系统命令为:
Hadoop fs–put qFile hdfs://127.0.0.1:8082/hadoop/hadoopfile
网页经过前置处理后同样以库文件的格式存储,此时网页库的指印为空,整个HDFS文件系统下各个指印库起初都为空,利用Hadoop的负载均衡设置,当指印库的文件达到一定大小,HDFS文件系统自动将文件分割成小文件部署到其它DataNode结点存放;由于库文件存放的关于网页的详细信息,而计算过程只需指印和网页内容,本发明设计的库文件存放格式是以行的形式组织,每行都存放特定的数据,Hadoop提供的读入读出工具类已不能满足要求,因此重新定义用于读出库文件的两个读入读出工具类,其中读入工具类中next方法详细定义了读取库文件数据的过程。
网页数据以key、value键值对的形式读取,这个过程同样适用于网页前置处理后的库文件读入读出过程;其中skip函数用于定位网页内容所在行,网页真正的内容存储在第七行,以行的形式读取value数据时,需要定位到第七行。
前置处理过程将读取到的网页指印分成四块,为提高算法效率,一次读取的网页数量不少于100条,因此分别对这100条网页指印扩展,扩展后的指印以数组形式存储,然后对数组中数据进行桶排序。
Map函数接受前置处理得到的扩展待比对指印列表参数,然后取得指印库的一条指印记录,待比对指印也要扩展为四块,将扩展后的四条指印与扩展后的指印库列表进行比对,若发现扩展后的待比对指印与指印库列表中的数据其汉明距离小于3,将该条指印库中的指印作为key,待比对指印的原始指印作为value输出,提供给Reduce任务继续下一步的处理;合并阶段的工作是将各个Map任务的比对结果合并输出,将得到的结果都转化为文本类型输出到最终的结果文件中;通过Reduce任务最终得到待比对指印是否存在重复,因此最后将重复的网页剔除;若没有重复的指印,该比对指印需要添加到指印库中。具体操作过程为:判断Reduce结果的value是否有数据,将出现在value数组中的指印对应的网页信息删除,若value中没有数据,说明不存在重复,将新搜集的指印加入到原指印库中去,将其对应的网页信息加入对应的网页信息库中;利用hadoop分布式计算平台的横向扩展性,通过增加机器数提升系统的运行效率,从而缩短算法执行时间。
(二)算法复杂度分析
SimHash算法用于比对指印采取时间和空间折中的方式,即通过部分空间换取部分时间,指印库的指印在比对的时候被复制了4份,因此其空间复杂度为C(4m),m为总的指印数量。
复制的指印按照前16位进行桶排序,4m的指印会有4m*216种排序结果,当一个新的指印要比对时,该指印也会被分成四块,用每块占16位,分别用每块的16位和指印库比对,在采用桶排序之后,每块只需要返回和前16位相同的指印候选记录,返回的结果只有4m/216个候选结果,相比一次性返回4m记录,分块排序后返回记录减少216倍,即原先要返回亿级别记录,现在只需要返回百万级别记录,然后在返回的候选记录中进行海明距离计算,大幅减少计算成本,因此算法的时间复杂度为C(4m/2k),其中m为总的指印数量,k为每块bit位数目。
基于Hadoop平台相当于通过扩展计算机数量缩短时间,计算成本会伴随集群中计算机数量的增加而减少,算法的时间复杂度为C(4m/(2k*m)),其中m为集群平均并行化的数目。
三、基于Hadoop云平台的网页去重系统
本发明基于网页前置处理模块和基于hadoop的Map/Reduce计算模型的SimHash算法,结合开源框架设计并实现了基于Hadoop云平台的网页去重系统。该系统包括网页前置处理模块(包括标签补齐和网页去噪)、汉语分词处理模块、网页精准去重核心模块。系统在线实时运行,采用蜘蛛程序抓取网页后实时检测判重的方式;基于Hadoop云平台的网页去重系统只是搜索引擎的一部分,为更好的衔接搜索引擎的其它模块,本发明将提出能够与网页去重相连接的上下游系统无缝结合的方案,即基于Hadoop云平台的网页去重系统是一个单独的系统,能够独立运行,又能够对外提供接口,与蜘蛛系统和索引系统共同工作。
(一)系统功能模块
基于Hadoop云平台的网页去重系统是网络蜘蛛系统的下游系统,网络蜘蛛程序按照指定的策略爬取到网页之后,将网页文件传输给网页去重系统,网页经过去重系统处理后交给下游系统索引系统;本发明的网页去重系统共分为三部分,包括网页前置处理模块、汉语分词模块和网页精准去重核心模块。
1、网页前置处理模块
网页前置处理模块负责对抓取到的网页进行语法解析、标签属性检验和网页去噪,通过对HTML网页解析,按照标签分类提取网页内容,并对未正常关闭的标签作标记,标签属性检验是对标签包含的属性作分析,防止未闭合的属性描述混合到网页主体内容中,网页去噪则通过网页布局及标签的特殊使用场景,去掉广告条、导航信息和版权信息噪声信息,最后隐藏掉标签以纯文本形式保存。网页前置处理流程如图3所示。
获取网页文件后,遍历网页内容构建DOM树,DOM适用于HTML网页文件的编程接口,通过DOM提供的各种访问HTML网页元素,方便取得网页的便签及其内容,并能动态的增加修改网页内容。构造完成后的DOM树结构如图4所示。
完成DOM树构建之后,遍历DOM树检查各结点元素,若遇到未正常关闭的标签通过DOM提供的方法补齐标签;完成标签元素的修改,通过构造DOM树、标签补齐处理网页后,遍历DOM树获得完整的网页内容,此时的网页还包括诸多的无用的噪声内容,根据本发明提出的网页去噪处理方式,设置网页去噪器。网页去噪器的处理流程为:
步骤一,提取<meta>标签keywords属性内容;
步骤二,提取<body>内容,过滤<script>、<style>、<li>、<a>标签包含内容;
步骤三,提取连续的<p><div><spam>标签包含内容;
步骤四,提取非<p><spam><div>标签内容但含有keywords内容的标签内容;
步骤五,提取剩余标签文本字符个数大于25的文本内容;
步骤六,合并提取的文本;
网页去噪器根据网页表格和DIV对整个网页的占比选取网页主体内容,通过以上步骤的过滤筛选,高效除去包含广告条、版权信息、布局修饰标签及其内容。
2、汉语分词模块
汉语分词模块对网页前置处理后的文本进行分词,同时去掉停词、虚词没有实际意义的短语或者词组,最终得到一个关于网页主体内容的特征集合。本发明采用中国科学院计算技术研究所提供的汉语分词系统MLPIR,该系统提供开发接口,开发者在系统之上实现定制化的功能。本系统汉语分词模块实现读取中文文本、去掉非中文字符、汉语分词处理和除去无意义的停词虚词;其中非中文字符包括标点符号、文档格式字符和英文字符,分词完成后以数组的形式输出;停用词是语气词、助词、人称代词,本发明采用哈工大提供的停用词表检测除去停用词;最后将分词后的内容以数组的形式输出,其流程如图5所示。
3、网页精准去重核心模块
经过网页前置处理和汉语分词后,网页内容被组织成表征整个网页的字符数组,作为网页去重算法的基本输入,网页精准去重模块主要是对SimHash改良优化算法的实现,面对海量网页信息,单机处理模式已经不能满足大规模的计算需求,通过多台计算机分机处理能够明显减少计算时间,但由于机器的增加必然导致更多的维护任务,本发明提出将文件存储和相似性检测任务交由Hadoop云平台管理,充分利用Hadoop云平台提供的HDFS文件系统和MapReduce计算模型并行处理海量网页指印比对过程。
本系统指印库的建立从零开始逐渐累计,起初只有一个空文件,并提交给Hadoop的文件系统HDFS管理,当第一次比对过程没有发现重复,将该记录插入到这个文件当中,当文件足够大时Hadoop申请重新分配文件,将指印库均匀分配到各个数据结点当中。处理流程如图6所示。
如果当前指印和指印库中某一条记录相似,但网页发布日期却不同,根据网页发布日期确定是否丢弃该网页,如果当前指印对应网页的发布日期较早,则将该网页指印插入指印库,对应的网页信息也存储到本地,如果当前指印对应的网页发布日期较迟,则认为当前网页抄袭重复,作丢弃处理。
(二)系统对外接口
系统只搜索引擎系统的中间系统,结合海量数据处理,需要结合上下游系统的共同作业才能高效完成。为能使系统更好得与外部耦合衔接,必须设计能够满足需求的通用接口,方便上下游系统调用。
1、上游系统接口
网页蜘蛛系统负责搜集网页,对搜集到的网页有二种处理方式:一种是将网页下载存储在本地,存储到本地的网页交由下游系统处理;另一种是网页抓取到直接发送给下游系统,以文件流的形式。因此设计两种类型的接口对接上游系统。
第一种,直连数据库接口:网页数据存储在本地,存放在本地数据库中,系统提供直接访问网页数据库接口,通过访问存储在本地数据库中的网页文件来获取到要处理的网页;通过设定时间戳,定时获取一定时间间隔内的网页数据;由于数据库种类较多,针对每个数据库设计一个访问接口是不实际的,根据JDBC规范,设计一个提供通用的数据库访问接口,通过匹配不同的驱动器来选取合适的数据库连接,并提供可配置化的参数动态配置访问的数据库。
第二种,文件流接口:对蜘蛛程序直接将抓取到的网页发送给本系统,设计一个接受文件流的接口,这个接口可以接受单个文件,也可以接受文件列表;考虑到蜘蛛程序抓取网页的速度和本系统去重处理的计算速度可能不匹配,为了不让本系统的运行影响蜘蛛程序,在二个系统直接设置缓冲层,通过设计一定数目的缓冲队列,蜘蛛程序抓取到网页后立即放入缓冲队列,然后继续下一个网页的下载,本系统则从缓冲队列中提出网页文件流数据;通过设置一个缓冲队列管理器管理队列,提高两个系统之间协调工作。
2、下游系统接口设计
网页去重处理完成后,建立索引库,用户最终是通过搜索窗口输入关键字来获取想要的内容,而索引系统提供的索引库正是为用户提供检索服务的。因此索引系统是主要的下游系统,系统去重完成后的信息是存放在指印库中的,下一步就是提取这些文件并建立索引。因此索引系统直接处理去重完成后的文件,包括二种处理方式:一种是系统调用索引系统用于建立索引文件的接口并做相应的索引工作;另一种是本系统独立出来,不直接与索引系统发生交互,而是由索引系统直接访问去重后的文件,提取文件内容并建立索引。
本发明利用网页内容的结构化特性,首先对网页进行前置处理,修复网页中存在的错误标签以及未正常闭合的标签,只提取网页正文部分即<body>标签部分的内容,网页正文部分包含很多广告信息、版权信息、以及用于布局修饰的其它信息,针对这些内容出现在网页的位置和占比,本发明提出能够高效消除噪声的前置处理算法,然后对去噪后的文本作分词处理,利用停用词表消除文本中的虚词语气词,得到的词组作为SimHash改良优化算法的输入;本发明基于Hadoop云平台处理大数据的优势,将SimHash改良优化算法应用到Hadoop平台,相比单机计算,基于Hadoop云平台的计算速度得到了大幅提升。通过样本数据对比测试,验证了本发明系统的可行性和较高的计算效率和准确度。
Claims (10)
1.基于云计算的网络页面高效精准去重系统,其特征在于,首先对网页结构进行前置处理,补齐未正常关闭的标签,去掉没有实际意义的标签元素,去掉跟网页主题内容无关的内容;对网页结构重新整理后,利用汉语分词工具,对网页内容作分词处理,去掉停用词;设计并实现基于Hadoop的网络页面高效精准去重系统进行网页指印比对,提升计算速度;
本发明通过前置处理和汉语分词准确提取到表征网页内容的特征字符串,设计并实现基于Hadoop的网络页面高效精准去重系统;主要包括:
一是网页前置处理,对抓取到的网页前置处理,剔除导航条、广告、版权信息的噪声内容;利用汉语分词工具对网页分词并计算词频作为权重,使用停用词表除去无意义的停用词,处理完成后的特征词组和权重作为去重算法的输入;
二是基于云计算的网页去重方法改良优化,以去重精度较高的SimHash算法为原型,设计适用于MapReduce计算模型的网页去重改良优化算法,精确识别微小改动的网页,借助Hadoop平台有效缩短计算时间;
三是云计算网页去重系统的设计实现,设计并实现基于Hadoop的网页去重系统,包括前置处理模块、汉语分词模块和网页精准去重核心模块,其中网页精准去重核心模块基于Hadoop平台的并行计算方式运行,计算过程所用时间缩短、结果精度提高。
2.根据权利要求1所述的基于云计算的网络页面高效精准去重系统,其特征在于,网页去重的前置处理的第一步为补齐网页HTML标签,补齐标签分为三个步骤:
步骤1,解析HTML网页,按照HTML标签分类逐个取得标签的详细信息,并存入相应对象中;
步骤2,解析完成后检查标签是否正常闭合,是否有书写错误;
步骤3,针对没有正常闭合的标签进行补齐处理;
HTML标签解析和补齐:在解析网页时考虑网页可能含有未正常闭合的标签的情况,并将没有闭合的标签也作正常处理;首先读取整个网页,获取标签元素,建立该标签的对象,并读取标签中间的内容存入对象,若下一个标签不是对应的关闭标签,将下一标签作为该标签的子标签处理;
标签属性检验和补齐:整个网页解析完成后,将网页标签统一作标记;对正常关闭的标签不作处理,对于未正常关闭的标签,做进一步的分析,对未正常关闭的标签再做属性检验;在解析网页后,检查每个标签的属性及其内容,属性缺少引号或独立标签未正常关闭的按照HTML标签定义予以补齐。
3.根据权利要求2所述的基于云计算的网络页面高效精准去重系统,其特征在于,网页HTML去噪采取比较页面长宽比来除去噪声,根据HTML标签的使用场景和网页布局框架,分析除去网页噪声的流程;网页包含的表格标签<table>和</table>之间,检查标签是否还包含标签<p>或者<br>,包含这二种标签可认为该表格部分是网页主体内容;根据表格标签占整个网页的大小,检查标签<table>的width或者height属性,若这二个属性的值占页面的百分比较大则认为该表格标签包含的部分是网页主体内容;网页布局的复杂性导致可能出现多层嵌套标签<table>,这时认定网页的主体内容存在于嵌套的table中的某一层;还有一些网页并没有标签<table>,采用div+css方式布局网页,但其最终也是用div+css布局出类似于表格的样式展现网页内容,因此存在多层嵌套的div标签时也采用类似表格的处理方式;针对含有<table>标签的网页,假设主体内容都放在网页布局的中间部分,并且该部分长度和宽度占比都比较大,相对在网页边缘部分的内容,其重要性相比中间部分弱,该区域布局比较狭长;对于不含<table>标签的网页,通过div+css布局页面,若是多层次的嵌套div,依然按照表格的处理方式进行处理;若各个div标签包含的内容都比较独立,通过判断标签字数确实是否是主体内容;网页的主体内容字数较大,而相对用来修饰布局页面的内容字数很少,设定一个临界值,当div标签中字数大于临界值则认定为网页主体内容;最后将提取出的网页主体内容变转化为文本文件。
4.根据权利要求1所述的基于云计算的网络页面高效精准去重系统,其特征在于,基于云计算的网页去重方法改良优化,以去重精度较高的SimHash算法为原型,SimHash将一个网页转换成一个64位特征字或特征码,通过判断二个网页计算出的特征字的海明距离是不是小于n,如果是则判定网页重复或者相似,反之则否;SimHash算法利用汉语分词工具除去经过网页前置处理文本中的停词虚词,得到关于这个网页的字符串列表,然后每一个字符串映射到a维空间的一个向量,对应相同的字符串,最终映射向量唯一;最终得到的向量的和代表整个网页的特征,为网页的指印,长度64位SimHash计算出的指印,其海明距离在3以内的文本判定为相似文本;
本发明假设从指印库中查询海明距离小于3的指印,依据抽屉原理只要将64位的二进制指印划分为4个部分,重新规划上述的64位指印,将4部分的任意一个部分作为新指印的前16位,总共组成4种新的指印,然后使用新的指印到指印库中精确匹配前16位相同的指印。
5.根据权利要求4所述的基于云计算的网络页面高效精准去重系统,其特征在于,基于MapReduce的网页去重方法:网络蜘蛛定期从各网站抓取站点内的所有网页,获取网页后,经过网页前置处理,提取出网页指印,然后去原有的网页库中比对查询,除去相似的网页,若仅是网页标注的时间戳不同的网页,只需要更新网页库中的数据,将其数据戳更新为最新时间点的数据;关键步骤是利用提取到的网页特征字符串计算得到的网页指印与网页指印库中的数据进行查询比对,若该网页指印与网页指印库中的某个指印的海明距离小于3,则认定为该网页与网页库中的网页存在重复,该网页丢弃不作处理,如果网页指印和网页信息分开存储,同时删除该网页信息;
核心的网页指印库存储所有已经检测的指印,最开始指印库中没有数据,其建立过程为:建立一个存储网页指印信息的库文件,初始值设为空,当第一条网页指印需要比对时,判断库文件中数据是否为空,若库文件中无任何信息,直接将该条网页指印和网页信息插入库文件当中,然后后面抓取到的网页以库文件中的数据为基础进行比对查询,判定不重复则直接插入库文件,重复则丢弃;考虑到网页的其它相关信息也要保存,每个网页占用八行;
Map函数接受前置处理得到的扩展待比对指印列表参数,然后取得指印库的一条指印记录,待比对指印也要扩展为四块,将扩展后的四条指印与扩展后的指印库列表进行比对,若发现扩展后的待比对指印与指印库列表中的数据其汉明距离小于3,将该条指印库中的指印作为key,待比对指印的原始指印作为value输出,提供给Reduce任务继续下一步的处理;合并阶段的工作是将各个Map任务的比对结果合并输出,将得到的结果都转化为文本类型输出到最终的结果文件中;通过Reduce任务最终得到待比对指印是否存在重复,因此最后将重复的网页剔除;若没有重复的指印,该比对指印需要添加到指印库中;具体操作过程为:判断Reduce结果的value是否有数据,将出现在value数组中的指印对应的网页信息删除,若value中没有数据,说明不存在重复,将新搜集的指印加入到原指印库中去,将其对应的网页信息加入对应的网页信息库中;利用hadoop分布式计算平台的横向扩展性,通过增加机器数提升系统的运行效率,从而缩短算法执行时间。
6.根据权利要求1所述的基于云计算的网络页面高效精准去重系统,其特征在于,本发明基于网页前置处理模块和基于hadoop的Map/Reduce计算模型的SimHash算法,结合开源框架设计并实现了基于Hadoop云平台的网页去重系统;系统在线实时运行,采用蜘蛛程序抓取网页后实时检测判重的方式;基于Hadoop云平台的网页去重系统只是搜索引擎的一部分,提出能够与网页去重相连接的上下游系统无缝结合的方案,即基于Hadoop云平台的网页去重系统是一个单独的系统,能够独立运行,又能够对外提供接口,与蜘蛛系统和索引系统共同工作;
基于Hadoop云平台的网页去重系统是网络蜘蛛系统的下游系统,网络蜘蛛程序按照指定的策略爬取到网页之后,将网页文件传输给网页去重系统,网页经过去重系统处理后交给下游系统索引系统;本发明的网页去重系统共分为三部分,包括网页前置处理模块、汉语分词模块和网页精准去重核心模块。
7.根据权利要求6所述的基于云计算的网络页面高效精准去重系统,其特征在于,网页前置处理模块负责对抓取到的网页进行语法解析、标签属性检验和网页去噪,通过对HTML网页解析,按照标签分类提取网页内容,并对未正常关闭的标签作标记,标签属性检验是对标签包含的属性作分析,防止未闭合的属性描述混合到网页主体内容中,网页去噪则通过网页布局及标签的特殊使用场景,去掉广告条、导航信息和版权信息噪声信息,最后隐藏掉标签以纯文本形式保存;
获取网页文件后,遍历网页内容构建DOM树,DOM适用于HTML网页文件的编程接口,通过DOM提供的各种访问HTML网页元素,方便取得网页的便签及其内容,并能动态的增加修改网页内容;
完成DOM树构建之后,遍历DOM树检查各结点元素,若遇到未正常关闭的标签通过DOM提供的方法补齐标签;完成标签元素的修改,通过构造DOM树、标签补齐处理网页后,遍历DOM树获得完整的网页内容,此时的网页还包括诸多的无用的噪声内容,根据本发明提出的网页去噪处理方式,设置网页去噪器;网页去噪器的处理流程为:
步骤一,提取<meta>标签keywords属性内容;
步骤二,提取<body>内容,过滤<script>、<style>、<li>、<a>标签包含内容;
步骤三,提取连续的<p><div><spam>标签包含内容;
步骤四,提取非<p><spam><div>标签内容但含有keywords内容的标签内容;
步骤五,提取剩余标签文本字符个数大于25的文本内容;
步骤六,合并提取的文本;
网页去噪器根据网页表格和DIV对整个网页的占比选取网页主体内容,通过以上步骤的过滤筛选,除去包含广告条、版权信息、布局修饰标签及其内容。
8.根据权利要求6所述的基于云计算的网络页面高效精准去重系统,其特征在于,汉语分词模块对网页前置处理后的文本进行分词,同时去掉停词、虚词没有实际意义的短语或者词组,最终得到一个关于网页主体内容的特征集合;本发明采用中国科学院计算技术研究所提供的汉语分词系统MLPIR,该系统提供开发接口,开发者在系统之上实现定制化的功能,本系统汉语分词模块实现读取中文文本、去掉非中文字符、汉语分词处理和除去无意义的停词虚词;其中非中文字符包括标点符号、文档格式字符和英文字符,分词完成后以数组的形式输出;停用词是语气词、助词、人称代词,本发明采用哈工大提供的停用词表检测除去停用词;最后将分词后的内容以数组的形式输出。
9.根据权利要求6所述的基于云计算的网络页面高效精准去重系统,其特征在于,网页精准去重核心模块将文件存储和相似性检测任务交由Hadoop云平台管理,充分利用Hadoop云平台提供的HDFS文件系统和MapReduce计算模型并行处理海量网页指印比对过程;
本系统指印库的建立从零开始逐渐累计,起初只有一个空文件,并提交给Hadoop的文件系统HDFS管理,当第一次比对过程没有发现重复,将该记录插入到这个文件当中,当文件足够大时Hadoop申请重新分配文件,将指印库均匀分配到各个数据结点当中;
如果当前指印和指印库中某一条记录相似,但网页发布日期却不同,根据网页发布日期确定是否丢弃该网页,如果当前指印对应网页的发布日期较早,则将该网页指印插入指印库,对应的网页信息也存储到本地,如果当前指印对应的网页发布日期较迟,则认为当前网页抄袭重复,作丢弃处理。
10.根据权利要求1所述的基于云计算的网络页面高效精准去重系统,其特征在于,本发明设计两种类型的接口对接上游系统:
第一种,直连数据库接口:网页数据存储在本地,存放在本地数据库中,系统提供直接访问网页数据库接口,通过访问存储在本地数据库中的网页文件来获取到要处理的网页;通过设定时间戳,定时获取一定时间间隔内的网页数据;由于数据库种类较多,针对每个数据库设计一个访问接口是不实际的,根据JDBC规范,设计一个提供通用的数据库访问接口,通过匹配不同的驱动器来选取合适的数据库连接,并提供可配置化的参数动态配置访问的数据库;
第二种,文件流接口:对蜘蛛程序直接将抓取到的网页发送给本系统,设计一个接受文件流的接口,这个接口可以接受单个文件,也可以接受文件列表;考虑到蜘蛛程序抓取网页的速度和本系统去重处理的计算速度可能不匹配,在二个系统直接设置缓冲层,通过设计一定数目的缓冲队列,蜘蛛程序抓取到网页后立即放入缓冲队列,然后继续下一个网页的下载,本系统则从缓冲队列中提出网页文件流数据;通过设置一个缓冲队列管理器管理队列,提高两个系统之间协调工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011183312.2A CN112307303A (zh) | 2020-10-29 | 2020-10-29 | 基于云计算的网络页面高效精准去重系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011183312.2A CN112307303A (zh) | 2020-10-29 | 2020-10-29 | 基于云计算的网络页面高效精准去重系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112307303A true CN112307303A (zh) | 2021-02-02 |
Family
ID=74332027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011183312.2A Withdrawn CN112307303A (zh) | 2020-10-29 | 2020-10-29 | 基于云计算的网络页面高效精准去重系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112307303A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239305A (zh) * | 2021-05-19 | 2021-08-10 | 中国电子科技集团公司第三十研究所 | 一种云计算环境下的目标探测与识别方法 |
CN113515522A (zh) * | 2021-07-19 | 2021-10-19 | 南京信息职业技术学院 | 一种基于数据挖掘技术的标签自动分类方法 |
CN113704586A (zh) * | 2021-08-30 | 2021-11-26 | 泰戈特(北京)工程技术有限公司 | 一种去重目标页面确定方法、装置、计算机设备及计算机可读存储介质 |
CN115687736A (zh) * | 2022-12-30 | 2023-02-03 | 北京长亭未来科技有限公司 | 一种web应用的搜索方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645082A (zh) * | 2009-04-17 | 2010-02-10 | 华中科技大学 | 基于并行编程模式的相似网页去重系统 |
CN102567521A (zh) * | 2011-12-29 | 2012-07-11 | 维构(上海)文化传媒有限公司 | 网页数据抓取过滤方法 |
CN102682085A (zh) * | 2012-04-18 | 2012-09-19 | 北京十分科技有限公司 | 一种网页去重的方法 |
CN103559259A (zh) * | 2013-11-04 | 2014-02-05 | 同济大学 | 基于云平台的消除近似重复网页方法 |
CN107808000A (zh) * | 2017-11-13 | 2018-03-16 | 哈尔滨工业大学(威海) | 一种暗网数据采集与抽取系统及方法 |
WO2020119143A1 (zh) * | 2018-12-10 | 2020-06-18 | 厦门市美亚柏科信息股份有限公司 | 一种数据库删除记录的恢复方法及系统 |
-
2020
- 2020-10-29 CN CN202011183312.2A patent/CN112307303A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645082A (zh) * | 2009-04-17 | 2010-02-10 | 华中科技大学 | 基于并行编程模式的相似网页去重系统 |
CN102567521A (zh) * | 2011-12-29 | 2012-07-11 | 维构(上海)文化传媒有限公司 | 网页数据抓取过滤方法 |
CN102682085A (zh) * | 2012-04-18 | 2012-09-19 | 北京十分科技有限公司 | 一种网页去重的方法 |
CN103559259A (zh) * | 2013-11-04 | 2014-02-05 | 同济大学 | 基于云平台的消除近似重复网页方法 |
CN107808000A (zh) * | 2017-11-13 | 2018-03-16 | 哈尔滨工业大学(威海) | 一种暗网数据采集与抽取系统及方法 |
WO2020119143A1 (zh) * | 2018-12-10 | 2020-06-18 | 厦门市美亚柏科信息股份有限公司 | 一种数据库删除记录的恢复方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239305A (zh) * | 2021-05-19 | 2021-08-10 | 中国电子科技集团公司第三十研究所 | 一种云计算环境下的目标探测与识别方法 |
CN113515522A (zh) * | 2021-07-19 | 2021-10-19 | 南京信息职业技术学院 | 一种基于数据挖掘技术的标签自动分类方法 |
CN113515522B (zh) * | 2021-07-19 | 2024-05-24 | 南京信息职业技术学院 | 一种基于数据挖掘技术的标签自动分类方法 |
CN113704586A (zh) * | 2021-08-30 | 2021-11-26 | 泰戈特(北京)工程技术有限公司 | 一种去重目标页面确定方法、装置、计算机设备及计算机可读存储介质 |
CN115687736A (zh) * | 2022-12-30 | 2023-02-03 | 北京长亭未来科技有限公司 | 一种web应用的搜索方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112307303A (zh) | 基于云计算的网络页面高效精准去重系统 | |
US9183436B2 (en) | Matching text to images | |
CN101593200B (zh) | 基于关键词频度分析的中文网页分类方法 | |
US9323731B1 (en) | Data extraction using templates | |
US10360294B2 (en) | Methods and systems for efficient and accurate text extraction from unstructured documents | |
US11797607B2 (en) | Method and apparatus for constructing quality evaluation model, device and storage medium | |
US9875305B2 (en) | System, method and computer program product for protecting derived metadata when updating records within a search engine | |
CN114238573B (zh) | 基于文本对抗样例的信息推送方法及装置 | |
CN108520007B (zh) | 万维网网页信息提取方法、存储介质及计算机设备 | |
Sivakumar | Effectual web content mining using noise removal from web pages | |
CN112667940A (zh) | 基于深度学习的网页正文抽取方法 | |
CN116775972A (zh) | 基于信息技术的远端资源整理服务方法和系统 | |
CN110413307B (zh) | 代码功能的关联方法、装置及电子设备 | |
CN113901169A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN104778232A (zh) | 一种基于长查询的搜索结果的优化方法和装置 | |
KR20210129465A (ko) | 연구노트 관리 장치 및 이를 이용한 연구노트 검색 방법 | |
TWI793432B (zh) | 工程專案文件管理方法與系統 | |
Malhotra et al. | Web page segmentation towards information extraction for web semantics | |
US20050154703A1 (en) | Information partitioning apparatus, information partitioning method and information partitioning program | |
KR100659370B1 (ko) | 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법 | |
CN114780712A (zh) | 一种基于质量评价的新闻专题生成方法及装置 | |
CN116340259A (zh) | 文档管理方法、文档管理系统和计算设备 | |
CN115374222A (zh) | 一种知识图谱构建方法、装置和存储介质 | |
CN115481240A (zh) | 一种数据资产质量检测方法和检测装置 | |
Thottempudi | A visual narrative of ramayana using extractive summarization topic modeling and named entity recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210202 |