一种事件抽取方法和装置与流程

文档序号:21547359发布日期:2020-07-17 17:58阅读:319来源:国知局
一种事件抽取方法和装置与流程

本文涉及事件数据处理技术,尤指一种事件抽取方法和装置。



背景技术:

互联网上每天都会产生大量的新闻数据,描述许多已经发生的事件。但由于事件种类繁多,无法快速而且准确地分辨事件的类型以及事件的各个因素,如时间,地点,参与人等信息。

对发生的公共事件或者特定行业内所发生的事件进行区分和主体识别,不仅有助于实时把握事件的发展趋势以及整个行业的发展方向,也可辅助高层决策,降低风险。具有重要的实际应用价值和研究意义。

现有的识别方法:[1]基于图神经网络的模型;[2]基于深度学习、注意力机制、序列标注的模型等。

现有方法存在以下缺点:

1、现有方法有的只进行事件类型检测即事件触发词,并没有进行事件主体(或称实体)抽取,任务单一,不具备较强的实际应用价值。有的方法虽然进行了事件触发词识别和论元识别,但是依赖了人工事先标记好的实体,但是这在实际应用中并不存在。

2、现有进行事件检测的方法大都辅助使用已有的自然语言处理工具,但是在实际应用中并不能通过这些工具预先处理好。现有方法大都使用特定的自然语言处理工具如jieba,ltp,standfordnlp等首先对句子进行分词,建立依存树,然后再将这些特征输入模型。缺点在于:首先处理繁琐,其次这些工具在处理的过程中本身具有一定的误差,因此在后续建模分析的过程中会存在误差累积的问题。

3、基于序列标注的一系列模型很难解决事件主体存在交叉的情况,比如“北京的法院”为一个事件主体(机构),但是“北京”本身也是一种主体/实体(地名)。



技术实现要素:

本申请提供了一种事件抽取方法和装置,能够获取更加有用的信息,具有较强的实际应用价值;在数据处理和建模的过程中操作简单,避免了因使用自然语言处理工具而导致的误差累积的问题;通过划分span的方式,完美解决了序列标注存在的问题,效率更高,适用性更强。

本申请提供了一种事件抽取方法,所述方法可以包括:

获得语句的向量化语义表示w1;

根据所述向量化语义表示w1中设置的token进行触发词识别,并根据所述向量化语义表示w1进行span的划分获得的相应的span语义表示进行实体识别;

对每一个token和span进行两两结合,并标记结合后的token和span是否为(触发词-论元)对。

在本申请的示例性实施例中,所述获得语句的向量化语义表示w1可以包括:通过双向lstm网络模型或bert模型获得语句的向量化语义表示w1。

在本申请的示例性实施例中,在通过双向lstm网络获得语句的向量化语义表示w1之前,所述方法还可以包括:将语句中的a个字符随机初始化为一个维度为[a,b]的b维向量d,其中,对于从0到a-1的索引id,每个id对应一个不同的字符;对于长度为s的语句,该语句中每一个字符能够在向量d中找到对应的id,从而获得维度为[s,d]的向量;

通过双向lstm网络获得语句的向量化语义表示w1可以包括:将维度为[s,d]的向量输入预设的双向lstm神经网络,将所述双向lstm神经网络的输出作为语句的向量化语义表示w1;

其中,所述向量化语义表示w1的维度为[s,d1];d1为2*lstm隐层节点数。

在本申请的示例性实施例中,通过bert模型获得语句的向量化语义表示w1可以包括:将语句直接输入所述bert模型,将所述bert模型的输出作为语句的向量化语义表示w1;

其中,所述向量化语义表示w1的维度为[s,d1];d1=768。

在本申请的示例性实施例中,所述方法还可以包括:

预先将触发词类型划分为x种,将实体类型划分为y种,将事件论元类型划分为z种,将所述触发词类型、所述实体类型以及所述事件论元类型以外的类型作为其他类型other;其中,x、y、z均为正整数;

在获得语句的向量化语义表示w1之前,进行以下任意一种或多种操作:

