事件抽取不仅是构建知识图谱的关键任务也是自然语言处理的难点和热点之一。从任务层面看,相较于实体抽取和关系抽取,事件抽取面临的挑战更大。因为事件抽取以命名实体为基础,命名实体抽取效果的好坏将直接影响事件抽取的结果。进一步,实体关系抽取需要识别出符合某种语义关系的实体对,一般只涉及到两个实体的语义关系,任务相对简单。而对事件抽取而言,首先要识别出文本中是否存在关心的事件,其次要识别出事件所涉及的元素(一般是实体),最后需要确定每个元素在事件中所扮演的角色。从自然语言分析技术层面看,事件抽取不仅仅需要底层的语言学知识,还需要更为深层的语义和篇章知识才能完成。

任务概述

  1. 事件定义

事件(event)起源于认知科学,常常在哲学、语言学、计算机科学等领域被广泛讨论。但遗憾的是目前对事件还没有统一的定义,在不同领域,不同的应用,不同的人对事件有不同的描述。

从认知的角度,世界上发生的所有事情都被定义为事件,认知学家认为人们是通过认知事件以及事件之间的联系来观察和了解世界的。从哲学角度,事件被定义为现实世界中事实的具体表现。在语言学领域,Miller等在WordNet中将事件定义为在某个具体的时间和地点发生的事情。Chung等认为一个事件是一个包含三部分信息的术语:谓词、谓词发生的时间、谓词发生的环境或者条件。Timber等认为事件是在一定条件下,发生在具体的时间和地点的,包含一个或多个参与者的事情。

面向知识图谱领域,事件是发生在某个特定的时间点或时间段、某个特定的地域范围内,由一个或多个角色参与的一个或多个动作组成的事情或状态的改变。

从上述定义看,事件中最重要的几个要素是事件发生的时间、地点、参与事件的角色以及与之相关的动作或者状态的改变。

  1. 事件抽取定义

事件抽取主要研究如何从描述事件信息的文本中抽取出用户感兴趣的事件信息并以结构化的形式呈现出来,如什么人,什么时间,在什么地方,做了什么事。为了方便对于本章的理解,我们先介绍以下几个事件抽取相关的概念。

(1) 事件指称(event mention):是指对一个客观发生的具体事件进行的自然语言形式的描述,通常是一个句子或者句群。同一个事件可以有很多不同的事件指称,可能分布在文档的不同位置,或分布在不同的文档中。

(2) 事件触发词(event trigger):是指一个事件指称中最能代表时间发生的词,是决定事件类别的重要特征。在ACE评测中事件触发词一般是动词或者名词。

(3) 事件元素(event argument):是指事件中的参与者,是组成事件的核心部分,它与事件触发词构成了事件的整个框架。事件元素主要由实体、时间和属性值组成,这些短语可以作为表达完整语义的细粒度单位,因此可以较为恰当地表示事件参与者。但是并不是所有的实体、时间和属性值都是事件元素,要视具体上下文语义环境而定。

(4) 元素角色(argument role):是指事件元素与事件之间的语义关系,也就是事件元素在相应的事件中扮演什么角色。某类事件的所有的角色构成这类时间的框架。

(5) 事件类别(event type):事件元素和触发词决定了事件的类别。很多评测和任务都为事件制定了类别,每个类别下又定义了若干子类别,并为每个事件子类别制定了模板,方便事件元素的识别及事件角色的判定。

  1. 相关评测和语料资源

(1) MUC评测会议

(2) TDT评测会议

(3) ACE评测会议

(4) KBP评测会议

(5) BioNLP评测会议

(6) TimeBank语料库

(7) 其他相关语料

限定域事件抽取

按照确定事件类别方式的不同,可以分为限定域事件抽取和开放域事件抽取。限定域事件抽取是指,在进行抽取之前,预先定义好目标事件的类型及每种类型的具体结构(包含哪些具体的事件元素)。另外,除了事件类型和事件的结构,限定域事件抽取任务通常还会给出一定数量的标注数据。由于事件结构的复杂性,标注数据的规模普遍比较小,但是可以保证每个预定义的事件类型都有若干标注样本与之对应。ACE的事件抽取评测是最受关注的限定域事件抽取任务,共定义了8大类事件,例如:business(商务事件)、conflict(冲突事件)、transaction(交易事件)等,这些事件又被细分为33类子事件。

限定域事件抽取是信息抽取和知识图谱构建的重要环节之一,限定域事件抽取可以分为基于模式匹配的方法和基于机器学习的方法两大类。

