一种多任务命名实体识别训练方法、介质及终端与流程

文档序号:23720091发布日期:2021-01-24 07:36阅读:75来源:国知局
一种多任务命名实体识别训练方法、介质及终端与流程

[0001]
本发明涉及计算机应用领域,尤其涉及一种多任务命名实体识别训练方法、介质及终端。


背景技术:

[0002]
随着计算机技术的发展,自然语言文本信息处理技术是目前在各类应用中的不可或缺的一部分,其中,关于文本的非结构化数据抽取是一个重要的课题。在目前的研究及应用中,命名实体识别作为重要方向,旨在识别文本中特定实体信息,如人名、地名、机构名等,在信息抽取,信息检索,智能问答,机器翻译中都有广泛应用。
[0003]
目前,现有命名实体识别技术主要包括:基于规则的抽取,基于开源工具如hanlp的抽取,基于深度学习方法如crf、bilstm+crf等的抽取,基于大规模语料预训练模型的方法bert+crf的抽取。其中基于

x

+crf的实体抽取模型均能在各自语言模型基础上获得最优效果,其中

x

表示不同的语言模型,如bilstm、cnn、bert等。
[0004]
在实体识别任务中,通常将其转化为一个序列标注的单项任务,即给每个“实体类型”都分配一个b与i的标签,然后进行字的标签分类。但是,当实体类别较多时,如几百类或上千类实体,标签词表规模将会很大,相当于在每个字上都要做一次类别数较大的分类任务,会影响识别的精度。此外,在进行具体的实体识别场景任务中,不同场景对于识别的准确率(precision)与召回(recall)的要求不同,有些场景要求准确,不允许出现识别出错误的实体,所以对precision要求比较高,而有些则相反,希望尽可能把存在的实体都识别处理,所以对recall要求高,而现有的训练方式无法做到与实际应用的需求相匹配,不能根据实际场景要求的不同训练出合适的模型。


技术实现要素:

[0005]
鉴于以上所述现有技术的缺点,本发明提供一种多任务命名实体识别训练方法、介质及终端,以解决上述技术问题。
[0006]
本发明提供的多任务命名实体识别训练方法,包括:
[0007]
获取待识别训练文本;
[0008]
对所述待识别训练文本进行标注,预先定义实体序列标志和用于表示不同实体类别的实体类型,并获取二者之间的映射关系;
[0009]
在训练时,将实体识别任务分解为第一阶段任务和第二阶段任务;
[0010]
所述第一阶段任务包括通过所述实体序列标志识别文本中的实体,
[0011]
所述第二阶段任务包括根据所述映射关系判断第一阶段任务中实体的实体类型;
[0012]
通过获取实体类型对应的实体的特征向量表示,将所述实体识别任务转化为一个多分类任务,所述进行多任务命名实体识别训练。
[0013]
可选的,所述实体序列标志包括实体的头部、实体的非头部和非实体部分,且每个部分具有各自对应的实体类型。
[0014]
可选的,对待识别训练文本中的文本数据按字符进行编码,获取第一特征向量矩阵,所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵;
[0015]
根据所述第一特征向量矩阵中的实体的头、尾语义特征向量的均值,获取第二特征向量矩阵,所述第二特征向量矩阵包括实体语义特征向量矩阵;
[0016]
根据所述第一特征向量矩阵和第二特征向量矩阵,分别获取第一阶段任务和第二阶段任务的损失,以最小化总损失为目标,通过参数迭代对模型进行训练。
[0017]
可选的,根据所述第一特征向量矩阵,获取第一预测值,所述第一预测值包括待识别训练文本中实体序列预测值;
[0018]
根据所述第一预测值与待识别训练文本的实体序列标志计算差异,获取第一损失值;
[0019]
根据所述第二特征向量矩阵,获取第二预测值,所述第二预测值包括每个实体对应的实体类型预测值;
[0020]
根据所述第二预测值待识别的训练文本的实体类型标注序列计算差异,获取第二损失值;
[0021]
以第一损失值和第二损失值的总损失最小化为目标,通过参数迭代对模型进行训练。
[0022]
可选的,根据实体序列标志的不同部分,对第一特征向量矩阵中每个字符的语义向量进行分类,
[0023]
获取每个字符可能属于每个实体序列标志的概率值;
[0024]
根据所述概率值,获取所述第一预测值。
[0025]
可选的,根据第一预测值中每个已经获得的实体,通过在实体序列对应的位置,获取每个实体头位置序列与尾位置序列;
[0026]
分别查找每个实体头尾在第一特征向量矩阵中对应的语义特征向量,并分别构成实体头语义特征向量序列、实体尾语义特征向量序列;
[0027]
将所述实体头语义特征向量序列、实体尾语义特征向量序列,分别取出每个实体的头、尾语义特征向量,并取头、尾语义特征向量的均值作为实体的语义特征向量,构成所述第二特征向量矩阵。
[0028]
可选的,根据实际场景对精确率、召回率的优先级要求,或对综合指标的提升要求,通过控制第一损失值来控制精确率与召回率的优先级,或平衡性。
[0029]
可选的,通过如下损失函数获取所述第一损失值,
[0030][0031]
其中,n表示文本长度,i为每个字符在文本中的位置,s
j
表示文本中每个字符属于某个实体序列标志的概率,mask_0.5
i
表示mask_0.5中第i个元素。
[0032]
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中任一项所述方法。
[0033]
本发明还提供一种电子终端,包括:处理器及存储器;
[0034]
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如上述中任一项所述方法。
[0035]
本发明的有益效果:本发明中的多任务命名实体识别训练方法、介质及终端,通过将实体识别任务分解为两阶段的子任务,第一阶段任务专注于识别文本中的实体,暂不判断实体的类型,提升模型实体识别的精度,第二阶段任务则判断实体的类型,利用第一阶段识别到的实体,获取其对应的实体的特征向量表示,最终转化为一个多分类任务,本发明通过任务分解,当实体类别较多时能大幅度降低分类数量,提高了模型的最终的识别精度。
附图说明
[0036]
图1是本发明实施例中多任务命名实体识别训练方法的流程示意图。
[0037]
图2是本发明实施例中的多任务命名实体识别模型结构示意图。
具体实施方式
[0038]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0039]
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0040]
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
[0041]
如图1所示,本实施例中的多任务命名实体识别训练方法,包括:
[0042]
s1、获取待识别训练文本;
[0043]
s2、对所述待识别训练文本进行标注,预先定义实体序列标志和用于表示不同实体类别的实体类型,并获取二者之间的映射关系;
[0044]
s3、在训练时,将实体识别任务分解为第一阶段任务和第二阶段任务;
[0045]
所述第一阶段任务包括通过所述实体序列标志识别文本中的实体,
[0046]
所述第二阶段任务包括根据所述映射关系判断第一阶段任务中实体的实体类型;
[0047]
s4、通过获取实体类型对应的实体的特征向量表示,将所述实体识别任务转化为一个多分类任务,所述进行多任务命名实体识别训练。
[0048]
在本实施例中,获取待识别训练文本后,首先定义实体序列标志类型,作为是否为实体标志的判断标志,本实施例中的实体标志类型为bio的标记,其中,b表示为实体的头部,i表示实体的非头部,o表示非实体部分,每个部分具有分别对应各自的实体类型,根据确定的实体序列标志类型,构建实体序列标志类型的字典编码,例如一种实体类型与一个有序数组一一对应,最终生成实体类型字典码。
[0049]
在本实施例中,对待识别训练文本中的文本数据按字符进行编码,获取第一特征
向量矩阵,所述第一特征向量矩阵包括由每个字符的语义向量构成的文本整体语义向量矩阵;根据第一特征向量矩阵中的实体的头、尾语义特征向量的均值,获取第二特征向量矩阵,第二特征向量矩阵包括实体语义特征向量矩阵;根据第一特征向量矩阵和第二特征向量矩阵,分别获取第一阶段任务和第二阶段任务的损失,以最小化总损失为目标,通过参数迭代对模型进行训练。获取待识别的训练文本及其实体标注序列与实体类型标注序列,实体标注序列为待识别的训练文本中的每个字符所对应实体序列标志类型,实体类型标注序列为待识别的训练文本中标注实体对应的实体类型;对于待识别的训练文本按字级别划分并编码,输入到模型第一层级编码器当中,模型第一层级编码器是某类自然语言模型编码器。自然语言模型通常可以是自回归语言模型、自编码语言模型等;对于经过第一层级编码器的输入,输出层得到每个字符的语义向量构成的向量矩阵,即为第一特征向量矩阵。将第一特征向量矩阵输入到模型第二层级当中,模型第二层级为实体标志类型分类层,实体标志分类层可以为条件随机场、全连接层。模型第二层级输出层得到待识别训练文本中实体序列预测值,记为第一预测值,第一预测值为每个字符可能属于每个实体序列标志的概率值,即也可以得到每个字符对应的实体序列,即b、i、o对应的字典编码。
[0050]
在本实施例中,基于第一预测值与待识别的训练文本的实体标注序列计算差异,若预测为实际标注的实体序列的概率值越大,则差异越小即损失越小,反之越大。此外,根据实际场景对精确率或召回率的优先级要求或对综合指标的提升要求,通过控制模型学习时的损失来控制精确率与召回率的优先级或平衡性,特别地,本实施例中的优先级为相对优先级,并非只关注精确率或召回率,仍需尽量关注两个指标的平衡性,所述平衡性即同时考虑精确率与召回率的综合指标,可以通过精确率与召回率的调和平均值f1来进行权衡。具体地,假设召回率优先级更高或需要在已有的指标上提高召回率,则采用如下规则:如果模型没有识别到一个本应该识别到的实体,就增大对应的损失;如果模型识别到了一个不应该识别到的实体,就减小对应的损失。最终得到适应场景的要求的的损失,即为第一损失值。
[0051]
在本实施例中,通过实体序列预测值得到预测的实体标志类型,可以得到所有可能实体的头尾位置序列,可以分别表示为实体头位置序列、实体尾位置序列。对于上述获得的实体头位置序列、实体尾位置序列,并结合由每个字符的语义向量构成第一特征向量矩阵,分别查找每个实体头尾在第一特征向量矩阵中对应的语义特征向量,并分别构成实体头语义特征向量序列、实体尾语义特征向量序列。将实体头语义特征向量序列、实体尾语义特征向量序列,分别取出每个实体的头、尾语义特征向量,并取头、尾语义特征向量的均值作为该实体的语义特征向量,最终构成实体语义特征向量矩阵,即为第二特征向量矩阵。
[0052]
在本实施例中,将第二特征向量矩阵输入到模型第三层级当中,模型第三层级为实体类型分类层,所述实体类型分类层为全连接层,最终输出第二特征向量矩阵中每个向量最可能属于某类实体类型的概率值,即为第二预测值。模型总损失为第一损失值与第二损失值的和,以最小化总损失为目标同时更新模型第一层级与模型的第二层级网络参数,反复迭代至收敛,收敛为综合评价指标在多次迭代后不在继续上升为止。
[0053]
下面以一个具体实施例作为例进行说明:
[0054]
s101、定义实体序列标志类型,作为是否为实体标志的判断标志,这里的实体标志类型为bio的标记,其中b表示为实体的头部,i表示实体的非头部,o表示非实体部分,即总
计三种类型;
[0055]
s102、根据确定的实体序列标志类型,构建实体序列标志类型的字典编码,即将实体序列标志类型与一个有序数组一一对应,最终生成的字典编码可以如:{b:0,i:1,o:2};
[0056]
s103、定义待识别文本中可能存在的实体类型,作为待识别实体类型的范围,这里的实体类型通常为:品牌、电子产品、产地、国籍、出生地等,应当定义所有需要识别的实体类型。
[0057]
s104、根据上述定义好的实体类型,构建实体类型的字典编码,即一种实体类型与一个有序数组一一对应,最终生成实体类型字典码,所述的字典码可以如:{非实体:0,品牌:1,电子产品:2,产地:3,国籍:4,

,出生地:n}。
[0058]
s105、获取待识别的训练文本及其实体标注序列与实体类型标注序列,如有一训练文本”苹果手机进口于美国”,所述实体标注序列为[b,i,b,i,o,o,o,b,i],所述实体类型标注序列为[1,1,2,2,0,0,0,3,3];
[0059]
s106、对于待识别训练的文本按字级别划分并编码,输入到模型第一层级编码器当中,所述的模型第一层级编码器是某类自然语言模型编码器。具体地,这里不妨以bert作为编码器,对于待识别的文本通过分字组件tokenizer进行分割,并映射为token序列编码,构成bert的标注输入,然后输入到bert编码器当中。
[0060]
s107、对于经过bert编码器的待识别文本token序列,bert的最终输出层为每个输入字符的语义向量构成的文本整体语义向量矩阵,其中也包含标识符的语义向量,即为所述的第一特征向量矩阵。若输入的长度为l,l包括待识别文本分割后的最大长度与标识符长度,则第一特征向量矩阵的维度为[l,768],其中768为bert的词嵌入维度。
[0061]
s108、将步骤s107中生成第一特征向量矩阵输入到模型第二层级当中,模型第二层级为实体标志类型分类层,实体标志分类层为全连接层。具体地,即对于第一特征向量矩阵中每个输入字符的语义向量输入到全连接层中,对于每个字符的语义向量进行分类。因实体标志类型为bio的类型,则最终的实体标志类为三类,即对于每个文本字符进行分类后将属于b\i\o三种类型的一种。具体地,最终输出为每个字符可能属于每个实体序列标志的概率值,如对于上述训练文本”苹果手机进口于美国”,假如经过全连接层的结果为:
[0062] 苹果手机进口于美国b0.850.180.910.890.40.090.120.40.2i0.10.710.080.060.250.50.110.10.39o0.050.110.010.050.350.410.770.50.41
[0063]
表一
[0064]
显然可以通过对应位置概率最大的实体序列类型得出实体的预测结果为:

苹果



手机



进口

为该待识别文本中的实体部分,可以发现预测结果中的

进口

为识别错误的实体,而

美国

为识别遗漏的实体。
[0065]
s109、第一预测值如表一所示,基于第一预测值与待识别的训练文本的实体标注序列计算差异,若预测为实际标注的实体序列的概率值越大,则差异越小即损失越小,反之越大。一般采用交叉熵损失,可以表示为:
[0066]
[0067]
其中,n表示文本长度,s
j
表示文本中每个字符属于某个实体序列标志的概率。但是,根据实际场景对精确率或召回率的优先级要求或对综合指标的提升要求,通过控制模型学习时的损失来控制精确率与召回率的优先级或平衡性,特别地,本实施例中的优先级为相对优先级,并非只关注精确率或召回率,仍需尽量关注两个指标的平衡性,平衡性即同时考虑精确率与召回率的综合指标,可以通过精确率与召回率的调和平均值f1来进行权衡。具体地,假设召回率优先级更高或需要在已有的指标上提高召回率,可以则采用如下规则进行对损失函数进行改造:
[0068]
规则1:如果模型没有识别到一个本应该识别到的实体,就增大对应的损失;
[0069]
规则2:如果模型识别到了一个不应该识别到的实体,就减小对应的损失。
[0070]
为了具体实现上述规则,可以通过标注的序列得到一个实体的mask向量,即有实体的位置为1,否则为0,则可以表示为[1,1,1,1,0,0,0,1,1],这里设置一个损失的弹性系数为0.5,mask向量加上弹性系数为:
[0071]
mask_0.5=[1.5,1.5,1.5,1.5,0.5,0.5,0.5,1.5,1.5]
[0072]
则最终经过改造的损失函数为:
[0073][0074]
其中,n表示文本长度,i为每个字符在文本中的位置,s
j
表示文本中每个字符属于某个实体序列标志的概率,mask_0.5
i
则表示mask_0.5中第i个元素。则对于步骤3中识别出的实体:

苹果



手机



进口

,根据与标注结果对比可以发现预测结果中的

进口

为识别错误的实体,而

美国

为识别遗漏的实体具体,根据经过改造的损失函数,显然,在计算

进口

两个字符损失时会乘上0.5,而在计算

美国

两个字符损失时会乘上1.5,满足规则1、规则2的具体实现要求。最终得到第一损失值,记为:loss1。
[0075]
s110、对于上述步骤中已经得到了待识别文本中的实体部分,如:

苹果



手机



进口

,但尚未确定每个实体所属的实体类型,故需要对已经获得的所有实体进行实体类型的分类。对于每个已经获得的实体,可以通过在实体序列对应的位置,获取每个实体头位置序列与尾位置序列,当然也可以获得实体中每个字的位置序列,为了便于所有实体统一表示,我们均只获取位置序列与尾位置序列,即一个实体由头尾位置唯一确定,对于单字实体,则头尾相同。
[0076]
s111、对于上述获得的实体头位置序列、实体尾位置序列,并结合由步骤2获得每个字符的语义向量构成第一特征向量矩阵,分别查找每个实体头尾在第一特征向量矩阵中对应的语义特征向量,并分别构成实体头语义特征向量序列、实体尾语义特征向量序列;特别地,这里的每个字符的语义向量是融合了上下文场景语境的语义向量,即每个字在不同场景的语义向量并不相同;如实体