在语句中设置一个或多个token;每一个token用于标记当前词语是否为所述触发词类型;每个token表示x种类型中的任意一种;

根据设定的span宽度,对语句进行span划分,以将语句划分为多个span,并对每个span进行标记,以确定当前span是否属于实体类型;每个标记表示y种类型中的任意一种;

对标记的每一个token和span进行两两结合,并标记结合后的token和span是否为(触发词-论元)对。

在本申请的示例性实施例中,所述根据所述向量化语义表示w1中设置的token进行触发词识别可以包括:

通过两层全连接神经网络和softmax层对每个token进行分类,获得维度为[s,x+1]的向量w2,向量w2表示每个token属于每一类型触发词的概率。

在本申请的示例性实施例中,所述根据所述向量化语义表示w1进行span的划分获得的相应的span语义表示进行实体识别可以包括:

对所述向量化语义表示w1进行span划分,得到多个语义片段;对多个语义片段进行平均池化,得到每个span的表示w3;

将每个span的表示w3作为输入,使用两层全连接神经网络和softmax层对每个span进行分类,输出维度为[n,y+1]的向量w4,向量w4表示每个span属于每一类型实体的概率。

在本申请的示例性实施例中,所述对所述向量化语义表示w1进行span划分,得到多个语义片段;对多个语义片段进行平均池化,得到每个span的表示w3可以包括:

获取设定的span的最大宽度max_span_width;根据span的宽度从1到max_span_width依次在所述向量化语义表示w1上进行选取,获得n个span的语义表示span_embedding;

对n个span的语义表示span_embedding进行平均池化,得到每个span的表示w3。

在本申请的示例性实施例中,所述对每一个token和span进行两两结合,并标记结合后的token和span是否为(触发词-论元)对可以包括:

对所述向量化语义表示w1以及所述每个span的表示w3进行复制和变换,实现对每一个token和span的两两拼接组合,获得维度为[s,n,2*d1]的向量w5;

将向量w5作为输入,通过两层全连接神经网络和一层softmax层对向量w5进行分类,输出维度为[s,n,z+1]的向量w6;向量w4表示每个组合属于每一类型事件论元的概率。

本申请还提出了一种事件抽取装置,可以包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任意一项所述的事件抽取方法。

与相关技术相比,本申请实施例可以包括:获得语句的向量化语义表示w1;根据所述向量化语义表示w1中设置的token进行触发词识别,并根据所述向量化语义表示w1进行span的划分获得的相应的span语义表示进行实体识别;对每一个token和span进行两两结合,并标记结合后的token和span是否为(触发词-论元)对。通过该实施例方案,能够同时抽取事件触发词以及事件的论元和实体,可获取更加有用的信息,具有较强的实际应用价值;在数据处理和建模的过程中不使用现有的自然语言处理工具,使得操作简单,也避免了因使用自然语言处理工具而导致的误差累积的问题,同时也更加符合真实应用场景;通过划分span的方式,完美解决了序列标注存在的问题,效率更高,适用性更强。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。

附图说明

附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本申请实施例的事件抽取方法流程图;

图2为本申请实施例的事件抽取装置组成框图。

具体实施方式

本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。

本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。

此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。

在本申请的示例性实施例中,在介绍本申请实施例方案之前,可以首先对本申请实施例涉及的术语进行介绍:

1、事件类型及定义:

事件类型是指不同的事件所属的类别,比如在金融领域有“实控人股东变更”、“信批违规”、“财务造假”等事件类型。事件类型的定义一般由该领域的专家或经验人士来确定。

2、触发词:

触发词是指能够清楚的表明事件类型的一些词汇,比如“kill”、“injured”、“fire”等。

3、论元:

论元是指事件所包含的因素,比如某个事件发生的时间,地点,参与者等因素。

4、事件主体以及定义:

事件主体是指事件发生的主要参与方,也是与该事件联系最为紧密的一方,定义为实体。如:“xx科技实际控制人变更yy集团”、“zz集团已经资不抵债将进行破产重整”,这些事件中,“xx科技”即为该事件的主体,类型为“机构”,事件主体可以定义为多种实体类型,比如人名、地名、组织机构名、时间等。

5、事件抽取:

事件抽取包含三个任务,即主体(实体)识别,触发词识别和论元识别。

6、span:

span可认为是“一段区域,每个span具有一定的宽度”,就是对一段话进行固定长度的选取,比如一句话“我今天吃了面包,喝了牛奶”,如果span的宽度为2,则可以得到片段“我今”、“今天”、“天吃”等。

7、span的划分:

span的划分是指根据设定的span的最大宽度,从小到大依次进行划分。比如span最大宽度为8,则span的宽度为1-8,分别进行划分,可以得到多个span。

8、span的分类:

span的分类是指通过模型或特定的方法判断一条数据所属的类型即标签,一般而言,分类任务中的每条数据只属于一个类别。

本申请提供了一种事件抽取方法,如图1所示,所述方法可以包括s101-s103:

s101、获得语句的向量化语义表示w1。

在本申请的示例性实施例中,在获得语句的向量化语义表示w1之前,可以首先对要进行事件抽取的数据进行预处理。该预处理可以包括但不限于:触发词标记、实体标记和论元标记。

在本申请的示例性实施例中,所述方法还可以包括:

预先将触发词类型划分为x种,将实体类型划分为y种,将事件论元类型划分为z种,将所述触发词类型、所述实体类型以及所述事件论元类型以外的类型作为其他类型other;其中,x、y、z均为正整数;

在获得语句的向量化语义表示w1之前,进行以下任意一种或多种操作:

在语句中设置一个或多个token;每一个token用于标记当前词语是否为所述触发词类型;每个token表示x种类型中的任意一种;

根据设定的span宽度,对语句进行span划分,以将语句划分为多个span,并对每个span进行标记,以确定当前span是否属于实体类型;每个标记表示y种类型中的任意一种;

对标记的每一个token和span进行两两结合,并标记结合后的token和span是否为(触发词-论元)对。

在本申请的示例性实施例中,假设触发词的类型(可以称为事件类型)数为n_event=10,即x=10,事件主体的类型(可以称为实体类型)数为n_entity=20,即y=20,事件论元的类型数为n_argument=15,即z=15。

在本申请的示例性实施例中,触发词标记可以包括:首先对句子中的每一个token进行标记是否为触发词(如果是,则标记触发词类型,否则标记为”other”)。然后对句子(或称语句)进行span的划分,以单个句子为例,假如设定span的最大宽度max_span_width=8,则可以得到多个span。

在本申请的示例性实施例中,实体标记可以包括:需要对每个span进行标记,即确定每个span是否是实体;如果是实体,则标记为实体类别,否则标记为“other”。

论元标记可以包括:对每个token与span进行两两结合并标记是否为(触发词-论元)对,如果是正确的配对,则标记为论元类型,否则标记为“other”。

在本申请的示例性实施例中,因计算机无法直接处理中文,因此可以将句子(语句)中每一个单词转化为数字的映射。即,获得语句的向量化语义表示w1。

在本申请的示例性实施例中,因计算机无法直接处理中文,因此可以将句子(语句)中每一个单词转化为数字的映射。即,获得语句的向量化语义表示w1。

在本申请的示例性实施例中,所述获得语句的向量化语义表示w1可以包括:通过双向lstm网络模型或bert模型获得语句的向量化语义表示w1。

在本申请的示例性实施例中,在通过双向lstm网络获得语句的向量化语义表示w1之前,所述方法还可以包括:将语句中的a个字符随机初始化为一个维度为[a,b]的b维向量d,其中,对于从0到a-1的索引id,每个id对应一个不同的字符;对于长度为s的语句,该语句中每一个字符能够在向量d中找到对应的id,从而获得维度为[s,d]的向量;

通过双向lstm网络获得语句的向量化语义表示w1可以包括:将维度为[s,d]的向量输入预设的双向lstm神经网络,将所述双向lstm神经网络的输出作为语句的向量化语义表示w1;

