A Maximum Entropy Approach to Information Extraction from Semi-Structured and Free Text

【文章来源】

Hai L C, Ng H T. A maximum entropy approach to information extraction from semi-structured and free text[C]// Eighteenth national conference on Artificial intelligence. American Association for Artificial Intelligence, 2002:786-791.

【原文链接】

一种从半结构化和自由文本中提取信息的最大熵方法:http://www.aaai.org/Papers/AAAI/2002/AAAI02-118.pdf

摘要

在本文中,我们提出了一种基于分类的方法,用于单时隙和多时隙信息提取(IE)。对于单时隙IE,我们在研讨会公告领域开展工作,每个文档仅包含一个研讨会的信息。对于多时隙IE,我们致力于管理继承领域的工作。对于这个领域,我们将自己限制在逐句提取信息,就像Soderland 1999一样。每个句子都可以包含几个管理继承事件的信息。通过使用基于最大熵框架的分类方法,我们的系统实现了在这两个领域都取得了比先前发表的最好的结果更高的精度。

1 介绍

信息提取(IE)可以定义为自动提取文本片段以填充数据库中的插槽(时隙)的任务。例如,从研讨会公告中提取演讲者和研讨会的开始时间,或者在新闻文章中提取进出公司职位的人员。单槽(时隙)IE意味着在每个文档中最多只能找到一个模板(或数据库记录)。

多槽(时隙)IE意味着可以在一个文档中找到零个或多个模板。最近关于机器学习IE的研究主要集中在单槽半结构化领域(Califf 1998; Freitag和McCallum 1999; Ciravegna 2001)。关于自由文本的IE工作主要基于模式学习方法(Soderland 1999; Yangarber et al.2000)。Soderland和Yangarber等人已经在管理继承领域工作,在这一领域,IE不仅因为新闻文章中使用的写作风格而变得更加困难,而且因为一个文档可能包含有关几个不同事件(多时隙IE)的信息。

Taira和Soderland(Soderland 2001; Taira和Soderland 2000)还开发了另一个系统,用于在医疗报告领域做IE。该系统旨在从整个报告中提取模板而不是单个句子。他们在胸部放射学报告领域报告了很好的结果,但指出在学习过程中,规则最终被接受之前,需要人的干预。McCallum,Freitag和Pereira(2000)使用最大熵马尔可夫模型在常见问题(FAQ)列表中提取问答对。尽管他们使用了最大熵框架,但他们的方法仍然基于马尔可夫模型。我们展示了如何将IE作为一个分类问题来处理。

在本文中,我们介绍了我们在单插槽(时隙),半结构域(研讨会公告)以及多插槽(时隙)自由文本域(管理继承)方面的工作。本文介绍的两种IE系统都是基于最大熵分类器,我们使用了Javabased opennlp的最大熵包。

2 最大熵分类器

最大熵框架基于除了所施加的约束之外尽可能少的假设的原则来估计概率。 这些约束通常来自训练数据,表达特征和结果之间的某种关系。 满足上述性质的概率分布是具有最大熵的概率分布。它是唯一的,与最大似然分布一致,并具有指数形式(Della Pietra,Della Pietra和Lafferty 1997):

p=\left ( o|h \right )=\frac{1}{Z\left ( h \right )}\prod_{j=1}^{k}\alpha _{j}^{f_{1}\left ( h,\alpha \right )}

其中o表示结果,h表示历史(或上下文)。Z(h)是归一化函数。每个特征函数是二元函数。 例如,在预测单词是否属于单词类时,o是true还是false,h指的是周围的上下文:

f_{j}\left ( h,o \right )=\left\{\begin{matrix} 1 \: \, if \, o=true\, and\, previous\, word=the\\ 0\: otherwise \end{matrix}\right.

 

参数\alpha _{j}通过称为广义迭代缩放(GIS)的程序进行估计(Darroch和Ratcliff 1972)。 这是一种迭代方法,可以改进每次迭代时参数的估计。我们已经完成了300次迭代的所有实验。

由于数据稀疏,所有结果都没有看到某些情境。 例如,在研讨会公告域中,结果发言人可能从未见过“previous word = at”的上下文。 通过简单地为每个结果添加每个上下文的训练实例来实现平滑。最大熵框架考虑非独立特征的能力使其适用于我们正在处理的两个任务。

3 研讨会公告

对于单槽任务,我们选择在研讨会公告领域工作。 此领域的先前工作包括(Ciravegna 2001; Freitag和Kushmerick 2000; Freitag和McCallum 1999)。 我们的方法类似于(Borthwick 1999),其中尝试的任务是命名实体识别,例如人名。然而,我们使用的功能与Borthwick使用的功能不同。 从每个研讨会公告中,将提取4个插槽(时隙):扬声器,开始时间,结束时间和位置。 我们进一步将每个时隙划分为4个子类,例如:扬声器开始,扬声器继续,扬声器端和扬声器独特。没有填充任何插槽的单词属于另一个名为not-a-slot的类。在训练期间,每个单词用于生成一个训练示例,并且在测试期间,训练的分类器将每个单词分类为17个类中的一个。

3.1 研讨会公告的特点

我们在下面定义了几组功能。对于每一组,一个训练或测试实例通常有一个特性集为1,而该组中的其他特性集为0。这些组是:

1. Unigrams单元。每个单词w的字符串用作特征。那是前一个单词w-1和下一个单词w+1的单词。每个示例都有三个功能w,w-1和w+1设置为1;

2. Bigrams三元。前两个单词的字符串对(w-2,w-1)用作特征。接下来的两个单词(w+1,w+2)也是如此;

3. Zone区& InitCaps。一些公告包含句子标签。系统将逐句处理每个文档。标签<sentence>和</ sentence>中的文本被视为一个句子。句子标签之外的文本被处理为一个连续句子。句子标签内的单词被视为TXT区域。这些标签之外的单词被认为是在FRAG(碎片)区域中。这组功能包括2个特性(InitCaps,TXT)和(InitCaps,FRAG)。对于以大写字母(InitCaps)开头的单词,2个功能(InitCaps,TXT)或(InitCaps,FRAG)中的一个将设置为1,具体取决于单词出现的区域。如果单词不以大写字母开头,那么两个功能都设置为0。

4. w-1和w+1的区域& InitCaps。如果前一个单词具有InitCaps,则另一个特征(InitCaps, TXT) PREV或(InitCaps, FRAG) PREV将被设置为1。下一个单词也是一样。

5. 标题。标题被定义为最后一个冒号“:”之前的单词。例如,在图1中,单词“Dr.博士”的标题Koji Ikuta和“微电子机器人技术中心”是“世卫组织”。系统将区分标题第一行上的单词(例如Whofirst-line)与其他行上的单词(Who-other-lines)。此组中最多有一个功能设置为1。

6. 第一句话。该组仅包含一个FIRSTWORD特征,如果该单词是句子的第一个单词,则设置为1。

7. 时间表达。如果w的单词字符串与正则表达式匹配:[digit] +:[digit] +,则此特性将设置为1。

8. 姓名。我们使用从美国人口普查局网站下载的名字和姓氏列表。如果w具有InitCaps并且在名字列表中找到,则特性FIRSTNAME将被设置为1。如果w-1(或w+1)具有InitCaps,并且在名字列表中找到,那么FIRSTNAMEPREV(FIRSTNAMENEXT)将设置为1。LASTNAME也是如此。

9. 新词。如果在Linux上的/ usr / dict / words中找不到w,则新特性被设置为1。

3.2 测试

在测试期间,分类器可能产生一系列不可接受的类(例如,扬声器开speaker-begin后跟位置唯一speaker-begin)。为了消除这样的序列,我们将字类之间的转移概率定义为p\left (c_{i} |c_{j} \right ),如果序列是可允许的则等于1,否则为0。 然后使用维特比Viterbi算法来选择具有最高概率的词类序列。单词序列s的概率定义如下:

p\left (c_{1},c_{2},\cdots ,c_{n} |s \right )=\prod_{i=1}^{n}p\left (c_{i} |s \right )*p\left (c_{i} |c_{i-1} \right )

 

其中由最大熵分类器确定。对于某些时隙(例如说话者),可能在同一研讨会通知中找到多个实例。在这种情况下,仅使用最佳实例(具有最高概率)。

3.3 实验结果

数据包括485个研讨会公告(895 KB,102K字)。我们进行了5次实验。在每次试验中,我们将数据分成两半,一半用于训练,另一半用于测试。我们在表1中的结果是这5项试验的平均值。除了我们自己和SNoW(Roth和Yih 2001)的结果之外,所有其他系统的4个插槽的准确度都取自(Ciravegna 2001)。

表1:CMU研讨会公告的F值。 SP =speaker,LOC =location,ST =start time,ET =end time。“ALL”是4个插槽的加权平均值。

我们使用MUC7-scorer对每个位置进行评分。 allslots得分是四个时段(slot)的加权平均值,其中每个slot的权重除以整个数据集中可能的slot数(485个研讨会公告有开始时间,464个有位置,409个有发言人,228个有结束时间)。我们将我们的两个系统ME_{1}ME_{2}与其他已发布的系统进行比较。 ME1仅使用特征组(i)到(vii)(即没有外部知识)。ME_{2}使用所有9个功能组。比较全时段分数,ME_{2}优于\left ( LP \right )^{2}(Ciravegna 2001),SNoW(Roth和Yih 2001),BWI(Freitag和Kushmerick 2000),HMM(Freitag和McCallum 1999),Rapier(Califf 1998),SRV( Freitag 1998)和Whisk(Soderland 1999)。

\left ( LP \right )^{2}和SNoW都使用浅自然语言处理:\left ( LP \right )^{2}使用形态分析器,部分语音标记器和用户定义的字典(例如,pm是语义类别timeid)。SNoW也使用词性标注。在没有任何外部知识的情况下,ME_{1}优于除\left ( LP \right )^{2}和SNoW之外的所有系统。ME_{2}只使用了三个列表:名字,姓氏和词典列表。BWI报告说,当使用相同的三个列表时,扬声器插槽的性能从67.7改善到73.5。然而,他们没有报告所有4个插槽在这个实验设置的结果。

我们已经证明,当提供信息特征时,基于分类的方法(如最大熵)能够实现最先进的准确性。

4 管理层继承

在本文中,我们没有尝试完整的MUC-6场景模板任务。我们提出了一个逐句尝试IE的系统,提取4个插槽的模板。4个位置分别是“入职人员”(进入公司职位)、“离职人员”(离开公司职位)、“公司职位”和“公司名称”。这项任务已由Soderland(1999)定义,我们通过使用一系列分类器表明,我们的系统优于WHISK(Soderland 1999)。Collins和Miller(1998)也在这个领域工作,并取得了优异的成绩。但是,他们的方法要求用指示词手动标记测试数据,使任务更容易(带有两个事件的句子用两个指示词标记)。

在该域中,需要多槽IE。句子可能包含零个,一个或多个模板。用于单槽IE的方法只能给我们可能的候选人,可以填补每个槽。需要另一个分类器来决定哪些候选者应该填充相同的模板,哪个应该填充不同的模板。

通过使用我们的单槽提取方法,可以为每个槽建立候选列表。在这种情况下,所有候选人都应填写一些模板。另一种方式是使用某个语义类的所有实体作为特定时隙的候选者。例如,所有人都可以成为管理继任任务中“入人”和“出人”职位的候选人。使用这种方法,一些候选人将不得不被拒绝,不能进入任何模板。语义类的确定可能需要相当多的领域知识。 Riloff和Jones(1996)使用无监督的方法来构建语义词典。Grishman(2001)重申了IE中词类发现的重要性。在本文中,使用BADGER (Fisher et al. 1995)对输入句进行句法分析。在这些句子中,人名、组织名和职位名都加了标签。在每句话中,我们用所有被标记的职位名称和所有被标记的组织名称作为公司职位的候选人。对于person-in和person-out,我们构建了两个单独的分类器来生成两个插槽的候选列表。然后构建关系分类器以对每对候选者之间的二元关系进行分类。在一个总共有n个候选的句子中,有n(n-1)/2个可能的二元关系。

 

图2 句子的关系分类结果“联邦快递有限公司副总裁Bronczek被称为欧洲,非洲和地中海的高级副总裁,在这个空中关注的问题上。”一条实线表示该关系被归类为正面, 虚线表示它被归类为负数。 从这句话中提取两个模板的难度很明显。 关系分类器得到了这个权利。

 

图3 多槽信息提取过程

图2显示了关系分类器的示例输出。整个过程如图3所示。这种方法是新的,与此任务上的其他已发布方法不同。

4.1 系统概述

多插槽IE系统由四个组件组成:

1. 文本过滤

在测试期间,首先使用文本分类模块来消除不包含任何相关模板的文档。对于这个模块,我们使用svmlight(Joachims 1998),并使用包含相关模板的文档作为正面示例和不作为反面示例的文档进行训练。每个文档由特征向量表示,该特征向量是所选术语的术语频率的归一化向量。使用相关度量(Ng,Goh和Low 1997)选择术语:

c=\frac{\left ( N_{r+} N_{n-}N_{n+}\sqrt{N} \right )}{\sqrt{\left ( N_{r+} N_{r-} \right )\left ( N_{n+} N_{n-} \right )\left ( N_{r+} N_{n+} \right )\left ( N_{r-} N_{n-} \right )}}

 

其中Nr +(Nn +)是术语出现的相关(非相关)培训文件的数量,Nr-(Nn-)是不发生术语的相关(非相关)培训文件的数量, N是文档总数。前1000个术语(具有最高C)和最低1000个术语(具有最低C)用作特征。

对于100个测试文档,其中50个包含相关模板。该模块发现60个相关的测试文档,其中49个是真正相关的:1个文档的假阴性和11个文档的误报。

2. 候选人选择

对于公司职位和公司名称,所有标记在BADGER输出中的职位和组织都用作候选人。选择过程可以被认为是所有位置和组织名称的标记。对于person-in和person-out,因为在一个句子中通常有更多的线索表明一个人是in还是out,我们为每个插槽建立了一个分类器。每个分类器仅使用相关文档中的句子进行训练(498个训练文档中,298个是相关的)。在测试过程中,对文本过滤模块中发现的60个文档的句子进行处理,这些句子中出现的每个人都可以分为person-in, person-out, both, or neither。

3. 关系分类

关系分类器查找实体之间的成对关系,例如(Bronczek,person-in)和(高级副总裁,职位)。一个人可以同时进入或离开两个不同的职位。因此,我们允许所有42=16的关系。

4. 模板构建

只有包含至少一个person-in或person-out的模板才被认为是要输出的有效模板。给定句子中实体之间关系的图表(参见图2),当且仅当两个实体的关系被分类为正数时,两个实体之间存在一条边。系统将首先尝试找到最大的团(完整子图)。在相同规模的派系中,它将选择具有最高关系概率乘积的派系。product的使用隐含地假设同一个模板中的关系是独立的,这是不正确的。但这只是用来在大小相同的模板间进行选择的一种方法,且很好地实现了这一目的。

一旦形成模板,将从图中移除形成该模板的实体,并且系统将使用剩余实体的新图重新开始。从这个新图表中,如果还有人,那么可以形成第二个(可能是第三个、第四个,等等)模板。在图2中,将形成两个模板,每个模板来自一个小团体。

4.2 Person-in和Person-out分类器的特性

这些功能源自BADGER输出格式(参见图4)。 BADGER语句被分为以下10种类型的短语:SUBJVBOBJPPREL_SREL_VREL_OREL_PADVPSAID。动词用他们的引理标记。被动语态中的VB短语中的动词也被标记。功能组包括:

 

图4 BADGER输出句子的例子:“Alan G. Spoon将接替Graham先生担任公司的总裁。”

1. 候选短语类型和VB短语

候选短语类型是指找到候选短语的类型。对于图4中的示例,在SUBJ短语中找到“Alan G. Spoon”。对于候选人“Alan G. Spoon”,功能(SUBJWILL_SUCCEED)将设置为1。

2. 句子中最近的种子词

我们自动确定了训练数据中的种子词列表。这些是在上一节中定义的相关性度量C最高的单词。找到的种子词:总统,官员,成功,Nam(名字引理),副总裁,执行官和主席。直观地说,这些种子词在句子中的存在将提高句子中的人名填充person-in或person-out的机会。在图4中,“Alan G. Spoon”将功能seed_SUCCEED设置为1。

3. 代理动词

候选人是代理人的动词。这些动词由表2中列出的一些规则确定。例如,如果候选者在SUBJ短语中,则在VBREL_SREL_V类型的短语中找到的活动语音的所有动词将被视为代理动词。这些动词中的每一个都具有设置为1的特征。在图4中,“Alan G. Spoon”将只有一个代理动词特征设置为1:agent_SUCCEED

表2 代理动词的确定规则

4. 患者动词

候选人是病人的动词。规则类似于表2的规则。在图4中,“Alan G. Spoon”没有患者动词,而“Graham”有一个患者动词特征patient_SUCCEED。对于图4中的示例,“Alan G. Spoon”将具有以下3个特征设置为1:(SUBJWILL_SUCCEED),seed_SUCCEEDagent_SUCCEED。 “Graham”将以下3个特性设置为1:(OBJWILL_SUCCEED),seed_PRESIDENTpatient_SUCCEED

4.3 关系分类器的功能

关系分类器的输入是一对实体{(name1, class1), (name2, class2)},例如{( Spoon, person-in), (Graham, person-out)}。一个分类器用于将所有这样的输入对分类为真或假。关系分类器使用的所有特征都由类组合(class1,class2)表征,例如,(person-in, person-out)。使用以下功能组:

1. 相同的短语

如果name1和name2相同,则将feature(class1,class2,same-phrase)设置为1。在这种情况下,关系分类器中使用的所有其他功能将设置为0。相同的短语将永远不会填充两个不同的槽在同一个模板中。该组中共有42 = 16个特征,每个类组合一个。

2. Name1和Name2之间的词

这是功能(class1,class2,STRING),其中STRING是name1和name2之间的确切字符串。

3. 短语类型

这是特征(class1,class2,phrase_type1,phrase_type2),其中phrase_type1和phrase_type2是两个实体的短语类型。

4. 其他实体

这些功能表明name1和name2之间是否存在人(包括代词),位置或组织。如果name1和name2之间没有人或代词,则功能(class1, class2, NO_PERSON_BETWEEN)设置为1,公司名称和职位也是如此。对于输入的实体对{(Spoon, person-in), (Graham, person-out)},以下5个特征设置为1:

(person-in, person-out, WILL_SUCCEED_MR)

(person-in, person-out, SUBJ, OBJ)

(person-in, person-out, NO_PERSON_BETWEEN)

(person-in, person-out, NO_ORG_BETWEEN)

(person-in, person-out, NO_POST_BETWEEN)

4.4 实验结果

表3 召回率、精确度和F-measure的比较

 

我们使用了与Soderland(1999)相同的训练和测试数据以及相同的评分标准。为了使输出模板被认为是正确的,模板的所有插槽必须匹配手动标注模板中的关键模板。如果输出模板包含额外的插槽,则输出模板的所有插槽都被视为误报(假阳性)。Soderland提供的数据包含6,915个培训实例,测试数据是从100个测试文档中提取的句子,包含2,8404个实例,共有169个模板,84个person-in,100个person-out,148个职位,92个组织。在表3中,“Soderland”指的是他在Fmeasure方面的最佳结果,通过使用6900个实例进行训练而得到的。我们的系统比Soderland的系统精度更高。

5 结论

以前关于信息提取的机器学习方法的大多数工作都集中在用于半结构化文本的单槽IE上。对多槽IE进行的研究相对较少。过去关于自由文本的多插槽IE的工作主要使用模式学习方法。在本文中,我们使用分类方法来解决问题,包括两个单独的步骤:候选选择和模板构建(通过关系分类器)。在两个基准数据集上,我们的系统实现了比半结构化和自由文本中IE最佳的先前发布结果更高的准确性。为了进行统计显著性检验,我们需要知道以前系统的详细测试结果。由于没有这些,我们无法进行这样的显著性检验。

近年来,对IE的重点已转向自适应IE。我们认为分类方法允许系统仅通过使用一组标准功能来适应新域。此外,还有许多机器学习分类器算法可用(例如支持向量机,决策树和神经网络),这应该是提供一个有吸引力的替代模式学习方法。

猜你喜欢

转载自blog.csdn.net/muumian123/article/details/82313520