,欢迎光临!
加入收藏设为首页请您留言
您当前位置:网站首页 >> 西南地区 >> 信息抽取中基于DOM树的过滤器方法的研究-上海联兵环保免费电话:400-600-5030

信息抽取中基于DOM树的过滤器方法的研究-上海联兵环保免费电话:400-600-5030

2011-09-13 13:43:51 来源:中国过滤器网 浏览:1

摘要:分析了信息抽取中各种页面预处理的方法,提出一种改进方法—基于DOM树结构的过滤器,并设计了三种过滤器。讨论过滤器的原理,给出了具体的实现算法。最后根据过滤器的一个具体应用,总结出其适应于当前网页的结构和设计的特点,验证了方法的正确性和适用性,大大提高了信息抽取的效率和准确率。
关键词:过滤器;DOM;信息抽取
中图分类号:TP393文献标识码:A
1引言
信息抽取是自接从自然语言文木中抽取事实信息, 并以结构化的形式描述信息,供信息查询,文木深层挖掘,自动回答等应用.为人们提供有力的信息抽取下具、页面预处理是信息抽取过程中一项非常重要的工作。这是因为目前大多数的HTML网页都是不规范的,而且在网页中往往还充斥着很多与抽取主题无关的内容。好的页面预处理技术可以减少有效信息的丢失,检索结果中的垃圾信息,为用户提供更加精确的切实有用的信息。
本文重点研究的就是基于DOM树的信息抽取过滤器方法,是页面预处理的一种方法。将HTML解析成DOM,利用DOM树的特性,不仅可以从大的逻辑单元抽取信息,还可以对更小的单元进行操作,以完成信息抽取工作中页面预处理,从而大大提高信息抽取的效率和准确率。我们设计三种过滤器,每个过滤器都是可以由用户设置的,以完成不同程度的过滤,并以恰当的顺序选择和叠加各个过滤器,形成最佳预处理组合。
2 信息抽取页面预处理技术
我们可以看到随着Web的广泛应用于各行各业,Web的结构和表现形式有了非常大的变化,目前的网页中都围绕很多凌乱多余的信息,比如脚本,flash动画,菜单,侧面链接条,随机分布的链接,广告条,以及相关性差的图片等,这些信息混杂在页面的周围,干扰浏览者关心的实际内容。所以在信息抽取原型系统中页面的预处理也就是页面的清洗工作是非常重要。
在这个领域,已经有大量的研究工作,但是这些方法都不能完全自动的提取信息,通常是面向特定领域,特定网站或者针对特定格式。目前能够较好地解决这一问题的就是面向内容的过滤器方法,它的目标不是提取细粒度的数据而是过滤掉网页中凌乱多余的信息。
2000年,Kaasinen等提出将网页分解成类似于扑克牌中的卡片的形式的方法完成对网页内容的提取。这种方法将网页分解成一组分层的“卡片”,并把他们放入“扑克牌”内。他们同时提出一种简单的方法,将HTML内容转换为WML。将图片等信息从网页中移去,使浏览者无需过多使用滚动条便可以遍览内容。2003年,哥伦比亚大学自然语言处理组的McKown等人研制出抽取器Article Extractor。这个产品设计成专门从新闻页面中发现并抽取文章。Article Extractor通过计数HTML文档中特定标签间的词数,关注页面中的数据主体数据,并将此数据归类为内容。它将网页分解为几个文本块,这种分解基于HTML的结构(通常是使用div和table元素)以其他的各种特征。接着,应用规则来对这些块进行分类,区分出文本,垃圾,或是其他的类别。
前面介绍的两种页面预处理的方法存在着很多缺点:Kaasinen的方法是假设HTML文件扁平的基础上,不提供树状结构的操作方法。如发生处理表中嵌套的结构时回出现问题。
Article Extractor它并非从人的角度来对数据进行抽取,只是对“文本”数据感兴趣,并将其抽取出来成为一种文本格式。
通过对现有技术方法的研究和分析,可以看出这些方法都是对HTML进行操作,忽略网页自身的结构。而HTML构造的页面在语法上有很多错误,利用HTML的特点来进行标记,在结构不好的网页中往往是行不通的,甚至会造成严重的错误。
本文研究的方法是基于DOM树结构的页面预处理,利用DOM树的特点设计过滤器,以保留主体的内容。DOM树能象HTML一样表示页面,且树状结构是一种高效且容易驾驭。在这种结构的支持下,过滤器可以有效的应用于树中的全部节点,完成分析和分解的任务,重构页面的内容。同时过滤器能递归地遍历DOM树,使用一套过滤技术去除或修改某些特殊节点,使得处理过的树仅剩下主体内容部分。
3 相关技术
DOM(Document Object Model)文档对象模型,是W3C制定的标准接口规范,HTML文档被解析后,转化为DOM树。应用程序可任意访问和更改HTML和XML文档中的页面元素和数据。其提供了以下技术:树的每个结点是一个对象。DOM模型不仅描述了文档的结构。还可以从Web页面中找到特定的页面元素,更改元素的属性内容,控制元素的行为。定义了对象的行为,利用对象的方法和属性,可以方便的访问,修改,添加和删除DOM树的结点和内容。同时DOM树技术能动态的生成网页,找到包含所需要信息的网页元素所在的区域,读取该区域的内容便能获取所需要的信息。
抽取规则是信息抽取工作的关键,抽取规则的定义由用户根据自己的需求来进行。要求用户能够根据样例页面完成抽取规则的定义任务。即:完成目的表模式设计和数据源到目的表结构的模式映射设计两部分。其思路就是网页利用HTML Tidy转换为XHTML,然后利用Parser将该XHTML解析为DOM树。
这里我们研究的Parser中包含了三组过滤器,可以由用户自行制定要过滤的内容,使得这颗DOM树成为网页中要抽取信息在系统内部的表达方式,而不是网页全部内容的表达方式。完成了页面信息的清洗。我们用XSLT来作为提取规则,因为信息提取实际上就是一个信息定位的过程,XSLT是用来转换XML文档的,它定义了强大而且灵活的一套数据定位语言Xpath以及提取指令,而抽取规则实际上就是这些定位语言的集合。
4 过滤器
过滤器的设计是基于DOM树结构的,其操作对象为DOM树,而非原始的HTML标签文件,首先要采用一个HTML parser创建一个表示页面的DOM树。我们使用NekoHTML作为HTML parser,它可以对HTML中的错误进行纠正。经过这步处理后,生成的DOM文件可以还原成HTML所表示的页面形式。
DOM树被分层布置并被部分或者整体地进行分析,从而为过滤器算法提供开阔空间及机动性。如Kaasinen等修改HTML重构页面内容的方法,过滤器递归的遍历DOM树,采用一系列不同的过滤技术去除并修改节点,只留下主体内容节点。详情见图1