其中,所述向量化语义表示w1的维度为[s,d1];d1为2*lstm隐层节点数。

在本申请的示例性实施例中,假设语料中一共有20000个不同的字符(汉字和/或单词,可以包括其他常用符号),每个字符可以随机初始化为一个300维的向量,则可以得到一个维度为[20000,300]的向量d,其中对于索引id从0至19999,每个id对应一个不同的汉字。那么对于一句话(长度为s)中的每一个字符,都可以在d中找到对应的id,从而获取对应的向量,因此可以得到一个维度为[s,300]的向量。然后可以使用双向lstm神经网络得到句子的语义表示向量w1。

在本申请的示例性实施例中,通过bert模型获得语句的向量化语义表示w1可以包括:将语句直接输入所述bert模型,将所述bert模型的输出作为语句的向量化语义表示w1;

其中,所述向量化语义表示w1的维度为[s,d1];d1=768。

在本申请的示例性实施例中,使用bert模型时,可以将句子直接输入至bert模型,bert模型的输出即可以作为句子的向量化语义表示w1。

在本申请的示例性实施例中,设以上两种方法得到的语义表示为w1,则,1的维度为[s,d1],其中s为句子长度;如果使用双向lstm网络获得语句的向量化语义表示w1,则d1为2*lstm隐层节点数,如果使用bert模型获得语句的向量化语义表示w1,则d1=768。

s102、根据所述向量化语义表示w1中设置的token进行触发词识别,并根据所述向量化语义表示w1进行span的划分获得的相应的span语义表示进行实体识别。

在本申请的示例性实施例中,所述根据所述向量化语义表示w1中设置的token进行触发词识别可以包括:

通过两层全连接神经网络和softmax层对每个token进行分类,获得维度为[s,x+1]的向量w2,向量w2表示每个token属于每一类型触发词的概率。

在本申请的示例性实施例中,在步骤s101所得到的语义表示w1的基础上,通过两层全连接神经网络和softmax层对每个token进行分类,网络的输入即为w1,输出为一个维度为[s,n_event+1]的向量w2,w2意为每个token属于每一类事件(触发词)的概率。

在本申请的示例性实施例中,所述根据所述向量化语义表示w1进行span的划分获得的相应的span语义表示进行实体识别可以包括:

对所述向量化语义表示w1进行span划分,得到多个语义片段;对多个语义片段进行平均池化,得到每个span的表示w3;

将每个span的表示w3作为输入,使用两层全连接神经网络和softmax层对每个span进行分类,输出维度为[n,y+1]的向量w4,向量w4表示每个span属于每一类型实体的概率。

在本申请的示例性实施例中,所述对所述向量化语义表示w1进行span划分,得到多个语义片段;对多个语义片段进行平均池化,得到每个span的表示w3可以包括:

获取设定的span的最大宽度max_span_width;根据span的宽度从1到max_span_width依次在所述向量化语义表示w1上进行选取,获得n个span的语义表示span_embedding;

对n个span的语义表示span_embedding进行平均池化,得到每个span的表示w3。

在本申请的示例性实施例中,可以根据设定的span的最大宽度max_span_width=8对步骤s101得到的语义表示w1进行划分。划分方法可以包括:span的宽度从1至max_span_width依次在向量w1上进行选取,得到n个span的语义表示,即span_embedding。

在本申请的示例性实施例中,因每个span的宽度不一样(span_embedding的维度可以为[sw,d1],其中sw取值为1~max_span_width),因此可以对这n个span的语义表示进行平均池化处理,从而得到这n个span的表示w3,w3的维度可以为[n,d1]。

在本申请的示例性实施例中,得到span的表示w3后,可以使用两层全连接神经网络和softmax层对span进行分类,从而确定每个span是否属于某类实体。网络的输入为w3,输出为一个维度为[n,n_entity+1]的向量w4,w4意为每个span属于某类实体的概率。

