APP下载

基于信息量衰减幅度的网页正文提取

2012-07-25陈兴蜀

计算机工程与设计 2012年7期
关键词:正文网页标签

陈 阳,陈兴蜀,吴 麒

(1.四川大学计算机学院 网络与可信计算研究所,四川 成都610065;2.中国电子科技集团公司第二十九研究所 信息综合控制国家重点实验室,四川 成都610065)

0 引 言

随着互联网的快速发展,万维网 (world wide web,WWW)已成为人们获取信息或分享信息的重要平台。根据美国加州伯克利大学的统计,仅2002年世界上就产生了5EB的数据,年增长30%。这相当于37000个美国国会图书馆存储的信息,也相当于历史上存在过的每一个人说过的每一句话的数据量。这些数据中,92%的数据存储在磁性介质中上并能够通过互联网进行访问。面对如此丰富的网络信息资源,一些应用应运而生,例如,搜索引擎,Web数据内容挖掘。但是,它们在处理网页时都会面临一个问题,Web网页的主题信息一般都会被广告链接、导航条、版权信息等 “网页噪音”所包围,而这些噪音往往会对这些应用造成负面影响。因此,如何准确高效地从Web网页中提取出主题信息对基于互联网的信息检索、数据挖掘等应用具有很高的价值。

1 相关研究

在Web信息抽取领域,国内外研究者针对网页正文信息的抽取已经做了大量的研究工作。

文献 [1-3]通过构建网页模板规则,将符合规则的信息从网页中提取出来,虽然信息抽取结果准确性较高,但这些方法都存在一个缺点,即只能针对使用同一个模板生成的网页,而构建抽取模式也是一个费时的工作,在网页形式多样化的今天,这种方法不具有通用性。文献 [4-8]采用基于视觉特征的方法,这种方法是在微软亚洲研究院提出的VIPS(vision-based page segmentation)网页分块算法的基础上抽取信息。VIPS算法利用HTML中的一些视觉信息,比如背景颜色、字体颜色和大小、边框、逻辑块和逻辑块之间的间距等等来识别出页面中的语义块,再结合DOM树结构分析进行页面分块。虽然,在此基础上进行正文抽取可以达到很好的效果,但是VIPS算法也有其局限性,因为VIPS算法在提取网页视觉信息依赖于浏览器内核代码,故提取需要耗费较长时间 (通常每个页面超过1s),而且其算法本身相对复杂,迭代轮数较多。因此,基于视觉特征的方法并没有得到广泛地应用。文献 [9]采用基于标记窗的方法,虽然可提取当正文文字短到与网页其余部分文字 (如广告、导航条、版权)长度相当的情况,但计算标记窗中字符串与标题词之间的相似度方法容易导致很多噪声无法滤除,并对分词技术有较高要求。文献[10-12]把网页表示成的一棵标签树,然后根据字符数、链接比例等特征统计信息抽取网页正文。此方法不依赖于限定数据源,算法也比较简单,对正文信息的抽取可以达到较好的效果。但是,当前网页越来越趋于复杂化,有些网页包含大量的噪音块,干扰了对正文特征信息的统计,使提取结果包含一些噪音或是漏掉部分正文信息。文献[13-14]根据文本内容的特征,对文本内容是否是网页正文进行判断,但由于此类方法并没有采用分块的思想,因此极易遗漏部分正文信息。文献 [15]通过确定正文特征属性,然后采用粒子群优化算法对特征权值及阈值进行优化和确定,从而确定正文信息所在的块,但该方法依赖许多正文特征属性,而且计算繁杂,其适用范围有一定的局限。

针对目前网页正文抽取研究工作中存在的问题,提出基于信息量衰减幅度的正文提取方法。该方法首先根据正文信息量的衰减幅度找到主题区域子树,把提取正文的范围限制在该子树中,从而可以有效地消除大部分噪音干扰。然后再从这棵子树中提取正文信息。由于主题区域子树是一棵包含全部正文信息的子树,即使网页标签树中有多个正文信息块,采用这样的方法也能将它们全部提取出来。

