无为

无为则可为,无为则至深!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  182 Posts :: 291 Stories :: 192 Comments :: 0 Trackbacks

第一章          导论

 

信息抽取( Information Extraction: IE )的目标是把文本里包含的信息进行结构化处理,变成表格一样的组织形式。输入信息抽取系统的是原始文本,输出的是固定格式的信息点。信息点从各种各样的文档中被抽取出来,然后以统一的形式集成在一起。这就是信息抽取的主要任务。

信息以统一的形式集成在一起的好处是方便检查和比较。例如比较不同的招聘和商品信息。还有一个好处是能对数据作自动化处理。例如用数据挖掘方法发现和解释数据模型。

信息抽取技术并不试图全面理解整篇文档,只是对文档中包含相关信息的部分进行分析。至于哪些信息是相关的,那将由系统设计时定下的领域范围而定。

信息抽取技术对于从大量的文档中抽取需要的特定事实来说是非常有用的。互联网上就存在着这么一个文档库。在网上,同一主题的信息通常分散存放在不同网站上,表现的形式也各不相同。若能将这些信息收集在一起,用结构化形式储存,那将是有益的。

由于网上的信息载体主要是文本,所以,信息抽取技术对于那些把因特网当成是知识来源的人来说是至关重要的。信息抽取系统可以看作是把信息从不同文档中转换成数据库记录的系统。因此,成功的信息抽取系统将把互联网变成巨大的数据库!

信息抽取技术是近十年来发展起来的新领域,遇到许多新的挑战。

本文首先在第二章简要介绍信息抽取技术,第三章介绍网页分装器 (wrapper) 的开发,第四章介绍已经开发出来的网站信息抽取系统,第五章介绍信息抽取技术的应用范围以及首批已经进入商业运作的商用系统。

第二章            信息抽取技术概述

信息抽取原来的目标是从自然语言文档中找到特定的信息,是自然语言处理领域特别有用的一个子领域。所开发的信息抽取系统既能处理含有表格信息的结构化文本,又能处理自由式文本(如新闻报道)。 IE 系统中的关键组成部分是一系列的抽取规则或模式,其作用是确定需要抽取的信息 [52] 。网上文本信息的大量增加导致这方面的研究得到高度重视。

本章首先介绍信息抽取领域的发展。第 2.1. 节比较了信息抽取和信息检索的区别;第 2.2. 节介绍 IE 的历史。接下来两节解释评价 IE 系统的指标和常用的两派技术方法。信息抽取技术所处理的文本类型将在第 2.5. 节中说明。第 2.6. 节描述信息抽取技术可利用的网页特征。

2.1.           IR IE

IR 的目的是根用户的查询请求从文档库中找出相关的文档。用户必须从找到的文档中翻阅自己所要的信息。

就其目的而言, IR IE 的不同可表达如下: IR 从文档库中检索相关的文档,而 IE 是从文档中取出相关信息点。这两种技术因此是互补的。若结合起来可以为文本处理提供强大的工具 [24]

IR IE 不单在目的上不同,而且使用的技术路线也不同。部分原因是因为其目的差异,另外还因为它们的发展历史不同。多数 IE 的研究是从以规则为基础的计算语言学和自然语言处理技术发源的。而 IR 则更多地受到信息理论、概率理论和统计学的影响 [24]

2.2.           IE 的历史

自动信息检索已是一个成熟的学科,其历史与文档数据库的历史一样长。但自动信息抽取技术则是近十年来发展起来的。有两个因素对其发展有重要的影响:一是在线和离线文本数量的几何级增加,另一是“消息理解研讨会”( MUC )近十几年来对该领域的关注和推动。

IE 的前身是文本理解。人工智能研究者一直致力于建造能把握整篇文档的精确内容的系统。这些系统通常只在很窄的知识领域范围内运行良好,向其他新领域移植的性能却很差 [53]

八十年代以来,美国政府一直支持 MUC 对信息抽取技术进行评测。各届 MUC 吸引了许多来自不同学术机构和业界实验室的研究者参加信息抽取系统竞赛。每个参加单位根据预定的知识领域,开发一个信息抽取系统,然后用该系统处理相同的文档库。最后用一个官方的评分系统对结果进行打分。