我们设计的过滤器分别为:广告过滤器,无关链接过滤器以及空表格过滤器。每个过滤器去除页面的一个小部分,将适当的过滤器以恰当的顺序叠加作用,形成最佳预处理组合。同时提供GUI,使得用户可以直观方便的设置这些过滤器。每个过滤器都可以方便地打开或者关闭,并可以定制不同程度的过滤。每个过滤器均单独作用,单独操作DOM树,以生成新树。然后这个新树被下一个过滤器处理,进行下一轮的过滤。每个过滤器均剔除一种非主体内容元素,按照用户的设置将其从页面中过滤。通过测试,决定哪些过滤被采用,哪些过滤不合理,最后的过滤器组合形成。经过它将页面中与主题不相关的内容过滤掉,完成信息抽取的页面预处理任务。
广告过滤器是在专门用来除去广告的,当解析完DOM树,页面中“SRC”(设置图象文件位置)和“HREF”属性(可设置或返回热点图连接的URL)会被分析,并可以确定这些链接所指向的服务器的地址。为了确定这些广告是否是要被删除的,我们事先会制定有用广告服务器列表,如果与里面的内容相符,该广告就被保留。这个过程类似于操作系统的“HOSTS”文件来阻止当前计算机链接到服务器。
无关链接过滤器提供一种过滤器技术来清除“链接列表”,此链接列表是由多个表格单元格组成,并且单元格内“无关链接的词数量”与“相关链接的词数量”比率超过一定的阀值。当解析成DOM树时遇到表格单元,无关链接过滤器计算“无关链接的词数量”与“相关链接的词数量”的比率,如果这个值超过用户设定的值就会认为是无关链接而被过滤掉。
空表格过滤器是用来过滤掉那些空的“实体”信息的过滤器。用户通过设置来决定处理何种HTML的标记,以及将含有多少个字符的表格看做一个实体。当过滤器对表进行解析时,其检查表中的内容,如果没有内容,就从DOM树中过滤掉,如果表中的内容少于用户设定的值,也会被过滤掉。这对于过滤那些少量不重要信息的表格是非常重要和有效的。
经过这三个过滤器的处理,整个DOM树被解析和修改成功。得到的页面可以以HTML的形式表示同时也可以用文本的形式表示出来。
5 算法描述
过滤器算法从DOM树的根部开始操作,利用深度优先遍历的方法完成整棵树的遍历。
操作从filterNode()方法开始,此方法以一个节点为输入,在该节点以其子节点上运行过滤器。在DOM树的根节点上运行filterNode可将过滤器递归地作用于该树的全部节点。这是一个操作DOM树的典型的递归方法。filterNode()使得节点通过一系列的过滤器,然后,根据方法passThroughFilter的变量mCheckChildren决定是否应用过滤器对其子节点进行过滤。部分算法实现伪代码如下:
Private void filterNode(Node iNode)
{
初始化变量mCheckChildren;
passThroughFilter(iNode);
if(mCheckChildren);
{filterChildren(iNode);}
}
方法passThroughFilter()以一个节点为输入,决定哪些过滤器将作用于该节点。该方法首先取得输入节点的相关信息,如节点类型,其父节点,属性等。然后,根据该节点的类型,决定执行哪些过滤器。其中的变量mCheckChildren的状态的改变(值变为false)可通知递归方法无需检测其子节点。
过滤器只有在元素节点上才会运行。元素节点以诸如
等标签标志。须经过几个阶段的过滤。第一个阶段是收集更多的信息,检查节点是否一个链接或是一个图片,此信息被记录下来。然后进入下一个阶段。第二阶段的过滤器仅对元素的属性进行修改,被修改的属性包括表格以及表格单元的宽度属性等。经过属性修改后,元素接着经过对某些元素节点进行删除的过滤器,比如广告链接去除等。
isLink()用来检查一个节点是否链接。它首先取得节点类型及节点属性;然后判断其是否是一个元素且包含HREF属性,若真,则指示该节点是一个链接,否则,返回false。isImage()用来检查一个节点是否是图片,其算法与isLink()相似。isImageLink()用来检查一个节点是否是一个有图片的链接,或者是一个有链接的图片。方法先检测节点是否是一个链接,然后检测其子节点中是否有图片,若真,则返回true,表示节点确为一个图片链接。或者方法先检测节点是否是一个图片,然后检测其父节点是否是一个链接,如果是这样的情况,同样表明该节点是一个图片链接。若以上情况都不满足,则方法返回false。部分算法实现伪代码如下:
Private void passThroughFilters(final Node iNode)//检测此为文本节点还是元素节点,并实施不同的操作
{Int type=iNode.getNodeType();//取得输入节点的相关信息
Node parent=iNode.getParentNode();//取得其父节点的相关信息
NameNodeMapattr=iNode.getAttributes();//取节点属性
If(type==Node.ELEMENT_NODE)//元素节点
{if(isLink(iNode))//设置条件,使只编辑节点而不对其实施删除操作
recordLink(iNode);//记录链接节点
if(isImage(iNode));
recordImage(iNode);//记录图片节点
if((name.equalslgnoreCase(”TD”)!1name.equalslgnoreCase(”TABLE”))&&Settings.ignoreCellwidth)//空表格
{removeAttribute(iNode.“width”);}//移除表宽属性
elseif(name.equalslgnoreCase(“DIV”)&&settings.ignore-Divstyles)//DIV样式
{removeAttribute(iNode,“style”);}//移除DIV样式}
该算法的复杂度为O(N),其中N是HTML页面被解析后生成DOM树的节点数。可以处理大多数的页面,对于那些格式不佳的HTML页面,由于在页面被解析成DOM树时被自动纠错的缘故所以也是适用的。但是在处理那些包含极大量链接的页面时,效果不佳,尤其是当文本的链接比例接近100%时,算法可能出现反常表现。
在处理不同类型的页面时,算法对于信息的过滤效果也不尽相同。在处理大块文本及中等至较长的信息段时,算法表现上佳。此时,绝大部分的导航条和页面中无关元素(如广告,空表格等)均被过滤,当结果以纯文本形式存储时,绝大部分内容均为页面的主体内容。可能对于某些页面来说,有些比较重要的信息,由于处于算法判定的非主体块中而被过滤。但是,由于网络的资源非常丰富,这块信息很可能出现在另一张页面的主体块中。因而,从全局的观点来看,信息的查全率仍是较好的。
6 过滤器的应用
基于DOM数结构的过滤器已经被应用于上海市某服装门户网站的“服装行业专业搜索引擎”项目,我们的工作就是去除掺杂在页面中无关的广告,链接,表格等最大程度保留主体的内容,使得抽取出来的内容非常符合用户的需求。经过一段时间的试用,该系统运行良好。对于抽取结果用户反映比较满意。
7 结论
本文分析了信息抽取中页面预处理技术的过滤器的各种方法,针对传统的技术产生的一些问题,提出一种基于DOM树结构的过滤器方法。经过过滤器处理过的页面,去除了页面中大量凌乱无用的信息,完成了清洗的工作,给接下来的信息抽取工作带来很大的便利。今后,需要在过滤器结构复杂的网页和提高过滤的准确性,减少误过滤等方面做深入的研究。
本文作者创新点:提出信息抽取中页面预处理的一种改进方法—基于DOM树结构的过滤器,并设计了三种过滤器。
该研究运用于上海市某服装门户网站的“服装行业专业搜索引擎”项目,将来所产生的经济效益估计至少为:500万。数据参考某成功的化工行业专业搜索引擎产生的经济效益!

 

上海联兵环保科技有限公司
地址:上海市松江区工业区茸北分区茸阳路69号
总机:021-51691929
传真:021-57784244
免费电话:400-600-5030
技术支持:13641659499
E-mail:zhanglianbing@126.com
http://www.shlbhb.com

发表评论
网名:
评论:
验证:
共有0人对本文发表评论查看所有评论(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
赞助商链接
关于我们 - 联系我们 - 咨询联兵