基于模式匹配的事件抽取方法

采用模式匹配的方法进行事件抽取的过程一般可以分为两个步骤:模式获取和模式匹配。模式的加入是为了提高事件抽取的准确率。因此,模式准确性是影响整个方法性能的重要因素。按照模式构建过程中所需要训练数据的来源,可以将基于模式的事件抽取方法分为两大类:有监督的模式匹配和弱监督的模式匹配。

  1. 有监督的事件模式匹配

在这类方法中,模式的获取完全基于人工标注的语料,这类方法需要人工预先对语料进行完全标注,模式的学习效果高度依赖于人工标注效果。该类方法一般包括如下步骤:(1) 语料的人工标注,需要人工预先标注大量的语料。(2) 模式的学习,通过各种学习模型学习得到相应的抽取模式。(3) 模式的匹配,利用学习得到的模式与待抽取文档进行匹配,进而完成事件的抽取。

基于有监督模式的匹配方法的代表性系统是AutoSlog。事件中角色之间的关系大部分可以通过从围绕某个短语的上下文内容中得到。

Kim和Moldovan提出了用语义框架和短语模式结构来表示某个特定领域的模式,开发了基于这一模式的PALKA抽取模式。

  1. 弱监督的事件模式匹配

这类方法不需要对语料进行完全标注,而只需要人工对语料进行一定的预分类或者指定少量种子模式,由机器根据预分类语料或者种子模式自动学习事件模式。这类方法一般有两个步骤:(1) 语料的人工预分类或种子模式的制定。(2) 模式的学习,主要是利用机器根据预分类语料或者种子模式自动地学习模式。

AutoSlog-TS系统是典型的基于弱监督的模式匹配方法。

Yangarber等基于文本、模式和事件三者的相关性,设计了ExDisco系统。

总体上看,基于模式匹配的事件抽取方法在特地领域中性能较好。然而,该类方法依赖于文本的具体形式(语言、领域和文档格式等),获取模板的过程费时费力,具有很强的专业性。而且,制定的模式很难覆盖所有的事件类型,当语料发生变化时,需要重新获取模式。

基于机器学习的事件抽取方法

基于模式匹配的方法可移植性差、召回率低,目前的研究重点逐渐转向基于机器学习的方法。其中最具有代表性的是基于有监督学习方法的事件抽取。该类方法将事件抽取建模成一个多分类问题,提取特征向量后再使用有监督的分类器进行事件抽取,例如:SVM、朴素贝叶斯模型、隐马尔可夫模型等。根据所需监督数据的不同,基于机器学习的限定域事件抽取方法可以分为两种:(1) 有监督事件抽取方法;(2) 弱监督事件抽取方法。

  1. 有监督事件抽取方法

有监督事件抽取系统一般包括三个步骤:(1) 训练样本的表示,例如,基于特征向量方法中特征向量的抽取与构建;(2) 选择分类器并训练模型,优化模型参数;(3) 利用训练好的模型从未标注数据中抽取事件实例。其重点在于挑选合适的特征和分类器使得分类结果更加准确。有监督事件抽取可以分为两类,一类是基于特征工程的方法,主要是在不同的分类器模型上尝试不同类别的特征;另一类是基于神经网络的方法,自动从纯文本中提取特征,避免使用传统自然语言处理工具带来的误差累计的问题。

1.1 基于特征工程的方法

在基于特征工程的事件抽取方法中,最具代表性的方法是Ahn在2006年提出的模型。Ahn提出在事件抽取的过程中同时使用Timbl和MegaM两种模型,并抽取候选词相关的词法特征、上下文特征、实体特征、句法特征和语言学特征(WordNet),进而完成事件抽取的任务,在事件触发词分类和事件元素分类两个阶段都取得了不错的效果。该方法将事件抽取看作一个两阶段的多分类问题,首先对句子中的每个词汇进行判断,判断其是否为事件触发词,如果为事件触发词,则进入第二个阶段事件元素分类,对句子中的每个候选事件元素进行判断,判断其是否是当前触发词触发的事件中包含的事件元素并判断其在当前事件中扮演的角色。

事件触发词分类阶段的特征:

(1) 词汇级特征:当前词汇、当前词汇的小写形式、当前词汇的词干、当前词汇的词性标签、当前词汇相邻词的词汇特征(小写形式、词汇标签)等。

(2) 句子级特征:依存路径的关系标签、依存的词汇、候选词在依存树中的深度、依存词汇的词性标签、句子中的相关实体的实体类型、最近距离范围内的实体类型等。