研讨会的目的是探求 IE 系统的量化评价体系。在此之前,评价这些系统的方法没有章法可循,测试也通常在训练集上进行。 MUC 首次进行了大规模的自然语言处理系统的评测。如何评价信息抽取系统由此变成重要的问题,评分标准也随之制定出来。各届研讨会的测试主题各式各样,包括拉丁美洲恐怖主义活动、合资企业、微电子技术和公司管理层的人事更迭。

过去五、六年, IE 研究成果丰硕。英语和日语姓名识别的成功率达到了人类专家的水平。通过 MUC 用现有的技术水平,我们已有能力建造全自动的 IE 系统。在有些任务方面的性能达到人类专家的水平 [53] 。不过自 1993 年以来,每届最高组别的有些任务,其成绩一直没有提高(但要记住 MUC 的任务一届比一届复杂)。一个显著的进步是,越来越多的机构可以完成最高组别的任务。这要归公于技术的普及和整合。目前,建造能达到如此高水平的系统需要大量的时间和专业人员。另外,目前大部分的研究都是围绕书面文本,而且只有英语和其他几种主要的语言。

2.3.           评价指标

信息抽取技术的评测起先采用经典的信息检索 (IR) 评价指标,即回召率 (Recall) 和查准率 (Precision) ,但稍稍改变了其定义。经修订后的评价指标可以反映 IE 可能产生的过度概括现象 (Over-generation) ,即数据在输入中不存在,但却可能被系统错误地产生出来( Produced [24]

IE 而言,回召率可粗略地被看成是测量被正确抽取的信息的比例 (fraction) ,而抽准率用来测量抽出的信息中有多少是正确的。计算公式如下:

P= 抽出的正确信息点数 / 所有抽出的信息点数

R= 抽出的正确信息点数 / 所有正确的信息点数

两者取值在 0 1 之间,通常存在反比的关系,即 P 增大会导致 R 减小,反之亦然。

评价一个系统时,应同时考虑 P R ,但同时要比较两个数值,毕竟不能做到一目了然。许多人提出合并两个值的办法。其中包括 F 值评价方法:

其中 是一个预设值,决定对 P 侧重还是对 R 侧重。通常设定为 1

这样用 F 一个数值就可很看出系统的好坏。

2.4.           IE 系统设计的两大方法

IE 系统设计主要有两大方法:一是知识工程方法( Knowledge Engineering Approach ),二是自动训练方法 (Automatic Training Approach)

知识工程方法主要靠手工编制规则使系统能处理特定知识领域的信息抽取问题。这种方法要求编制规则的知识工程师对该知识领域有深入的了解。这样的人才有时找不到,且开发的过程可能非常耗时耗力。

自动训练方法不一定需要如此专业的知识工程师。系统主要通过学习已经标记好的语料库获取规则。任何对该知识领域比较熟悉的人都可以根据事先约定的规范标记语料库。经训练后的系统能处理没有见过的新文本。这种方法要比知识工程方法快,但需要足够数量的训练数据,才能保证其处理质量。

2.5.           自由式、结构化和半结构化文本

自由式文本 :信息抽取最初的目的是开发实用系统,从自由文本中析取有限的主要信息。例如,从报道恐怖袭击活动的新闻中析取袭击者、所属组织、地点、受害者等信息;又如,从医药研究报告的摘要中提取新产品、制造商、专利等主要信息点。

处理自由文本的 IE 系统通常使用自然语言处理技巧,其抽取规则主要建立在词或词类间句法关系的基础上。需要经过的处理步骤包括:句法分析、语义标注、专有对象的识别(如人物、公司)和抽取规则。规则可由人工编制,也可从人工标注的语料库中自动学习获得。

自由文本信息点抽取技术的现有水平不可与人的能力同日而语,但还是有用的,不管其抽取规则是人工编制的还是通过机器学习的 [52] 。虽然自然语言理解是漫长的期待,但是,信息抽取技术确实可行,因为这项技术对其需要搜索的模式类型有很强的限定,而这种限定是有根有据的。

结构化文本 :此种文本是一种数据库里的文本信息,或者是根据事先规定的严格格式生成的文本。从这样的文本中抽取信息是非常容易的,准确度也高,通过描述其格式即可达到目的。所用的技巧因而相对简单。

半结构化文本 :这是一种界于自由文本和结构化文本之间的数据,通常缺少语法,象电报报文,也没有严格的格式。用自然语言处理技巧对这样的文本并不一定有效,因为这种文本通常连完整的句子都没有。因此,对于半结构化文本不能使用传统的 IE 技巧,同时,用来处理结构化文本的简单的规则处理方法也不能奏效。

在半结构化文本中确实存在一些结构化的信息,但是,抽取模式通常依赖字符和象 html 标记那样的分隔标志。句法和语义信息的作用则非常有限。

2.6.           网页

因特网提供了一个巨大的信息源。这种信息源往往是半结构化的,虽然中间夹杂着结构化和自由文本。网上的信息还是动态的,包含超链接,以不同的形式出现,而且跨网站和平台,全网共享。因此,因特网是一个特殊的挑战,一直推动着从结构化和半结构化文本中抽取信息的研究向前迈进。

有些研究者把所有网页都归入半结构化文本,但 Hsu[31] 对网页类型做了颇有用的定义:若能通过识别分隔符或信息点顺序等固定的格式信息即可把“属性 - 值”正确抽取出来,那么,该网页是结构化的。半结构化的网页则可能包含缺失的属性,或一个属性有多个值,或一个属性有多个变体等例外的情况。若需要用语言学知识才能正确抽取属性,则该网页是非结构化的。

网页的结构化程度总是取决于用户想要抽取的属性是什么。通常,机器产生的网页是非常结构化的,手工编写的则结构化程度差些,当然有很多例外。

传统的 NLP 技巧对抽取半结构化文本的信息并不是很有用,因其缺少规范的语法结构,而且, NLP 方法的处理速度通常比较慢,这对于网上海量信息来说是一个大问题。

网上大部分内容都以属性列表的形式呈现,例如很多可搜索的网页索引。这种外观上的规律性可被利用来抽取信息,避免使用复杂的语言学知识。

网页上的组织结构和超链接特性是需要认真考虑的重要因素。例如,可能需要打开链接的内容才能找到你想要的信息。网页的组织结构不同,抽取规则也不同。

网上数据库查询的结果通常是一系列的包含超级链接的网页。文献 [14] 把这类网页分成三类:一层一页,即一个页面即包含了所有的查询结果;一层多页,即需要调出多个链接才能获得所有的结果;两层页面,即第一层是列表式条目链接,点击链接后才能看到详细资料。

2.7.           小结

IE 领域是近十年来新发展起来的研究领域,一是由于“消息理解研讨会” (MUC) 的推动,二是由于网上内容的大量增加。

IE 对自由文本和结构化文本都能处理。 NLP 技巧通常用于自由文本,对结构化和半结构化文本并不是太适合。相反,基于分隔符和字符的方法更能奏效。

因特网是包含大量半结构化文本的信息源。网页与传统的文本相比,有许多特点:量大,常更新,变化多,页面的一大半包含结构化的文字块,还可能有超链接。因此,网页为信息抽取研究带来新的挑战。

第三章   分装器生成

第3.1.                 分装器

第3.2.                 IE 发展成 WG

第3.3.                 分装器生成

第3.4.                 分装器的归纳学习

第3.5.                 小结

 

各网站的信息内容互相独立,要收集起来有困难。信息抽取技术就是冲着解决此困难而来的。

因特网上还存在一个被称为“暗藏网”( the hidden web ),即那些网上数据库系统。文献 [37] 估计因特网上 80% 的内容存在于这种看不见的因特网中。搜索引擎的“网络爬虫”抓不到这些网页。这就意味着需要一种独立的工具从这些网页中收集数据。

从网站中抽取信息的工作通常由一种叫做“分装器”( Wrapper ,也译“包装器”)的程序完成。以下 3.1. 3.2. 节将介绍分装器的概念及分其生成( Wrapper Generation, WG )研究的历史。第 3.3 节总结了构造分装器的不同方法。手工制造分装器的工作繁重,因此,自动生成的研究变得非常重要。机器学习的方法非常诱人,第 3.4 节介绍了归纳式学习的相关技巧。

3.1.                 分装器

分装器是一个程序,用于从特定的信息源中抽取相关内容,并以特定形式加以表示。在数据库环境下,分装器是软件的组成部分,负责把数据和查询请求从一种模式转换成另外一种模式。在因特网环境下,分装器的目的是把网页中储存的信息用结构化的形式储存起来,以方便进一步的处理。

因特网分装器可接受针对特定信息源的查询请求,并从该信息源中找出相关的网页,然后把需要的信息提取出来返回给用户。它由一系列的抽取规则以及应用这些规则的计算机程序代码组成。通常,一个分装器只能处理一种特定的信息源。从几个不同信息源中抽取信息,需要一系列的分装器程序库。分装器的运行速度应该很快,因为它们要在线处理用户的提问。它还要能应付网络经常变化、运行欠稳定的特点。比如,网络连接失败、文档格式混乱、格式变化等。

建造针对网页的分装器主要有两个好处:一是提高了从某一特定信息源获取相关信息的能力,二是能把不同信息源的信息整合到数据库中,用通用查询语言即可查找信息。

3.2.                 IE 发展成 WG

人们需要能从不同网页资源抽取并整合数据的工具。这种需求造就了分装器生成研究领域的发展。分装器生成( WG )领域独立于传统的 IE 领域。典型的 WG 应用系统能从网上数据库返回的查询结果网页中抽取数据。这些网页构成一个被 WG 业内人称之为“半结构化”的信息源。为了能把这些网页的数据整合在一起,必须把相关的信息从这些网页中抽取出来。因此,分装器实质上是针对某一特定信息源的 IE 应用系统。

传统的 IE 系统采用基于句法和语义条件相结合的抽取模式。如前所述,对于半结构化信息源,基于语言知识的模式并不是很管用。典型的 WG 系统生成的是基于分隔符的抽取模式。由于这类网页均是在一个统一的模板上即时生成的,因此,只要学习了几个样本网页后,系统即能识别分隔符特征串,构成不同的模板区域。

从网页中抽取信息并不容易,要考虑许多问题,例如信息量膨胀的问题、系统灵活性的问题等。

3.3.                 分装器生成

可用人工或半自动的办法生成分装器。手工生成分装器通常需要编写专用的代码,要花很多时间理解文档的结构并将其转换成程序代码。虽然处理半结构化的网页要容易一些,但并仍然还是比较烦琐而且容易出错。

有一些工具可帮助手工生成分装器。使用的方法之一是利用描述性语法对网页结构进行描述,并且提供工具生成代码。不过,编写语法本身就是一项很艰巨和耗时的工作,而且需要高水平的专家。

手工构造的 IE 系统不能适应处理对象所属领域的变化。每个领域都要有相应的分装器,维护成本很高。对于网上信息源来说,这些缺点尤为明显,因为网页数量庞大,内容和结构繁杂,而且新的信息源不断增加,旧的信息还会改变,因此,帮助生成自动抽取网页信息的分装器的技术变得非常重要。

半自动化生成分装器的技术得益于上述分装器生成的支持工具。一种方法是使用向导让用户告诉系统那些信息是需要抽取的。通过图形界面,用户即可以通过演示编写程序,标示出需要抽取的区域。这意味着在分装器编码过程中不需要专业知识,而且比手工编码少产生错误。但是,用这种方法也需要对新的站点进行重新的学习,因为这种系统不能自己学习新的网站结构,也不能处理旧网站的结构变化。

全自动分装器的生成利用机器学习的技巧,开发学习算法,设计出从非常简单到相对复杂的分装器。即使是全自动的方法也需要人工专家的少量参与。系统必须通过学习阶段,从例子中归纳出规则。通常,这个过程是由人工指导的。

分装器归纳法是一种自动构造分装器的技术。主要思想是用归纳式学习方法生成抽取规则。用户在一系列的网页中标记出需要抽取的数据,系统在这些例子的基础上归纳出规则。这些规则的精确度如何取决于例子的质量如何。如果能代表那些需要处理的网页,那么,这些例子就是高质量的。

3.4.                 分装器的归纳学习

用于 IE 的机器学习方法有很多,如符号化学习法, ILP (归纳逻辑设计法),分装器归纳法,统计法和语法归纳法。在分装器归纳法中,分装器的生成被描述成一种归纳学习问题。

在最高层次,归纳学习法是从一些实例中完成未知目标概念的计算任务,是对现象的一种概括。主要思路是,如果归纳出来的规则能解释观察到的实例,或者在新事例出现时能做出准确的预测,那么,这种归纳是成功的。在分类、知识获取、知识发现等任务中被证明是有用的。

归纳学习法是通过推论来完成的。推论是一种从部分到整体、从个别到一般、从个体到普遍的推理过程。老师提供几个实例给学生,学生则从中归纳出普遍适用的规则。人类的学习是基于实验性的观察过程中的,对于我们来说,提供好的观察事例要比提供明确的完整的规则要容易。总的说来,归纳式学习法是一种建立在假设的基础上的研究方法。

有指导的归纳式学习法可以分为两类:零阶 (zero-order) 和一阶 (first-order) 学习法。两者的区别在于其训练数据和所形成的理论的表达方式的不同。

零阶学习法所采用的事例是事先分好类的。每个事例都由对应于固定属性集合的特定值描述。这类系统发展的理论以决策树( Decision Tree )或生成规则( Production Rules )的形式出现,把事例的类和它的属性值联系起来。不幸的是,决策树的学习系统缺少表达能力,因为它们建立在命题逻辑的基础上,不能学习到对象之间的关系(如家族成员的关系)之类的概念。从数据库角度看,他们只能处理“属性 - 值”这种关系。

关系型一阶学习法可在带有结构信息的例子中进行归纳,例如一阶逻辑谓词和函数,无界限结构体( Unbounded Structures ,如列表,树)等。尤其是 ILP 方法,专门研究从例子中归纳一阶逻辑形式的规则,逻辑编程的学习以及其他关系型知识。

ILP 的研究介于机器学习和逻辑编程两种传统研究领域之间。许多其他的机器学习算法均限定于处理有限的基于特征表达的例子和概念,而不能处理复杂的关系型和递归型知识。但 ILP 借助一阶逻辑的表达能力,可以学习关系和递归概念。 ILP 还可以学习更丰富的表达式和比决策树更复杂的概念,因此,已应用于解决从包含复杂结构和关系的文档中抽取信息的学习中。

ILP 算法采用两种不同的归纳方法:一是自下而上(概括),另一是自上而下(具体化)。自下而上的方法是数据驱动的。先选择几个例子,在此基础上提出一个假设,使之能处理这些例子。然后把这个假设推而广之,使之能处理其余例子。自上而下的方法则先从最普遍的假设开始,通过引入反例,把假设规则不断具体化。总的说来,自上而下算法可以归纳出一大类的逻辑程序,但需要相对多的样例。而自下而上算法有为数不多的例子就行了,但只能归纳出一小类的程序。

目前已经有了几个实验 ILP 系统,包括有名的 FOIL[47] GOLEM[39] FOIL Quinlan 于1989年开发,采用自上而下的算法。在一个既有正又有反的事实的训练集中,先找出一个只覆盖正例而不涉及反例的逻辑子句 (clause) ,然后把这个子句覆盖的事实从训练集中删除。如此直到训练集中没有正例为止。 GOLEM Muggleton and Feng 1990 )采用贪婪覆盖算法( Greedy Covering Algorithm )。子句的生成是自下而上的,建立在更多具体子句的“最少概括”( least-general )的概括生成上。概括一直进行直到所有的正例都被覆盖而无一个反例被涉及。

