标点符(钱魏 Way)

基于网页框架和规则的网页噪音去除方法

一、相关概念

1.1 网页噪音概述

网页噪音是指在一个页面内与页面主题无关的区域及项。网页噪声可分为以下几类:

  1. 导航类:为了维持网页间的链接关系,方便浏览者对网站进行浏览而设置的链接。
  2. 修饰类:为了美化页面而采用的背景、修饰图片等。如站点标志图片、广告条。
  3. 交互类:为了收集用户提交信息或提供站内搜索服务的表单等。如在线问卷调查表。
  4. 其他类:网页中声明的版权信息、创建时间、作者等描述性信息。

网页都是有一定布局的,比如分左右两边或是中间和边缘。网页中的噪音一般都在页面中的次要位置,而将重要的内容放在网页的中间部分,符合设计者突出网页主题的做法,也符合人的浏览习惯。同时,噪音部分一般是以比较狭长的方式出现,这样在比较长宽比时可以轻易地去除,也为本文的去除噪音算法带来了便利。网页框架如图1所示。

1.2 HTMLParser类简介

HTMLParser 是一个对现有的 HTML进行分析的快速实时的解析器。它是一个开源项目,通过它可以准确高效地对HTML文本中的格式、数据进行处理。利用它可以很容易地对网页的内容进行分析、过滤和抓取。它的主要功能有文本信息抽取、链接提取、资源(图片、声音等)提取、链接检查和内容检验等。

HTMLParser类虽然并没有对以上提到的一些功能进行专门的处理,但是它完全可以胜任上面提及的功能,在实际应用中如果遇见上面提及的问题可以使用它内部的一些方法来处理。本文应用HTMLParser 类来分割网页中的各个table,得到各个table的width和height属性值,并对去噪后的网页进行去标签,也就是将其转化成为文本文件。

二、基于网页框架和规则的网页去噪算法

超文本标志语言HTML是一种比较简单的标识语言。每个HTML网页都包含几个基本的部分:标题,列表,表格,图像等。一般HTML网页的格式如下:

<html>
<head><title>example</title></head>
<body>
<table width=”700″ height=”600″ border=”1″>
<tr>
<td width=”557″ valign=”top”> <p>段落内容</p></td>
</tr>
</table>
</body>
</html>

2.1 算法实现依据的规则

根据HTML文件格式的一般网页的HTML文档以及观察其它网页的格式,可以得到如下一些启发式规则:

  1. 标签<table>和</table>之间如果有标签<p>或<br>,可以看为是正文内容。
  2. 若标签<table>的width或height属性为其占页面的百分比,则需要根据这个百分比的值来确定其是否为主题内容。若width或height属性的百分比数值较大,则认为有可能是主题内容;
  3. 对于多层嵌套的标签<table>,认为只在其中某一层table中存在主题内容;
  4. 对于没有标签<table>的网页,即不是由表格分割的网页,如果存在段落文字,则认为是主题内容。

2.2 算法思想

对于有标签<table>的网页,认为重要的信息都放在网页的中间区域,而且该区域长度和宽度都比较大。而网页边缘区域的重要性相对于中间区域都很弱,而且该区域比较狭长;对于没有标签<table>的网页,只是根据其是否存在段落文字来判断是否为主题内容,并没有考虑更多,这是因为对于大多数网页设计者来说,通常他们会先进行网页布局的设计,即先用表格等标记在页面上描绘出页面内容分布的区域,然后再在每个区域内部进行详细的内容设计,把需要的元素加进去,所以没有表格的网页现在越来越少,这必然是以后网页制作发展的主流方向。本文就是根据这样一种思想来进行网页去噪,然后将提取出的主题内容变为文本文件,为以后对网页的一些处理,如分类、检索等提供了很大的方便。

2.3 算法流程

1)由于本文使用的是天网的CWT200G语料,而天网存储语料的格式又有其自身的特殊性,因此首先根据天网存储网页的格式进行语料的切分,将其切分成单一网页的形式。

2)切分完毕后,开始进行去噪工作。对于没有table的网页,处理方法如下所示:

If (无标签<table>)
{
If (存在段落文字)
{
认为是主题内容,保留
}
}

3)对于有table的网页,处理方法如下:

For (对于每一个table表格)
{
找到table的width和height属性
If (width和height属性有一个不存在且width不以百分比的形式出现)
{
If (width属性值>δ1) //δ1为width属性阈值
If (有段落文字)
认为是主题内容,保留
}
Else if (width和height属性都存在且width属性以百分比的形式出现)
{
If (width百分比数值>δ2) //δ2为width百分比数值的阈值
If (有段落文字)
认为是主题内容,保留
}
Else if (width和height属性都存在且height属性以百分比的形式出现)
{If (height百分比数值>δ3) //δ3为height百分比数性阈值
If (有段落文字)
认为是主题内容,保留 }
Else if (width和height属性都存在且width和height属性值以数值的方式出现)
{
计算width与height的长宽比
If (长宽比很小)
If (有段落文字) //该层判断是为了防止出现长宽比很//小的图片等非主题内容
认为是主题内容,保留
}
Else //对于没有段落文字,即对于目录型网页或图片型网页
{
认为table长宽比很小,但长和宽的值占页面很大的部分为主题内容,保留 }
}//endfor

4)将去噪后的网页去标签,并转化为文本文件。

2.4 实验结果及分析

本文对来自CWT200G(Chinese Web test collection with 200 GB Web pages)中的125个站点的132 559个网页进行了测试。经过测试,网页大小由去噪前的6.04GB减少到去噪后的1.45GB,网页噪音部分占了网页约75%的大小,因此,对Web网页进行分类或检索等其它应用时,如果不事先进行消除噪音,那么对于分类或检索的速度和精度将会有很大的影响。

同时,本算法在Windows XP系统、Pentium(R) 4 CPU 2.8GHz、1GB内存的计算机上进行了实验。经过实验统计,对所有实验数据去噪的平均速度为18个/s。可见,该算法能较快速地完成网页噪音去除工作。

在准确率方面,由于测试的网页较多,不可能对每个网页都进行准确率检查,因此随机抽取2 000个网页进行手工检查。现将检查结果用“优、良、中、差”4个标准进行判断。其中“优”代表网页主题内容正确提取,且噪音基本去除;“良”代表网页主题内容正确提取,噪音存在一部分;“中”代表网页主题内容基本能正确提取,噪音存在较多;“差”代表网页噪音基本没有消除或者主题内容没有正确提取。实验结果如表1所示。

下面以测试网页中的一个网页为例来显示去除噪音前的网页和去除噪音后的文本文件,如图5所示。

在对去噪效果较差的网页的观察中可以发现以下一些原因:(1)网页的主题内容不明显,即主题内容不是段落文字,或者网页中的主题是图片信息等。(2)一少部分网页的噪音中也存在段落文字的内容,也就是说存在<p>或<br>等认为是段落文字的标签,这样会误把这部分内容看作主题内容保留下来而没有被清除掉。算法已经对类似这样的错误进行了一定的处理,因为噪音中的段落文字通常比主题内容中的段落文字少,即噪音中的标签<p>或<br>的个数会比主题内容中的少,所以针对这种情况,可以根据标签<p>或<br>的个数来判断该部分是噪音还是主题内容。

三、 结束语

针对目前对Web信息处理的大量应用,本文提出了一种基于网页框架和规则的网页噪音去除方法。实验结果表明,该方法可以迅速地从网页中提取出主题内容并清除噪音,且清除噪音的准确率较高。同时,本文的方法也符合网页设计者的设计习惯,即将主题内容放在网页中间部分,且占用篇幅较大;而将噪音部分放在网页边缘,这些区域占用篇幅较小且比较狭长。实验结果也证明本文的方法是有效的。将本文的方法应用到搜索引擎方面,可以大大地减少索引量、提高搜索引擎的检索速度和提高检索的准确度;应用到分类方面,可以将Web网页中的主题内容提取出来,存放到文本文件中,然后就可以很方便地应用目前现有的分类器进行分类。但是,本文的方法还有一些网页不能处理或处理的效果较差,同时算法中的阈值是在不断地实验中得出的,其合理性还有待进一步实验和观察。因此,如何完善本文算法的不足,使其具有更强的通用性和适应性,将是今后努力的方向。

本文作者:时达明,林鸿飞,杨志豪(大连理工大学计算机科学与工程系,大连 116024)

码字很辛苦,转载请注明来自标点符《基于网页框架和规则的网页噪音去除方法》

评论