2 基于信息量衰减幅度的正文提取方法

通常情况,网页分为3种类型:主题型网页、导航型网页、图片型网页。主题型网页一般通过成段而连续的文字描述一个或多个主题,这些文字在网页居中部分形成一个相对独立的矩形区域,使用户从视觉上就能轻易地识别出来,在本文中将此矩形区域称为正文区域。在正文区域的周围往往会分布着许多相关链接、导航条、广告、版权说明等无关信息,在本文中将这部分内容划分为噪音。导航型网页本身由许多超链接块组成,其主要目的是方便用户找到所感兴趣的网页,提高浏览效率。而图片型网页的主体部分都是图片,仅含有少量文字信息对图片进行说明。因此,后两种类型的网页都没有一个明确的文本主题。本文提出的基于文本信息量的衰减幅度的正文提取方法针对主题型网页,并且是基于以下三点推论:

(1)主题型网页中的正文往往会分为多个段落,从视觉上看它们是聚集在一起的连续段落,相互之间不会间隔太远。把网页表示成HTML标签树后,其中正文区域会对应一棵子树。图1为一棵HTML标签树,网页的正文信息被组织在以DIV*为父节点的各个P节点下,称这些节点为正文信息节点。一般,一个正文信息节点对应正文中的一个段落。这些节点不会跨越正文区域所对应的子树,即所有的正文信息节点都是该子树的子孙节点,不会出现从P*节点开始到P#结束的情况。

图1 HTML标签树

(2)正文文本是正文信息节点的子孙节点,如图1所示,P*中的直接子节点就是正文文本,P+的子节点是SPAN,正文文本是SPAN节点的子节点。无论正文信息节点P下面如何组织正文文本,正文信息节点P都有共同的父节点,即它们都处于树的同一层次,互相之间是兄弟节点关系。

(3)网页中出现的文本可以分为两类,一类为链接型文本 (也称锚文本),另一类是非链接文本。在主题型网页中,正文中间通常不会加入大量的超链接,而非正文信息通常是伴随着超链接出现的。因此,在一个主题型网页中,非链接文本主要是由正文文本构成,链接文本主要是由非正文信息构成。

以上三点结论是通过大量观察与一些实际经验总结出来的。并且,到目前为止还没有发现违反以上三点结论的例子。

本文所提出的方法中,获取主题区域子树这一步直接关系到能否正确提取正文信息。基于以上三点结论,从标签树的根节点开始查找,选择其非链接文本长度最大的子树作为当前子树,下次从当前子树的根节点继续查找,这样就尽可能的保证当前子树下包含了所有的正文信息。与此同时,在查找的过程中每获取一棵子树就考察其父节点下的子树到该子树中非链接文本的衰减幅度。如果被考察的子树包含全部正文信息,那么两者的非链接文本长度就不会有大幅度的变化,而当遍历到正文信息节点时有以下两种情况:

(1)正文信息节点数量多于一个。此时它们当中非链接文本长度最大的节点作为当前子树的根节点,其余节点信息全部丢失,则造成非链接文本信息量突变。

(2)正文信息节点是文本节点且唯一。由HTML规范可知文本节点没有子节点,所以在考察其子节点时会丢失全部非链接文本信息,同样造成信息量突变,而且更加明显。

对于一个网页,用本文提出的正文提取方法需要经过4个步骤:

(1)构建一个网页HTML标签树。如图1所示。

(2)获取主题区域子树。在图1中为以DIV*为根节点的子树。

(3)剪裁主题区域子树,去除噪音。

(4)提取主题区域中的正文信息。

相应的正文提取方法流程如图2所示。

图2 正文提取流程

2.1 HTML标签树的构造

