标签,这些标签下的文本内容才是最核心的正文部分,而这部分内容也是全网页文本密度与标签密度最大的部分,因此通过对文本和标签的密度进行计算可确定需要提取的部分。虽然不同网站的页面结构差异巨大,但通过观察仍然可以发现一些共性[15]。通过对比不同HTML页面可以发现,网页正文部分无论如何组织最终都集中在同一个祖先HTML标签下,在该祖先标签下存在大量
用于文本的分段、用于字体加粗,不同级别的标题也会用进行区分,正文中也会出现带链接的文本用于向读者提供相关的信息。另外,一些网页除了正文之外的评论区、推荐简介也存在 且文本密度较高的情况,简单采用文本密度或标签密度的方式可能会造成出现非正文内容密度大于正文内容的情况,因此需要进一步分析。常见的密度算法虽然都是计算行的密度[16]结合上下文环境或机器学习的方式实现,仍然不能完全解决上述问题。本文采用一种简化思想,将正文部分看作一个整体,不再计算正文内容每行单独的密度,在解析内容时忽略掉 及等子标签,由此整个正文部分的文本字符数量应是页面内最多的,计算得出的文本密度也往往是最大的,但仍然有可能出现非正文部分文本密度较大,对最终判定造成干扰。因此,结合正文区域存在大量 或其他同类型子标签的特点,再计算此类子标签密度。与文本密度类似,正文区域内的段落标签密度也将是整个页面中较大的,通过文本密度和段落标签密度的结合综合判断网页正文部分,进而完成提取。 假设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算法具有相当高的区分度。 以下作为实验中页面收集的重要对象:开源数据库CLEANEVAL包含的大量不同类型的英文HTML页面;中文互联网上大量的中文网页,特别是近年来的各种结构复杂、表现形式多样化的页面;移动互联网环境下面向移动端的页面。 实验最终收集的页面共有2000余个。除了CLEANEVAL开源数据集,同时也从各大门户网站和资讯网站收集了大量新闻、资讯页面,在微博、贴吧等社交平台进行了数据采集,并按照来源划分数据集。为每一个数据事先进行人工标注,算法自动提取完成后再对准确性进行评估。 在网页提取领域,评价提取效果可以采用精确率、召回率进行判断,并借助于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算法。 基于文本及HTML标签密度的网页正文内容提取算法,实现了对页面正文内容的提取。该算法区别于传统的按行提取,将正文内容看成整体,通过计算各DOM节点得分,选取得分最高的节点作为目标节点。 TTD算法简单、可靠,具有极高的通用性和适应性。对当前互联网中常见的网页使用该算法进行正文提取能够取得较高的准确度。下一步将细化算法,将网页正文内容中的图、表等信息提取纳入算法评价中,在提高精度的同时完成对低信息密度页面有价值目标内容的提取。2.3 算法实现
3 实验分析
3.1 测试数据集
3.2 结果分析
4 结论