APP下载

基于文本及HTML标签密度的网页正文提取

2022-08-11杨大为王诗念包立岩要虹吏

沈阳理工大学学报 2022年4期
关键词:正文网页页面

杨大为,王诗念,包立岩,要虹吏,刘 畅

(沈阳理工大学 信息科学与工程学院,沈阳 110159)

随着互联网的发展,海量的网页为互联网用户提供了源源不断的信息。然而,由于网站的商业性质,网页提供信息的同时也包含了广告内容,同时也引入了大量HTML标签和JavaScript代码用于页面的美化。这些噪声的存在一定程度上会干扰读者的阅读,也会影响搜索引擎的搜索效率[1]。正确去除网页噪音同时提取正文信息,对大数据时代的文本数据挖掘具有重大意义。

1 相关研究

1.1 基于包装器的方法

根据HTML结构的内部特征完成内容提取的方法称为包装器方法,该方法通过分析网页代码的方式手动配置HTML页面的正则表达式并采用XML路径查询语言Xpath实现程序自动或半自动内容提取[2]。陈迎仁等[3]提出一种基于特征相似度的方法使旧包装器自适应提取新的页面。曾燕清等[4]提出一种通过比对HTML源码进而自动提取Xpath代码算法,取得了较好的效果。

包装器方法针对特定的网页模版效果较好,当网页结构发生改变或面对其他模版的网页时需要重新编写提取规则,增加了维护成本。自动生成的包装器虽然减轻了人工负担,但需要样本学习,创建的成本也很高。

1.2 基于视觉的方法

基于视觉的方法是模拟人眼浏览网页的视觉特征判断信息的抽取区域。早期微软亚洲研究所提出了基于视觉信息的网页分块算法[5],基于网页视觉内容结构信息结合文档对象模型(Document Object Model,DOM)树对网页进行处理。近年来,该方法有了诸多改进。王鹏[6]提出基于视觉信息的Web数据提取系统,能将用户操作记录下来,然后自动完成页面的提取。张鑫等[7]提出一种基于视觉特征和领域本体的Web信息抽取算法,该算法利用HTML标签和层叠样式表(Cascading Style Sheets,CSS)所定义的网页字体、背景颜色、分块等页面视觉特征准确划定信息抽取区域。Zeleny J等[8]提出利用视觉结合语义分割页面DOM树的算法。

基于视觉的方法需要浏览器完全渲染一个Web页面才能进行解析,这导致提取效率大打折扣,网页数量大时需要占用大量的内存和CPU资源,且对于网页布局不同的情况缺乏通用性[9]。

1.3 基于统计的方法

基于统计的方法根据统计的标签节点信息表示其主题性,再利用主题性提取信息。朱泽德等[10]提出一种基于文本密度模型的Web正文抽取算法,通过融合网页结构和语言特征的统计模型,将网页中文档按文本行转化后,再经高斯平滑修正得到密度序列,最后采用改进的最大子序列分割序列算法抽取正文。Weninger T等[11]提出基于标签比率的内容提取算法,使用HTML标记比率实现了从不同布局的页面提取正文内容。近年来,随着人工智能的广泛应用,融合深度学习的统计方法逐步被采用。对于结构较为固定的页面,赵朗[12]提出的基于深度学习的Web信息抽取方法获得了较好的效果。

基于统计的方法能很好地应用于含大量噪声且信息量少的网页,但忽略了提取信息区域内部噪声和节点间的关系,容易将正文连同噪声一并提取。

2 TTD算法设计

早期有学者提出过正文提取(Body Text Extraction,BTE)算法[13],利用文本密度进行正文的提取。洪鸿辉等[14]提出基于文本及符号密度(Text and Symbol Density,TSD)的网页正文提取方法,文本密度计算简单且具有一定的通用性,对大部分HTML结构的网页提取具有良好的效果。本文在此基础上提出一种新的基于文本及HTML标签密度(Text and HTML Tag Density,TTD)的提取方法,将文本密度与标签密度相结合,综合判断正文所在位置并完成提取。

2.1 提取系统设计

一个典型的HTML页面基本结构如下。