从输入网页构建标签树是许多数据抽取算法中的一个必要步骤。本文中采用HTML标签来生成对应的标签树。通常,HTML标签是成对使用的。每一对由一个开始标签和一个结束标签组成 (分别用<>和</>来表示)。在每个对应的标签对间,可以有其他标签对,从而构成嵌套结构,所以用一张网页的HTML编码来构建一棵标签树是很自然的。在这棵树中,每一对标签都是一个节点,在其间嵌套的标签对则是这个节点的子节点。本文在构造标签树的过程中需要3个步骤:

(1)HTML编码清理:由于HTML编码在有语法错误的时候,浏览器也能将其正常地显示出来,所以,有些网页就会存在不规范的HTML编码格式,但是在构建标签树的时候必须将其修正为格式良好的XHTML(XML的子集)。

(2)标签树的构建:依据网页中HTML标签的嵌套块来构建标签树。

(3)标签树的裁剪:由于我们在提取正文信息时,关心的是那些包含有用文本内容的节点,把无关节点删除将有助于后续处理的效率。本文按以下规则处理:

1)删除子孙节点中不含有文本节点的节点以及注释节点。

2)删除根节点为script标签、style标签、select标签、option标签、iframe标签、textarea标签、object标签、input标签的子树。

3)对树中含有的实体符号做等价替换,例如,将“"”替换为 “””,将 “<”替换为 “<”。

2.2 获取主题区域子树

在本文中定义主题区域子树满足如下要求:

(1)该树是初始网页HTML标签树的一棵子树。

(2)该树包含所有的正文信息。

(3)该树中的任何子树都不能包含完整的正文信息。

获取该子树的目的是在于不遗漏正文信息的前提下,最大程度地降低网页噪音的干扰,进而简化正文提取过程中的繁杂工作。在网页HTML标签树中获取主题区域子树的算法中,预先设置常量T为信息量衰减幅度阈值。Lc(MT)表示以节点MT为根节点的子树中非链接文本的长度,MaxClearText(curNode.Children)表示获取curNode子节点中非链接文本长度最大的节点。Range(Clen,Mlen)计算curNode的非链接文本长度Clen到MT的非链接文本长度Mlen的衰减幅度。

算法1(获取主题区域子树算法)

FindMT (Node,T)

curNode=Node;

if size (curNode.Children)=1then

FindMT (curNode.Children,T);

endif

Clen= Lc (curNode);

MT= MaxClearText(curNode.Children);

Mlen= Lc(MT);

if Range(Clen,Mlen)>Tthen

returnMT;

else FindMT (MT,T);

endif

Procedure Range(Clen,Mlen)

r= (Clen-Mlen)/Clen;

returnr;

相应的获取主题区域子树的算法流程如图3所示。

图3 获取主题区域子树流程

2.3 正文信息提取

定义1(链接节点)链接节点是一个标签节点,该节点的子孙节点不包括正文信息,但含有多个标签节点<a>且含有大量链接文字。

在本文中,正文信息是指包含在正文区域中的内容,但不包括其作者、标题、发布日期等元信息,也不包括与正文信息无关的信息以及链接节点对应的链接块。

尽管主题区域子树中几乎都是正文信息,但还是可能存在一些链接节点。所以,在提取正文的时候应该对主题区域子树进行裁剪,删除链接节点。本文采用简单而有效的链接密度统计信息来判断节点是否为链接节点。在裁剪主题区域子树算法中,设常量DLmax为链接密度的最大阈值。对于一个节点curNode来说,计算其链接密度的公式为:DL(curNode)=LinksLength(curNode)/TextLength(curNode),其中DL(curNode)为节点curNode的链接密度,LinksLength(curNode)为节点curNode中所有链接文本的长度,TextLength(curNode)为所有文本的长度。如果链接密度超过DLmax,则认为该节点为链接节点。

算法2(裁剪主题区域子树算法)

CleanTree(Node,DLmax)

curNode=Node;

if DL (curNode)>DLmaxthen

remove (curNode);

endif

for eachChild∈Node.Childrendo

CleanTree(Child,DLmax);

endfor

Procedure DL (Node)

