一种二阶提示学习的命名实体识别方法
未命名
07-27
阅读:201
评论:0
1.本技术属于少样本的命名实体识别技术领域,具体涉及一种二阶提示学习的命名实体识别方法。
背景技术:
2.命名实体识别技术(ner)是自然语言处理(nlp)中的一项基本任务,并且随着nlp的逐步发展,该技术的精度和速度变得越来越重要。ner技术的核心任务是从文本中自动识别出特定类型的实体名词,例如人名、地名、组织机构等,以提取出关键信息用于后续的对话管理或者系统决策。例如,对于句子“rubin is a writer based in los angeles”,ner技术可以将“rubin”识别为一个人名(per),并且将“los angeles”识别为一个地(loc)。
3.早期的ner系统是基于手动创建的规则和词典匹配,这需要大量标记良好的数据以及大量人力。由于ner训练数据的收集和标记既昂贵又耗时,因此对少样本的ner的研究至关重要。
4.一种已有技术是基于模板的提示学习方法(template-base prompt method),即通过枚举出所有可能的实体范围并且依次输入预训练的模型进行预测。显然,这种枚举的方法存在过度时间消耗的问题。另一种已有技术是无模板的提示学习方法(template-free prompt method)。具体来讲,这种无模板的提示学习方法首先使用远距离调用已有的外部知识库来获得标签词,然后设计训练目标,使有效的实体范围预测相应标签中的词,而非实体单元预测自己本身。虽然这种方法有效的解决了基于模板的提示学习方法过程中因枚举而产生的过度时间消耗问题,但是这个方案存在的问题是,模型的预训练任务希望模型能还原原始输入,而该方案使实体词预测设计的标签词,本质上是一种原型学习,对标签词设计的依赖程度高。同时,容易使模型产生混淆。
技术实现要素:
5.本技术的目的是提供一种二阶提示学习的命名实体识别方法,可以在一定程度上解决基于模板的提示学习方法的过度时间消耗问题、无模板的提示学习方法的过度依赖标签词设计问题。
6.为了实现上述目的,本技术技术方案如下:
7.一种二阶提示学习的命名实体识别方法,包括:
8.通过收集远程标签来匹配输入序列的潜在实体,以获得输入序列对应的远程标签序列,构建用于训练实体定位模型的数据集,并训练实体定位模型;
9.采用训练好的实体定位模型预测输入序列中的实体位置,在输入序列中标识实体构建实体识别模型的输入数据;
10.采用所构建的输入数据,训练实体识别模型,所述实体识别模型包括编码器、以及实体分类层和非实体分类层,输入数据先经过编码器,然后分别经过实体分类层和非实体分类层进行预测;
11.将待识别输入数据输入到实体定位模型,预测待识别输入数据中的实体位置,在待识别输入数据中标识实体构建实体识别模型的输入数据,然后通过训练好的实体识别模型输出识别结果。
12.进一步的,所述通过收集远程标签来匹配输入序列的潜在实体,以获得输入序列对应的远程标签序列,包括:
13.将未经过标注的输入序列与已知知识库相匹配,确定输入序列中潜在的实体;
14.采用bioes格式来生成输入序列对应的远程标签序列;
15.去除远程标签序列中的不完整标注和噪声标注,得到最终的远程标签序列。
16.进一步的,所述在输入序列中标识实体构建实体识别模型的输入数据,包括:
17.将实体定位模型预测出的实体,用中括号包围,并在后面加上[mask]特殊符号。
[0018]
进一步的,所述实体识别模型的联合损失包括实体分类损失和非实体分类损失。
[0019]
进一步的,所述实体分类损失采用交叉熵函数来计算实体分类层预测的标签类型与真实标签类型之间的损失。
[0020]
进一步的,所述非实体分类损失采用交叉熵函数来计算非实体分类层预测的非实体部分值与真实值之间的损失。
[0021]
进一步的,所述实体定位模型的损失函数表示为:
[0022][0023]
其中,l(θ
′
)表示损失函数,β表示权重系数,n表示输入序列的大小,xi表示输入序列中第i个字词,yi表示xi对应的真实标签,p(xi)表示xi的预测概率。
[0024]
本技术提出的一种二阶提示学习的命名实体识别方法,有益效果如下:
[0025]
1、提出了一个少样本的提示学习框架,将ner任务分解为两个子任务,即实体定位和实体识别。这两个子任务分别执行实体的定位和类型识别功能,解决了过度时间消耗和与预先训练的训练目标不一致的问题。
[0026]
2、实现了远程标签在实体定位模型上的应用,实验结果表明,在远程标签的帮助下,实体定位模型的表现良好。
[0027]
3、实验结果表明,本技术平均比其他基于提示学习的方法精度更高,而平均推理速度比基于模板的提示学习方法快1313.5倍,比增强的无模板方法快1.4倍。这些结果表明,本技术技术方案在准确性和推理速度之间取得了平衡,使其成为ner任务的一个很好的折衷方案。
附图说明
[0028]
图1为本技术一种二阶提示学习的命名实体识别方法流程图;
[0029]
图2为本技术实体定位模型与实体识别模型示意图。
具体实施方式
[0030]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0031]
本技术提出的一种二阶提示学习的命名实体识别方法,是将ner任务分解为两个阶段来进行,分别为实体定位阶段和实体识别阶段,分别构建实体定位模型和实体识别模型,并进行训练,得到训练好的模型,采用训练好的模型进行实体识别。
[0032]
在一个实施例中,如图1所示,提出了一种二阶提示学习的命名实体识别方法,包括:
[0033]
步骤s1、通过收集远程标签来匹配输入序列的潜在实体,以获得输入序列对应的远程标签序列,构建用于训练实体定位模型的数据集,并训练实体定位模型。
[0034]
对于实体定位模型的训练,为了获得更精确的目标位置,本技术使用了远程标签技术。
[0035]
在一个具体的实施例中,通过收集远程标签来匹配输入序列的潜在实体,以获得输入序列对应的远程标签序列,包括:
[0036]
将未经过标注的输入序列与已知知识库相匹配,确定输入序列中潜在的实体;
[0037]
采用bioes格式来生成输入序列对应的远程标签序列;
[0038]
去除远程标签序列中的不完整标注和噪声标注,得到最终的远程标签序列。
[0039]
具体的,将未经过标注的输入序列与wiki数据库和多个额外的网络开源词典(gazetteers)相匹配,以此确定潜在的实体,这种方法为kb-matching。例如,对于一个带有n个单词的输入序列本技术使用kb-matching的方法获得bioes格式的远程标签序列如b-per,i-loc等。
[0040]
对于bioes格式,“b”表示起始标签,“i”表示内部标签,“o”表示外部标签,即非实体标签,“e”表示结束标签,“s”表示单个标签组成的实体。所以b-per即表示一个person(per)类型的实体的起始标签,i-loc即表示一个location(loc)实体的内部标签。
[0041]
例如,对于输入序列:rubin is a writer based in los angeles,转化为bioes格式后,两个可能的实体rubin和los angeles,分别被表示为s-per和b-loc、e-angeles,得到的远程标签序列d表示如下:
[0042]
s-per o o o o o b-loc e-loc;
[0043]
其中o表示外部标签,本实施例中非实体类型的部分都采用o标签表示。
[0044]
上述获得的远程标签序列d,其中存在一些不完整标注以及噪声标注。本实施例只选择了带有实体位置信息的部分,如b、i等,忽略了实体类型的信息,如per、loc等,从而得到最终的远程标签序列d
′
:
[0045]
s o o o o o b e;
[0046]
在得到输入序列的最终远程标签序列后,将输入序列与最终的远程标签序列组合为一个样本,通过对众多的输入样本进行上述处理,从而可以构建得到用于实体定位模型训练的数据集,该数据集可以分为训练数据集、验证数据集和测试数据集。
[0047]
本实施例实体定位模型使用bert作为编码器(encoder),并且使用ffn作为解码器
(decoder)。通过构造biose形式的位置标注,训练得到位置敏感的实体定位模型。训练时,对于一个长度为n的输入x={x1,x2,
…
,xn},通过编码器f
θ
计算出x的上下文向量表示h={h1,h2,
…
,hn}:
[0048]
h=f
θ
(x)(1)
[0049]
接着将编码器得到的h通过解码器,解码器使用softmax函数来计算每一个hi标签的概率分布:
[0050]
p(xi)=softmax(w*hi+b)(2)
[0051]
其中p(xi)∈e
|c|
,c={b,i,o,s,e}是位置标签,{w,b}是随机初始化的可训练参数。
[0052]
训练时,采用交叉熵函数来计算预测标签与真实标签之间的损失,并增加了损失的最大项,最终损失可以写成:
[0053][0054]
其中β》0是权重系数,其中,l(θ
′
)表示损失函数,β表示权重系数,n表示输入序列的大小,xi表示输入序列中第i个字词,yi表示xi对应的真实标签,p(xi)表示xi的预测概率。crossentropy为交叉熵函数。
[0055]
需要说明的是,模型的泛化能力通常使用模型在验证数据集上的表现来评估,即当模型在训练集上的误差降低的时候,其在验证集上的误差表现不会变差。反之,当模型在训练集上表现很好,在验证集上表现很差的时候,认为模型出现了过拟合的情况。为了保持实体定位模型的泛化能力,解决过拟合的问题,本技术还在训练实体定位模型的过程中使用早终止(early-stopping)技术,即在训练过程中,当实体定位模型达到了较好的状态t时,提前停止训练进程,以此得到一个较好的实体定位模型。
[0056]
除了early-stopping策略之外,本技术再使用一个少量但已经过良好标注的验证数据集来对实体定位模型进行微调。并且选择在测试数据集的测试中表现最好的一个实体定位模型作为最终的实体定位模型。
[0057]
步骤s2、采用训练好的实体定位模型预测输入序列中的实体位置,在输入序列中标识实体构建实体识别模型的输入数据。
[0058]
在一个具体的实施例中,在输入序列中标识实体构建实体识别模型的输入数据,假设输入的句子为:
[0059]
rubinisawriterbasedinlosangeles.
[0060]
且步骤s1的实体定位模型给出的候选实体为rubin和losangeles,将他们用两个中括号包围,并且在后面加上[mask]特殊符号,告知实体识别模型,在此处需要进行实体类型预测。
[0061]
构建的实体识别模型的输入数据,如下:
[0062]
[rubin][mask]isawriterbasedin[losangeles][mask]。
[0063]
步骤s3、采用所构建的输入数据,训练实体识别模型,所述实体识别模型包括编码器、以及实体分类层和非实体分类层,输入数据先经过编码器,然后分别经过实体分类层和
非实体分类层进行预测。
[0064]
本实施例实体识别模型与实体定位模型一样使用bert和ffn分别作为编码器encoder和解码器decoder,其中解码器包括两个分支,分别是实体分类层和非实体分类层,均采用ffn。
[0065]
训练时,先初始化模型参数,用新的输入数据训练实体识别模型的编码器,然后分别经过实体分类层和非实体分类层。其中实体分类层用于预测[mask]所标识的实体的类型,而非实体分类层用于预测非[mask]的预测值。
[0066]
训练时,初始化作为实体识别模型的编码器计算输入数据x
′
上下文的向量表示
[0067][0068]
其中m代表输入x
′
中含有标签的个数。
[0069]
然后将h
′
传入解码器,即分别经过实体分类层和非实体分类层。其中实体分类层即图2中[mask]分类层,其只关注[mask]部分的预测结果。在[mask]分类层中利用softmax函数计算出实体识别模型预测的概率分布:
[0070]
q(x
′
[mask]
)=softmax(w
*
·h′
[mask]
+b
*
)(5)
[0071]
其中,{w
*
,b
*
}是随机初始化的可训练参数,h
′
[mask]
表示输入数据中[mask]部分的向量表示,x
′
[mask]
表示输入数据x
′
中[mask]的位置。
[0072]
训练时,采用交叉熵函数来计算实体分类层预测的标签类型与真实标签类型间的实体分类损失l
type
:
[0073]
l
type
=crossentropy(y
′
,q(x
′
[mask]
))(6)
[0074]
考虑到输入序列可能根本没有实体存在,导致零损耗的问题。本技术添加了一个非实体分类层(对应图2中非[mask]分类层),使得非[mask]部分在通过实体识别模型之后能够预测自己,使得其能最大化非[mask]部分的概率p(x
′i≠[mask]∣x
′
),从而使得实体识别模型更加稳定。
[0075]
由此引入非实体分类损失l
token
,代表非实体分类层预测的非实体部分值与真实值之间的损失:
[0076][0077]
其中的p(x
′i≠[mask]∣x
′
)=softmax
i≠[mask]
(ffn(h
′i)),表示输入x
′
中非[mask]部分经过非[mask]分类层后得到的概率分布。非实体分类损失也是一种交叉熵损失。
[0078]
在非实体分类层,使用一个softmax函数将所有的向量h
′
放入一个前馈神经网络(ffn)来计算除[mask]部分之外预测为其自身的概率。
[0079]
本实施例实体识别模型的联合损失表示为:
[0080]
l
finall
=l
type
+l
token
(8)。
[0081]
本实施例训练时采用实体分类损失与非实体分类损失构建联合损失进行训练,关于采用损失函数训练网络模型,是本领域比较成熟的技术,这里不再赘述。
[0082]
步骤s4、将待识别输入数据输入到实体定位模型,预测待识别输入数据中的实体位置,在待识别输入数据中标识实体构建实体识别模型的输入数据,然后通过训练好的实体识别模型输出识别结果。
[0083]
需要说明的是,在训练好模型后,对于待识别输入数据,直接将待识别输入数据输入到实体定位模型来预测实体位置,然后在待识别输入数据中标识实体构建实体识别模型的输入数据,具体参照步骤s2的方法,这里不再赘述。
[0084]
最后,将构建的实体识别模型的输入数据通过训练好的实体识别模型输出识别结果,即通过实体分类层得到所需要识别的实体及其类别。
[0085]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种二阶提示学习的命名实体识别方法,其特征在于,所述二阶提示学习的命名实体识别方法,包括:通过收集远程标签来匹配输入序列的潜在实体,以获得输入序列对应的远程标签序列,构建用于训练实体定位模型的数据集,并训练实体定位模型;采用训练好的实体定位模型预测输入序列中的实体位置,在输入序列中标识实体构建实体识别模型的输入数据;采用所构建的输入数据,训练实体识别模型,所述实体识别模型包括编码器、以及实体分类层和非实体分类层,输入数据先经过编码器,然后分别经过实体分类层和非实体分类层进行预测;将待识别输入数据输入到实体定位模型,预测待识别输入数据中的实体位置,在待识别输入数据中标识实体构建实体识别模型的输入数据,然后通过训练好的实体识别模型输出识别结果。2.根据权利要求1所述的二阶提示学习的命名实体识别方法,其特征在于,所述通过收集远程标签来匹配输入序列的潜在实体,以获得输入序列对应的远程标签序列,包括:将未经过标注的输入序列与已知知识库相匹配,确定输入序列中潜在的实体;采用bioes格式来生成输入序列对应的远程标签序列;去除远程标签序列中的不完整标注和噪声标注,得到最终的远程标签序列。3.根据权利要求1所述的二阶提示学习的命名实体识别方法,其特征在于,所述在输入序列中标识实体构建实体识别模型的输入数据,包括:将实体定位模型预测出的实体,用中括号包围,并在后面加上[mask]特殊符号。4.根据权利要求1所述的二阶提示学习的命名实体识别方法,其特征在于,所述实体识别模型的联合损失包括实体分类损失和非实体分类损失。5.根据权利要求4所述的二阶提示学习的命名实体识别方法,其特征在于,所述实体分类损失采用交叉熵函数来计算实体分类层预测的标签类型与真实标签类型之间的损失。6.根据权利要求4所述的二阶提示学习的命名实体识别方法,其特征在于,所述非实体分类损失采用交叉熵函数来计算非实体分类层预测的非实体部分值与真实值之间的损失。7.根据权利要求1所述的二阶提示学习的命名实体识别方法,其特征在于,所述实体定位模型的损失函数表示为:其中,l(θ
′
)表示损失函数,β表示权重系数,n表示输入序列的大小,x
i
表示输入序列中第i个字词,y
i
表示x
i
对应的真实标签,p(x
i
)表示x
i
的预测概率。
技术总结
本发明公开了一种二阶提示学习的命名实体识别方法,通过收集远程标签来匹配输入序列的潜在实体,以获得输入序列对应的远程标签序列,构建用于训练实体定位模型的数据集,并训练实体定位模型。采用训练好的实体定位模型预测输入序列中的实体位置,在输入序列中标识实体构建实体识别模型的输入数据,采用所构建的输入数据,训练实体识别模型,最终利用训练好的实体识别模型对待识别输入数据进行识别。本发明将NER任务分解为两个子任务,解决了过度时间消耗和与预先训练的训练目标不一致的问题,在准确性和推理速度之间取得了平衡。在准确性和推理速度之间取得了平衡。在准确性和推理速度之间取得了平衡。
技术研发人员:金宣成 黄亮 叶飞扬 池凯凯 张书彬 魏欣晨
受保护的技术使用者:浙江工业大学
技术研发日:2023.04.12
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
