一种基于预训练语言模型的命名实体识别方法技术

技术编号:31496905 阅读:17 留言:0更新日期:2021-12-18 12:39
本发明专利技术公开了一种基于预训练语言模型的命名实体识别方法,目的是提高命名实体识别的准确率、召回率和F1值,实现少样本情况下识别命名实体的要求。技术方案是先构建由多模型识别模块、多级融合模块、判别模块、实体标签对齐器和未标记数据库构成的命名实体识别系统,利用初步训练的模型对未标记数据进行标注,采用多模型识别和多级融合的方式提高自动标注效果,并利用SVM分类器对自动标记数据进行筛选,原始训练集和经过筛选的自动标注数据对模型再次进行训练,最终使用训练后的命名实体识别系统对目标文本进行多模型识别、多级融合和实体标签对齐,得到目标文本中的实体。采用本发明专利技术可提升少样本场景下实体识别的准确率、召回率和F1值。率和F1值。率和F1值。

【技术实现步骤摘要】
一种基于预训练语言模型的命名实体识别方法


[0001]本专利技术涉及自然语言处理命名实体识别领域,具体涉及一种基于预训练语言模型对文本序列中命名实体进行识别的方法。

技术介绍

[0002]自然语言是人类交流和思维的主要工具,是人类区别其他动物的本质特性,人类的多种智能都与语言有着密切的关系,而文字是记录语言的工具,人类的逻辑思维以语言为形式,人类的绝大部分知识也是以语言文字的形式记载和流传下来的。文本中大量的文字能够表达丰富的语义信息和特征内容,帮助人们理解文本所要传达的信息。在全球智能化及信息化的时代,自然语言中信息的抽取与处理技术一直是科学家们重点研究内容。人工智能技术的发展与硬件设备计算性能的提升,推动了自然语言处理领域信息抽取、文本分类、阅读理解等多项技术的深入研究。信息抽取是自然语言处理领域中的底层处理,即对文本里包含的信息进行结构化处理,并以统一的形式集成在一起,包括命名实体识别、指代消解、属性抽取、关系抽取、事件抽取等。
[0003]命名实体识别方法的研究与应用作为自然语言处理领域的一个重要分支,是信息抽取、信息检索、机器翻译、问答系统等多种自然语言处理技术必不可少的组成部分,甚至是基础部分,因而命名实体识别方法一直是热门研究的课题之一。命名实体识别是指识别文本中具有特定意义的实体。具体来说,命名实体识别指的是,从一句话中识别出人名,地名,组织名,日期时间,这些人名,地名等被识别的目标就是命名实体,命名实体还可以是很多其它有意义的目标,比如产品,公司,专有名词等等。通过识别出来的命名实体,可以形成实体数据库,并为后续的关系抽取、舆情分析、知识图谱、指代消解和问答系统等任务提供前提。因此对命名实体识别技术展开研究是十分必要的。
[0004]命名实体识别方法主要分为三大类,基于规则和词典的算法、基于统计机器学习的算法和基于深度学习的算法。基于规则和词典的算法使用语言学专家手工构造规则模板,以模式和字符串相匹配为主要手段,这类方法依赖于知识库和词典的建立,代价大,系统建设周期长、移植性差。基于统计机器学习的算法,主要包括隐马尔可夫模型、最大熵、支持向量机、条件随机场等,算法训练一个判别器,对输入的各种特征进行判断,最终得到对应实体标签,这类方法需要依据特定命名实体识别所面临的主要困难和所表现出的特性,考虑选择能有效反映该类实体特性的特征集合。基于深度学习的算法利用神经网络提取的深层文本特征,具有语义更加丰富、表达能力更强的特点,相比前两类算法效果有提升,也更为方便。在实际场景下,实体识别任务往往面临标注数据少,标注成本高,实体类型不通用的问题,导致命名实体识别需要解决模型过拟合、实体长度较长等问题。命名实体识别方法面临实际场景中的情况,会因为标注的可用于训练的数据少、要识别的实体较通用领域数据差异较大等问题增加识别难度。
[0005]现实任务中往往有着大量的未标记数据,尤其是在互联网技术高速发展的今天,能够从网上获取的数据十分庞大。基于深度学习的命名实体识别算法能够提取文本中深层
的语义、语法特征,利用这些深层特征的不变性提高识别率,但这往往需要以大量的标注数据为支撑,由于现实中命名实体识别样本标注成本高,人工获得大量标注数据不现实,在样本缺少的情况下,深度学习模型学到的特征往往只适用于训练数据,模型泛化能力差,在其他数据上的效果不好。因此如果能将容易获得的大量未标记数据利用起来,有助于提高命名实体识别的识别率。
[0006]利用未标记数据是命名实体识别的一个重要研究点。现有的命名实体识别算法致力于加强词汇信息的引入,提高实体边界的识别性能,从而提高实体识别的整体性能。未标记数据中存在大量对实体识别任务有帮助的实体信息,并且深度学习模型也可以从无标记数据中学到更丰富、更泛化的特征。利用未标记数据中大量实体信息和潜在的特征,能够有效地提高在少样本场景下模型的泛化能力和实体识别的准确率、召回率和F1值。
[0007]因此,如何充分利用大量的未标记数据,结合未标记数据中的实体信息,提供一种准确率、召回率和F1值更高的命名实体识别方法,是本领域技术人员正在探讨的热点问题。