d= LinksLength (Node)/TextLength (Node);

returnd;

最后,经过裁剪后得到一棵只包含全部正文信息的子树,只需要将所有文本节点中的文字提取出来就可以得到这张网页的正文文本。

3 实验结果及分析

为了验证本文提出的算法,我们从7个不同网站上获取了数量不同的网页,共计3718张,作为主题网页测试集。

在主题区域子树的提取过程中,T值的大小决定了主题区域子树的准确率,T值太大,正文信息可能会丢失,反过来,T值太小会把无关信息包含进去。由此,从主题网页测试集不同站点中各随机抽取 (不放回)100张,共计700张网页进行实验,T的取值从0.2到0.5,测试间隔为0.02。分别考察了获取主题区域子树的准确率。实验结果如图4所示。

图4 T值取值范围实验结果

从实验结果可以看出,T值取0.34时准确率最高,因此,将T值设置为0.34。

本文规定在正文提取过程中,提取结果符合下列要求之一即视为正确提取网页正文信息:

(1)提取结果与人工观察实际网页所得正文信息一致。

(2)提取结果包括了全部正文信息,也包含了少量非正文信息 (该信息在文章前或文章后,不超过一句话,且长度不能超过正文信息的10%),但不会影响阅读。

定义主题网页测试集中的网页数量为Pages_Total,提取过程中正确获取主题区域子树的网页数量为Valid_Total,从获取的主题区域子树中正确提取正文信息的网页数量为Precision_Total,则:

准确率 (Precision)=Precision_Total/Pages_Total

裁剪准确率 (Clip_Precision)=Precision_Total/Valid_Total

准确率衡量的是在整个测试集中正文提取正确的网页数量的比例,裁剪准确率衡量的是在网页返回的主题区域子树集合中正确提取了正文信息的网页数量比例。

我们对主题网页测试集中剩下的部分,共计3018张网页作为正文提取系统的测试集。其中,根据参考文献 [7]设置链接密度的阈值DLmax为0.65。实验统计结果见表1。

表1 实验结果

实验结果显示,本文所提出的方法对主题型网页的正文提取准确率较高,对整个测试集的准确率达到了95.12%,而且准确率在93%~97%之间,表现出良好的稳定性,具有较好的工程应用价值。通过进一步观察,其中裁剪准确率达到了一个较高的水平,各个测试站点集的准确率都在96%以上。由此可知,从主题区域子树中提取正文信息具有较高的准确率。

在实验中,通过对错误结果的观察,多数情况是因为丢失了正文文章中的一些段落,进一步分析其原因可知,这些段落长度在整个正文中占有较小的比例 (不超过20%),而其余正文信息都集中在一个段落里面。在这种情况下,正文信息量衰减幅度往往不能超过设定的阈值,在获取主题区域子树的过程便丢失了这部分正文信息,导致最终结果没有包含完整的正文信息。

4 结束语

针对主题型网页,本文提出的基于信息量衰减幅度的正文提取方法能有效的提取出网页正文信息。该方法首先根据HTML标签子树的信息量衰减幅度来判断获取主题区域子树,然后对获取的主题区域子树进行裁剪,最后提取出正文信息。

实验表明,该方法能针对各类主题型网页,有效的从链接块、图片等噪音中提取出正文信息,具有较高的应用价值。在下一步研究中,将着重提高获取主题子树的准确率,以获得更高的正文提取准确率。

[1]YANG SH,LIN HL,HAN YB.Automatic data extraction from template-generated Web pages [J].Journal of Software,2008,19 (2):209-223 (in Chinese). [杨少华,林海略,韩燕波.针对模板生成网页的一种数据自动抽取方法 [J].软件学报,2008,19 (2):209-223.]

[2]OU Jianwen,DONG Shoubin,CAI Bin.Topic information extraction from template web pages [J].J Tsinhua Univ(Sci&Tech),2005,45 (1):1743-1747 (in Chinese).[欧健文,董守斌,蔡斌.模板化网页主题信息的提取方法 [J].清华大学学报:自然科学版,2005,45 (1):1743-1747.]