s103、对每一个token和span进行两两结合,并标记结合后的token和span是否为(触发词-论元)对。

在本申请的示例性实施例中,所述对每一个token和span进行两两结合,并标记结合后的token和span是否为(触发词-论元)对可以包括:

对所述向量化语义表示w1以及所述每个span的表示w3进行复制和变换,实现对每一个token和span的两两拼接组合,获得维度为[s,n,2*d1]的向量w5;

将向量w5作为输入,通过两层全连接神经网络和一层softmax层对向量w5进行分类,输出维度为[s,n,z+1]的向量w6;向量w4表示每个组合属于每一类型事件论元的概率。

在本申请的示例性实施例中,因论元是与事件相关联,某个论元必然属于某个事件。因此,可以将句子中的每个token与span进行两两组合配对,即组合成(token-span),从而判断该组合是否为一个正确的(触发词-论元)对,具体做法可以包括:根据得到的句子的表示w1(维度为[s,d1])以及所有span的表示w3(维度为[n,d1]),通过对它们进行复制、变换等操作进行两两拼接组合,可以得到一个维度为[s,n,2*d1]的向量w5,然后经过两层全连接神经网络和一层softmax层进行分类,从而确定每一个组合属于某个事件的论元;该网络的输入为w5,输出为一个维度为[s,n,n_argument+1]的向量w6,w6意为每个组合属于某个事件论元的概率。

在本申请的示例性实施例中,在该实施例方案中的训练阶段,可以将以上分类结果与步骤s101中所得的预先进行的标记数据(触发词标记、实体标记和论元标记)进行误差计算和反向传播、参数更新操作完成训练过程。

在本申请的示例性实施例中,在该实施例方案中的预测阶段,根据分类的结果即可得到的对应的类型,softmax的输出属于每个类别的概率,取概率最大值的索引所对应的类型即可。因此,对于触发词识别,则根据softmax的输出即可判断某个token是否为触发词;对于实体识别,则根据softmax的输出即可判断某个span是否属于某类实体;对于论元识别,则需要满足一个前提条件,即该组合中的token必须已经被确定为触发词,其次根据softmax的输出即可判断该(token-span)组合是否为该事件的论元。

本申请实施例通过双向lstm网络或者bert得到句子的向量化语义表示w1,然后在此之上分为三个分支:1.第一个分支进行触发词识别;2.第二个分支进行实体识别;在此之前,在得到的句子的向量化语义表示w1上进行span的划分从而得到多个语义片段,然后对每个语义片段进行平均池化得到每个span的表示,第二个分支对span进行分类从而确定该span是否为一类实体;3.第三个分支进行论元识别;将每个token与span进行组合,从而判断该组合是否为(触发词-论元)对。基于以上过程可将句子(文档)中的所有事件的实体、触发词以及对应的论元识别出来,提高了事件抽取的效率,具有较强的实用性,并且本申请实施例公开了一种基于事件抽取的联合模型,能够同时抽取事件中的实体,触发词和论元。模型只需要原始句子的输入,避免了现有方法对自然语言处理工具的依赖问题。

综上所述,本申请至少具有以下优势:

1、同时抽取事件触发词以及事件的论元和实体,可获取更加有用的信息,具有较强的实际应用价值。

2、在数据处理和建模的过程中不使用现有的自然语言处理工具,使得操作简单,也避免了因使用自然语言处理工具而导致的误差累积的问题,同时也更加符合真实应用场景。

3、通过划分span的方式,完美解决了序列标注存在的问题,效率更高,适用性更强。

在本申请的示例性实施例中,触发词可以被认为是单个token(标识),因此该方法比较适用于像英文这种一个单词就能代表一种意思的语言。而对于事件中的实体和论元,因为是基于span的,所以对语言没有限制。

本申请还提出了一种事件抽取装置1,如图2所示,可以包括处理器11和计算机可读存储介质12,所述计算机可读存储介质12中存储有指令,当所述指令被所述处理器11执行时,实现上述任意一项所述的事件抽取方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1