(3) 外部知识:如果候选词汇在语言学词典WordNet中,则将其对应的同义词集合的ID作为特征。

事件元素分类阶段的特征:

在事件元素分类阶段,将一个句子中的所有实体、值和时间表达当作候选事件元素,然后针对相应的事件触发词和这些候选事件元素提取特征,进而完成事件元素的分类。主要利用特征如下;

(1) 触发词特征:触发词、触发词的小写形式、触发词的词干、触发词的词性标签、触发词在依存树中的深度和触发词相邻词的词汇特征(小写形式、词性标签)等。

(2) 词汇特征:候选词语、候选词语的中心词、中心词的小写形式、中心词的词性标签、中心词的实体类型、候选词的实体类型等。

(3) 句子级特征:候选词和触发词之间的依存路径、候选词和触发词之间的词汇及其词性标签等。

1.2 基于神经网络的方法

基于特征工程的方法,在特征提取的过程中过分依赖词性标注器、句法分析器等传统的自然语言处理工具,会造成误差累积的问题,而且有很多语言没有自然语言处理工具。从2015年开始,事件抽取研究主要集中在如何利用神经网络直接从文本中自动获取特征进而完成事件抽取。该类方法主要包括如下几个步骤:(1) 特征表示:主要是将纯文本表示为分布式特征信息,如将词表示为词向量。(2) 神经网络的构建与高层特征学习:主要是设计搭建神经网络模型并基于基本特征自动捕获高层特征。(3) 模型训练:利用标注数据,优化网络参数,训练网络模型。(4) 模型分类:利用训练的模型对新样本进行分类,进而完成事件抽取。

  1. 弱监督事件抽取方法

在弱监督事件抽取中,为了得到规范的语义标签,需要给出具有规范语义标签的标注训练数据,与有监督的方法需要大量人工标注的样本不同,在弱监督的方法中语料的获取有两种途径:(1) 利用Boostrapping的方法扩展语料,首先人工标注部分数据,然后自动扩展数据规模。(2) 利用Distant Supervison的方法自动生成大规模语料,主要利用结构化的事件知识回标非结构化文本,获取大规模训练样本后完成事件的抽取。

2.1 基于Bootstrapping的事件抽取

此类方法的核心思想是:首先利用小部分标注好的数据训练抽取模型,然后利用训练好的模型对未标注数据进行分类,从中选取高置信度的结果加入到训练数据中,再次训练分类器,上述过程反复迭代进而完成标注数据的自动扩充和事件的自动抽取。

2.2 基于Distant Supervision的事件抽取

此类方法的核心思想是:首先提出回标的假设规则(即Distant Supervision),然后利用结构化事件知识去非结构化文本中进行回标,将回标的文档当作标注样本,然后利用标注的样本训练模型,进而完成事件的抽取。

开放域事件抽取

和限定域事件抽取不同,开放域事件抽取的目标类型不受限制。在进行事件识别前,可能的事件类型以及事件的结构都是未知的,因此该任务通常没有标注数据。开放域事件抽取主要是基于无监督的方法,该方法主要基于分布假设(Distributional Hypothesis)理论,其核心思想是:如果两个词出现在相同上下文中且用法相似,那么这两个词就意思相近。相应地,在事件抽取中,如果候选事件触发词或者候选事件元素具有相似的语境,那么这些候选事件触发词倾向于触发相同类型的事件,相应的候选事件元素倾向于扮演相同的事件元素。基于此理论,无监督事件抽取将候选词的上下文作为表征事件语义的特征。在无监督的事件抽取方法中,按照所用方法的不同,开放域事件抽取又可以分为基于内容特征的事件抽取方法和基于异常检测的事件抽取方法。

基于内容特征的事件抽取方法

基于内容特征的事件抽取方法一般包括如下步骤:(1) 文本表示:对表示事件的句子、段落或者文档进行预处理,并表示为统一的特征形式,为后面的模块做准备。(2) 事件聚类与新事件发现:基于文本表示,利用无监督方法将同类事件表示聚类,并发现新事件。在基于无监督的事件抽取方法中,Yang等1998年提出的组平均聚类方法最具代表性。主要思想如下:

  1. 文本表示:对每篇文档首先进行句子划分和去停用词等预处理操作,然后对篇章中的词计算TF-IDF并据此进行排序,利用TopK个词的TF-IDF值组成的特征向量代表整个篇章。

  2. 事件聚类与新事件发现:组平均聚类算法(Group Average Clustering)

