NLP(自然语言处理)技术才能实现信息抽取的网页文本属于半结构化文本。但是使用NLP技术并不一定有效,因为这种文本通常连完整的句子都没有。因此,对于半结构化文本不能使用传统的IE技巧,同时,用来处理结构化文本的简单的规则处理方法也
24
第三章 电子游戏资源自动搜集的关键技术及改进
不能奏效。但是在半结构化文本中也确实存在一些结构化的信息,因此抽取模式通常依赖字符和像html标记那样的分隔标志,句法和语义信息的作用则非常有限。
3.2.1.2 抽取内容分析
从主题爬虫抓取的半结构化的Web文档中得到相关信息(本系统为电子游戏的描述信息),依次填入资源库元数据相应的栏内。
3.2.1.3 抽取方法分析
Web信息抽取有多种分类方式[21],前述第一章就给出了像基于自动化程度以及基于抽取原理等不同的分类方式。近年来国内外涌现了多种信息抽取方法,根据不同的抽取工具所应用的抽取原理和抽取方式的不同,可以大致分为以下5类:基于自然语言处理方式的信息抽取、包装器归纳方式的信息抽取、基于Ontology方式的信息抽取、基于HTML结构的信息抽取和基于Web查询的信息抽取。在以下部分,对之进行介绍[22]。 1、基于自然语言处理方式的信息抽取
如果抽取前的文档包含大量文本,特别是文本合乎文法,非常适合采用此类信息抽取方法。这类方法在一定程度上借鉴了自然语言处理技术,利用子句结构、短语和子句的关系建立基于语法和语义的抽取规则实现信息抽取。目前采用这种原理的典型系统有PAPIER,SRV,WHISK。
2、基于本体(Ontology)方式的信息抽取
该类信息抽取主要是利用对数据本身的描述信息实现抽取,对网页结构的依赖较少。有Brigham Yong Univercity信息抽取小组开发的信息抽取工具采用了这种方式,另外QYIXOTE也采用了这种方式。
基于本体的方式事先需要有领域知识专家采用人工的方式书写某一应用领域的ontology(包括对象的模式信息、常值、关键字的描述信息,其中常值和关键字提供了语义项的描述信息)。系统根据边界分隔符和启发信息将源文档分割为多个描述某一事物不同实例的无结构的文本块,然后根据ontology中常值和关键字的描述信息产生抽取规则,对每个无结构的文本块进行抽取获得各语义项的值,最后将抽取出的结果放入根据ontology的描述信息生成的数据库中。 3、基于Web查询的信息抽取
使用Web的相关技术解决Web问题称为Web技术风范。上述的信息抽取工具,采用了不同的原理,抽取规则的形式和感兴趣信息的定位方式也各不相同,因此均不具有通用性。具有Web技术风范的信息抽取,将Web信息抽取转化为使用标准的Web查询语言对Web文档的查询,具有通用性。采用该类技术的典型系统有:Web-OQL以及自助开发的原型系统PQAgent。
4、基于HTML结构的信息抽取
该类信息抽取技术的特点是根据Web页面的结构定位信息。在信息抽取之前通过解析器将Web文档解析成语法树,通过自动或半自动的方式产生抽取规则,将信息抽取转化为对语法树的操作实现信息抽取。采用该类技术的典型系统有LIXTO、XWRAP、RoadRunner
25
第三章 电子游戏资源自动搜集的关键技术及改进
和W4F等。下面以XWRAP系统为例进行分析。
XWRAP(XML-enabled Wrapper),通过交互式的方式,由用户在样本也中指定抽取区域的起始位置,系统确定整个抽取区域,并确定区域的类型,然后通过可视化的方式,由用户在样本页中制定语义项(如表头)及与之对应的实例,系统自动产生抽取规则实现信息抽取,最后系统利用启发信息获得数据间的层次结构关系,生成XML文档。该系统采用用户在网页中指定语义项的方式附加语义信息,即将网页的部分内容作为语义项,对于不同的区域类型(如Table,List等)采用不同抽取规则提高系统的灵活性和效率。但是该系统只适合对含有明显区域结构的网页进行信息抽取,不支持对普通网页的抽取,模式的表达能力也非常有限,在学习阶段用户参与太多。 5、基于包装器归纳方式的信息抽取
所谓包装器,其实是一种软件构件,负责将数据和查询请求由一种模式转换成另一种模式。因此,一个包装器实际上可看作是一类页面到该页面所含元组集合的函数。在Web信息应用中,包装器应用已经定义好的信息抽取规则,将Web页面中的信息数据抽取出来,转换成用特定的格式描述的信息,为其他信息系统进行进一步的处理提供服务。
包装器归纳方式的信息抽取根据事先由用户标记的样本实例应用及其学习方式的归纳算法,生成基于定界符的抽取规则。其中定界符实质上是感兴趣语义项上下文的描述,即根据语义项的左右边界来定位语义项。该类信息抽取方式和基于自然语言理解方式的信息抽取技术最大的不同在于仅仅使用语义项的上下文来定位信息,并没有适用语言的语法约束。采用这种原理的典型系统有WIEN、STALKER和SOFTMEALY。下面以WIEN系统为例分析这类信息抽取技术。
WIEN(Wrapper Induction Environment),是指分装器归纳生成环境,由N. Kushmerick (1997)开发[23,24]。其方法不只局限于某一领域,适用于所有包含表格信息的结构化文本,也不只是用于HTML文本。这种方法可以处理被他们称之为具有HLRT结构的网页:页面有Head头分隔符,Body左右分隔符(指在每个待抽取的事实的左右),Tail尾分隔符三部分。系统寻找标记信息点开始和结尾的统一的分隔符,以及那些把表格信息与其他周围信息分开的分隔符。符合这一规则的页面几乎都是搜索数据库所得的结果页面。该系统的语义和模式信息是用户附加的,通过感兴趣信息的左右边界实现信息的定位,对复杂对象不作处理。
系统采用归纳学习法,从查询结果样例中生成分装器。归纳算法是:把标记好的网页作为输入,然后搜索由“HLRT分装器模型”定义的分装器空间(space of wrappers),反复尝试所有可能的分隔符,直到找到与标记网页相一致的HLRT分装器。系统还采用基于机器学习理论的模型来预测需要学习多少个例子,以保证所生成的分装器的出错几率控制在一定的范围内。
26
第三章 电子游戏资源自动搜集的关键技术及改进
3.2.2 电子游戏主题信息抽取方法
通过eGameCrawler程序抓取下来的网页,除了自动保存下来的URL,还要进行其它敏感信息的抽取,如游戏名称、相关介绍信息。在2.3.1节的分析中,我们知道索引类页面和资源类页面是主题爬虫重点抓取的两类页面。根据前期对电子游戏类样本网页的分析,绝大多数资源类页面包含了电子游戏的名称与介绍,并且,此类页面一般一个页面只包含一个游戏,所以资源类页面是主要的信息抽取对象。对于一个页面包含多个电子游戏信息,如索引类网页,由于不包含游戏介绍等敏感信息暂不考虑在处理范围之内。
在电子游戏类站点中,各页面相互之间鲜有相近的文本描述,或相似的结构特点,不太易于给定通用的决策一块实施抓取。本文所采用信息抽取方式是自动方式与手工方式结合的方法。自动方式是基于一定的规则,通过将页面转化成DOM树进行匹配敏感信息的Web信息抽取方法[30]。自动方法因为页面的异构性,效率不高,往往有偏差,因此结合手工方式。
手工方式采取人工提取的方法,由项目组成员对主题爬虫抓取的页面进行敏感信息提取,手工方式工作量大,但错误率小,不容易出现偏差。同时,本系统的前台用户交互部分设计了用户上传部分,充分发挥互联网的共享性,吸收用户上传的游戏,按电子游戏元数据形式存入数据库。
3.2.2.1 信息抽取规则集
自动方式是基于规则的方法,根据网页结构的特征来看,大部分电子游戏类网页的标题与介绍信息都有一些规则性,笔者建立了一些规则以利于程序对此类信息的提取。
在2.3.2节里,我们把标记一个电子游戏的元数据定义为:标识、标题、内容描述、上传者、收录时间、类型、来源。这些信息根据来源可以分成三类,第一类由系统自动生成,比如标识、上传者与收录时间(只有在人工添加的方式时由添加者添加,若为系统抓取,则默认为CPU);第二类由主题爬虫在抓取过程中直接得来,来源(电子游戏源URL)属于此类。第三类要经过信息抽取得到,如标题、内容描述。
本节所述的信息抽取主要是针对电子游戏的标题(游戏名称)与内容(介绍)进行。下面针对此类网页,笔者制定了一系列规则集,以便于后面运用些规则提取信息。
在前面2.3.1节中,笔者分析了电子游戏类网页的页面特征,定义了一个电子游戏的核心元素结构(见表1)。电子游戏核心元素的结构有三部分组成:标题、介绍与多媒体,这些三类信息往往都会在资源类网页中出现,规则如下:
① 标题,标志游戏名称,一般大字体、粗体或带书名号,文本txt格式;
② 介绍,对游戏的介绍,一般包括以下关键词:“游戏名称、游戏介绍、名称、介绍、攻略”等文本性信息,文本txt格式;
③ 多媒体,游戏截图或游戏本身,以JPG、GIF、SWF、EXE等格式,一般位于DOM树相同或相近的table标签块或td标签块内。通常是一幅截图或一个flash游戏。
通过将页面处理成DOM树,遍历这些节点,利用以上规则进行抽取。抽取之前时,为了减少系统开销,提高效率,还应该对页面进行预处理,去除掉广告、导航等垃圾信息,使页面更“干净”,有利于对主题信息的基于规则的提取。
27
第三章 电子游戏资源自动搜集的关键技术及改进
3.2.2.2 页面预处理
目前,互联网上作为信息载体的网页绝大多数采用HTML这种超文本标识语言编写。 众所周知,HTML 语言是一种半结构化的语言,不具备XHTML或XML 语言严格的定义,对之进行信息抽取比较困难。
一般的网站出于美观和商业利益的考虑,会在HTML中使用javascript,css等技术对显示效果进行处理或是加入大量的链接式广告信息。这使得页面的主题信息隐藏在大量无关的信息之中。我们把与Web网页主题内容无关的信息统称为“噪声”。
噪声对基于Web的数据挖掘、搜索引擎、文档分类、信息抽取等方面带来了一定的影响。噪声的存在不仅降低了处理的速度,还会影响处理结果的准确性。例如在搜索引擎中,噪声部分可能包含了用户输入的关键词就将该页面返回给用户。在网页分类中,噪声也会造成分类错误。对于本系统来说,去除噪声内容,Web应用程序可以更集中的对网页的主题内容进行处理,从而提高了处理结果的准确性。另外,去除一些无关的标签也可以显著简化网页内标签结构的复杂性并减小网页的大小,从而节省后续处理过程的时间和空间开销。所以,去除噪声已经成为Web信息抽取中一项必不可少的工作。 一、噪声区与主题信息区对比分析
通过对大量Web页面结构的分析,发现网页的噪声通常由下面几部分组成:导航区域,广告区域,用户交互区域以及版权区域。这些区域都有一定的页面结构特点,为提取页面主题信息,我们对这四种噪声提供了一些规则,供程序使用。
导航区域和广告区域包含了大量的超级链接(a标记中的href属于值),导航区域通常位于页面的顶部,广告区域位于页面的两侧,且面积较小。
用户交互区域和版权区域通常都含有一些敏感的文字(如copyright、版权所有、请发表评论、注册、发表回复等)。这些敏感文字通常位于页面底部,且面积较小。
而主题文本区域则与以上几种不同。具体表现在以下几个方面:
①含有大量的文本文字,非链接文本字符数远远大于链接数,或者当两者接近时,该区域内非链接文本也是各个区域中最多的。
②页面主题文本区一般位于页面的中间部分,宽度占到整个页面的80% 以上。即在网页四周出现的块可能是噪声信息,而在网页中心出现的块可能是主题信息;区域越小的块越可能是噪声信息,较大的块是噪声的可能性相对较低。
③这些区域通常都是依靠p、table、tr、div等标签来划分成各个分块的。 二、噪声去除
基于上面对噪声的分析,在页面预处理时使用相关步骤对之进行处理,以达到预处理之后的页面能够尽可能的包含主题部分(主题文本及主要标签)。具体步骤如下:
Step1:直接删除HTML源码中的script、style、form、ifram等不包括页面主题信息的标签;
Step2:将HTML源码初始化为DOM树(DOM树是一种接口,提供使用者轻松访问HMTL中的各种元素,具体方法将在下一小节内描述);
28
第三章 电子游戏资源自动搜集的关键技术及改进
Step3:针对用户交互区域和版权区域的噪声去除方案:遍历DOM树中的每一个分块节点,一些区域块包含了指定的敏感文字,比如copyright、版权所有、请发表评论、注册、发表回复等,这种节点块直接删除;
Step4:针对导航区域和广告区域的噪声去除方案:遍历DOM树中的每一个分块节点,计算其相应的链接个数(a标记的个数)和非链接文本字符长度之比,根据定义的阈值判定是否为此类噪声。即预定一个正值a,当两者之比大于此值时,表明此区域链接数目太多,定义为噪声。阈值的设定比较重要,同时也比较困难,因为太高的阈值会导致较难完全去除噪声音信息,而太低的阈值会导致去除掉正文中的链接信息。根据笔者及研究小组对样本网页的手工计算,得出一个经验值,一般取a=0.32。
3.2.2.3 提取算法描述
在去除噪声之后,留下的部分就是主题内容部分,里面包含有电子游戏的名称与相关介绍等信息。下面,对基于规则的信息抽取方法进行描述。
对标题、游戏介绍与多媒体三部分元素的判定采用HTML源码转变成DOM树的方法。DOM(Document Object Model)是文档对象模型的缩写。根据W3C DOM规范[25],DOM是一种与浏览器、平台、语言无关的接口,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本和表现层对像。每一个网页经过标准化处理之后都能够生成一个对应得DOM树,通过DOM树的遍历,我们就可以实现对页面中的每一个元素进行处理。
例如下面的一段HTML代码:
P text