3.5.                 小结

可以预计,网上结构化信息将不断增加。通过查询网上数据库所获得的网页也将不断增加。这些网页是无法让搜索引擎获取的。因此,越来越需要可以把相关信息从这些网页中抽取出来的工具。

分装器是专门从特定信息源中抽取需要的信息并返回结果的程序。对于从不同信息源中整合信息资料是非常有用的。由于这种需求不断增加,分装器生成的研究领域从传统的 IE 领域中脱颖而出。相比之下,生成分装器所采用的技术比较少依赖句子的全面语法分析和 NLP 技术。

分装器可由程序员直接编写,或手工指定网站结构再由程序自动生成规则和代码。无论是哪种情况,这个过程都是费时费力的,而且网页的结构经常变化,新网页层出不穷。这样,必须建造新的分装器。为此,网上信息抽取的研究转向了半自动和自动生成分装器的工作上。

分装器归纳法是用机器学习方法自动生成分装器的方法。在归纳法中,分装器的生成被看成是归纳学习的问题,其任务是从一组例子中计算出一般规则,以解释观察到的事实。教师提供例子,学生在例子的基础上作出归纳,推导出规则。

归纳逻辑编程方法处于传统的机器学习领域和逻辑编程之间,使用一阶逻辑规则。得益于一阶逻辑丰富的表达能力, ILP 方法可以学习关系型和嵌套概念。这是大多数基于“属性 - 值”表达方式的机器学习算法所无法达到的。 ILP 方法为此被应用到学习如何从复杂结构和关系的文档中抽取信息。