自然语言处理NLP之文档知识自动抽取(一)

赵清臣
原创 1389       2019-04-24  

结构化的知识可以很方便的用于推理中,但是从非结构化的数据中获取结构化的知识表示,这一过程非常困难且成本高昂。本文假设浅层的语义知识和其暗含的语义信息是可以获取,且能够用于问答系统的很多方面。我们采用两段式的方法来抽取句法知识及其暗含的语义知识:首先,自动化的抽取大文本集合中的浅层知识;其次,对浅层知识进行统计推断来获取深层次的语义知识。在本文中,我们详细论述了所需要抽取的浅层知识,如何从大规模语料集合中自动地抽取这样的浅层知识,以及如何使用统计推断的方法获取额外的深层知识。



和其他形式表示的知识相比,结构化表达的深度语义知识能够很方便的用于推理,然而从非结构化的开放域数据集中,获取这种结构化的知识非常难,且成本高昂。尤为不幸的是,人类的知识通常都是以非结构化的形式来表达的,如下例所示:

[原文]Patrick “Pat” Floyd Garrett (June 5, 1850–February 29, 1908) was an American Old West lawman, bartender, and customs agent. Garrett rode as a cowhand in Texas, and he served drinks at the Beaver Smith’s saloon at Fort Sumner, New Mexico.


这一段非结构化的文本包含了一些有用的知识,如Pat Garrett的出生日期、逝世日期以及工作,但是即便从如此简单的文本中有效的抽取知识也很不容易。在抽取过程中,我们首先需要正确的解析句子,识别主要的实体、类型信息和关系信息,然后进行共指消歧来合并相同的实体。


从大量的浅层知识中,我们仍然能够推断得到很多重要的语义信息,比如从上面的示例以及数以千计的其他有关Pat Garrett的语句中,我们可以得到如下论断:(1)Pat Garrett是一位执法官和州治安官;(2) Pat Garrett最常涉及的动作包括“杀害”、“射击”和“逮捕”;(3)这些动作的客体通常都是“比利小子”(译者注:“比利小子”即Billy the Kid,是美国著名的罪犯)。此外,我们还可以推理出一些类型相关信息,如“人”通常是做动作的主语,也是动作的宾语。

本文的中心假设是浅层句法知识和其所暗含的语义信息能够被轻易的获取到,且可以应用于问答系统的诸多领域中去。比如给定一个句子:“爱因斯坦已经发表了超过300篇科学论文,获得了1921年诺贝尔物理学奖”,通过进行句法依赖性解析和命名实体识别之后,我们可以抽取并概括出一些类型相关的知识模式,如“科学家发表论文”、“科学家获得诺贝尔奖”以及诺贝尔奖所关联的学科和年份等。通过在一个更大的语料集合中搜集这类知识模式,我们可以构建出一个大规模的浅层语义知识库。通过上述方法所构建出来的知识库,我们可以用于问答,如“在1921年,年仅42岁的他获得了诺贝尔奖”。类似的,该知识库还能够用于对答案提供额外的论证支持,如在某一知识库中存在一条知识“Carl Sagan是一名科学家”,当在回答“有关核寒冬预测的开山之作出自谁的论文”时,前述提到的知识就可以对答案“Carl Sagan”进行论证支持。


核寒冬注解:


在自然语言处理领域,已经有人建立了以VerbNet和FrameNet为代表的语言学资源,当进行知识抽取时,它们可以为动词和语义结构等相关信息提供了一些可选的限制信息。然而,由于这些资源都是手动建立的,因此它们倾向于在语言的较高层次上来做类型限制(比如动物、主题、代理者等),因此对于上面“科学家发表论文”的例子来说,这些语言学资源并不能深入到更为具象化的语言指代(如“科学家”),并提供额外的约束性信息。


在知识抽取领域中,我们并不想止步于动词、二元语义关系和其他一些特定的类型层次上,而是希望能够从大规模的语料数据中推断出深层次的语义知识。如果仅仅停留在浅层的知识层面,我们所得到的知识就会存在很强的限制性。在完全开放域中,比如“Jeopardy!”互动游戏里面,上述的浅层知识限制会使得我们所得到的知识库在很大程度上丧失实用价值。以LATs为例,在以往的“Jeopardy”游戏中出现了很多非常罕见的词类型,如laureate(资金或荣誉的获得者),angel(天使般的人、善良可爱的人),monster(怪物、恶魔),saxophonist(萨克斯管吹奏者)和conveyance(运输工具)。如果我们把知识抽取限定在某些特定类别的情况下,那么我们所获取到的知识就无法来准确的回答上面所遇到的问题。此外,在语义关系层面也存在与上述类似的情形,如许多“Jeopardy”的问题会涉及到很罕见的语义关系或以一种清奇的方式来表达语义关系(如“来源关系”:This winged creature sprang from the blood of Medusa)。如果我们把知识抽取局限在词性标注、有限的语义关系或特定类型层次时,同样无法有效的进行上面提到的这类不常见语义关系中的知识抽取。


Jeopardy、LATs、This winged creature sprang from the blood of Medusa注解

我们使用两阶段方法来实现深层次的知识抽取。在第一阶段从大规模的文本集合中自动抽取浅层知识。具体来说,我们在第一阶段在句子上下文中抽取出绝大多数的句法关系,并将其表示为句法架构和句法槽的形式。仍然以上文中提到的例子举例:我们能够抽取到的句法架构包括“爱因斯坦获得诺贝尔奖”,“爱因斯坦发表论文”。尽管句法关系并不能捕捉到一段文本中包含的所有知识,不过大规模语料集合所带有的冗余性,能够在一定程度上缓解这个问题,提高知识库对整个文档集合中所包含知识的覆盖性。

在第二阶段,在对自动抽取得到的浅层知识进行汇总统计,推断出额外的深层次语义信息。在给定句法关系的统计信息之后,我们可以使用基于本体的归纳概括方法来推断一些断言性质的基本知识,如“爱因斯坦获取的最广为人知的荣誉是诺贝尔奖”;以及一些其他的术语性常识,如“科学家发表论文”和“科学家获得诺贝尔奖”。



构建能实现上述两阶段方法的系统,需要三个步骤且听下回分解!

恒生技术之眼原创文章,未经授权禁止转载。详情见转载须知

联系我们

恒 生 技 术 之 眼