[3]Chakrabarti D,Kumar R,Punera K.Page-level template detection via isotonic smoothing [C].Proc 16th Intl Conf on World Wide Web,2007:61-70.

[4]Liu W,G H,Liu X,et al.Detection of pubishing web pages based on visual similarity [C].Proc 14th Int’l World Wide Web Conf,2005.

[5]Simon K,Lausen G.ViPER:Augmenting automatic information extraction with visual perceptions [C].Proc of the ACM CIKM Int’l Conf on Information and Knowledge Management.Bremen:ACM Press,2005:381-388.

[6]AN Zengwen,XU Jiefeng.The research on vision-based web page information extraction algorithm [J].Microcom-puter &Its Application,2010,9 (3):38-41 (in Chinese).[安增文,徐杰锋.基于视觉特征的网页正文提取方法研究 [J].微型机与应用,2010,9 (3):38-41.]

[7]Chibane I,Doan B-L.A web page topic segmentation algorithm based on visual criteria and content layout[C].SIGIR.ACM,2007.

[8]HUANG Wen-pei,YANG Jing,GU Jun-zhong.The research on segmention-based Web pages information extraction algorithm [J].Computers Application,2007,27 (6):24-26 (in Chinese).[黄文蓓,杨静,顾君忠.基于分块的网页正文信息提取算法研究 [J].计算机应用,2007,27 (6):24-26.]

[9]ZHAO Xin-xin,SUO Hong-guang,LIU Yu-shu.Web content information extraction method based on tag window [J].Application Research of Computers,2007,24 (3):144-145 (in Chinese).[赵欣欣,索红光,刘玉树.基于标记窗的网页正文信息抽取方法 [J].计算机应用研究,2007,24 (3):144-145.]

[10] WANG Shao-kang,DONG Ke-jun,YAN Bao-ping. Web content information extraction using density of feature text.[J].Computer Engineering and Applications,2010,46(20):1-3 (in Chinese). [王少康,董科军,阎保平.使用特征文本密度的网页正文提取 [J].计算机工程与应用,2010,46 (20):1-3.]

[11]LIU Jun,ZHANG Jing.Dom based extraction of topical information from Web page [J].Computer Applications and Software,2010,27 (5):188-190 (in Chinese). [刘军,张净.基于DOM的网页主题信息抽取 [J].计算机应用与软件,2010,27 (5):188-190.]

[12]Mantratzis GC,Orgun M A,Cassidy S.Separating xhtml content from navigation clutter using dom-structure block analysis[C].S Reich,Tzagarakis M.Hypertext,Pages.ACM,2005:145-147.

[13]Javier A M,Koen D,Marie F M.Language independent content extraction from web pages [C].Proc of the 9th Dutch-Belgian Information Retrieval Workshop.Enschede:University of Twente,2009:50-55.

[14]LI Dong-bing,WANG Ye-xin,ZHANG Yan,et al.Primary content extraction with mountain model[C].Proc of the 8th IEEE International Conference on Computer and Information Technology.Sydney:IEEE Press,2008:479-484.

[15]WU Qi,CHEN Xing-shu,TAN Jun.Content Extraction algorithm of HTML pages based on optimized weight [J].Journal of South China University of Technology:Natural Science Edition,2011,39 (4):32-37 (in Chinese). [吴麒,陈兴蜀,谭骏.基于权值优化的网页正文内容提取算法[J].华南理工大学学报:自然科学版,2011,39 (4):32-37.]

猜你喜欢

正文网页标签
更正启事
基于HTML5与CSS3的网页设计技术研究
无惧标签 Alfa Romeo Giulia 200HP
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
不害怕撕掉标签的人,都活出了真正的漂亮
基于URL和网页类型的网页信息采集研究
让衣柜摆脱“杂乱无章”的标签
户口本
科学家的标签