中文事件的抽取方法、装置、设备及存储介质
技术领域
本申请涉及自然语言处理技术,尤其涉及一种中文事件的抽取方法、装置、设备及存储介质。
背景技术
事件抽取作为信息抽取领域一个重要的研究方向,一直吸引着许多研究机构和研究学者的关注,旨在从事件描述(event mention,指非结构化的文本)中抽取出事件信息,并以结构化的形式呈现。
按照自动信息抽取会议(Automatic Content Extraction,ACE)对事件抽取的定义,事件抽取包含四个子任务:触发词识别(trigger identification)、事件类型分类(event type classification)、事件要素识别(argument identification)以及事件角色分类(argument role classification)。其中,触发词识别即在事件描述中识别出触发词,事件类型分类即判断触发词的类型以确定出现该触发词的事件的类型,事件要素识别即在事件描述中识别出事件要素,事件角色分类即判断事件要素在事件中扮演的角色。
目前,中文事件抽取主要采用连续的流水线模型(pipeline),通过不同的识别模型(或者按次序使用同一识别模型)来分别解决事件抽取的所有子任务,后一子任务的输入完全依赖于前一子任务的输出,因此,流水线模型容易产生级联错误,而且处于下游的任务无法将信息反馈至上游任务,忽略了触发词与事件要素之间的相互影响。采用的联合模型进行中文事件抽取,可有效解决流水线模型这一缺陷,然而却很少有联合模型关注事件要素的多标签现象或者事件要素的重叠现象,即当一个事件描述中包含多个事件时,同一事件要素可能在不同的中文事件中扮演不同角色或者不同角色对应的事件要素之间可能有重叠。因此,在遇到事件要素的多标签现象或者事件要素的重叠现象时,现有联合模型的中文事件抽取准确度不高。
发明内容
本申请提供一种中文事件的抽取方法、装置、设备及存储介质,用以解决在遇到事件要素的多标签现象或者事件要素的重叠现象时,中文事件抽取的准确度不高的问题。
一方面,本申请第一方面提供一种中文事件的抽取方法,包括:
获取中文事件描述;
将所述中文事件描述输入预先训练好的事件联合抽取模型,得到中午事件描述中每个中文事件的事件三元组,所述中文事件的事件三元组包括所述中文事件的触发词、事件要素和事件要素角色。
在一种可能的实现方式中,所述将所述中文事件描述输入预先训练好的事件联合抽取模型,得到所述中文事件描述中每个中文事件的事件三元组,包括:
将所述中文事件描述输入所述事件联合抽取模型,在所述事件联合抽取模型中对所述中文事件描述进行编码,获得事件初始编码;
在所述事件联合抽取模型中,在每个预设的事件类型上对所述事件初始编码进行触发词识别,得到所述触发词;
在所述事件联合抽取模型中,根据所述触发词对所述事件初始编码进行更新,得到所述触发词对应的事件更新编码;
在所述事件联合抽取模型中,在每个预设的角色类型上对所述触发词对应的事件更新编码进行事件要素识别,得到所述触发词对应的扮演相应事件要素角色的所述事件要素,由所述触发词、所述事件要素和所述事件要素角色构成所述中文事件的事件三元组。
在一种可能的实现方式中,所述事件初始编码包括所述中文事件描述中每个字符的编码序列,所述预先训练好的事件联合抽取模型的参数包括预先训练好的触发词首尾识别参数;所述在每个预设的事件类型上对所述事件初始编码进行触发词识别,包括:
在所述每个预设的事件类型上,根据所述每个字符的编码序列和所述触发词首尾识别参数,对所述每个字符进行触发词首尾识别,得到所述触发词的词首字符和词尾字符。
在一种可能的实现方式中,所述对每个字符进行触发词首尾识别,包括:
通过预设的激活函数、所述触发词首尾识别参数和所述每个字符的编码序列,对所述每个字符进行触发词首尾识别。
在一种可能的实现方式中,所述根据所述触发词对所述事件初始编码进行更新,包括:
根据所述词首字符的编码序列和所述词尾字符的编码序列,确定所述触发词的编码序列;
根据所述触发词的编码序列,对所述事件初始编码进行更新,得到所述触发词对应的事件更新编码。
在一种可能的实现方式中,所述预先训练好的事件联合抽取模型的参数还包括预先训练好的事件要素首尾识别参数;所述在每个预设的角色类型上对所述触发词对应的事件更新编码进行事件要素识别,包括:
在所述每个预设的角色类型上,根据所述触发词对应的事件更新编码中每个字符的编码序列和所述每个事件要素首尾识别参数,对所述每个字符进行事件要素首尾识别,得到所述事件要素的词首字符和词尾字符。
在一种可能的实现方式中,所述方法还包括:
通过预设的交叉熵损失函数构建目标函数,通过对所述目标函数进行优化,得到训练好的所述触发词首尾识别参数和所述事件要素首尾识别参数;
根据训练好的所述触发词首尾识别参数和所述事件要素首尾识别参数,得到训练好的所述事件联合抽取模型。
本申请第二方面提供一种中文事件的抽取装置,包括:
获取模块,用于获取中文事件描述;以及
处理模块,用于将所述中文事件描述输入预先训练好的事件联合抽取模型,得到所述中文事件描述中每个中文事件的事件三元组,所述中文事件的事件三元组包括所述中文事件的触发词、事件要素和事件要素角色。
在一种可能的实现方式中,所述处理模块用于:
将所述中文事件描述输入所述事件联合抽取模型,在所述事件联合抽取模型中对所述中文事件描述进行编码,获得事件初始编码;
在所述事件联合抽取模型中,在每个预设的事件类型上对所述事件初始编码进行触发词识别,得到所述触发词;
在所述事件联合抽取模型中,根据所述触发词对所述事件初始编码进行更新,得到所述触发词对应的事件更新编码;
在所述事件联合抽取模型中,在每个预设的角色类型上对所述触发词对应的事件更新编码进行事件要素识别,得到所述触发词对应的扮演相应事件要素角色的所述事件要素,由所述触发词、所述事件要素和所述事件要素角色构成所述中文事件的事件三元组。
在一种可能的实现方式中,所述事件初始编码包括所述中文事件描述中每个字符的编码序列,所述预先训练好的事件联合抽取模型的参数包括预先训练好的触发词首尾识别参数;相应的,所述处理模块具体用于:
在所述每个预设的事件类型上,根据所述每个字符的编码序列和所述触发词首尾识别参数,对所述每个字符进行触发词首尾识别,得到所述触发词的词首字符和词尾字符。
在一种可能的实现方式中,所述处理模块具体用于:
通过预设的激活函数、所述触发词首尾识别参数和所述每个字符的编码序列,对所述每个字符进行触发词首尾识别。
在一种可能的实现方式中,所述处理模块具体用于:
根据所述词首字符的编码序列和所述词尾字符的编码序列,确定所述触发词的编码序列;
根据所述触发词的编码序列,对所述事件初始编码进行更新,得到所述触发词对应的事件更新编码。
在一种可能的实现方式中,所述预先训练好的事件联合抽取模型的参数还包括预先训练好的事件要素首尾识别参数;相应的,所述处理模块具体用于:
在所述每个预设的角色类型上,根据所述触发词对应的事件更新编码中每个字符的编码序列和所述每个事件要素首尾识别参数,对所述每个字符进行事件要素首尾识别,得到所述事件要素的词首字符和词尾字符。
在一种可能的实现方式中,所述装置还包括:
训练模块,用于通过预设的交叉熵损失函数构建目标函数,通过对所述目标函数进行优化,得到训练好的所述触发词首尾识别参数和所述事件要素首尾识别参数,根据训练好的所述触发词首尾识别参数和所述事件要素首尾识别参数,得到训练好的所述事件联合抽取模型。
本申请第三方面提供一种电子设备,所述设备包括:
处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;其中,所述处理器运行所述计算机程序时执行如第一方面或第一方面的各可能的实施方式所提供的方法。
本申请第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的各可能的实施方式所提供的方法。
本申请第五方面提供一种包含指令的程序产品,所述程序产品包括计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的各可能的实施方式所提供的方法。
本申请提供了一种中文事件的抽取方法、装置、设备及存储介质,通过预先训练好的事件联合抽取模型对获取的中文事件描述进行事件收取,得到中文事件描述中每个中文事件的事件三元组,通过事件三元组结构化地表示出中文事件的触发词、事件要素和事件要素角色,同时在事件三元组中体现出这三者之间的对应关系,能够在面对事件要素的多标签现象或事件要素的重叠问题时,确定了事件要素在触发词下所扮演的角色,即确定了事件要素在触发词下所对应的标签,从而不仅通过事件联合抽取模型解决了流水线模型的缺陷,还提高了在事件要素的多标签现象或者事件要素的重叠现象下中文事件的抽取准确度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的中文事件的抽取方法的网络架构示意图;
图2为本申请实施例提供的中文事件的抽取方法的方法流程示意图;
图3为本申请实施例提供的中文事件的抽取方法的方法流程示意图;
图4为本申请实施例提供的中文事件的抽取装置的结构示意图;
图5为本申请实施例提供的中文事件的抽取装置的结构示意图;
图6为本申请实施例提供的电子设备的结构示意图;
图7为本申请实施例提供的中文事件的抽取装置的框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
ACE将事件抽取任务定义为四个子任务:触发词识别、事件类型分类、事件要素识别以及事件角色分类,这四个子任务通常被合并为两个子任务:触发词分类(triggerclassification)和事件要素分类(argument classification),触发词分类即在事件描述中识别触发词并确定触发词的类型,事件要素分类即在事件描述中识别事件要素并确定事件要素所扮演的角色。
中文事件抽取根据模型学习(或训练)方式不同,可以分为基于流水线模型的事件抽取方法和基于联合模型的事件抽取方法。中文事件抽取主要采用流水线模型学习方式,通过不同的识别模型(或者按次序使用同一识别模型)来分别解决事件抽取的所有子任务,后一子任务的输入完全依赖于前一子任务的输出,识别模型的学习过程是分开的,先进行触发词分类模型的学习,再转入事件要素分类模型的学习,这里的分类模型即识别模型。因此,流水线模型容易产生级联错误,当前一子任务的执行结果错误时,后一子任务的执行结果必然错误,例如,触发词分类模型识别出中文事件描述中并不存在的触发词并确定该触发词的类型,事件要素分类模型将对该不存在的触发词进行分类。此外,流水线模型中处于下游的任务无法将信息反馈至上游任务,忽略了触发词和事件要素之间的相互影响(或相互依赖)。
联合模型通过同一识别模型来解决事件抽取的所有子任务,识别模型的学习方式不是依照子任务分开进行的,因此模型学习的过程中充分考虑到触发词与事件要素之间的相互影响,可有效解决流水线模型的上述缺陷。然而,很少有中文事件联合抽取模型关注事件要素的多标签现象或者事件要素的重叠现象,事件要素的多标签现象即同一事件要素可能在不同的中文事件中扮演不同角色,事件要素的重叠现象即不同角色对应的事件要素之间可能有重叠,当一个中文事件描述中包含多个中文事件时,很有可能出现事件要素的多标签现象或事件要素的重叠现象。
例如,中文事件描述“据甘达拉估计,警员(A1)向他(A2)发射(E1)了80发胡椒弹(A3),并身中(E2)约57发(A4)。”,共包含2个事件E1和E2,触发词分别是“发射”和“中”。其中,E1为袭击事件,E2为受伤事件,袭击事件和受伤事件为两种不同的事件类型,共包含4个事件要素:A1、A2、A3和A4,要素A1、A2是两个事件共享的要素。事件要素A1在事件E1中扮演袭击者角色,而在事件E2中却扮演被袭击者角色,袭击者角色和被袭击者角色为两种不同的角色类型,这里出现了事件要素的多标签现象或事件要素的重叠现象。对于现有的联合模型,当其识别事件要素A1时,由于事件要素A1本身具有两个“身份”,无法确定应该将其标注为哪个“身份”,给模型识别带来干扰。
综上可见,流水线模型在中文事件抽取中容易出现级联错误的缺陷,联合模型在面对事件要素的多标签现象和事件要素的重叠现象时中文事件抽取准确度不高。本申请提供的中文事件的抽取方法、装置、设备及存储介质,通过预先训练好的事件联合抽取模型对中文事件描述进行事件抽取,得到中文事件描述中每个中文事件的触发词、事件要素和事件要素角色构成的事件三元组,通过在事件三元组中体现三者之间的对应关系,明确地表示出事件要素在其与触发词的对应关系中所扮演的角色,有效解决流水线模型缺陷的同时,还解决了事件要素的多标签现象或事件要素的重叠现象对中文事件抽取的影响,提高了中文事件抽取的准确度。
本申请实施例可应用于使用电子设备对中文事件描述(例如网络上海量的中文文本)进行事件抽取的场景中,根据中文事件描述所属领域的不同,本申请具体的应用场景可包括新闻领域的新闻事件抽取、金融领域的金融事件监控、生物医学领域内药物不良反应的事件抽取等。
图1为本申请基于的网络架构示意图,本申请基于的网络架构示意图至少包括终端设备101,终端设备101可获取用户输入的中文事件描述,也可从本地存储器或网络中获取中文事件描述,并对中文事件描述进行事件抽取。当终端设备101从网络中获取中文事件描述时,终端101与网络环境中的服务器102连接,并进行数据传输。其中,终端设备101可为计算机、服务器或者智能手机等具备处理器的电子设备,服务器102可为单独的一个服务器或服务器群。
为了使本领域技术人员能够更好地理解本申请实施例,首先对本申请实施例所涉及的名词进行解释:
事件:按照ACE对事件的定义,事件是发生在某个特定时间或时间段、某个特定地域范围内,由一个或多个角色参与的一个或多个动作构成的事情或状态的改变;
中文事件:以中文文字为描述语言的事件;
中文事件描述:是指描述一个或多个中文事件的文本,可以是一句话,也可以是多句话组合成的文章。
触发词:是指引起一个事件的动词或动名词;
事件要素:是指参与一个事件的相关实体,例如人物、地点;
事件类型和事件要素角色:触发词决定了事件的类型,因此事件类型也指触发词的类型;事件要素角色是指事件要素在事件中所扮演的角色。ACE定义了33类事件类型和35类角色类型。
下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的中文事件的抽取方法的流程示意图,该方法的执行主体为上述终端设备101。如图2所示,该方法包括:
S201、获取中文事件描述。
具体的,可由用户输入需要进行事件抽取的中文事件描述,也可从网络上采集中文事件描述、或者从预先采集到的语料库中获取中文事件描述。其中,语料库为存储一个或一个以上中文事件描述的数据库。
S202、将中文事件描述输入预先训练好的事件联合抽取模型,得到中文事件描述中每个中文事件的事件三元组,中文事件的事件三元组包括中文事件的触发词、事件要素和事件要素角色。
具体的,预先训练事件联合抽取模型,事件联合抽取模型从中文事件描述中识别出每个中文事件的结构化描述,即每个中文事件的事件三元组。在每个中文事件的事件三元组中包括中文事件的触发词、事件要素和事件要素角色,可表示为(触发词,事件要素角色,事件要素),表明在该触发词下该事件要素扮演了该事件要素角色。因此,通过事件三元组表示抽取的中文事件,能够在面对事件要素的多标签现象或事件要素的重叠现象时,确定了事件要素在触发词下所扮演的角色。
作为示例地,中文事件描述为“在国家A进入旅游旺季的时候,来往于国家A和国家B之间的乘客又多了一个选择。”,对应抽取事件三元组包括(来往,出发地,国家A)、(来往,目的地,国家A)、(来往,出发地,国家B)、(来往,目的地,国家B)、(来往,乘客,来往于国家A和国家B之间的乘客)。在中文事件描述中,“国家A”和“国家B”作为事件要素,分别都对应多个标签,也即都扮演着多个角色,其中,“国家A”扮演着出发地和目的地,“国家B”也扮演着出发地和目的地。
具体的,在通过事件联合抽取模型对中文事件描述进行事件抽取时,可从中文事件描述中识别得到不同事件类型对应的触发词,在基于识别到的触发词,在中文事件描述中识别得到不同角色类型对应的事件要素,从而得到在触发词下扮演各类角色类型的事件要素,即确定了事件要素在不同中文事件中扮演的角色,有效地提高了事件要素的多标签现象或事件要素的重叠现象下中文事件抽取的准确度。
上述方法实施例,通过预先训练好的事件联合抽取模型对获取的中文事件描述进行事件收取,得到中文事件描述中每个中文事件的事件三元组,通过事件三元组结构化地表示出中文事件的触发词、事件要素和事件要素角色,从而不仅通过事件联合抽取模型解决了流水线模型的缺陷,还提高了在事件要素的多标签现象或者事件要素的重叠现象下中文事件的抽取准确度。
图3为本申请实施例提供的中文事件的抽取方法的流程示意图,该方法的执行主体为上述终端设备101。如图3所示,该方法包括:
S301,获取中文事件描述。
S302,在训练好的事件联合抽取模型中,对中文事件描述进行编码,获得事件初始编码。
具体的,按照事件抽取任务可被划分为触发词分类和事件要素分类两个子任务,事件联合抽取模型可表示为:
P(T,A|s)=p(T|s)·p(A|T,s),T表示触发词,A表示事件要素,s表示中文事件描述,P(T,A|s)表示在中文事件描述中识别出触发词和事件要素、并确定事件要素所扮演角色的任务,p(T|s)表示在中文事件描述中识别出触发词的任务,p(A|T,s)表示在确定触发词的前提下,在中文事件描述中识别出事件要素的任务。因此,在通过事件联合模型进行中文事件抽取的过程中,后续先识别中文事件描述的触发词,再基于识别出的触发词进行事件要素的识别,以完成中文事件的联合抽取。
具体的,在识别触发词前需要对中文事件描述进行编码。中文事件描述的内容为中文文字,对于当前的终端设备来说并不能理解,也不利于提高中文事件的抽取效率,所以在训练好的事件联合抽取模型中,先对中文事件描述进行编码,得到该中文事件描述对应的编码信息,为了便于描述,在此将该编码信息称为事件初始编码。
在一个可能的实施方式中,采用预训练语言模型BERT(Bidirectional EncoderRepresentation from Transformers,变压器的双向编码器表示)对中文事件描述进行编码,以提高中文事件描述的编码效果,进而提高中文事件抽取效果。
S303,在事件联合抽取模型中,在每个预设的事件类型上对事件初始编码进行触发词识别,得到触发词。
具体的,预设的事件类型可采用ACE定义了33类事件类型。在得到事件初始编码后,通过事件联合抽取模型中的网络层(该网络层可为全连接层),在每个预设的事件类型上对事件初始编码进行触发词识别,以检测中文事件描述中可能出现的符合任一事件类型的触发词。这里得到的触发词可能为一个或多个,也可能出现未检测到触发词的情形。
在一个可能的实施方式中,事件初始编码包括中文事件描述中每个字符的编码序列,预先训练好的事件联合抽取模型的参数包括预先训练好的触发词首尾识别参数,触发词首尾识别参数包括触发词词首识别参数和触发词词尾识别参数。进行触发词识别时,分别在每个预设的事件类型上,根据每个字符的编码序列和触发词首尾识别参数进行运算,得到每个字符是否为触发词的词首字符以及是否为触发词的词尾字符的识别结果、并标记。根据事件初始编码中触发词的词首字符标记或触发词的词尾字符标记,可得到中文事件描述中分别属于不同事件类型的触发词。
在一个可能的实施方式中,在对每个字符进行触发词首尾识别时,可采用激活函数进行运算,即通过激活函数、触发词首尾识别参数构成相应的运算函数,以字符的编码序列为该运算函数的输入,若当前进行的是触发词词首识别,则运算函数的输出为该字符为触发词词首字符的概率,若当前进行的是触发词词尾识别,则运算函数的输出为该字符为触发词词尾字符的概率,根据字符为触发词词首字符的概率,可确定字符是否为触发词的词首字符,根据字符为触发词词尾字符的概率,可确定字符是否为触发词的词尾字符。
在一个可能的实施方式中,在事件联合抽取模型中,字符为触发词词首字符、词尾字符的概率的计算公式分别为:
其中,中文事件描述s={c
1,c
2,…,c
i,…,c
n},c
i为中文事件描述中第i个字符,n为中文事件描述中的字符总数,β(c
i)为c
i的编码序列,σ()为激活函数,r表示类型标签,W
Ts (r)和b
Ts (r)为类型标签为r的事件类型所对应的触发词词首识别参数,W
Ts (r)为该参数中的权重矩阵,b
Ts (r)为该参数中的偏置向量,
为c
i为该事件类型的触发词词首的概率,W
Te (r)和b
Te (r)为类型标签为r的事件类型所对应的触发词词尾识别参数,W
Te (r)为该参数中的权重矩阵,b
Te (r)为该参数中的偏置向量,
为c
i为该事件类型的触发词词尾的概率。
在一个可能的实施方式中,预先设定类型标签为r的事件类型所对应的触发词词首识别阈值
和触发词词尾识别阈值
若
则判定字符c
i为类型标签r所对应事件类型的触发词的词首字符,若
则判定字符c
i为类型标签r所对应事件类型的触发词的词尾字符。
S304,在事件联合抽取模型中,根据触发词对事件初始编码进行更新,得到触发词对应的事件更新编码。
具体的,识别得到属于不同事件类型的触发词后,根据触发词对应的编码序列,对事件初始编码序列进行更新,得到触发词对应的事件更新编码,使得触发词对应的事件更新编码中添加有与该触发词相关的数据,考虑到了触发词对事件要素的影响,有利于提高后续事件要素的识别效果。若识别到两个或两个以上的触发词,则对于每个触发词,都是依据该触发词对应的编码序列,对事件初始编码进行更新,每个触发词都有自身对应的事件更新编码,从而确保每个触发词与事件要素之间的对应关系的准确度,也即在后续识别事件要素的过程中确定事件要素所扮演角色的准确度。
在一个可能的实施方式中,根据触发词词首字符的编码序列和触发词词尾字符的编码序列,可确定触发词的编码序列,以提高触发词编码序列的准确度。
在一个可能的实施方式中,可通过对触发词词首字符的编码序列和词尾字符的编码序列进行加和求平均,得到触发词的编码序列,以提高触发词编码序列的准确度。触发词的编码序列的计算公式为:
β(t)=(βs(ci)+βe(cj))/2,其中,t为识别到的触发词,βs(ci)为t的词首字符ci的编码序列,βe(cj)为t的词尾字符cj的编码序列。
在一个实施例中,可通过将触发词的编码序列加到事件初始编码中的每一个编码序列中,得到该触发词对应的事件更新编码,从而使得事件更新编码中每个字符对应的编码序列都受到该触发词的影响,在后续事件要素识别过程中进一步确保每个触发词与事件要素之间的对应关系的准确度。
S305,在事件联合抽取模型中,在每个预设的角色类型上对触发词对应的事件更新编码进行事件要素识别,得到触发词对应的扮演相应事件要素角色的事件要素,由触发词、事件要素和事件要素角色构成中文事件的事件三元组。
具体的,预设的角色类型可采用ACE定义了35类角色类型。识别得到触发词、并得到每个触发词对应的事件更新编码后,将该事件更新编码作为事件联合抽取模型中下一网络层(该网络层可为全连接层)的输入,在每个角色类型下对事件更新编码进行事件要素识别,以检测中文事件描述中与每个触发词对应的、扮演相应角色的事件要素。这里得到的事件要素可能为一个或多个,也可能出现未检测到事件要素的情形,事件要素可能扮演的角色可能为一个或多个,具体由对触发词对应的事件更新编码进行事件要素识别时每个角色类型下事件要素的识别情况决定。
作为示例的,识别到触发词“来往”后,在“目的地”这一角色类型下对触发词“来往”对应的事件更新编码进行事件要素识别,得到事件要素“国家A”,即得到在触发词“来往”下扮演“目的地”这一角色的事件要素“国家A”,相应的事件三元组为(来往,目的地,国家A)。继续在“出发地”这一角色类型下对触发词“来往”对应的事件更新编码进行事件要素识别,同样得到事件要素“国家A”,说明事件要素“国家A”在与触发词“来往”的对应关系中还扮演着“出发地”的角色,相应的事件三元组为(来往,出发地,国家A)。
在一个可能的实施方式中,预先训练好的事件联合抽取模型的参数还包括预先训练好的事件要素首尾识别参数,事件要素首尾识别参数包括事件要素词首识别参数和事件要素词尾识别参数。进行事件要素识别时,分别在每个预设的角色类型上,根据事件更新编码中每个字符的编码序列和事件要素首尾识别参数进行运算,得到每个字符是否为事件要素的词首字符以及是否为事件要素的词尾字符的识别结果、并标记。根据事件更新编码中事件要素的词首字符标记或事件要素的词尾字符标记,可得到中文事件描述中在触发词下扮演相应角色的事件要素。
在一个可能的实施方式中,在对每个字符进行事件要素首尾识别时,可采用激活函数进行运算,即通过激活函数、事件要素首尾识别参数构成相应的运算函数,以事件更新编码中字符的编码序列为该运算函数的输入,若当前进行的是事件要素词首识别,则运算函数的输出为该字符为事件要素的词首字符的概率,若当前进行的是事件要素词尾识别,则运算函数的输出为该字符为事件要素的词尾字符的概率,根据字符为事件要素的词首字符的概率,可确定字符是否为事件要素的词首字符,根据字符为事件要素的词尾字符的概率,可确定字符是否为事件要素的词尾字符。
在一个可能的实施方式中,在事件联合抽取模型中,字符为事件要素的词首字符、词尾字符的概率的计算公式分别为:
PAs(arg=cp,role=r|t)=σ(WAs (r)β(cp')+bAs (r))
PAe(arg=cp,role=r|t)=σ(WAe (r)β(cp')+bAe (r))。
其中,cp为中文事件描述中第p个字符,β(cp')为事件更新编码中cp的编码序列,σ()为激活函数,r表示类型标签,WAs (r)和bAs (r)为类型标签为r的角色类型所对应的事件要素词首识别参数,WAs (r)为该参数中的权重矩阵,bAs (r)为该参数中的偏置向量,PAs(arg=cp,role=r|t)为cp为事件要素的词首字符的概率、且该事件要素在其与触发词t的对应关系中扮演类型标签r对应的角色,WAe (r)和bAe (r)为类型标签为r的角色类型所对应的事件要素词尾识别参数,WAe (r)为该参数中的权重矩阵,bAe (r)为该参数中的偏置向量,PAe(arg=cp,role=r|t)为cp为事件要素的词尾字符的概率、且该事件要素在其与触发词t的对应关系中扮演类型标签r对应的角色。
在一个可能的实施方式中,预先设定类型标签为r的角色类型所对应的触发词词首识别阈值
和触发词词尾识别阈值
如果
则判定字符c
p为事件要素的词首字符、且该事件要素在其与触发词t的对应关系中扮演类型标签r对应的角色,若
则判定字符c
p为事件要素的词尾字符、且该事件要素在其与触发词t的对应关系中扮演类型标签r对应的角色。
在一个可能的实施方式中,可根据ACE定义的事件类型和角色类型,预先设定类别标签以及每个类型标签对应的触发词首尾识别参数、事件要素首尾识别参数。在通过事件联合抽取模型进行触发词识别时,根据每个类型标签对应的触发词首尾识别参数,识别每一类别标签下的触发词,在通过事件联合抽取模型进行事件要素识别时,根据每一类型标签对应的事件要素首尾识别参数,识别每一类别标签下与触发词对应的事件要素,从而提高触发词和事件要素的识别准确度。
在一个可能的实施方式中,类别标签的数量可表示为:33类事件类型+35类角色类型+1个NULL词+1个NULL类,从而扩大触发词和事件要素的识别范围,提高事件联合抽取模型的事件抽取效果。其中,NULL词表示事件类型为空,即中文事件描述中不存在事件类型的情况,NULL类表示事件要素为空,即中文事件描述中不存在事件要素的情况。
在一个可能的实施方式中,在训练事件联合抽取模型时,通过预设的交叉熵损失函数构建目标函数,通过对目标函数进行优化,得到训练好的触发词首尾识别参数和事件要素首尾识别参数,根据训练好的触发词首尾识别参数和事件要素首尾识别参数,可得到训练好的事件联合抽取模型,事件联合抽取模型包括用于对中文事件描述的编码运算、用于触发词识别的网络层、对事件原始编码的更新运算以及用于事件要素识别的网络层。
在一个可能的实施方式中,目标函数包括触发词识别的交叉熵损失函数和事件要素识别的交叉熵损失函数,目标函数可表示为:
L=LT+LA,LT为触发词识别的交叉熵损失函数,LA为事件要素识别的交叉熵损失函数。
其中,
m为类别标签的数量,
分别为识别触发词的词首字符、词尾字符时,作为训练数据的中文事件描述中所有字符在各个类别标签上的二分类交叉损失函数之和,n为作为训练数据的中文事件描述的字符数量。
其中,
分别为识别事件要素时,作为训练数据的中文事件描述中的所有字符在各个类别标签上的二分类交叉损失函数之和。
在一个可能的实施方式中,事件联合抽取模型的训练方式为有监督训练。在训练之前,可采集以中文事件描述为内容的训练数据,对训练数据中的触发词、触发词对应的事件类型、事件要素、事件要素所扮演的角色进行标注,得到标准标注文档。将事件联合抽取模型输出的事件三元组与标准标注文档中的这些标注内容进行比较,计算事件联合抽取模型对应的目标函数的值,通过不断最小化目标函数的值来调整事件联合抽取模型的参数,实现对事件联合抽取模型的有监督训练。
作为示例的,在事件联合抽取模型的实验中,可采用ACE2005中文预料进行实验,该语料包含633个文档,内容涉及新闻、广播、论坛和电话录音。将语料按照9:1的比例划分为训练集和验证集,并将其中的篇章处理为句子,分别作为事件联合抽取模型训练和测试时的输入。在评测事件联合抽取模型时,采用的评测标准为:一,一个触发词被正确识别当且仅当该触发词和该触发词对应的事件类型与标准标注文档中的候选触发词(即标注的触发词)和候选触发词对应的事件类型完全匹配;二,一个事件要素被正确识别当且仅当该事件要素、该事件要素对应的角色类型、该事件要素对应的触发词和该触发词对应的事件类型与标准标注文档中的候选事件要素(即标注的事件要素)、候选事件要素对应的角色类型以及候选事件要素对应的触发词和该触发词对应的事件类型完全匹配。在该评测标准下,可采用维平均(micro-averaging)指标进行评价,利用维平均指标中的micro_P(精确率)、micro_R(召回率)和micro_F1值来评价事件联合抽取模型的中文事件抽取效果,表1为实验中事件联合抽取模型的中文事件抽取效果:
表1
上述方法实施例,通过联合抽取模型对中文事件描述进行编码、触发词识别和事件要素识别,在中文事件描述中,识别每个事件类型的触发词,接着在添加了触发词信息的中文事件描述中,识别该触发词对应的事件要素、并确定事件要素在其与触发词的对应关系中所扮演的角色,得到事件要素角色,最终生成由触发词、事件要素和事件要素角色构成的事件三元组,从而不仅解决了中文事件抽取中流水线模型存在的缺陷,而且在面对事件要素的多标签现象或事件要素的重叠现象时有效地提高了中文事件的抽取准确度。
图4为根据本申请实施例提供的中文事件的抽取装置的结构示意图,如图4所示,中文事件的抽取装置包括:
获取模块401,用于获取中文事件描述;以及
处理模块402,用于将中文事件描述输入预先训练好的事件联合抽取模型,得到中文事件描述中每个中文事件的事件三元组,中文事件的事件三元组包括中文事件的触发词、事件要素和事件要素角色。
在一个可能的实施方式中,处理模块402,具体用于:将中文事件描述输入事件联合抽取模型,在事件联合抽取模型中对中文事件描述进行编码,获得事件初始编码;在事件联合抽取模型中,在每个预设的事件类型上对事件初始编码进行触发词识别,得到触发词;在事件联合抽取模型中,根据触发词对事件初始编码进行更新,得到触发词对应的事件更新编码;在事件联合抽取模型中,在每个预设的角色类型上对触发词对应的事件更新编码进行事件要素识别,得到触发词对应的扮演相应事件要素角色的事件要素,由触发词、事件要素和事件要素角色构成中文事件的事件三元组。
在一个可能的实施方式中,事件初始编码包括中文事件描述中每个字符的编码序列,预先训练好的事件联合抽取模型的参数包括预先训练好的触发词首尾识别参数。相应的,处理模块402,具体用于:在每个预设的事件类型上,根据每个字符的编码序列和触发词首尾识别参数,对每个字符进行触发词首尾识别,得到触发词的词首字符和词尾字符。
在一个可能的实施方式中,处理模块402,具体用于:用于通过预设的激活函数、触发词首尾识别参数和每个字符的编码序列,对每个字符进行触发词首尾识别。
在一个可能的实施方式中,处理模块402,具体用于:根据词首字符的编码序列和词尾字符的编码序列,确定触发词的编码序列;根据触发词的编码序列,对事件初始编码进行更新,得到触发词对应的事件更新编码。
在一个可能的实施方式中,预先训练好的事件联合抽取模型的参数还包括预先训练好的事件要素首尾识别参数;相应的,处理模块402,具体用于:在每个预设的角色类型上,根据触发词对应的事件更新编码中每个字符的编码序列和事件要素首尾识别参数,对每个字符进行事件要素首尾识别,得到事件要素的词首字符和词尾字符。
在一个可能的实施方式中,如图5所示,中文事件的抽取装置还包括:
训练模块,用于通过预设的交叉熵损失函数构建目标函数,通过对目标函数进行优化,得到训练好的触发词首尾识别参数和事件要素首尾识别参数,根据训练好的触发词首尾识别参数和事件要素首尾识别参数,得到训练好的事件联合模型。
本申请实施例提供的中文事件的抽取装置,可以执行上述方法实施例中终端设备的动作,其实现原理和技术效果类似,在此不再赘述。
图6为本申请实施例提供的一种电子设备的结构示意图。如图6所示,该电子设备可以包括:处理器601和存储器602,所述存储器601用于存储计算机执行指令,所述处理器602执行所述计算机程序时实现如上述图2至图3所示实施例的方案。
上述的处理器601可以是通用处理器,包括中央处理器CPU、网络处理器(networkprocessor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。上述存储器602可能包含随机存取存储器(random access memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
具体地,处理器601可用于训练事件联合抽取模型,获取中文事件描述并通过训练好的事件联合模型对该中文事件描述进行事件抽取,得到中文事件描述中每个中文事件的事件三元组。存储器602可用于存储训练好的事件联合抽取模型、语料库以及处理器601输出的各个事件三元组,其中,语料库包括用于事件联合模型训练的训练数据和测试数据,还包括用户输入的、从网络上获取的或者通过其它方式获取的需要进行事件抽取的中文事件描述。
可选的,本申请实施例第五当面还提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上述图2至图3所示任一实施例的方法。
可选的,本申请实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在存储介质中,至少一个处理器可以从所述存储介质中读取所述计算机程序,所述至少一个处理器执行所述计算机程序时可实现上述图2至图3所示任一实施例的方法。
图7是根据本实施例提供的中文事件的抽取装置700的框图。例如,装置700可以被提供为一服务器或者一计算机。参照图7,装置700包括处理组件701,其进一步包括一个或多个处理器,以及由存储器702所代表的存储器资源,用于存储可由处理组件701的执行的指令,例如应用程序。存储器702中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件701被配置为执行指令,以执行上述图2至图3所示任一实施例的方法。
装置700还可以包括一个电源组件703被配置为执行装置700的电源管理,一个有线或无线网络接口704被配置为将装置700连接到网络,和一个输入输出(I/O)接口705。装置700可以操作基于存储在存储器702的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
可以理解的是,在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。