苹果

,则分别获取实体头



与实体尾



在当前上下文场景的语义向量,即通过对应的位置在第一特征向量矩阵中查找即可。
[0077]
s112、将所述实体头语义特征向量序列、实体尾语义特征向量序列,分别取出每个实体的头、尾语义特征向量,并取头、尾语义特征向量的均值作为该实体的语义特征向量,最终构成实体语义特征向量矩阵,即为第二特征向量矩阵。如实体

苹果

,则获取实体头



与实体尾



的语义特征向量均值作为实体

苹果

的语义特征向量;对于大于两个字的实体,按上述统一方法仍只取实体头尾的语义特征向量均值作为该实体的语义特征向
量,所有实体的语义特征向量则构成了实体语义特征向量矩阵,若待识别文本中的已识别出的个数为n,则第二特征向量矩阵的维度为[n,768],其中768为bert的词嵌入维度。
[0078]
s113、将所述所有实体的语义特征向量则构成了实体语义特征向量矩阵,即第二特征向量矩阵,输入到模型第三层级当中,所述模型第三层级为实体类型分类层,这里直接为一个多分类的全连接层,即对于每一个实体向量进行多分类,多分类类别为预定义的实体类型的类别,最终输出第二特征向量矩阵中每个向量最可能属于某类实体类型的概率值,即为第二预测值。如实体

苹果

预测的实体类型结果为:
[0079] 01234

n苹0.10.60.10.020.01

0.001果0.050.580.020.20.05

0.02
[0080]
表二
[0081]
其中,0,1,2,

n的实际含义为:{非实体:0,品牌:1,电子产品:2,产地:3,国籍:4,

,出生地:n},即

苹果

在该文本中的实体类型为

品牌


[0082]
s114、基于第二预测值与待识别的训练文本的实体类型标注序列计算差异,确定第二损失值。第二损失值仍采用步骤s109中的交叉熵损失,如实体

苹果

的损失为l
苹果
=-log 0.6-log 0.58,则总损失为所有预测实体的损失和,即为第二损失值,记为:loss2。
[0083]
s115、由上述步骤可知,两个任务的损失分别为loss1、loss2,则总损失loss=loss1+loss2。以最小化总损失loss为目标,同时更新模型第一层级与模型的第二层级网络参数,反复迭代至收敛。所述收敛为综合评价指标f1在多次迭代后不在继续上升为止。
[0084]
其中,
[0085][0086]
其中,precision表示精确率,recall表示召回率。
[0087]
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
[0088]
本实施例还提供一种电子终端,包括:处理器及存储器;
[0089]
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行本实施例中任一项方法。
[0090]
本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0091]
本实施例提供的电子终端,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子终端执行如上方法的各个步骤。
[0092]
在本实施例中,存储器可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0093]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,
简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0094]
在上述实施例中,除非另外规定,否则通过使用“第一”、“第二”等序号对共同的对象进行描述,只表示其指代相同对象的不同实例,而非是采用表示被描述的对象必须采用给定的顺序,无论是时间地、空间地、排序地或任何其他方式。在上述实施例中,说明书对“本实施例”的提及表示结合实施例说明的特定特征、结构或特性包括在至少一些实施例中,但不必是全部实施例。“本实施例”的多次出现不一定全部都指代相同的实施例。
[0095]
在上述实施例中,尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变形对本领域普通技术人员来说将是显而易见的。例如,其他存储结构(例如,动态ram(dram))可以使用所讨论的实施例。本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。
[0096]
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0097]
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0098]
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1