第11章Web信息抽取•11.1概述•Web信息抽取就是将Web页面作为信息抽取的信息源,它的主要功能是从Web页面中抽取出特定的事实信息。比如,从新闻报道中抽取出恐怖事件的详细情况:时间、地点、作案者、受害者、袭击目标和使用的武器等;从经济新闻中抽取出公司发布新产品的情况:公司名称、产品名称、发布时间和产品性能等,从病人的医疗记录中抽取出症状、诊断记录、检验结果、处方等或者直接抽取文章中某句话或某段话的信息。通常,被抽取出来的信息以结构化的形式描述,可以直接存入数据库中,供用户査询以及进一步分析利用。•11.2语义Web•语义Web并不是要取代现有的Web,而是扩展。扩展的方式是对现有信息进行形式化的描述,目的是使机器可理解,使计算机能够更好地提供信息服务。简单地说,语义Web就是要给Web加上注释,为了让计算机能够理解,这种注释必须用一种形式化的语言进行描述,并且支持推理。为了多个系统之间能够进行交流,这种注释还应该遵循统一明确的词汇表。在Tim的构想中,语义Web表现为图11.1的层次结构。•自底向上来看,第一层规定了文档中字符的编码方式和资源的统一标识。第二层,XMI和XMLSchema,使用自定义的标签对文档的结构进行标注,规范文档的语法格式,就可以方便地利用计算机处理文档,第三层,明确文档中标引对象之间的关系,即资源描述层RDF+RDFschema。RDF定义了元素之间的关系,表现为三元组的集合(类似于句子的主语、谓语、宾语),XML加上RDF(S)就相当于建立了人工智能中的语义网络可以进行一定的推理。•使用XML十RDFS(S),人们可建立各自的语义网,只要有一组自成体系的术语就可以了,第四层,明确标引项的精确含义,要让计算机相互理解对方的内容,需要有一组共同的标准的概念体系,这就是Ontology。XML+RDF(S)+Onto1ogy构成了计算机相互理解的基础。这样每增加一个层次,计算机在知识处理上就多一份能力。在Onto1ogy之上进一步要做一些逻辑推理的工作,接下来就是保证信息是可信赖的,这成了一个多层次的语义网。•语义Web的实现还需一个长期的过程。从目前的情况来看,语义网下面三层的研究已经开展较长时间,研究成果相对较多,并推出了一系列的标准,可以说打下了比较坚实的基础。•Onto1ogy层和逻辑层,正在引起更多的关注。作为语义Web中从语法处理向语义处理的转折,这两层起着至关重要的作用,相关研究正处在探索之中,有很多有意义的尝试和应用,却还没有成熟的技术和标准,因此成为相关领域研究热点•11.2.2本体描述语言11.3格式转换•将HTML格式转換为XML格式,使用JTIDY工具完成转換工作。HTML和XML都是从SGML派生出来的标记-i再言,HTML的设计目标是显示数据并集中于数据外观,而作为数据交换标准的XML有很多优点:自述性强,重在描述数据本身、数据和显示分离,文件以纯文本的形式输出,与形式无关。显然,它的出现对解决上述的问题带来新的活力。XMl是一种极灵活的、传递数据的方式,为了能获取抽取信息的XML文件,借助JTIDY工具将HTMI.文件转换为XML格式是本方法的关键。•JTIDY读取输入HTML格式文件,然后如果发现有任何不匹配或遗漏的闭合标记地,纠正不完整标记,最后输出一个格式良好的XML文档。•11.4信息解析•处理XML文档有多种解析方式,如SAX、DOM、JAXPJDOM等,JDOM许多优点:JDOM是一个开放源代码的纯Java数式应用程序接口,用来分析;建立和序列化XML文档;它是包含了Java语言的语法及语义,提供了一个简单、轻量的XML文档操作方法;JDOM使用标准的Java编码模式;JDOM将XML文档表示为树,包括了元素、属性、说明、处里指令、文本节点和CDATA段等,整个树结构可以在内存中随时生成,利用可以访问树结构中的任何部分;JDOM可以通过标准的构造器和set方法支持XML文档的修改。•11.5基于DOM子树的抽取规则抽取算法•11.5.1DOM•文档对象模型(documentobiectmode,DOM)是一组抽象接口,用于模型化XML数据,定义了XML文档的逻辑结构,给出了一种访问和处理XML文档的方法,它与语言和平台无关,DOM树结构清晰简单,意义表述明确,成为描述和操作标准HTML文档最流行的方式之一,它将HTML语言里面的标记作为DOM树的节点,是HTML文档的层次化表示.•图11.3与图11.4分别是某图书网站的HTML源代码以及对应的网页(部分)在浏览器中显示的结果。对于人来说,从图11.6中可以轻松得到以下信息:这本书的书名是«JAVA编程思想:第3版»,作者是BruceEckel,市场价是95元等,•图11.3显示的HTMI代码没有给出明确的语义信息,因此计算机不能轻松地分析得到正确的语义,但可以借助DOM树来描述HTML中层次关系,如图11.5所示(经过预处理的部分DOM树),辅助应用程序进行分析•11.5.2XPath•w3c把用于对XML文档子集寻址的标准语言称为XPath(XMl.pathguage,XML路径语言),XPath使用基子路径的方法遍历文档的信息集,可以将XPath理解成为XML的SQL语句,它基于XMI文档的逻辑结构,用XPath可以检索XML文档的元素和属性•在Java程序中使用XPath与在Java程序中使用SQL差不多,因此可以把XPath看成与SQL相似的査询语言,不同的只是XPath并不是从数据库中抽取信息,而是从XML文档中抽取信息。•-LocationStep是XPath的基本结构,提供了从XML文档中选择节点的方法,包括三个部分:轴(axis)、节点测试(nodetest)和谓词(predicate)。轴与节点测试用(::)分开,每个谓词放在方括号中,即axisname::nodetest[predicate]•1.轴•轴定义了要定位的节点相对于上下文的方向和范围。例如:•(1)self:节点本身。•(2)Child:上下文节点的所有子节点。•(3)Parent:父节点。•(4)Attribute:上下文节点的属性。•2.节点测试•允许从指定的轴中选择特定的元素或者其他节点类型,来进一步缩小节位范围。例如,•(1)Name:具有指定名称的任何元素或属性。•(2)*:沿着属性軸,星号匹配所有属性节点。•(3)Test(),任何文本节点。•(4)Node():任何节点。•3.谓词•谓词是方括号中的XPath表达式,对所选择的每个节点求值•11.5.3XSLT•根据W3C的规范说明书,最早设计可扩展样式表转換语言的用意是帮助其他文档。但是随着技术的发展,XSLT已不仅仅用于将XML转换为HTML或其他文本格式,因此更全面的定义应该是:XSLT是一种用来转換XML文档结构的语言,它可以将一种基于XML的表示映射到另一种基于XMI的表示。•XSLT共使用三个文消:源文档、XSLT样式表和结果文档。源文档只是一个符合格式的XML文档.提供转换的输人;样式表文措是一个使用XsLT词汇•表达转換规则的XML文档;结果文档是通过XSLT样式表对源文档进行转换所产生的文本文档。•XSLT样式表也是一个XML文档,包含一个或多个XSLT模板,模板是字面结果元素(1itera1resultelement)和XSLT指令的集合。字面结果元素是要逐字复制到结果文消中的元素,XSLT指令是用于更改模板处理的已知元素,在指令中经常结合使用XPath表达式,从抽取的角度来看,xslt文档就是抽取规则。由于XSLT是一个广泛使用的标准,语言强大而且有很多工具支持它,因此采用XSLT作为抽取规则,使系统具有更好的扩展性,•11.5.4NE-DOM分析•NE-DOM(namedentlty-documentobjectmode)的主要思想是:利用领域知识,结合命名实体识别和DOM分析的方法针对每一个信息源生成基于DOM的抽取规则,然后使用这些抽取规则来抽取对应数据源中的特定信息。•现是以图书领域作为原型,所以我们给出根据领域本体产生的图书领域的Web-DKF,如图11.6所示。其中Path、Type和PrefixList分别表述实体在•web页面中的结构特征(指目标信息在DOM树层次结构中的路径信息)、简单特征(命名实体名或目标信息)和关系特征(目标信息与其前后信息的关联)其中Path默认值为空,Type默认值为实体名,而PrefixList表示实体可能出现的前导词,默认值为领域本体中同一实体不同的别名。使用前导词的目的是获取不能通过命名实体识别进行标注,但用户却感兴趣的数据,如图书的书名信息。而Required表示该类型的实体必须出现。•经过命名实体识别和标注以后,可以在分析NE-DOM的基础上,针对每一个已经识别并标注过的命名实体构造特征值,其中可以使用路径表达式代表结构特征,使用命名实体名称代表简单特征,使用前导词代表关系特征。所以,针对所有的SOI(snippetofinterest)用户感兴趣的信息片段可以使用表述:•Feature(序号)=(结构特征,简单特征,关系特征,命名实体内容)则Author(BrueeEeke1)和Price(95元)的特征值表示如下:•Feature(1)=(table.tr[2].td[2].Author,”Author“,”作者“,”BrueeEekel”•Feature(2)=(table,tr[3].td[2].price,”price,”价格,95元”)•在构造NE-DOM之前必须对源Web文档预处理为XHTML格式,然后进行命名实体标注。由于命名实体识别的研究正在发展,现在只集中在少数几种信•息上,比如对于书名一类的信息就很难进行命名实体标注,所以也无法获得书名的特征值。这时必须确定已经识别出来的SOI所在的信息块,然后结合领域知识从用户感兴趣区域中去抽取这类未经标注的信息,因此需要分析所有soI的特征值,通过用户感兴趣区域确定算法,获得BOI的位置,然后结合领域知识,针对每个BOI中所有领域数据生成抽取规则。整个分析过程如图11.7所示,•11.5.5基子DOM子树的抽取规则抽取算法•Web页面中的所有领域BOI信息模板填充以后,就可以结合Web-DKF和NE-DOM树,对页面中所有领域相关的SOI生成抽取规则。但是经过基于竞争分类方法获得的BOI信息模板可能存在信息缺失的情况,也就是所有不能进行命名实体识别的SOI的特征值都不包含在信息模板中。另外,信息模板中•所有路径的表达式都可能包含领域相关的节点,这些节点在生成抽取规则的时候必须除去;还有就是存在噪声信息模板的情况,所以在生成抽取规则之前必须首先解决三个问题:•(1)解决不能识别命名实体而造成的信息缺失的情况。•(2)解决BOI信息模板Path糟中的路径表达式含有领域节点的问题。•(3)解决辨别噪声模板的情况。•为解决上述同题,首先利用BOI信息模板中的Path属性,获得当前BOI所在的位置然后构造子树,在子树中利用关系特征(即前导词),来获得缺失的SOI,填充模板中值为空的slot。例如,针对图书信息的书名,这里就可以利用其前导词来获得,然后填充到模板中。使用前导词时,考虑到前导词与目标信息之问有时存在一些较短的噪声信息,会妨得前导同的抽取,对前导词可以设置长度限制来消除这些噪声的影响。另外,针对所有BOI中的每一个槽,删除其路径表达式中包含的领域相关节点。最后,判断所有BOI中属性Required为True的槽,如果该槽的值为空,丢弃这些已确定的]BOI。图11.8给出了抽取规则的抽取算法。•下面以一个具体的例子来分别说明抽取规则和抽取结果的表示,图11.8是缩略图,只显示了一个信息块,而实际上的页面含有更多的相似信息块,现在要抽取的是该信息块中的图书书名TITLE、作者AUTHOR、出_版PUBLISHER和价格PRICE,并以这样的顺序显示在结果文档中,则表示抽取规则的XSLT文件如图11.9所示。••为了方