事件检测模型、方法、装置、计算设备及存储介质
技术领域
本说明书涉及事件检测技术领域,特别涉及一种生成事件检测模型的方法和装置、事件检测方法和装置、计算设备及计算机可读存储介质。
背景技术
现有技术中事件检测(Event Detection,ED)应用场景非常广泛,其目标是识别出输入文本中我们关心的关键事件,用于进一步的分析。比如在金融风控领域,我们可以通过检测”公司股权转让事件”来分析公司经营情况和策略。
目前的事件检测技术用户体验较差。
发明内容
有鉴于此,本说明书实施例提供了一种生成事件检测模型的方法和装置、事件检测方法和装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了生成事件检测模型的方法,包括:
根据事件类型及所述事件类型对应的事件样本生成训练样本集,其中,所述训练样本集包含多个事件样本组,每个所述事件样本组包含两个事件样本,每个所述事件样本组对应一个事件类型匹配标记;
通过所述训练样本集对事件检测模型进行训练,得到所述事件检测模型,所述事件检测模型用来计算输入的两个事件文本的相似度的。
根据本说明书实施例的第二方面,提供了一种事件检测方法,包括:
调用所述事件检测模型;
通过所述事件检测模型计算输入文本与事件模版库中多个事件模版文本之间的相似度,其中,所述事件模版库根据事件类型及所述事件类型对应的事件样本生成,所述事件模版库包含用作所述事件模版文本的事件样本,每个所述事件模版文本具有对应的事件类型;
输出与所述输入文本相似度最高的事件模版文本及对应的事件类型。
根据本说明书实施例的第三方面,提供了一种生成事件检测模型的装置,包括:
训练样本生成器,被配置为根据事件类型及所述事件类型对应的事件样本生成训练样本集,其中,所述训练样本集包含多个事件样本组,每个所述事件样本组包含两个事件样本,每个所述事件样本组对应一个事件类型匹配标记,若所述事件样本组中的两个事件样本为同一事件类型,所述事件样本组的匹配标记被记为第一标记值;若所述事件样本组中的两个事件样本为不同事件类型,所述事件样本组的匹配标记被记为第二标记值,所述第二标记值与所述第一标记值不同;
模型生成器,被配置为通过所述训练样本集对事件检测模型进行训练,得到所述事件检测模型,所述事件检测模型用来计算输入的两个事件文本的相似度的。
根据本说明书实施例的第四方面,提供了一种事件检测装置,包括:
模型调用器,被配置为调用所述事件检测模型;
相似度计算器,被配置为通过所述事件检测模型计算输入文本与事件模版库中多个事件模版文本之间的相似度,其中,所述事件模版库根据事件类型及所述事件类型对应的事件样本生成,所述事件模版库包含用作所述事件模版文本的事件样本,每个所述事件模版文本具有对应的事件类型;
输出器,被配置为输出与所述输入文本相似度最高的事件模版文本及对应的事件类型。
根据本说明书实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的生成事件检测模型的方法的步骤。
根据本说明书实施例的第六方面,提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的事件检测方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述生成事件检测模型的方法的步骤。
根据本说明书实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述事件检测方法的步骤。本说明书的实施例提供了一种事件检测方案,通过将已标注事件类型的原始事件样本集中的事件样本两两组合生成训练样本集,基于少量已标注事件类型的事件样本可以生成大量的训练样本(例如,原始事件样本集中有N(N为自然数)个事件样本,通过两两组合最多可以产生N*(N-1)组训练样本,这样,对于许多新兴场景或处于业务初期的使用场景,在可用于事件识别模型训练的样本量非常小(样本搜集困难或成本较高)时,可以基于小量的已知事件类型的样本快速生成大量的训练样本,进而利用生成大量的训练样本对模型进行训练,从而提高了所训练模型对事件检测的准确率。
附图说明
图1是示出了根据本说明书一实施例提供的事件检测方法的系统架构图;
图2是示出了根据本说明书一实施例提供的生成事件检测模型的方法的示意性流程图;
图3是示出了根据本说明书一实施例提供的事件检测方法的示意性流程图;
图4是示出了本说明书实施例提供的事件检测模型的建模和应用示意性流程图;
图5是示出了本说明书一实施例提供的事件检测系统的模块图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书中,提供了一种生成事件检测模型的方法和装置、事件检测方法和装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图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能够经由一个或多个网络通信。这些网络的示例包括局域网(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和步骤204。
步骤202:根据事件类型及所述事件类型对应的事件样本生成训练样本集,其中,所述训练样本集包含多个事件样本组,每个所述事件样本组包含两个事件样本,每个所述事件样本组对应一个事件类型匹配标记。
在一种实现方式中,若所述事件样本组中的两个事件样本为同一事件类型,所述事件样本组的匹配标记被记为第一标记值;若所述事件样本组中的两个事件样本为不同事件类型,所述事件样本组的匹配标记被记为第二标记值,所述第二标记值与所述第一标记值不同,例如,来自同一事件类型的事件样本组的匹配标记为1,来自不同事件类型的事件样本组的匹配标记为0。如此以来,由小量的事件类型样本(N个,N为自然数),则可产生大量的训练样本(N*(N-1)个),解决了传统文本分类方法需要大量已标注样本的问题。
以“金融机构风控”应用场景为例,获取已标注了事件类型的小量文本数据,每个事件类型的样本量介于30~100个之间,示例数据如表1所示(为了数据脱敏,样例数据中的主体均以“A”、“B”等字母替代)。
表1事件类型样本
事件类型 |
样本文本 |
股权转让 |
A集团转让80%股权给B集团,挂牌价为1.84亿元。 |
股权转让 |
A公司挂牌转让两子公司股权。 |
经营停产 |
泉州鞋材企业A公司停产。 |
经营停产 |
A股份公司停产背后:股东指公司管理混乱经营不善。 |
… |
|
将表1中的事件样本进行两两组合得到训练样本集,并为组合后得到的事件样本组打上相应的匹配标记,组合后的事件样本组所包含的事件样本和匹配标记如表2所示。
表2训练样本集
步骤204:通过所述训练样本集对用来计算输入的两个事件文本的相似度的模型进行训练,得到事件检测模型。
一种实现方式中,所述事件检测模型通过具有注意力机制的深度神经网络(Attention Deep Neural Network)生成。Attention(注意力)机制对神经网络的计算有巨大影响,它可以选取相关信息参与计算,使得在计算时不需要使用所有可用的信息,因为不相关信息反而可能带来一定干扰。
一种具体实施方式中,可以通过所述事件检测模型计算输入文本与事件模版库中多个事件模版文本之间的相似度,从而可以根据相似度的大小,得到与该输入文本最相似的事件模版文本以及对应的事件类型。
在一种实现方式中,将训练得到的事件检测模型存储在磁盘中,以供后续的事件检测使用。
其中,处理器120还可以执行图3所示方法中的步骤。针对单次输入包含单个事件的场景,图3是示出了根据本说明书一实施例提供的事件检测方法的示意性流程图,包括步骤302、步骤304和步骤306。
步骤302:调用所述事件检测模型。
一种具体实施方式中,可以调用图2实施例中保存的事件检测模型。
步骤304:通过所述事件检测模型计算输入文本与事件模版库中多个事件模版文本之间的相似度(如可为取值介于0-1之间的实数,越接近1越相似),其中,所述事件模版库根据事件类型及所述事件类型对应的事件样本生成,所述事件模版库包含用作所述事件模版文本的事件样本,每个所述事件模版文本具有对应的事件类型。
所述事件模版库中事件模版文本是已标注了事件类型的样例文本,通常所述事件模版库中事件模版文本的数量为各所述事件类型对应的事件样本的全量。但也可以根据实际需求自定义,即从所述事件类型对应的事件样本中全部或部分选取,甚至可以向事件模版库中添加训练时没有学习过的事件类型及其对应的事件样本。因为本说明书实施例中的事件检测模型训练出的是一个可以对两个输入文本进行相似度计算的网络结构及其权重参数,可以理解为一种相似度计算机制,对任意的两个输入文本,采用该模型计算其相似度,而无需要求样本是否属于预先训练好的类别范畴。因此本说明书实施例中的事件检测模型具有较强的类别泛化能力,解决了传统文本分类方法无法分类新增类别的问题。
一种具体实施方式中,所述多个事件模版文本为所述事件模版库中事件模版文本的全量。当事件模版库中事件模版文本的数量较大时,可以通过自定义的方式从事件模版库中部分地选取事件模版文本,例如当所述事件模版库中事件模版文本的数量超过设定值时,将所述输入文本包含的至少一个关键词(如“转让”、“停产”等)作为触发词,从所述事件模版库中选取包含所述触发词的事件模版文本得到所述多个事件模版文本;或者,当所述事件模版库中事件模版文本的数量超过设定值时,根据语句相似度过滤方法,从所述事件模版库中选取与所述输入文本语义最相似的前n个事件模版文本得到所述多个事件模版文本,n为自然数。当所述事件模版库中事件模版文本的数量较大时,通过部分地筛选事件模版文本可以减少参与计算的事件模板数量,提高计算效率。
一个可选的实施例中,所述通过所述事件检测模型计算输入文本与事件模版库中多个事件模版文本之间的相似度步骤包括步骤2040至步骤2048。
步骤2040:通过分词方式将输入文本q和每个事件模版文本t分别转化成由词向量构成的向量形式;例如,可以采用分词工具(如中文分词工具jieba)分词后,用预先训练好的词向量模型(如word2vec模型)对词进行向量化表示,句子q中的词x,向量化表示为Wqx;句子t中的词y,向量化表示为Wtx。
步骤2042:对于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距离等距离度量函数或用于将两个向量拼接然后输入前馈网络的函数。
步骤2044:对q中的词x,将其对应的词向量Wqx和注意力向量Wqx_att进行拼接(Concat)得到x对应的拼接向量,以及对t中的词y,将其对应的词向量Wty和注意力向量Wty_att进行拼接得到y对应的拼接向量;
步骤2046:将q中所有词对应的拼接向量进行对应维度加和(ReduceSum)得到输入文本向量,将t中所有词对应的拼接向量进行对应维度加和得到事件模版文本向量,并将所述输入文本向量和所述事件模版文本向量进行拼接,得到联接向量;
步骤2048:提取所述联接向量的特征并计算输出相似度。
一种具体实施方式中,对于所述输入文本向量和所述事件模版文本向量拼接得到的联接向量,可用通过Softmax工具计算其相似度。
一种具体实施方式中,为了使得事件检测模型的输入向量长度相同以便于计算,在所述通过分词方式将输入文本q和每个事件模版文本t分别转化成由词向量构成的向量形式步骤之后、所述对于q中的词x对应的词向量Wqx,采用t对应的所有词向量进行注意力机制计算,得到注意力向量Wqx_att之前还包括:
将所述输入文本对应的词向量形式的长度和所述事件模版文本对应的词向量形式的长度分别调整至预设标准长度。例如,可以对每个句子做一个填充(填充的词向量都是0向量)/截断,以确保每个句子词数为设定值(如可设置为80)。
在通过训练样本集中的样本组进行训练时,可以通过训练工具TensorFlow(张量流图,谷歌开发的人工智能学习系统)进行训练。
以表2的训练样本集为例,训练事件检测模型时,将事件样本组包含的<例句文本1,例句文本2>作为输入,以”匹配标记”作为训练目标训练事件检测模型。事件检测模型也可以称之为相似度匹配模型,针对输入的两个句子,该模型输出两个句子的相似度,进而可以根据相似度的大小判断两个句子的事件类型是否匹配。
步骤306:输出与所述输入文本相似度最高的事件模版文本及对应的事件类型。
在得到输入文本与多个事件模版文本之间的相似度后,根据相似度大小,即可得到与输入文本最相似的事件模版文本及对应的事件类型。例如,将参加计算的所有事件模板得到的相似度进行由大到小排序或采用冒泡算法,得到最大相似度,输出相应的事件模板及所属类别。
如图4所示,图4是示出了本说明书实施例提供的事件检测模型的建模和应用示意性流程图,该实施例中的数据举例来自于“金融机构风控”场景,并结合上述表1和表2,描述如下:
(1)获取事件类型样本集:样本集中的样本为已标注了事件类型的小量文本数据,如每个类别的样本量介于30~100之间。示例数据如表1所示。
(2)生成训练样本集:将各事件类型的事件样本进行两两组合,并打上匹配标记,如将来自同一类别的标记1,来自不同类别的标记0。所生成的训练样本集如表2所示。
(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匹配不到任何类别。
一种具体实施方式中,针对单次输入包含多个事件的场景,可以先训练一个事件拆分模型,调用训练好的事件拆分模型将输入文本拆分成多个事件子句,然后每个事件子句分别调用前述实施例中的事件检测方法,从而完成单输入多事件的识别,根据所述输入文本包含的每个所述事件子句与所述多个事件模版文本之间的相似度,得到与每个所述事件子句最相似的事件模版文本及对应的事件类型。这样,不仅可以识别出输入文本包含的所有事件类型,还可以划分出每个事件对应的句子文本。
如图4所示,图4是示出了本说明书实施例提供的训练事件拆分模型的方法的步骤流程图,包括步骤402和步骤404。
步骤402:根据原始事件样本集生成拆分训练样本集。
一种具体实施方式中,对于所述原始事件样本集的每个原始事件样本,通过位置标记(如序列标注算法)对所述原始事件样本中包含的每个事件的起止范围进行标记。
例如,表3示出了一个单输入包含多事件的原始样本集:
表3事件拆分模型的原始样本
文本 |
位置标记 |
A公司将40%股权转让给B公司,A公司随即宣布停产。此消息令人吃惊。 |
(1,16)|(17,26) |
A公司因管理混乱经营不善,被迫将40%股权转让给B公司。 |
(1,13)|(14,28) |
… |
|
其中一个位置标记(start(开始位置),end(结束位置))标识一个事件子句文本在原文本中的起止范围,多个位置标记标识多个事件子句,可以用分隔符如“|”隔开。表3中第一个样本表示将原始文本拆分成2个事件子句“A公司将40%股权转让给B公司,”和“A公司随即宣布停产。”。
在生成训练样本集时,如还可以采用BIEO标记法(B表示Begin,I表示Internal,E表示End,O表示Other),将1中原始样本生成序列标注模型的训练样本,一个完整的BIE标识一个事件子句,如表4所示:
表4事件拆分模型训练样本
表4中省略号省略了若干个I,第一个样本中最后8个O标识文本“此消息令人吃惊。”表示该段文本不属于任何事件。针对输入文本,事件拆分模型输出对应的BIEO标记序列后,将每套完整的“BI…E”标记对应的文本片段提取出来,作为拆分出的事件子句。
其中,在训练事件拆分模型是可以采用成熟的BiLSTM+CRF序列标注算法,也可以采用其他有效的序列标注算法,如CRF(条件随机)、MEMM(最大熵马尔科夫)、HMM(隐马尔科夫)等。
步骤404:通过所述拆分训练样本集训练事件拆分模型。
针对单次输入包含多个事件的场景,调用事件拆分模型将输入文本拆分成多个事件子句,然后每个事件子句分别调用前述实施例中的事件检测方法,根据所述输入文本包含的每个所述事件子句与所述多个事件模版文本之间的相似度,得到与每个所述事件子句最相似的事件模版文本及对应的事件类型。这样,不仅可以识别出输入文本包含的所有事件类型,还可以划分出每个事件对应的句子文本。
与前述生成事件检测模型的方法相对应,本说明书还提供了生成事件检测模型的装置实施例,所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本说明书生成事件检测模型的装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该事件检测的实际功能,还可以包括其他硬件,对此不再赘述。
参见图5,为本说明书一实施例提供的事件检测系统的模块图。该事件检测系统包括生成事件检测模型的装置500、事件检测装置600和存储装置700。生成事件检测模型的装置500用于根据训练样本生成事件检测模型,所生成的事件检测模型存储在存储装置700中,事件检测装置600根据外部查询请求进行事件检测时先从存储装置700中调用该事件检测模型。以下分别对生成事件检测模型的装置500、事件检测装置600进行详细介绍。
生成事件检测模型的装置500对应了图2所示实施例,所述装置500包括:
训练样本生成器510,被配置为根据事件类型及所述事件类型对应的事件样本生成训练样本集,其中,所述训练样本集包含多个事件样本组,每个所述事件样本组包含两个事件样本,每个所述事件样本组对应一个事件类型匹配标记;
模型生成器520,被配置为生成事件检测模型,所述事件检测模型使得:若所述事件样本组中的两个事件样本为同一事件类型,所述事件样本组的匹配标记被记为第一标记值;若所述事件样本组中的两个事件样本为不同事件类型,所述事件样本组的匹配标记被记为第二标记值,所述第二标记值与所述第一标记值不同。
在一个可选的实施例中,所述事件样本组通过将各所述事件类型对应的事件样本进行两两组合得到。
在一个可选的实施例中,所述模型生成器通过具有注意力机制的深度神经网络训练得到所述事件检测模型。
在一个可选的实施例中,装置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)组训练样本,这样,对于许多新兴场景或处于业务初期的使用场景,在可用于事件识别模型训练的样本量非常小(样本搜集困难或成本较高)时,可以基于小量的已知事件类型的样本快速生成大量的训练样本,进而利用生成大量的训练样本对模型进行训练,从而提高了所训练模型对事件检测的准确率。其次,本说明书提供的方案还可以根据实际需求自定义,即可以向事件模版库中添加训练时没有学习过的事件类型及其对应的事件样本,基于本说明书实施例中的事件检测模型训练出的是一个可以对两个输入文本进行相似度计算的网络结构及其权重参数对任意的两个输入文本,采用该模型计算其相似度,而无需要求样本是否属于预先训练好的类别范畴,因此本说明书实施例中的事件检测模型具有较强的类别泛化能力。另外,针对单次输入包含多个事件的场景,可以先训练一个事件拆分模型,调用训练好的事件拆分模型将输入文本拆分成多个事件子句,然后每个事件子句分别调用前述实施例中的事件检测方法,从而完成单输入多事件的识别,得到与每个所述事件子句最相似的事件模版文本及对应的事件类型,这样,不仅可以识别出输入文本包含的所有事件类型,还可以划分出每个事件对应的句子文本。
与前述事件检测方法相对应,本说明书还提供了事件检测装置实施例,所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本说明书事件检测装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该事件检测的实际功能,还可以包括其他硬件,对此不再赘述。
参见图5,事件检测装置600对应了图3所示实施例,所述装置600包括:
模型调用器610,被配置为调用所述事件检测模型;
相似度计算器620,被配置为通过所述事件检测模型计算输入文本与事件模版库中多个事件模版文本之间的相似度,其中,所述事件模版库根据事件类型及所述事件类型对应的事件样本生成,所述事件模版库包含用作所述事件模版文本的事件样本,每个所述事件模版文本具有对应的事件类型;
输出器630,被配置为输出与所述输入文本相似度最高的事件模版文本及对应的事件类型。
在一个可选的实施例中,所述事件模版库中事件模版文本的数量为各所述事件类型对应的事件样本的全量。
在一个可选的实施例中,所述装置还包括:
添加器,被配置为向所述事件模板库中添加自定义事件类型及对应的事件模版文本。
在一个可选的实施例中,所述多个事件模版文本为所述事件模版库中事件模版文本的全量。
在一个可选的实施例中,当所述事件模版库中事件模版文本的数量超过设定值时,将所述输入文本包含的至少一个关键词作为触发词,从所述事件模版库中选取包含所述触发词的事件模版文本得到所述多个事件模版文本。
在一个可选的实施例中,当所述事件模版库中事件模版文本的数量超过设定值时,根据语句相似度过滤装置,从所述事件模版库中选取与所述输入文本语义最相似的前n个事件模版文本得到所述多个事件模版文本,n为自然数。
在一个可选的实施例中,所述装置还包括:
事件拆分器,被配置为调用事件拆分模型对输入文本进行事件拆分,得到至少一个事件子句。
在一个可选的实施例中,所述输出器还被配置为:
根据所述输入文本包含的每个所述事件子句与所述多个事件模版文本之间的相似度,得到与每个所述事件子句最相似的事件模版文本及对应的事件类型。
在一个可选的实施例中,所述装置还包括:
拆分样本生成器,被配置为根据原始事件样本集生成拆分训练样本集;
拆分模型生成器,被配置为通过所述拆分训练样本集训练事件拆分模型。
在一个可选的实施例中,所述拆分样本生成器包括:
位置标记单元,被配置为对于所述原始事件样本集的每个原始事件样本,通过位置标记对所述原始事件样本中包含的每个事件的起止范围进行标记。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,
或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例提供的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现生成事件检测模型的方法的步骤。
本说明书一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述事件检测方法的步骤。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述的生成事件检测模型的方法的步骤。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述的事件检测方法的步骤。
上述为本实施例提供的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的生成事件检测模型的方法、事件检测方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述自动化测试方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。