页面中包含了、等元素,而元素下包含了要提取的正文部分。随着Web技术的发展,网站为了定制网页的表现形式和提高网页视觉效果,在源文件中加入大量JaveScript和CSS代码,因此在提取正文之前要对网页源文件进行预处理,去除与正文内容不相关的噪音内容。其次,由于HTML语言书写的随意性,导致有些网页源代码不规范,例如标签缺失、嵌套不准确等,因此需要将缺失的HTML标签补齐、修改不正确的嵌套关系。对处理后的HTML页面使用统一码归一格式化对网页源代码进行归一化,把特殊符号转换为普通符号,并将得到的HTML文档格式化以方便Xpath提取的内容,并将得到的HTML结构转化为DOM树的形式。通过DOM的层次结构可以依次计算出各个标签层次的文本密度及标签密度,最终通过TTD算法判断出正文所在节点,进而完成提取。TTD算法流程和提取结果如图1所示。

图1 TTD算法流程和提取结果

2.2 基于文本及HTML标签密度的提取方法

典型的网页DOM树结构如图2所示。

图2 典型的网页DOM树结构

由图2可见,结构中包含大量的标签元素。真正所需的正文内容仅在标签内,而
标签内又包含了大量的

标签,这些标签下的文本内容才是最核心的正文部分,而这部分内容也是全网页文本密度与标签密度最大的部分,因此通过对文本和标签的密度进行计算可确定需要提取的部分。虽然不同网站的页面结构差异巨大,但通过观察仍然可以发现一些共性[15]。通过对比不同HTML页面可以发现,网页正文部分无论如何组织最终都集中在同一个祖先HTML标签下,在该祖先标签下存在大量

用于文本的分段、用于字体加粗,不同级别的标题也会用进行区分,正文中也会出现带链接的文本用于向读者提供相关的信息。另外,一些网页除了正文之外的评论区、推荐简介也存在

或其他标签包含多个段落标签

且文本密度较高的情况,简单采用文本密度或标签密度的方式可能会造成出现非正文内容密度大于正文内容的情况,因此需要进一步分析。常见的密度算法虽然都是计算行的密度[16]结合上下文环境或机器学习的方式实现,仍然不能完全解决上述问题。本文采用一种简化思想,将正文部分看作一个整体,不再计算正文内容每行单独的密度,在解析内容时忽略掉

等子标签,由此整个正文部分的文本字符数量应是页面内最多的,计算得出的文本密度也往往是最大的,但仍然有可能出现非正文部分文本密度较大,对最终判定造成干扰。因此,结合正文区域存在大量

或其他同类型子标签的特点,再计算此类子标签密度。与文本密度类似,正文区域内的段落标签密度也将是整个页面中较大的,通过文本密度和段落标签密度的结合综合判断网页正文部分,进而完成提取。

2.3 算法实现

假设i为网页DOM树的当前节点,本文对文本密度tdi定义为

(1)

式中:ti为当前节点的字符总数;li为当前节点带链接的字符数;pi为当前节点的标签数;lpi为当前节点带链接的标签数。算法通过深度遍历DOM树计算出每个节点的文本密度值。

由于实际中的网页结构复杂多样,必须考虑各种因素的干扰。参考李慧等[17]提出的虚假评论检测方法得分评价,设想建立一个评价模型筛选节点。经实验后可知文本密度与标签数量在一定范围内成正比,超出范围后由于子节点标签少造成子节点文本密度高于全文。典型的网页文本密度与标签数量关系散点图如图3所示。

图3 文本密度与标签数量关系

因此,考虑节点的标签数量达到阈值后,整体得分才能取得正收益,对节点下的标签数量取对数可满足此条件。综合考虑计算成本和准确度,建立如下的数学模型计算节点得分score。

score=tdi×log10(lui)

(2)

式中lui表示当前节点下含字符的标签数量。本文随机选取一个页面使用该算法,最终每个节点的得分如图4所示。

图4 基于文本密度的节点得分

由图4可见,正文节点与最接近的噪声节点得分之差约为33,且在网页中有大量噪声节点的得分较为突出,区分度仍有提升的空间。以上结果证明了本文对噪声节点干扰的推测。

与文本密度类似,本文定义当前节点i下的标签密度pdi为