技术实现思路

[0008]本专利技术要解决的技术问题是提供一种基于预训练语言模型的命名实体识别方法。此方法基于深度学习的算法,利用大量未标记数据中大量对实体识别任务有帮助的实体信息,提高命名实体识别的准确率、召回率和F1值,实现在少样本情况下仍然能够有效识别命名实体的要求。
[0009]为解决上述技术问题,本专利技术技术方案是:先构建由多模型识别模块、多级融合模块、判别模块、实体标签对齐器和未标记数据库构成的命名实体识别系统。使用实体样本少、领域窄的数据集(如CCKS2020任务八“面向试验鉴定的命名实体识别”评测任务发布的数据集MilNER)作为多模型识别模块的训练集和测试集、采用有监督的方式对多模型识别模块进行训练,得到多模型识别模块的网络权重参数。之后采用命名实体识别系统对多模型识别模块训练集文本进行多模型识别、多级融合,得到训练集文本的预测标签序列和全连接层输出。利用训练集的实际标签序列、从多级融合模块获得的预测标签序列和从多模型识别模块获得的全连接层输出构建对判别模块进行训练的训练数据集,采用有监督的方式对判别模块进行训练,得到判别模块的网络权重参数。命名实体识别系统对未标记数据库的文本进行多模型识别、多级融合,得到未标记数据的预测标签,判别模块对未标记数据的预测标签进行处理和判别,得到伪标签数据集。利用伪标签数据集和多模型识别模块的训练集一起对多模型识别模块进行训练,更新多模型识别模块的网络权重参数。最后训练后的命名实体识别系统对目标文本进行多模型识别、多级融合,得到目标文本的预测标签序列,实体标签对齐器根据目标文本和目标文本对应的预测标签序列,得到目标文本中的命名实体。
[0010]本专利技术包括以下步骤:
[0011]第一步:构建命名实体识别系统。命名实体识别系统由多模型识别模块、多级融合模块、判别模块、实体标签对齐器、未标记数据库D构成。
[0012]未标记数据库D存储由互联网等渠道获取的文本集合,包含E条文本,E为正整数且1≤E≤7000,与多模型识别模块、判别模块相连。未标记数据库D供多模型识别模块和判别模块读取。D={D1,D2,...,D
e
,...,D
E
},D
e
表示未标记数据库中第e个文本;其中
N为正整数,D
e
表示长度为N的文本(以字符为单位,D
e
长度为N说明D
e
包含N个字符)。
[0013]多模型识别模块与用户、多级融合模块和判别模块相连,当从多模型识别模块训练集接收到训练集文本集合X(X={X1,X2,...,X
c
,...,X
C
},其中X
c
表示训练集中第c个文本,1≤c≤C,C为正整数,其中N为正整数,X
c
表示长度为N的文本(以字符为单位,X
c...

【技术保护点】

【技术特征摘要】
1.一种基于预训练语言模型的命名实体识别方法,其特征在于包括以下步骤:第一步:构建命名实体识别系统;命名实体识别系统由多模型识别模块、多级融合模块、判别模块、实体标签对齐器、未标记数据库D构成;未标记数据库D存储E条文本,E为正整数,与多模型识别模块、判别模块相连,供多模型识别模块和判别模块读取,D={D1,D2,...,D
e
,...,D
E
},D
e
表示未标记数据库中第e个文本;其中N为正整数,D
e
表示长度为N的文本即D
e
包含N个字符;多模型识别模块与用户、多级融合模块和判别模块相连,当从多模型识别模块训练集接收到训练集文本集合X时,X={X1,X2,...,X
c
,...,X
C
},其中X
c
表示训练集中第c个文本,1≤c≤C,C为正整数,N为正整数,X
c
长度为N即X
c
包含N个字符;多模型识别模块对X中每个文本分别进行多模型识别,得到多模型识别结果集合F(X)和全连接层输出集合Z(X);当构建判别模块训练集时,将F(X)送入多级融合模块,将Z(X)送入判别模块;当对多模型识别模块进行训练时,多模型识别模块更新参数;当从多模型识别模块测试集接收到测试集文本集合V时,V={V1,V2,...,V
u
,...,V
U
},其中Vu表示测试集中第u个文本,V
u
表示长度为N的文本即Vu包含N个字符,为V
u
的第n个字符,1≤u≤U;多模型识别模块对V中每个文本分别进行多模型识别,得到多模型识别结果集合F(V),F(V)={F(V1),F(V2),...,F(V
u
),...,F(V
U
)},其中F(V
u
)表示多模型识别模块对文本V
u
的分类结果;将F(V)输出到多级融合模块;当从未标记数据库D中读取数据时,多模型识别模块对D中每个文本分别进行多模型识别,得到多模型识别结果集合F(D)和全连接层输出集合Z(D),F(D)={F(D1),F(D2),...,F(D
e
),...,F(D
E
)},其中F(D
e
)表示多模型识别模块对文本D
e
的分类结果,Z(D)={Z(D1),Z(D2),...,Z(D
e
),...,Z(D
E
)},其中Z(D
e
)表示多模型识别模块对文本D
e
的全连接层输出,将F(D)输出到多级融合模块,将Z(D)输出到判别模块;当接收到用户输入的文本T时,多模型识别模块对T进行多模型识别,得到多模型识别结果F(T),将F(T)输出到多级融合模块;多模型识别模块由6M个实体识别模型构成;这些模型共分为6组,分别对应6种模型框架,每组M个模型只有随机种子Seed不同,3≤M≤7,6种模型框架都由3部分组成:预训练编码器、下游编码器和解码器;预训练编码器为RoBERTa网络,下游编码器为BiLSTM网络或TENER网络,解码器为CRF或Span或Softmax;这六种模型框架分别由RoBERTa、BiLSTM或TENER、CRF或Span或Sotfmax组合而成;6M个实体识别模型记为net1,...,net
m
,...,net
6M
,1≤m≤6M,其中net1~net
M
为net1,net
M+1
~net
2M
为net2,net
2M+1
~net
3M
为net3,net
3M+1
~net
4M
为net4,net
4M+1
~net
5M
为net5,net
5M+1
~net
6M
为net6;当多模型识别模块接收到训练集文本集合X时,net1,...,net
m
,...,net
6M
分别对X中每个文本进行预训练编码、下游编码和解码,得到每个文本的分类结果集合F(X),F(X)={F(X1),F(X2),...,F(X
c
),...,F(X
C
)};F(X
c
)表示X
c
的分类结果集合,F(X
c
)={F(X
c
)1,F(X
c
)2,...,F(X
c
)
m
,...,F(X
c
)
6M
},其中F(X
c
)
m
表示net
m
网络对X
c
的分类结果,其中表示文本X
c
输入到net
m
后第n个字符得到的对应标签;同时得到X
c
在每个解码器中第一个全
连接层的输出结果集合连接层的输出结果集合Z(X
c
)
m
表示文本X
c
输入到net
m
后得到的全连接层输出;对6组相同模型结构、不同Seed的网络模型得到的全连接层输出结果分别进行平均,得到6种不同模型结构的全连接层输出集合ZZ(X
c
),ZZ(X
c
)={Z(X
c
)
net1
,Z(X
c
)
net2
,Z(X
c
)
net3
,Z(X
c
)
net4
,Z(X
c
)
net5
,Z(X
c
)
net6
},Z(X
c
)
netr
表示netr对X
c
的M个全连接层输出平均后的结果,1≤r≤6,对ZZ(X
c
)中的6个元素进行拼接后,得到拼接后的全连接层输即多模型识别模块对文本X
c
的全连接层输出Z(X
c
),Z(X
c
)=Concat(Z(X
c
)
net1
,Z(X
c
)
net2
,Z(X
c
)
net3
,Z(X
c
)
net4
,Z(X
c
)
net5
,Z(X
c
)
net6
),Concat()表示拼接操作,令全连接层输出集合Z(X)={Z(X1),Z(X2),...,Z(X
c
),...,Z(X
C
)};当构建判别模块训练集时,将F(X)送入多级融合模块,将Z(X)送入判别模块;当生成伪标签数据集时,多模型识别模块从未标记数据库D读取文本,net1,...,net
m
,...,net
6M
分别对D中E个文本进行预训练编码、下游编码和解码,得到E个文本的分类结果集合F(D),F(D)={F(D1),F(D2),...,F(D
e
),...,F(D
E
)};F(D
e
)表示D
e
的分类结果集合,F(D
e
)={F(D
e
)1,F(D
e
)2,...,F(D
e
)
m
,...,F(D
e
)
6M
},其中F(D
e
)
m
表示net
m
网络对D
e
的分类结果,其中表示文本D
e
输入到net
m
后第n个字符得到的对应标签;同时得到D
e
在每个解码器中第一个全连接层的输出结果集合码器中第一个全连接层的输出结果集合Z(D
e
)
m
表示文本D
e
输入到net
m
后得到的全连接层输出;对6组相同模型结构、不同Seed的网络模型得到的全连接层输出结果分别进行平均,得到6种不同模型结构的全连接层输出ZZ(D
e
),ZZ(D
e
)={Z(D
e
)
net1
,Z(D
e
)
net2
,Z(D
e
)
net3
,Z(De)
net4
,Z(D
e
)
net5
,Z(D
e
)
net6
},Z(D
e
)
netr
表示netr对D
e
的M个全连接层输出平均后的结果,对ZZ(D
e
)中的6个元素进行拼接后,得到拼接后的全连接层输出Z(D
e
),Z(D
e
)=Concat(Z(D
e
)
net1
,Z(D
e
)
net2
,Z(D
e
)
net3
,Z(D
e
)
net4
,Z(D
e
)
net5
,Z(D
e
)
net6
);令全连接层输出Z(D),Z(D)={Z(D1),Z(D2),...,Z(D
e
),...,Z(D
E
)},将F(D)送入多级融合模块,将Z(D)送入判别模块;当多模型识别模块接收到测试集文本集合V时,net1,...,net
m
,...,net
6M
分别对V中每个文本分别进行预训练编码、下游编码和解码,得到每个文本的分类结果集合F(V),F(V)={F(V1),F(V2),...,F(V
u
),...,F(V
U
)};F(V
u
)表示V
u
的分类结果集合,F(V
u
)={F(V
u
)1,F(V
u
)2,...,F(V
u
)
m
,...,F(V
u
)
6M
},其中F(V
u
)
m
表示net
m
网络对V
u
的分类结果,其中表示文本Vu输入到net
m
后第n个字符得到的对应标签;将F(V)送入多级融合模块;当多模型识别模块接收到用户输入的文本T=(t1,t2,...,t
n
,...,t
N
)时,T表示长度为N的文本即T包含N个字符,net1,...,net
m
,...,net
6M
分别对T进行预训练编码、下游编码和解码,得到分类结果集合F(T),F(T)={F(T)1,F(T)2,...,F(T)
m
,...,F(T)
6M
},其中F(T)
m
表示net
m
网络对T的分类结果,F(T)
m
={F(T)
m
(t1),F(T)
m
(t2),...,F(T)
m
(t
n
),...,F(T)
m
(t
N
)},其中F(T)
m
(t
n
)表示文本T输入到net
m
后第n个字符t
n
得到的对应标签;将F(T)送入多级融合模块;多级融合模块与多模型识别模块、判别模块和实体标签对齐器相连,当从多模型识别
模块接收到F(X)时,采用多级融合策略对F(X)进行投票,得出X对应的预测标签序列集合Y

,将Y

送入判别模块;当从多模型识别模块接收到F(D)时,采用多级融合策略对F(D)进行投票,得出D对应的预测标签序列集合将送入判别模块;当从多模型识别模块接收到F(V)并从多模型识别模块测试集接收到测试集实际标签序列集合Y
#
时,采用多级融合策略对F(V)进行投票,得出V对应的预测标签序列集合Y
*
,并根据Y
*
和Y
#
计算精确率、召回率和F1值供用户查看;当从多模型识别模块接收F(T)时,采用多级融合策略对F(T)进行投票,得出T对应的标签序列Y
T
,将Y
T
送入实体标签对齐器;判别模块与多模型识别模块、多级融合模块、未标记数据库相连,采用支持向量机SVM模型作为标签分类器,当从多模型识别模块接收到Z(X),从多级融合模块接收到Y

,从多模型识别模块训练集接收训练集实际标签序列集合Y时,判别模块根据Y

和Y生成判别模块训练集标签S,并根据Z(X)和S构建判别模块训练集Q,之后对判别模块进行训练;当从未标记数据库读取到文本集合D,从多模型识别模块接收到Z(D),从多级融合模块接收到时,判别模块对Z(D)进行判断,判断是否将加入伪标签数据集R;最后将R发送给多模型识别模块;实体标签对齐器与多级融合模块和用户相连,从多级融合模块接收Y
T
,将用户输入的文本T和Y
T
对应起来,得到T中各实体类别的实体列表;第二步:准备训练多模型识别模块的数据集;选用标注样本个数L小于1000、来自同一垂直领域的数据集作为原始数据集,令数据集中标注样本数为L,按4∶1的比例将原始样本划分为训练集和测试集,每条标注样本包含一条文本和其对应的实际标签;训练集中的文本集合构成训练集文本集合X,训练集中的实际标签序列集合构成训练集实际标签序列集合Y,训练集共L(X)条数据;测试集中的文本集合构成测试集文本集合V,测试集样本中的实际标签序列集合构成测试集实际标签序列集合Y
#
,测试集共L(V)条数据;L=L(X)+L(V);第三步:使用多模型识别模块训练集采用多模型识别模块训练方法训练多模型识别模块;采用有监督的方式对多模型识别模块中的6M个模型同时进行训练,得到6M组不同的模型参数权重;方法如下:3.1初始化权重参数,包括RoBERTa网络权重参数集合W
R
中的所有元素值、BiLSTM网络权重参数集合W
B
中所有元素值、TENER网络权重参数集合W
T
中所有元素值、CRF网络权重参数集合W
C
中所有元素值、Span网络权重参数集合W
S
中所有元素值、Softmax网络权重参数集合W
So
中所有元素值;3.2设置网络训练超参数:包括网络模型学习率learningRate,批处理尺寸,文本最大长度maxlen,随机种子Seed;3.3迭代计算每一个网络模型输出分布与真实实体标签分布差距,得到损失值,最小化损失值并更新网络参数,直到满足迭代次数要求,得到权重参数;具体方法如下:3.3.1初始化训练迭代参数itretation=1;3.3.2每个网络模型都从多模型识别模块训练集中接收训练集文本集合X,经过预编码、下游编码和解码得到当前参数下网络模型对于标签的输出分布,计算预测的输出分布与真实分布的差距,得到损失值Loss,使用Adam优化算法对Loss最小化以更新一次网络权重参数;
3.3.3令itretation=itretation+1,如果itretation≤迭代阈值K,K是[1,30]内的整数,转3.3.2;否则说明训练满足迭代次数要求,训练结束,将训练后的W
R
作为RoBERTa网络的权重参数集合,将训练后的W
B
作为BiLSTM网络的权重参数集合,将训练后的W
T
作为TENER网络的权重参数集合,将训练后的W
S
作为Span网络的权重参数集合,将训练后的W
C
作为CRF的权重参数集合,将训练后的W
So
作为Softmax的权重参数集合,得到训练好的6M个模型,也即得到训练好的多模型识别模块,转第四步;第四步:采用测试方法测试当前命名实体识别系统性能指标;训练好的多模型识别模块接收测试集文本集合V,V={V1,V2,...,V
u
,...,V
U
},1≤U≤L(V)且U为正整数,得到实体识别结果F(V);多级融合模块采用多级融合策略对F(V)进行投票,得出V对应的预测标签序列集合其中其中表示文本V
u
的第n个字符最终预测得到的伪标签,并根据Y
*
和多模型识别模块测试集实际标签序列集合Y
#
计算精确率、召回率和F1值,具体方法为:4.1初始化变量u=1、tp=0、fp=0、fn=0,其中tp表示正确预测的数目,fp表示误判的数目,fn表示漏判的数目;4.2训练好的多模型识别模块接收测试集文本集合V,对V中的第u个文本V
u
进行识别;多模型识别模块对V
u
进行预编码、下游编码和解码,得到6M个实体识别结果集合F(V
u
),F(V
u
)={F(V
u
)1,F(V
u
)2,...,F(V
u
)
m
,...,F(V
u
)
6M
},其中F(V
u
)
m
表示net
m
网络对V
u
的分类结果,其中表示文本V
u
输入到net
m
后第n个字符得到的对应标签,将F(V
u
)送入多级融合模块;4.3多级融合模块对F(V
u
)进行多级融合;多级融合分两步进行,第一步是对6组各M个网络模型得到的分类结果分别进行一级投票,得到6个投票结果,第二步是对第一步每个文本投票得到的6个投票结果进行二级投票,得到V
u
的预测标签序列的预测标签序列的预测标签序列表示V
u
的第n个字符预测的伪标签;4.4多级融合模块根据预测标签序列和V
u
的实际标签序列对和中的所有实体进行判断:当一实体在和中同时出现时,令tp=tp+1;当一实体仅在出现时,令fn=fn+1;当一...

【专利技术属性】
技术研发人员:黄震陈一凡汪昌健郭敏李东升王博阳王安坤徐皮克
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1