事件元素抽取方法、装置、计算设备及存储介质
技术领域
本说明书涉及事件检测技术领域,特别涉及一种事件元素抽取方法、装置、计算设备及计算机可读存储介质。
背景技术
现有技术中事件检测(Event Detection,ED)应用场景非常广泛,其目标是识别出输入文本中我们关心的关键事件,用于进一步的分析。比如在金融风控领域,我们可以通过检测”公司股权转让事件”来分析公司经营情况和策略。
目前的事件检测技术用户体验较差。
发明内容
有鉴于此,本说明书实施例提供了一种事件元素抽取方法、装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了事件元素抽取方法,包括:
获取输入文本,确定所述输入文本中每个词的关系特征向量,其中所述关系特征向量通过将对应词的词嵌入、谓词嵌入和用以表征该词是否在谓词上下文窗口中的标记拼接得到;
基于所述输入文本中每个词的关系特征向量通过语义角色标注模型得到所述输入文本中每个词的论元,其中所述语义角色标注模型用以识别事件文本中具有动作方向的论元,所述论元包括对应的词、语义角色类型及位置信息;
通过命名实体识别方法得到所述输入文件包含的实体词、所述实体词的类型及位置信息;
根据所述输入文本的事件类型确定需要提取的事件元素类型,基于需要提取的事件元素类型、所述论元、所述实体词的类型及位置信息将所述论元对应的词与所述实体词进行元素对齐,确定所述输入文本中所述事件元素类型的名称和对应的实体词。
根据本说明书实施例的第二方面,提供了一种事件元素抽取装置,包括:
关系特征确定模块,被配置为获取输入文本,确定所述输入文本中每个词的关系特征向量,其中所述关系特征向量通过将对应词的词嵌入、谓词嵌入和用以表征该词是否在谓词上下文窗口中的标记拼接得到;
论元获取模块,被配置为基于所述输入文本中每个词的关系特征向量通过语义角色标注模型得到所述输入文本中每个词的论元,其中所述语义角色标注模型用以识别事件文本中具有动作方向的论元,所述论元包括对应的词、语义角色类型及位置信息;
实体词获取模块,被配置为通过命名实体识别方法得到所述输入文件包含的实体词、所述实体词的类型及位置信息;
事件元素确定模块,被配置为根据所述输入文本的事件类型确定需要提取的事件元素类型,基于需要提取的事件元素类型、所述论元、所述实体词的类型及位置信息将所述论元对应的词与所述实体词进行元素对齐,确定所述输入文本中所述事件元素类型的名称和对应的实体词。
根据本说明书实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的事件元素抽取方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述的事件元素抽取方法的步骤。
本说明书实施例通过对输入文件进行语义角色标注和命名实体识别,并根据输入文本的事件类别,抽取出对应事件类对应需要抽取的具有动作方向事件元素,提升用户的体验。
附图说明
图1是示出了根据本说明书一实施例提供的事件元素抽取方法的系统架构图;
图2是示出了本说明书一实施例提供的事件元素抽取方法流程图;
图3是示出了本说明书另一实施例提供的事件元素抽取方法流程图;
图4是示出了根据本说明书一实施例提供的生成事件检测模型的方法的示意性流程图;
图5是示出了根据本说明书一实施例提供的事件检测方法的示意性流程图;
图6是示出了本说明书一实施例提供的事件检测模型的建模和应用示意性流程图;
图7是示出了本说明书一实施例提供的事件元素抽取装置模块图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书中,提供了一种生成事件检测模型的方法和装置、事件检测方法和装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,本说明书一个或多个实施例提供的事件元素抽取方法的系统架构图,包括网络102、数据库104、用户设备106和计算设备100。
所述计算设备100包括但不限于存储器110、处理器112、通信接口114以及总线116。
所述网络102分别与所述用户设备106完成相互间的通信,所述网络102与计算设备100通过通信接口114完成相互间的通信,所述数据库104与计算设备100通过通信接口114完成相互间的通信。
所述处理器112、所述通信接口114和存储器110通过总线116完成相互间的通信。
所述用户设备106,被配置为提供样本数据。
网络102,被配置为为用户设备106提供传送样本数据的通道。
数据库104,被配置为存储样本数据。
通信接口114,被配置为接收网络102和/或数据库104中的样本数据,然后将所述样本数据通过总线116存储至存储器110。
通信接口114使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。网络接口可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
存储器110,被配置为存储通信接口114通过总线116发送的样本数据以及存储在存储器110上并可在处理器112上运行的计算机指令。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。
处理器112,被配置为获取存储在存储器110的样本数据后,执行存储在存储器110上的计算机指令,实现事件元素抽取方法的相关步骤。
其中,处理器112可以执行图2所示方法中的步骤。图2是示出了根据本说明书一实施例提供的事件元素抽取方法的示意性流程图,包括步骤202至步骤208。
步骤202:获取输入文本,确定所述输入文本中每个词的关系特征向量,其中所述关系特征向量通过将对应词的词嵌入、谓词嵌入和用以表征该词是否在谓词上下文窗口中的标记拼接得到。
一种实现方式中,所述输入文本中每个词对应的关系特征向量是由当前词embedding(嵌入)、谓词embedding、是否在谓词上下文窗口中(1/0),这三个要素拼接成而成的向量。其中,如果当前词在谓词上下文窗口中,则“是否在谓词上下文窗口中”取值1,否则取值0,如一个输入文本中“A公司”和“了”在谓词“转让”的大小为3的上下文窗口中,上下文窗口的大小可以根据经验值进行设置。
步骤204:基于所述输入文本中每个词的关系特征向量通过语义角色标注模型得到所述输入文本中每个词的论元,其中所述语义角色标注模型用以识别事件文本中具有动作方向的论元,所述论元包括对应的词、语义角色类型及位置信息。
语义角色标注(Semantic Role Labeling,SRL)是浅层语义分析任务的一种实现方式,其目标是识别出与句子中谓词(Predicate)有关的成份的语义角色,也就是论元(Argument),如施事、受事、与事,或一些自定义的论元。
其中,谓词是对主语动作或状态的陈述或说明;施事是动作的发出者;受事是动作的接受者,也就是动作直接作用的对象;与事是动作的间接参与者。
语义层面的施事、受事、与事对应于句法层面的主语、直接宾语、间接宾语。
一种实现方式中,所述语义角色标注模型通过以下步骤得到:
根据原始样本集中每个事件样本的每个词的词嵌入、谓词嵌入和用以表征该词是否在谓词上下文窗口中的标记拼接得到该词的关系特征向量;其中所述原始样本集中每个事件样本的每个词关系特征向量通过BiLSTM+CRF序列标注算法得到。此外,在具体实现时,还可以采用其他有效的序列标注算法,如CRF、MEMM、HMM等。
对每个事件样本进行语义角色标注,得到该事件样本中每个词对应的论元;一种实现方式中,所述对每个事件样本进行语义角色标注,得到该事件样本中每个词对应的论元包括:采用BIEO序列标记法对每个事件样本进行序列标记,得到该事件样本每个事件元素的语义角色类型及其位置信息,将每个事件元素的语义角色类型及其位置信息作为该事件元素对应的论元。
根据所述原始样本集中每个事件样本的每个词、该词的关系特征向量、该词对应的论元生成语义角色训练样本集;
通过所述语义角色训练样本集训练语义角色标注模型,所述角色标注模型使得每个事件样本的每个词的关系特征向量与该词对应的论元相关联。
一种实现方式中,在所述通对每个事件样本进行语义角色标注,得到该事件样本中每个词对应的论元之前还包括:对论元的语义角色类型进行自定义。通过前面的理论分析,可以看出语义角色标注的结果中,施事、受事、与事相对于动作是具有方向的,因此我们也可以自定义一些具有方向的论元,用语义角色标注方法去识别它们。
步骤206:通过命名实体识别方法得到所述输入文件包含的实体词、所述实体词的类型及位置信息。
一种实现方式中,命名实体识别采用成熟的BiLSTM+CRF序列标注算法,输入文本语句,输出文本中包含的实体词及其类型(如公司、人、时间等),单个实体表示成<词,实体类型,起始位置,结束位置>四元组,如:<A公司,COMPANY,1,1>。
值得说明的是,这里命名实体识别结果里的起止位置和语义角色标注里的起止位置都是在相同分词结果下的词序列中的下标,一个词占一个下标。(当然也可以采用字符序列下标,也就是一个字符占一个下标)。
一种实现方式中,在所述根据所述输入文本的事件类型确定需要提取的事件元素类型之前还包括:基于事件样本的事件类型确定每个事件类型需要提取的事件元素类型,所述需要提取的事件元素类型包括元素名称、元素实体词类型和元素语义角色类型;根据多个事件类型中每个事件类型的需要提取的事件元素类型生成事件元素配置库。事件元素配置库存储事件类型对应需要抽取的事件元素相关的元信息,包括元素名称、元素实体类型、元素语义角色。其中元素名称是给元素词赋予一个与该事件相关的业务上有意义的名称,元素实体类型和元素语义角色作为该元素词的类型限制条件。
步骤208:根据所述输入文本的事件类型确定需要提取的事件元素类型,基于需要提取的事件元素类型、所述论元、所述实体词的类型及位置信息将所述论元对应的词与所述实体词进行元素对齐,确定所述输入文本中所述事件元素类型的名称和对应的实体词。
一种实现方式中,所述根据所述输入文本的事件类型确定需要提取的事件元素类型,基于需要提取的事件元素类型、所述论元、所述实体词的类型及位置信息将所述论元对应的词与所述实体词进行元素对齐,确定所述输入文本中与所述事件元素类型对应的实体词以及该实体词的位置信息包括:
基于所述论元的语义角色类型及位置信息和所述实体词的类型及位置信息按照如下公式计算任一语义角色的词与任一实体词两两之间的交叠系数C(A,B):
其中,A是所述输入文本中任一实体词,B是所述输入文本中语义角色类型对应的词,|A|是A的起止位置确定的区间大小,|B|是B的起止位置确定的区间大小;|A∩B|是A、B的起止位置的交集确定的区间大小;
基于交叠系数大于设定值的项得到候选元素集,每个候选元素包括实体词、实体词类型、语义角色类型和位置信息;
根据所述输入文本的事件类型确定需要提取的事件元素类型,所述需要提取的事件元素类型所包含的元素名称、元素实体词类型和元素语义角色类型;
判断每个所述候选元素的实体词类型和语义角色类型是否分别与所述需要提取的事件元素类型所包含的元素实体词类型和元素语义角色类型均匹配;
若判断结果为是则将实体词类型和元素实体词类型、语义角色类型和元素语义角色类型均匹配的候选元素作为所述输入文本的事件元素,所述输入文本的事件元素包括对应的事件元素名称和实体词。
其中,在具体实现时,事件元素抽取方案中对齐采用的交叠系数可以替换成Dice系数、Jaccard系数等。
本说明书实施例通过对输入文件进行语义角色标注和命名实体识别,并根据输入文本的事件类别,抽取出对应事件类对应需要抽取的具有动作方向事件元素(如“股权转让事件”中需要抽取出“出让公司”、“受让公司”、“股权占比”、“时间”等),解决了传统方法抽取具有方向的事件元素时准确率不高的问题。
图3是示出了本说明书一实施例的事件元素抽取方法示意图。本说明书实施例通过对输入文件进行语义角色标注和命名实体识别,根据输入文本的事件类别,抽取出对应事件类对应需要抽取的事件元素(如“股权转让事件”中需要抽取出“出让公司”、“受让公司”、“股权占比”、“时间”等)。
接下来先介绍语义角色标注,然后再逐一介绍其他步骤。
步骤302:语义角色标注。
我们可以列举“股权转让”类型的事件的几种表述,以呈现事件元素具有方向性的现象:“A公司转让30%股权给B公司”;“王董事长转让了A公司的30%股权给B公司”;“B公司接受A公司30%的股权转让;接受A公司30%的股权转让后,B公司的发展如虎添翼”。
通过上面例句可以看出,虽然在句子中出现的顺序和位置不同,但出让公司的抽取结果均是A公司,受让公司的抽取结果均是B公司,也就是说A公司、B公司在这几个句子中扮演的语义角色是相同的。
通过上面的理论和现象分析,因此我们可以通过语义角色标注识别具有动作方向的论元的方法,从而抽取出具有动作方向的事件元素。也就解决了传统方法抽取具有方向的事件元素时准确率不高的问题。
语义角色标注模型训练过程如下:
原始样本集:示例如下表1,
表1语义角色标注模型原始样本表
“谓词列”标记该文本中的谓词,本实施例只考虑单谓词的情况。“语义角色标记列”中的一个位置标记(start_index,end_index,type)标识一个论元,start_index(起始位置标识),和end_index(终止位置标识)标识在原文本分词后的序列中的起止范围,一般start_index和end_index相同,表示仅跨度一个词,当一个论元被分词为多个词时,start_index和end_index不相同。type标识语义角色类型。上表1中第一个样本标记可直观展示如下:
[近日TMP][A公司A3][转让PRED]了30%股权给[B公司A4]。
本实施例采用的语义角色标记体系,如下表2所示:
表2语义角色标记体系
PRED |
A3 |
A4 |
TMP |
LOC |
… |
谓词 |
方向开始论元 |
方向结束论元 |
时间 |
地点 |
|
其中A3和A4是为了识别带方向的事件元素而自定义的论元角色。
值得说明的是,本实施例只定义了开始和结束两个方向,实际可根据需求定义两个以上的方向,如:开始、中间、结束。
生成训练样本集:采用BIEO序列标记法(B表示Begin(开始),I表示Internal(中间),E表示End(结束),O表示Other(其他)),将原始样本生成序列标注模型的训练样本,一个完整的BIE标识一个事件元素,如下表3所示:
表3语义角色标注模型训练样本
由多个词组成的论元,则中间的词用I-标记,结束词用E-标记,O表示不属于任何论元。
训练语义角色标注模型:采用成熟的BiLSTM+CRF序列标注算法。表3的序列标记是训练目标。在训练时,每个时间点的输入向量是由当前词embedding、谓词embedding、是否在谓词上下文窗口中(1/0),这三个要素拼接成而成的向量。其中,如果当前词在谓词上下文窗口中,则“是否在谓词上下文窗口中”取值1,否则取值0。
语义角色标注:针对输入文本,语义角色标注模型输出对应的BIEO标记序列后,将每套完整的“BI…E”标记对应的词序列提取出来,作为识别出的单个语义角色,表示成<词,角色,起始位置,结束位置>四元组,如:<A公司,A3,1,1>。
步骤304:命名实体识别。
命名实体识别采用成熟的BiLSTM+CRF序列标注算法,输入文本语句,输出文本中包含的实体词及其类型(如公司、人、时间等),单个实体表示成<词,实体类型,起始位置,结束位置>四元组,如:<A公司,COMPANY,1,1>。
值得说明的是,这里命名实体识别结果里的起止位置和语义角色标注里的起止位置都是在相同分词结果下的词序列中的下标,一个词占一个下标。(当然也可以采用字符序列下标,也就是一个字符占一个下标)。
步骤306:事件元素配置库。
事件元素配置库存储事件类型对应需要抽取的事件元素相关的元信息,包括元素名称、元素实体类型、元素语义角色。其中元素名称是给元素词赋予一个与该事件相关的业务上有意义的名称,元素实体类型和元素语义角色作为该元素词的类型限制条件。示例如下表4所示:
表4事件元素配置信息
事件类型 |
元素名称 |
元素实体类型 |
元素语义角色 |
股权转让 |
出让公司 |
COMPANY |
A3 |
股权转让 |
受让公司 |
COMPANY |
A4 |
… |
|
|
|
步骤308:元素对齐。
元素对齐结合事件元素配置信息,将实体识别结果和语义角色识别结果进行对齐,输出最终的事件元素抽取结果。
对齐过程如下:
将下面实体元组列表和语义角色元组列表中的iterm进行两两计算交叠系数,保留交叠系数大于0.5的项作为候选元素集,单个候选元素表示为<词,实体类型,语义角色>三元组(其中“词”取自于实体元组,当然也可以取自于语义角色元组),如<A公司,COMPANY,A3>,其余的舍弃。
实体元组列表:[<A公司,COMPANY,1,1>,…]
语义角色元组列表:[<A公司,A3,1,1>,…]
根据上文已识别到的事件类型(假如:股权转让),查找出对应待抽取的事件元素的配置信息(表4中1、2行),然后将每个候选元素三元组中的实体类型和语义角色分别与配置信息中要求的实体类型和语义角色条件进行匹配,同时匹配上实体类型和语义角色的候选元素输出作为最终的事件元素,表示为<事件元素名,元素词>,如:<出让公司,A公司>。
至此,本实施例就实现了事件元素抽取的方案,该方案在“机构风控”场景中,准确率效果在90%以上,充分说明方案的有效性。
在具体抽取所述输入文本的事件元素时,可以预先确定该输入文本的事件类型,所述输入文本的事件类型可以通过以下实施例的检测方式来实现。以下先介绍事件检测模型的生成方法。
其中,处理器112可以执行图4所示方法中的步骤。图4是示出了根据本说明书一实施例提供的生成事件检测模型的方法的示意性流程图,包括步骤402和步骤404。
步骤402:根据事件类型及所述事件类型对应的事件样本生成训练样本集,其中,所述训练样本集包含多个事件样本组,每个所述事件样本组包含两个事件样本,每个所述事件样本组对应一个事件类型匹配标记。
在一种实现方式中,若所述事件样本组中的两个事件样本为同一事件类型,所述事件样本组的匹配标记被记为第一标记值;若所述事件样本组中的两个事件样本为不同事件类型,所述事件样本组的匹配标记被记为第二标记值,所述第二标记值与所述第一标记值不同,例如,来自同一事件类型的事件样本组的匹配标记为1,来自不同事件类型的事件样本组的匹配标记为0。如此以来,由小量的事件类型样本(N个,N为自然数),则可产生大量的训练样本(N*(N-1)个),解决了传统文本分类方法需要大量已标注样本的问题。
以“金融机构风控”应用场景为例,获取已标注了事件类型的小量文本数据,每个事件类型的样本量介于30~100个之间,示例数据如表5所示(为了数据脱敏,样例数据中的主体均以“A”、“B”等字母替代)。
表5事件类型样本
事件类型 |
样本文本 |
股权转让 |
A集团转让80%股权给B集团,挂牌价为1.84亿元。 |
股权转让 |
A公司挂牌转让两子公司股权。 |
经营停产 |
泉州鞋材企业A公司停产。 |
经营停产 |
A股份公司停产背后:股东指公司管理混乱经营不善。 |
… |
|
将表5中的事件样本进行两两组合得到训练样本集,并为组合后得到的事件样本组打上相应的匹配标记,组合后的事件样本组所包含的事件样本和匹配标记如表6所示。
表6训练样本集
步骤404:通过所述训练样本集对用来计算输入的两个事件文本的相似度的模型进行训练,得到事件检测模型。
一种实现方式中,所述事件检测模型通过具有注意力机制的深度神经网络(Attention Deep Neural Network)生成。Attention(注意力)机制对神经网络的计算有巨大影响,它可以选取相关信息参与计算,使得在计算时不需要使用所有可用的信息,因为不相关信息反而可能带来一定干扰。
一种具体实施方式中,可以通过所述事件检测模型计算输入文本与事件模板库中多个事件模板文本之间的相似度,从而可以根据相似度的大小,得到与该输入文本最相似的事件模板文本以及对应的事件类型。
在一种实现方式中,将训练得到的事件检测模型存储在磁盘中,以供后续的事件检测使用。
其中,处理器120还可以执行图5所示方法中的步骤。针对单次输入包含单个事件的场景,图5是示出了根据本说明书一实施例提供的事件元素抽取方法中事件检测方法的示意性流程图,包括步骤502、步骤504和步骤506。
步骤502:调用所述事件检测模型。
一种具体实施方式中,可以调用图2实施例中保存的事件检测模型。
步骤504:通过所述事件检测模型计算输入文本与事件模板库中多个事件模板文本之间的相似度(如可为取值介于0-1之间的实数,越接近1越相似),其中,所述事件模板库根据事件类型及所述事件类型对应的事件样本生成,所述事件模板库包含用作所述事件模板文本的事件样本,每个所述事件模板文本具有对应的事件类型。
所述事件模板库中事件模板文本是已标注了事件类型的样例文本,通常所述事件模板库中事件模板文本的数量为各所述事件类型对应的事件样本的全量。但也可以根据实际需求自定义,即从所述事件类型对应的事件样本中全部或部分选取,甚至可以向事件模板库中添加训练时没有学习过的事件类型及其对应的事件样本。因为本说明书实施例中的事件检测模型训练出的是一个可以对两个输入文本进行相似度计算的网络结构及其权重参数,可以理解为一种相似度计算机制,对任意的两个输入文本,采用该模型计算其相似度,而无需要求样本是否属于预先训练好的类别范畴。因此本说明书实施例中的事件检测模型具有较强的类别泛化能力,解决了传统文本分类方法无法分类新增类别的问题。
一种具体实施方式中,所述多个事件模板文本为所述事件模板库中事件模板文本的全量。当事件模板库中事件模板文本的数量较大时,可以通过自定义的方式从事件模板库中部分地选取事件模板文本,例如当所述事件模板库中事件模板文本的数量超过设定值时,将所述输入文本包含的至少一个关键词(如“转让”、“停产”等)作为触发词,从所述事件模板库中选取包含所述触发词的事件模板文本得到所述多个事件模板文本;或者,当所述事件模板库中事件模板文本的数量超过设定值时,根据语句相似度过滤方法,从所述事件模板库中选取与所述输入文本语义最相似的前n个事件模板文本得到所述多个事件模板文本,n为自然数。当所述事件模板库中事件模板文本的数量较大时,通过部分地筛选事件模板文本可以减少参与计算的事件模板数量,提高计算效率。
一个可选的实施例中,所述通过所述事件检测模型计算输入文本与事件模板库中多个事件模板文本之间的相似度步骤包括步骤5040至步骤5048。
步骤5040:通过分词方式将输入文本q和每个事件模板文本t分别转化成由词向量构成的向量形式;例如,可以采用分词工具(如中文分词工具jieba)分词后,用预先训练好的词向量模型(如word2vec模型)对词进行向量化表示,句子q中的词x,向量化表示为Wqx;句子t中的词y,向量化表示为Wtx。
步骤5042:对于q中的词x对应的词向量Wqx,采用t对应的所有词向量进行注意力机制计算,得到注意力向量Wqx_att;对于t中的词y对应的词向量Wty,采用q对应的所有词向量进行注意力机制计算,得到注意力向量Wty_att。
一种具体实施方式中,对于q中的词x对应的词向量Wqx,采用t对应的所有词向量计算注意力向量Wqx_att的公式为:
其中,函数Z(Wqx,t)计算得到注意力向量Wqx_att,m为t中词的数量,权值sk通过函数F(Wqx,Wtk)计算得到,F(Wqx,Wtk)为向量点积函数、cosine相似度函数、Lp距离等距离度量函数或用于将两个向量拼接然后输入前馈网络的函数。
步骤5044:对q中的词x,将其对应的词向量Wqx和注意力向量Wqx_att进行拼接(Concat)得到x对应的拼接向量,以及对t中的词y,将其对应的词向量Wty和注意力向量Wty_att进行拼接得到y对应的拼接向量;
步骤5046:将q中所有词对应的拼接向量进行对应维度加和(ReduceSum)得到输入文本向量,将t中所有词对应的拼接向量进行对应维度加和得到事件模板文本向量,并将所述输入文本向量和所述事件模板文本向量进行拼接,得到联接向量;
步骤5048:提取所述联接向量的特征并计算输出相似度。
一种具体实施方式中,对于所述输入文本向量和所述事件模板文本向量拼接得到的联接向量,可用通过Softmax工具计算其相似度。
一种具体实施方式中,为了使得事件检测模型的输入向量长度相同以便于计算,在所述通过分词方式将输入文本q和每个事件模板文本t分别转化成由词向量构成的向量形式步骤之后、所述对于q中的词x对应的词向量Wqx,采用t对应的所有词向量进行注意力机制计算,得到注意力向量Wqx_att之前还包括:
将所述输入文本对应的词向量形式的长度和所述事件模板文本对应的词向量形式的长度分别调整至预设标准长度。例如,可以对每个句子做一个填充(填充的词向量都是0向量)/截断,以确保每个句子词数为设定值(如可设置为80)。
在通过训练样本集中的样本组进行训练时,可以通过训练工具TensorFlow(张量流图,谷歌开发的人工智能学习系统)进行训练。
以表6的训练样本集为例,训练事件检测模型时,将事件样本组包含的<例句文本1,例句文本2>作为输入,以”匹配标记”作为训练目标训练事件检测模型。事件检测模型也可以称之为相似度匹配模型,针对输入的两个句子,该模型输出两个句子的相似度,进而可以根据相似度的大小判断两个句子的事件类型是否匹配。
步骤506:输出与所述输入文本相似度最高的事件模板文本及对应的事件类型。
在得到输入文本与多个事件模板文本之间的相似度后,根据相似度大小,即可得到与输入文本最相似的事件模板文本及对应的事件类型。例如,将参加计算的所有事件模板得到的相似度进行由大到小排序或采用冒泡算法,得到最大相似度,输出相应的事件模板及所属类别。
以下为本说明书一实施例提供的事件检测模型的建模和应用示意性流程图,该实施例中的数据举例来自于“金融机构风控”场景,并结合上述表5和表6,描述如下:
(1)获取事件类型样本集:样本集中的样本为已标注了事件类型的小量文本数据,如每个类别的样本量介于30~100之间。示例数据如表5所示。
(2)生成训练样本集:将各事件类型的事件样本进行两两组合,并打上匹配标记,如将来自同一类别的标记1,来自不同类别的标记0。所生成的训练样本集如表6所示。
(3)训练事件检测模型:以步骤2中样本组<例句文本1,例句文本2>作为输入,以“匹配标记”作为训练目标训练事件检测模型。针对输入的两个句子,该模型输出两个句子文本的相似度。
(4)保存事件检测模型:将步骤(3)中训练得到的事件检测模型存储在磁盘中,以供后续步骤调用。这里的输入文本可以当前输入的待检测事件类型的事件文本,也可以是训练样本集中的事件样本。
(5)输入文本:外部query(查询)请求,作为事件检测模型两个输入中的一个,可以是任意文本,通常是和业务场景相关的单句文本。
(6)事件模板库:事件模板库中的事件模板文本是已标注了事件类型的事件样本,通常和步骤(1)中的数据集是同一个,但也可以根据实际需求自定义,甚至可以新增训练时没有学习过的类别。因为本说明书中的事件检测模型训练产出的是一个可以对两个输入文本进行相似计算的网络结构及其权重参数,可以理解为一种相似计算机制,对任意的两个输入,采用此机制计算相似度,而无需要求样本是否属于预先学习好的类别范畴。
(7)选取和遍历事件模板文本:每次query请求时,先从事件模板库中选取出一批样本,然后遍历这批样本一一和输入文本组合成<输入文本,事件模板文本>组。通常情况下,选取全量;当事件模板库特别大时,可采用触发词(输入文本中必须包含至少一个关键词,如:“转让”、“停产”,如果包含“转让”,则选取“转让”对应的事件模板,可以触发上多个事件类型)、语句相似度过滤(选取与输入文本语义最相似的前n个,n为自然数)等过滤方法进行筛选,以减少参与计算的事件模板数量。
(8)事件模板文本是模型两个输入中的另一个,是步骤(7)中遍历产生的单个文本。
(9)通过事件检测模型计算<输入文本,事件模板文本>间的相似度:用步骤(4)的事件检测模型对<输入文本,事件模板文本>组进行相似度计算,输出相似度(如取值0-1之间的实数,越接近1越相似)和匹配标记(如取值1-匹配,0-不匹配)。值得说明的是,为提高计算效率,实际预测时可将多个<输入文本,事件模板文本>组成一个batch(批)进行一次性计算,如通过TensorFlow进行batch计算。
(10)找出最相似的事件模板及对应事件类型:将一次query与参加计算的所有事件模板得到的相似度进行由大到小排序或采用冒泡算法,得到最大相似度,进而还可以判断其对应的“匹配标记”,如果二者的相似度大于设定阈值则将匹配标记标记为1,输出相应的事件模板及所属类别作为整个算法输出;否则将匹配标记标记为0,输出为空,表明该query匹配不到任何类别。
一种具体实施方式中,针对单次输入包含多个事件的场景,可以先训练一个事件拆分模型,调用训练好的事件拆分模型将输入文本拆分成多个事件子句,然后每个事件子句分别调用前述实施例中的事件检测方法,从而完成单输入多事件的识别,根据所述输入文本包含的每个所述事件子句与所述多个事件模板文本之间的相似度,得到与每个所述事件子句最相似的事件模板文本及对应的事件类型。这样,不仅可以识别出输入文本包含的所有事件类型,还可以划分出每个事件对应的句子文本。
如图6所示,图6是示出了本说明书实施例提供的事件元素抽取方法中训练事件拆分模型的方法的步骤流程图,包括步骤602和步骤604。
步骤602:根据原始事件样本集生成拆分训练样本集。
一种具体实施方式中,对于所述原始事件样本集的每个原始事件样本,通过位置标记(如序列标注算法)对所述原始事件样本中包含的每个事件的起止范围进行标记。
例如,表7示出了一个单输入包含多事件的原始样本集:
表7事件拆分模型的原始样本
文本 |
位置标记 |
A公司将40%股权转让给B公司,A公司随即宣布停产。此消息令人吃惊。 |
(1,16)|(17,26) |
A公司因管理混乱经营不善,被迫将40%股权转让给B公司。 |
(1,13)|(14,28) |
… |
|
其中一个位置标记(start(开始位置),end(结束位置))标识一个事件子句文本在原文本中的起止范围,多个位置标记标识多个事件子句,可以用分隔符如“|”隔开。表7中第一个样本表示将原始文本拆分成2个事件子句“A公司将40%股权转让给B公司”和“A公司随即宣布停产”。
在生成训练样本集时,如还可以采用BIEO标记法(B表示Begin,I表示Internal,E表示End,O表示Other),将1中原始样本生成序列标注模型的训练样本,一个完整的BIE标识一个事件子句,如表8所示:
表8事件拆分模型训练样本
表8中省略号省略了若干个I,第一个样本中最后8个O标识文本“此消息令人吃惊。”表示该段文本不属于任何事件。针对输入文本,事件拆分模型输出对应的BIEO标记序列后,将每套完整的“BI…E”标记对应的文本片段提取出来,作为拆分出的事件子句。
其中,在训练事件拆分模型是可以采用成熟的BiLSTM(Bi-Long Short TermMemory,双向长短期记忆网络)+CRF(Conditional Random Field,条件随机场)序列标注算法,也可以采用其他有效的序列标注算法,如CRF(条件随机场)、MEMM(最大熵马尔科夫)、HMM(隐马尔科夫)等。
步骤604:通过所述拆分训练样本集训练事件拆分模型。
针对单次输入包含多个事件的场景,调用事件拆分模型将输入文本拆分成多个事件子句,然后每个事件子句分别调用前述实施例中的事件检测方法,根据所述输入文本包含的每个所述事件子句与所述多个事件模板文本之间的相似度,得到与每个所述事件子句最相似的事件模板文本及对应的事件类型。这样,不仅可以识别出输入文本包含的所有事件类型,还可以划分出每个事件对应的句子文本。
与前述生成事件检测模型的方法相对应,本说明书还提供了事件元素抽取的装置实施例,所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本说明书事件元素抽取的装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该事件元素抽取的实际功能,还可以包括其他硬件,对此不再赘述。
图7是示出了本说明书一实施例的事件元素抽取装置模块图;如图7所示,事件元素抽取装置700包括:
关系特征确定模块710,被配置为获取输入文本,确定所述输入文本中每个词的关系特征向量,其中所述关系特征向量通过将对应词的词嵌入、谓词嵌入和用以表征该词是否在谓词上下文窗口中的标记拼接得到;
论元获取模块720,被配置为基于所述输入文本中每个词的关系特征向量通过语义角色标注模型得到所述输入文本中每个词的论元,其中所述语义角色标注模型用以识别事件文本中具有动作方向的论元,所述论元包括对应的词、语义角色类型及位置信息;
实体词获取模块730,被配置为通过命名实体识别方法得到所述输入文件包含的实体词、所述实体词的类型及位置信息;
事件元素确定模块740,被配置为根据所述输入文本的事件类型确定需要提取的事件元素类型,基于需要提取的事件元素类型、所述论元、所述实体词的类型及位置信息将所述论元对应的词与所述实体词进行元素对齐,确定所述输入文本中所述事件元素类型的名称和对应的实体词。
一个可选的实施例中,所述装置还包括:
样本特征确定模块,被配置为根据原始样本集中每个事件样本的每个词的词嵌入、谓词嵌入和用以表征该词是否在谓词上下文窗口中的标记拼接得到该词的关系特征向量;
样本论元标注模块,被配置为对每个事件样本进行语义角色标注,得到该事件样本中每个词对应的论元;
训练样本集生成模块,被配置为根据所述原始样本集中每个事件样本的每个词、该词的关系特征向量、该词对应的论元生成语义角色训练样本集;
训练模块,被配置为通过所述语义角色训练样本集训练语义角色标注模型,所述角色标注模型使得每个事件样本的每个词的关系特征向量与该词对应的论元相关联。
一个可选的实施例中,所述原始样本集中每个事件样本的每个词关系特征向量通过BiLSTM+CRF序列标注算法得到。
一个可选的实施例中,所述样本论元标注模块进一步被配置为:
采用BIEO序列标记法对每个事件样本进行序列标记,得到该事件样本每个事件元素的语义角色类型及其位置信息,将每个事件元素的语义角色类型及其位置信息作为该事件元素对应的论元。
一个可选的实施例中,所述装置还包括:
自定义模块,被配置为对论元的语义角色类型进行自定义。
一个可选的实施例中,所述装置还包括:
元素类型确定模块,被配置为基于事件样本的事件类型确定每个事件类型需要提取的事件元素类型,所述需要提取的事件元素类型包括元素名称、元素实体词类型和元素语义角色类型;
配置库生成模块,被配置为根据多个事件类型中每个事件类型的需要提取的事件元素类型生成事件元素配置库。
一个可选的实施例中,所述事件元素确定模块包括:
交叠系数计算单元,被配置为基于所述论元的语义角色类型及位置信息和所述实体词的类型及位置信息按照如下公式计算任一语义角色的词与任一实体词两两之间的交叠系数C(A,B):
其中,A是所述输入文本中任一实体词,B是所述输入文本中语义角色类型对应的词,|A|是A的起止位置确定的区间大小,|B|是B的起止位置确定的区间大小;|A∩B|是A、B的起止位置的交集确定的区间大小;
基于交叠系数大于设定值的项得到候选元素集,每个候选元素包括实体词、候选元素集确定单元,被配置为实体词类型、语义角色类型和位置信息;
根据所述输入文本的事件类型确定需要提取的事件元素类型,所述需要提取的事件元素类型所包含的元素名称、元素实体词类型和元素语义角色类型;
判断单元,被配置为判断每个所述候选元素的实体词类型和语义角色类型是否分别与所述需要提取的事件元素类型所包含的元素实体词类型和元素语义角色类型均匹配;
事件元素抽取单元,被配置为若判断结果为是则将实体词类型和元素实体词类型、语义角色类型和元素语义角色类型均匹配的候选元素作为所述输入文本的事件元素,所述输入文本的事件元素包括对应的事件元素名称和实体词。
生成事件检测模型的装置对应了图4所示实施例,所述装置包括:
训练样本生成器,被配置为根据事件类型及所述事件类型对应的事件样本生成训练样本集,其中,所述训练样本集包含多个事件样本组,每个所述事件样本组包含两个事件样本,每个所述事件样本组对应一个事件类型匹配标记;
模型生成器,被配置为生成事件检测模型,所述事件检测模型使得:若所述事件样本组中的两个事件样本为同一事件类型,所述事件样本组的匹配标记被记为第一标记值;若所述事件样本组中的两个事件样本为不同事件类型,所述事件样本组的匹配标记被记为第二标记值,所述第二标记值与所述第一标记值不同。
在一个可选的实施例中,所述事件样本组通过将各所述事件类型对应的事件样本进行两两组合得到。
在一个可选的实施例中,所述模型生成器通过具有注意力机制的深度神经网络训练得到所述事件检测模型。
在一个可选的实施例中,装置500还包括:
相似度计算器,被配置为通过所述事件检测模型计算输入文本与所述事件模板库中多个事件模板文本之间的相似度。
在一个可选的实施例中,所述相似度计算器包括:
词嵌套层(Word Embedding Layer),被配置为通过分词方式将输入文本q和每个事件模板文本t分别转化成由词向量构成的向量形式;
注意力机制层(Attention Layer),被配置为对于q中的词x对应的词向量Wqx,采用t对应的所有词向量进行注意力机制计算,得到注意力向量Wqx_att;对于t中的词y对应的词向量Wty,采用q对应的所有词向量进行注意力机制计算,得到注意力向量Wty_att;
比较层(Compare Layer),被配置为对q中的词x,将其对应的词向量Wqx和注意力向量Wqx_att进行拼接得到x对应的拼接向量,以及对t中的词y,将其对应的词向量Wty和注意力向量Wty_att进行拼接得到y对应的拼接向量;
聚合层(Aggregate Layer),被配置为将q中所有词对应的拼接向量进行对应维度加和得到输入文本向量,将t中所有词对应的拼接向量进行对应维度加和得到事件模板文本向量,并将所述输入文本向量和所述事件模板文本向量进行拼接,得到联接向量;
相似度计算层(Similar Layer),被配置为提取所述联接向量的特征计算相似度。
在一个可选的实施例中,对于q中的词x对应的词向量Wqx,采用t对应的所有词向量计算注意力向量Wqx_att的公式为:
其中,函数Z(Wqx,t)计算得到注意力向量Wqx_att,m为t中词的数量,sk为权值。
在一个可选的实施例中,在所述相似度计算器还包括:
长度调整单元,被配置为将所述输入文本对应的词向量形式的长度和所述事件模板文本对应的词向量形式的长度分别调整至预设标准长度。
综上所述,本说明书的实施例,提供了一种事件检测方案,通过将已标注事件类型的原始事件样本集中的事件样本两两组合生成训练样本集,基于少量已标注事件类型的事件样本可以生成大量的训练样本(例如,原始事件样本集中有N(N为自然数)个事件样本,通过两两组合最多可以产生N*(N-1)组训练样本,这样,对于许多新兴场景或处于业务初期的使用场景,在可用于事件识别模型训练的样本量非常小(样本搜集困难或成本较高)时,可以基于小量的已知事件类型的样本快速生成大量的训练样本,进而利用生成大量的训练样本对模型进行训练,从而提高了所训练模型对事件检测的准确率。其次,本说明书提供的方案还可以根据实际需求自定义,即可以向事件模板库中添加训练时没有学习过的事件类型及其对应的事件样本,基于本说明书实施例中的事件检测模型训练出的是一个可以对两个输入文本进行相似度计算的网络结构及其权重参数对任意的两个输入文本,采用该模型计算其相似度,而无需要求样本是否属于预先训练好的类别范畴,因此本说明书实施例中的事件检测模型具有较强的类别泛化能力。另外,针对单次输入包含多个事件的场景,可以先训练一个事件拆分模型,调用训练好的事件拆分模型将输入文本拆分成多个事件子句,然后每个事件子句分别调用前述实施例中的事件检测方法,从而完成单输入多事件的识别,得到与每个所述事件子句最相似的事件模板文本及对应的事件类型,这样,不仅可以识别出输入文本包含的所有事件类型,还可以划分出每个事件对应的句子文本。
与前述事件检测方法相对应,本说明书还提供了事件检测装置实施例,所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本说明书事件检测装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该事件检测的实际功能,还可以包括其他硬件,对此不再赘述。
本说明书实施例的事件检测装置对应了图3所示实施例,所述装置包括:
模型调用器,被配置为调用所述事件检测模型;
相似度计算器,被配置为通过所述事件检测模型计算输入文本与事件模板库中多个事件模板文本之间的相似度,其中,所述事件模板库根据事件类型及所述事件类型对应的事件样本生成,所述事件模板库包含用作所述事件模板文本的事件样本,每个所述事件模板文本具有对应的事件类型;
输出器,被配置为输出与所述输入文本相似度最高的事件模板文本及对应的事件类型。
在一个可选的实施例中,所述事件模板库中事件模板文本的数量为各所述事件类型对应的事件样本的全量。
在一个可选的实施例中,所述装置还包括:
添加器,被配置为向所述事件模板库中添加自定义事件类型及对应的事件模板文本。
在一个可选的实施例中,所述多个事件模板文本为所述事件模板库中事件模板文本的全量。
在一个可选的实施例中,当所述事件模板库中事件模板文本的数量超过设定值时,将所述输入文本包含的至少一个关键词作为触发词,从所述事件模板库中选取包含所述触发词的事件模板文本得到所述多个事件模板文本。
在一个可选的实施例中,当所述事件模板库中事件模板文本的数量超过设定值时,根据语句相似度过滤装置,从所述事件模板库中选取与所述输入文本语义最相似的前n个事件模板文本得到所述多个事件模板文本,n为自然数。
在一个可选的实施例中,所述装置还包括:
事件拆分器,被配置为调用事件拆分模型对输入文本进行事件拆分,得到至少一个事件子句。
在一个可选的实施例中,所述输出器还被配置为:
根据所述输入文本包含的每个所述事件子句与所述多个事件模板文本之间的相似度,得到与每个所述事件子句最相似的事件模板文本及对应的事件类型。
在一个可选的实施例中,所述装置还包括:
拆分样本生成器,被配置为根据原始事件样本集生成拆分训练样本集;
拆分模型生成器,被配置为通过所述拆分训练样本集训练事件拆分模型。
在一个可选的实施例中,所述拆分样本生成器包括:
位置标记单元,被配置为对于所述原始事件样本集的每个原始事件样本,通过位置标记对所述原始事件样本中包含的每个事件的起止范围进行标记。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,
或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例提供的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现事件元素抽取方法的步骤。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述的事件元素抽取方法的步骤。
上述为本实施例提供的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的事件元素抽取方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。