急性阑尾炎在临床上是一种比较常见的急腹症,该疾病在各个年龄段都会出现。目前,在临床上主要的治疗方式就是手术治疗,患者在经手术治疗之后,虽然可以起到一定的治疗效果,但是术后会严重影响患者的机体,给患者带来一定的疼痛感。因此,经过不断的研究与发现,在急性阑尾炎术后对患者实施有效的护理服务,可以起到良好的效果。因此,在本次研究中,主要是对60例急性阑尾炎患者的护理方式进行深入性的研究,并进行了全面性的总结。

(3)

式中分母为(lui+1),目的是避免当前节点无子节点导致标签数为零的情况。面对可能出现的一些子节点为空导致当前pdi的值小于1的情况,可以手动设置其最小值为1。算法通过深度遍历DOM树计算出每个节点的标签密度。

由公式(3)可知,pdi的值在网页中通常最大,因此利用该值对公式(2)的score进行修正。经过实验测试及分析可知,文本密度、标签数量与标签密度呈现正相关性,且越接近目标节点,标签密度越大。修正模型为

score=tdi×lui×log10(pdi)

(4)

选取与图4相同页面使用该算法,最终得分如图5所示。

图5 基于文本和标签密度的节点得分

由图5可见,正文节点得分明显高于噪声节点,得分第二的噪声节点分数还未达到正文节点分数的一半,说明TTD算法具有相当高的区分度。

3 实验分析

3.1 测试数据集

以下作为实验中页面收集的重要对象:开源数据库CLEANEVAL包含的大量不同类型的英文HTML页面;中文互联网上大量的中文网页,特别是近年来的各种结构复杂、表现形式多样化的页面;移动互联网环境下面向移动端的页面。

实验最终收集的页面共有2000余个。除了CLEANEVAL开源数据集,同时也从各大门户网站和资讯网站收集了大量新闻、资讯页面,在微博、贴吧等社交平台进行了数据采集,并按照来源划分数据集。为每一个数据事先进行人工标注,算法自动提取完成后再对准确性进行评估。

3.2 结果分析

在网页提取领域,评价提取效果可以采用精确率、召回率进行判断,并借助于F1值[18]对结果进行综合考量。PC端与移动端数据集测试评价结果如表1、表2所示。

表1 PC端数据集测试评价结果

表2 移动端数据集测试评价结果

由表1和表2可见,针对当前面向移动互联网的资讯页面以及PC端新闻页面,本文算法取得良好的正文提取效果。由于面向移动端的页面比较直观、HTML结构比较简单,面向PC端的新闻页面虽然有大量的噪声节点,但其结构稳定,正文部分的密度明显突出,所以TTD算法能够胜任。面对微博、贴吧,本文算法正文提取效果有所下降,通过分析后发现,效果不佳的页面是由于页面结构复杂、标签多而内容少所致。由于其信息密度低,该部分网页并不具备较高的提取价值[19]。

作为对比,本文从数据集中随机选取500条HTML页面,分别使用BTE算法、TSD算法及本文提出的TTD算法进行正文抽取实验,测试评价结果如表3所示。

表3 各算法测试评价结果

由表3可见,TTD算法的准确率相比其他两个算法有较大的提升,其通用性高于BTE和TSD算法。

4 结论

基于文本及HTML标签密度的网页正文内容提取算法,实现了对页面正文内容的提取。该算法区别于传统的按行提取,将正文内容看成整体,通过计算各DOM节点得分,选取得分最高的节点作为目标节点。

TTD算法简单、可靠,具有极高的通用性和适应性。对当前互联网中常见的网页使用该算法进行正文提取能够取得较高的准确度。下一步将细化算法,将网页正文内容中的图、表等信息提取纳入算法评价中,在提高精度的同时完成对低信息密度页面有价值目标内容的提取。

猜你喜欢

正文网页页面
朱正文书画作品选
答案
让Word同时拥有横向页和纵向页
基于HTML5静态网页设计
搜索引擎怎样对网页排序
课题研究成果的提炼与表述
户口本
驱动器页面文件大小的总数为何总是07
网页智能搜索数据挖掘的主要任务
中国雕塑精神的凸现