(1) 将待聚类文本按时间顺序排序,把每篇文档都当作一个类。因为,通过对数据的观察发现,新闻对事件的报道在时间上具有时效性和集中性,一般一个事件的报道周期在两个月左右,所以,在聚类的时候应该考虑到时间因素的影响。

(2) 将现有的结果划分成连续但是不重叠的固定个数的部分。

(3) 对每个部分利用聚类算法进行聚类,将底层的类聚类为高层的类。直到每个部分聚类为指定的规模。

(4) 取消部分的边界限制,对所有的类进行聚类,并更新第(2)步中的划分。

(5) 重复第(2)~(5)步,直到所有的类别达到指定的规模。

在无监督事件抽取中,关键在于如何寻找更好的文本表示方式、文本相似度衡量指标以及事件聚类模型。无监督事件抽取方法可以发现新的事件,但其发现的新事件往往是相似模板的聚类,难以规则化,很难被用来构建知识库,需要将其同现有知识库的事件框架进行对齐,或者通过人工方式来给每个聚类事件簇赋予语义。

基于异常检测的事件抽取方法

和上述方法不同,基于异常检测的方法不分析文本的内容,而是通过检测文本的异常发布情况进行事件识别。这类方法的基本假设是,某个重大事件的发生会导致新闻媒体或社交网络上涌现大量的相关报道或讨论;反之关于某一主题的报道或讨论突然增多则暗示着某一重大事件的发生。基于该思想,Krumm等首先使用回归模型预测每个地区发布推特的数目,然后观测每个地区实际发布的推特数目,如果实际推特数目和预测数目相比超过一定阈值,那么就判定有事件发生,并使用文本摘要模型从这些推特文本中抽取能够描述该事件的文本。

开放域事件识别虽然可以自动发现新的事件,但其发现的事件往往缺乏语义信息,并且难以进行结构化。如果想要获得准确的语义信息,则需要通过人工标注的方式为每个类别簇赋予特定的语义标签。上述缺点导致开放域事件识别的结果很难被应用到其他自然语言处理任务中。

事件关系抽取

现实世界中的事件并非独立存在,它们之间存在千丝万缕的联系。从历史事件中发现规律、厘清事件间的关系有助于人们从全局了解事件,进而构建事件知识图谱,支撑各种事件相关的应用。事件关系抽取的核心任务是以事件为基本语义单元,实现事件逻辑关系的深层检测和抽取。目前对事件关系还没有一个清晰统一的框架和定义,比较公认的有事件共指关系、事件因果关系、子事件关系和事件时序关系等,以下分别介绍。

事件共指关系抽取

当两个事件指称向真实世界的同一个目标事件,则认为这两个事件具有共指关系。事件共指关系的发现,有助于在多源数据中发现相同事件,对事件信息的补全和验证有积极作用。事件共指关系抽取的核心问题是计算两个事件之间的相似度,一般会利用两类特征:(1) 事件指称的文本语义相似度;(2) 事件类型和事件元素之间的相似度。

事件因果关系抽取

事件因果关系反映了事件间先后相继、由因及果的一种关系。因果关系的抽取对文本的深层语义理解有着重要意义,有助于掌握事件演变的过程,从而为决策者提供重要的决策信息。然而,因果事件的抽取极其困难。首先,因果关系错综复杂,一个事件的发生可能有多个原因,一个事件也可能导致多个事件的发生。其次,事件具有隐含因果,很难单独判断两个事件的因果关系,必须同时考虑多个因果事件间的传递作用。另外,在某些情况下,单独从文本中很难抽取出因果关系,需要背景知识的辅助推断。

子事件关系抽取

子事件关系反映了事件之间的粒度和包含关系。Hu等首先提出基于先验的增量子事件学习模型,将以后相似事件的子事件知识作为先验,增强当前事件的子事件抽取。

事件时序关系抽取

事件时序关系是指事件在时间上的先后顺序。使用最广泛的语料库是TimeBank。目前主流方法是基于机器学习方法的事件时序关系抽取,该类方法一般将事件时序关系识别转化为一个多分类问题。TimeBank的标注遵循TimeML标注体系。TimeML是一种标识新闻语料中事件、事件以及它们之间关系的标注体系,它将时序关系分为13种,例如:之前(Before),之后(After),包含(Includes),被包含(Is Included)和同时(Simultinous)等。另一个相关语料库TimeEval将时序关系分为之前(Before),之后(After)和重叠(Overlap)三类。