CN110969020B - 基于cnn和注意力机制的中文命名实体识别方法、系统及介质 - Google Patents
基于cnn和注意力机制的中文命名实体识别方法、系统及介质 Download PDFInfo
- Publication number
- CN110969020B CN110969020B CN201911150480.9A CN201911150480A CN110969020B CN 110969020 B CN110969020 B CN 110969020B CN 201911150480 A CN201911150480 A CN 201911150480A CN 110969020 B CN110969020 B CN 110969020B
- Authority
- CN
- China
- Prior art keywords
- sequence
- cnn
- named entity
- tail
- entity recognition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了一种基于CNN和注意力机制的中文命名实体识别方法、系统及介质,本发明方法包括将目标文本序列传入预先训练好的K个中文命名实体识别CNN模型分别得到K个首部概率预测序列SP和尾部概率预测序列EP并融合,根据融合结果计算首部标签序列S以及尾部标签序列E,利用切片式解码方法结合目标文本序列、首部标签序列S以及尾部标签序列E解码得到目标文本序列所对应的实体集合yte。本发明通过对传统卷积神经网络CNN进行改造使其适应序列任务,能够实现较强性能和较快计算速度的命名实体识别,在多个数据集上均有良好表现,能够实现对中文文本中的命名实体进行快速准确识别。
Description
技术领域
本发明涉及人工智能领域自然语言处理技术,具体涉及一种基于CNN和注意力机制的中文命名实体识别方法、系统及介质。
背景技术
随着人工智能的迅捷发展和人机交互方式的快速升级,越来越需要机器能够对自然语言进行处理和理解。命名实体识别的目标是从文本中识别出具有特定意义的实体,是自然语言处理领域的基础任务之一。命名实体识别是主体挖掘、关系抽取、实体链接等任务的前置步骤,也是自动化构建知识图谱的关键技术,长期以来受到了广泛的关注。
近年来,基于神经网络和深度学习的方法成为了进行命名实体识别的主流方法,在识别准确率上得到了较大提高。然而,现有基于词向量的深度学习方法的性能严重依赖于文本分词效果,对于专业词、生僻词等未收录(Out of Vocabulary,OOV)词汇处理效果差,当分词错误时实体识别的效果也会受到很大影响;同时现有模型大多使用循环神经网络,无法进行样本内并行计算,计算速度较慢,很难达到工业应用要求。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于CNN和注意力机制的中文命名实体识别方法、系统及介质,本发明通过对传统卷积神经网络CNN进行改造使其适应序列任务,能够实现较强性能和较快计算速度的命名实体识别,在多个数据集上均有良好表现,能够实现对中文文本中的命名实体进行快速准确识别。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于CNN和注意力机制的中文命名实体识别方法,实施步骤包括:
1)将目标文本序列传入预先训练好的K个中文命名实体识别CNN模型分别得到K个首部概率预测序列SP和尾部概率预测序列EP;所述中文命名实体识别CNN模型包含嵌入层、编码层、注意力层和输出层,且其中嵌入层为使用局部注意力卷积网络的嵌入层,编码层为基于膨胀门控线性模块的编码层;
2)将K个首部概率预测序列SP和尾部概率预测序列EP做均值平滑得到最终的首部概率预测序列Spte和尾部概率预测序列EPte以实现K个中文命名实体识别CNN模型的融合;
3)根据最终的首部概率预测序列SPte中各个首部概率预测结果spi计算每一个首部标签si=argmax(spi),根据最终的尾部概率预测序列EPte中各个首部概率预测结果epi计算每一个尾部标签ei=argmax(epi),从而得到由所有首部标签si构成的首部标签序列S以及由所有尾部标签ei构成的尾部标签序列E;
4)利用切片式解码方法结合目标文本序列、首部标签序列S以及尾部标签序列E解码得到目标文本序列所对应的实体集合yte。
可选地,步骤1)中任意一个训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP的步骤包括:
1.1)将目标文本序列T通过使用局部注意力卷积网络的嵌入层获取输出向量序列O=(o1,o2,...,on),
1.2)将输出向量序列O通过基于膨胀门控线性模块的编码层提取目标文本序列T的高维特征;
1.3)将文本序列T的高维特征通过注意力层提取目标文本序列T的长距离依赖得到序列A={a1,a2,...,al},其中l为序列A的长度;
1.4)将序列A={a1,a2,...,al}输入训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP。
可选地,步骤1.1)的详细步骤包括:
1.1.1)将输入的文本序列T进行普通字嵌入得到n维的字向量序列C=(c1,c2,...,cn);
1.1.2)使用局部注意力卷积网络提取字向量序列C中各个字相量ci对应的含有词级别语义信息且融合了字符间依赖关系的字向量hi,得到字向量序列C对应的局部注意力卷积层输出序列H=(h1,h2,...,hn),其中i=1,2,...,n,n为字向量序列C的维度;
1.1.3)将预训练词向量作为特征拼接到字向量hi后面作为补充信息、将文本序列T中的每一个位置也编码为一个向量融入到字向量hi中得到对应字符的输出相量oi,从而得到所有字符的输出相量oi构成的输出向量序列O=(o1,o2,...,on)。
可选地,步骤1.1.2)中字向量hi的计算函数表达式为:
上式中,W3和b都是可训练参数,*表示二者之间的对应元素积,cj为j位置字符经普通字嵌入后得到的字向量,kj为注意力权重,dh为卷积层通道数,dc为字向量维度,k为注意力权重值,j为字符的序号,i为卷积窗中心字符的序号,m为卷积窗大小的一半;
上式中注意力权重kj的计算函数表达式为:
上式中,W1,W2作为网络权重是可训练参数,<ciW1,cjW2>表示ciW1和cjW2的内积,ci为i位置字符向量,cj为j位置字符向量,cn为n位置字符向量,n为字符序号,j为该注意力权重对应字符的序号,i为窗内中心字符的序号,m为卷积窗大小的一半;
步骤1.1.3)中输出相量oi的计算函数表达式为:
oi=Concat(hi,wj,PEi),chari∈wordj
上式中,chari∈wordj表示第i个字符是第j个词的一部分,PEi则为该字符在序列中所处的位置编码得到的位置向量,hi为第i个字向量,wj为第k个词向量,j为词的序号,i为字符的序号。
可选地,步骤1.2)中膨胀门控线性模块的计算函数表达式为:
上式中,Y为输出,X为输入,α为中间变量,Conv2(X)表示编号为2的卷积运算,Conv1(X)表示编号为1的卷积运算,sigmoid表示sigmoid激活函数。
可选地,步骤1.3)中通过注意力层提取目标文本序列T的长距离依赖时,序列A={a1,a2,...,al}中的任意元素ai的计算函数表达式为:
上式中,n为文本长度,vj表示第j个字符通过编码层后的输出,ai表示第i个字符通过注意力层后的输出,ki,j为注意力权重,且注意力权重ki,j的计算函数表达式为:
可选地,步骤1.4)将序列A={a1,a2,...,al}输入训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP的详细步骤包括:将序列A分别通过两个不同的以softmax函数为激活函数的全连接层得到实体首部预测序列SP=(sp1,sp2,...,spn)和实体尾部预测序列EP=(ep1,ep2,...,epn);实体首部预测序列SP=(sp1,sp2,...,spn)中的任意元素spi表示第i个位置的字符是某类实体首部的概率,且概率值最大的那一类作为该位置的标签si=argmax(spi);实体尾部预测序列EP=(ep1,ep2,...,epn)中的任意元素epi表示第i个位置的字符是某类实体尾部的概率,且概率值最大的那一类作为该位置的标签ei=argmax(epi)。
可选地,步骤1)之前还包括训练K个中文命名实体识别CNN模型的步骤,且训练某一个中文命名实体识别CNN模型的步骤包括:
S1)从预设的样本库Dtrain={(xi tr,yi tr)}中取出一部分样本分为K份,且取出一份新的数据作为验证集,剩余的K-1份作为训练集,其中i=1,2,...,N,xi tr为文本序列,yi tr为该文本序列xi tr中包含的实体集合及实体的类型,N为训练集包含的样本个数;
S2)将训练集中样本的文本序列xi tr输入中文命名实体识别CNN模型,得到对应的首部概率预测序列SP和尾部概率预测序列EP;
S3)利用文本序列xi tr中包含的实体集合及实体的类型yi tr、文本序列xi tr进行独热映射生成真实首部概率序列Strue及真实尾部序列和Etrue,计算首部概率预测序列SP、真实首部概率序列Strue之间的相似度CE(SP,Strue),尾部概率预测序列EP、真实尾部序列和Etrue之间的相似度CE(EP,Etrue),其中CE为交叉熵,用于统计一个批次内所有样本的损失函数之和并求均值作为该批次的误差;构建损失函数Loss=CE(SP,Strue)+CE(EP,Etrue);
S4)通过误差反向传播和梯度下降训练模型参数,更新网络权重,并在一个批次的训练结束后传入验证集数据并计算验证集的损失函数Loss;
S5)跳转执行步骤S1)直至达到结束条件,最终完成当前中文命名实体识别CNN模型的训练。
此外,本发明还提供一种基于CNN和注意力机制的中文命名实体识别系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于CNN和注意力机制的中文命名实体识别方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行所述基于CNN和注意力机制的中文命名实体识别方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述基于CNN和注意力机制的中文命名实体识别方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明面向中文文本,从CNN的嵌入层算法和编码层算法入手,将局部注意力机制用于字嵌入,对CNN进行改造使其适应序列任务,提出了同时具备较强性能和较快计算速度的命名实体识别模型,在多个数据集上均有良好表现。
2、本发明面向中文文本,采用局部注意力卷积、膨胀门控线性模块、切片式解码等方式,对中文文本中的命名实体进行快速准确识别。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中基于CNN和注意力机制的命名实体识别方法示例图。
图3为本发明实施例中局部注意力权重示例图。
图4为本发明实施例中局部注意力卷积(LAC)结构。
图5为本发明实施例中膨胀门控线性模块(DGLU)计算结构。
图6为本发明实施例中膨胀卷积与普通卷积的对比示例图。
图7为本发明实施例中切片式算法运行流程示例图。
图8为本发明实施例中的5-fold交叉式训练图解。
具体实施方式
为更好的说明本发明的技术方案,下面结合附图和实例对本发明作进一步说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本实施例基于CNN和注意力机制的中文命名实体识别方法的实施步骤包括:
1)将目标文本序列传入预先训练好的K个中文命名实体识别CNN模型分别得到K个首部概率预测序列SP和尾部概率预测序列EP;中文命名实体识别CNN模型包含嵌入层、编码层、注意力层和输出层,且其中嵌入层为使用局部注意力卷积网络的嵌入层,编码层为基于膨胀门控线性模块的编码层;
2)将K个首部概率预测序列SP和尾部概率预测序列EP做均值平滑得到最终的首部概率预测序列SPte和尾部概率预测序列Epte以实现K个中文命名实体识别CNN模型的融合;
3)根据最终的首部概率预测序列Spte中各个首部概率预测结果spi计算每一个首部标签si=argmax(spi),根据最终的尾部概率预测序列EPte中各个首部概率预测结果epi计算每一个尾部标签ei=argmax(epi),从而得到由所有首部标签si构成的首部标签序列S以及由所有尾部标签ei构成的尾部标签序列E;
4)利用切片式解码方法结合目标文本序列、首部标签序列S以及尾部标签序列E解码得到目标文本序列所对应的实体集合yte。
如图2所示,本实施例的中文命名实体识别CNN模型包含嵌入层、编码层、注意力层和输出层,其中:嵌入层为使用局部注意力卷积网络(Local Attention Convolution,LAC)的嵌入层,针对现有模型性能依赖分词效果,无法处理未收录词的问题,嵌入层采用局部注意力卷积网络能够减轻了模型对分词效果的依赖。针对基于LSTM的方法计算速度较慢的问题,编码层使用了一种带门结构的卷积神经网络:膨胀门控线性模块(Dilated GatedLinear Unit,DGLU),使本实施例中方法能够进行样本内并行计算,提高了计算速度。
本实施例步骤1)中任意一个训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP的步骤包括:
1.1)将目标文本序列T通过使用局部注意力卷积网络的嵌入层获取输出向量序列O=(o1,o2,...,on),
1.2)将输出向量序列O通过基于膨胀门控线性模块的编码层提取目标文本序列T的高维特征;
1.3)将文本序列T的高维特征通过注意力层提取目标文本序列T的长距离依赖得到序列A={a1,a2,...,al},其中l为序列A的长度;
1.4)将序列A={a1,a2,...,al}输入训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP。
本实施例中,步骤1.1)的详细步骤包括:
1.1.1)将输入的文本序列T进行普通字嵌入得到n维的字向量序列C=(c1,c2,...,cn);
1.1.2)使用局部注意力卷积网络提取字向量序列C中各个字相量ci对应的含有词级别语义信息且融合了字符间依赖关系的字向量hi,得到字向量序列C对应的局部注意力卷积层输出序列H=(h1,h2,...,hn),其中i=1,2,...,n,n为字向量序列C的维度;
1.1.3)将预训练词向量作为特征拼接到字向量hi后面作为补充信息、将文本序列T中的每一个位置也编码为一个向量融入到字向量hi中得到对应字符的输出相量oi,从而得到所有字符的输出相量oi构成的输出向量序列O=(o1,o2,...,on)。
本实施例中,步骤1.1.2)中字向量hi的计算函数表达式为:
上式中,W3和b都是可训练参数,*表示二者之间的对应元素积,cj为j位置字符经普通字嵌入后得到的字向量,kj为注意力权重,dh为卷积层通道数,dc为字向量维度,k为注意力权重值,j为字符的序号,i为卷积窗中心字符的序号,m为卷积窗大小的一半;
上式中注意力权重kj的计算函数表达式为:
上式中,W1,W2作为网络权重是可训练参数,<ciW1,cjW2>表示ciW1和cjW2的内积,ci为i位置字符向量,cj为j位置字符向量,cn为n位置字符向量,n为字符序号,j为该注意力权重对应字符的序号,i为窗内中心字符的序号,m为卷积窗大小的一半。
本实施例中,步骤1.1.3)中输出相量oi的计算函数表达式为:
oi=Concat(hi,wj,PEi),chari∈wordj
上式中,chari∈wordj表示第i个字符是第j个词的一部分,PEi则为该字符在序列中所处的位置编码得到的位置向量,hi为第i个字向量,wj为第j个词向量,j为词的序号,i为字符的序号。
嵌入层的作用是将输入文本向量化,将文本中的词或字符转变为向量表示,以便进行后续计算。如今主流方法中嵌入层往往使用词嵌入方法,即以词为单位完成文本序列向量化。由于中文的词与词之间没有明确分界符,处理中文时基于词嵌入的方法性能严重依赖于分词结果。为了克服命名实体识别准确度对分词结果的依赖,本实施例提出了基于局部注意力卷积的字嵌入算法。对于一个文本序列T,本实施例先对其进行普通字嵌入得到dc维的字向量序列C=(c1,c2,...,cn)。通过字向量进行分析,发现字向量之间的依赖关系隐含了分词信息,以图3为例,矩阵中的每一个方格表示横轴字符与纵轴字符间归一化后的注意力权重,结果中“湾”这一字符与“海”这一字符的依赖关系明显强于窗内的另外三个字符,这表明隶属于同一个词的字向量之间具有更强的依赖关系。依赖关系中隐含了分词信息,将字向量与字向量间依赖关系整合即可得到词级别的信息。为了获取并整合字符向量间的依赖关系,本实施例使用了一种如图4所示的名为局部注意力卷积的结构提取序列的字符间依赖关系。对于通道数为dh的卷积网络,图3以第i个字符为中心,大小为2m+1的卷积窗为例。将窗内2m+1个字向量ci-m,...,ci,...,ci+m作为输入,首先计算各个字向量与中心字向量ci的注意力权重ki-m,...,ki,...,ki+m。将注意力权重ki-m,...,ki,...,ki+m与对应的字向量相乘并进行加和池化(Sum Pooling)即可得到通道数为dh的局部注意力卷积层在这一卷积窗的输出hi,该输出hi也是ci通过局部注意力卷积层后的对应输出。对于整个字向量序列C,可以得到一个局部注意力卷积层输出序列H=(h1,h2,...,hn),hi即为融合了字符间依赖关系的字向量,该字向量中含有词级别语义信息。为了使用来自外部的词级别信息及分词信息,将预训练词向量作为特征拼接到了利用局部注意力卷积处理后的字向量后面作为补充信息;为了赋予模型位置感,将序列中的灭一个位置也编码为一个向量,融入到字向量中。因而嵌入层的输出应为oi=Concat(hi,wj,PEi),chari∈wordj,oi即为一个字符经过嵌入层后的输出向量,一个文本序列经过嵌入层可以得到一个输出向量序列O=(o1,o2,...,on)。由于嵌入层的输出仍是字向量序列,模型后面的计算都是以字符为基本单位。相较于基于词向量的模型,这种嵌入方法的基础计算单元为字符,减轻了模型对分词结果的依赖,同时将通过两种途径获得的词级别信息融入了字向量。
本实施例中,步骤1.2)中膨胀门控线性模块(DGLU)的计算函数表达式为:
上式中,Y为输出,X为输入,α为中间变量,Conv2(X)表示编号为2的卷积运算,Conv1(X)表示编号为1的卷积运算,sigmoid表示sigmoid激活函数。
文本经过嵌入层处理后,将生成的字向量序列送入基于膨胀门控线性模块的编码层,提取文本序列的高维特征。膨胀门控线性模块是在CNN的基础上加入了膨胀卷积、门机制、残差结构改造得到的。膨胀门控线性模块(DGLU)的结构如图5所示,DGLU中的门结构体现了信息的选择性流动,加入的残差结构不仅可以克服梯度消失问题,提高训练稳定性,更重要的是提供了一种信息跨层传播的途径。由于DGLU中输入直接连接输出,信息可以实现跨层传播,即信息经过多层网络处理后仍保有一定量的原始输入信息。这种信息跨层传播的机制所起的作用与LSTM的记忆门类似,带残差结构的门控机制赋予了CNN一定程度的记忆能力。卷积神经网络需要较大的感受野处理长序列。为了在模型层数较小的情况下获取较大的感受野,DGLU使用了膨胀卷积。如图6所示,图中上侧为两层普通卷积,感受野为5;下侧为膨胀率依次为1,2的两层膨胀卷积,感受野为7。膨胀卷积的工作机制为跳过于中心直接相邻的p-1个输入,与中心及与中心相邻的第p个输入连接,p为膨胀卷积的膨胀率。图2中膨胀门控线性模块使用了卷积核大小为3,膨胀率依次为1,2,4,1的四层膨胀卷积,编码层使用了两个该模块取得了33的感受野,使用普通卷积需要堆叠15层才能获得相同的感受野。通过使用膨胀卷积,网络可以在层数较小的情况下取得较大的感受野。
本实施例中,步骤1.3)中通过注意力层提取目标文本序列T的长距离依赖时,序列A={a1,a2,...,al}中的任意元素ai的计算函数表达式为:
上式中,n为文本长度,vj表示第j个字符通过编码层后的输出,ai表示第i个字符通过注意力层后的输出,ki,j为注意力权重,且注意力权重ki,j的计算函数表达式为:
注意力层用来获取句子级别的信息,可以提取长距离依赖,并对编码层信息进行整合。本实施例在注意力层使用了全局自注意力(Global Self Attention)机制,其结构如图2中所示。全局注意力形式与局部注意力形式基本一致,只是作用域不同,局部注意力仅作用于卷积窗内,全局注意力则作用于整个文本。
本实施例中,步骤1.4)将序列A={a1,a2,...,al}输入训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP的详细步骤包括:将序列A分别通过两个不同的以softmax函数为激活函数的全连接层得到实体首部预测序列SP=(sp1,sp2,...,spn)和实体尾部预测序列EP=(ep1,ep2,...,epn);实体首部预测序列SP=(sp1,sp2,...,spn)中的任意元素spi表示第i个位置的字符是某类实体首部的概率,且概率值最大的那一类作为该位置的标签si=argmax(spi);实体尾部预测序列EP=(ep1,ep2,...,epn)中的任意元素epi表示第i个位置的字符是某类实体尾部的概率,且概率值最大的那一类作为该位置的标签ei=argmax(epi)。
输出层的作用是从向量序列中解码出实体,使用切片式解码算法解码实体,可以达到与经典CRF解码算法相近的效果,且训练速度和预测速度都更快。对于注意力层的输出A=(a1,a2,...,an),分别通过两个不同的以softmax函数为激活函数的全连接层(FullConnected Layer,FCL),得到一个实体首部预测序列SP=(sp1,sp2,...,spn)和一个实体尾部预测序列EP=(ep1,ep2,...,epn):
spi、epi表示第i个位置的字符是某类实体首部、尾部的概率,取概率值最大的那一类作为该位置的标签:
si,ei∈{0,1,...,q},q为实体类别数,0表示该位置字符不是任何一类实体的首部或尾部。
切片式解码方法的步骤包括:针对首部标签序列S中找到的每一个首部标签位置:首先在尾部标签序列E中找到对应的尾部标签位置,然后将文本序列T中位于首部标签位置、尾部标签位置之间的字符作为切片式解码提取出来的实体。如图7所示,使用切片式解码算法对首部标签序列S和尾部标签序列E进行处理时,针对首部标签序列S中序号为1的首部标签位置切片式解码提取出实体“张大干”,针对首部标签序列S中序号为2的首部标签位置切片式解码提取出实体“纽约”,从而将实体(张大干和纽约)从文本序列T中提取出来。
本实施例中,步骤1)之前还包括训练K个中文命名实体识别CNN模型的步骤,且训练某一个中文命名实体识别CNN模型的步骤包括:
S1)从预设的样本库Dtrain={(xi tr,yi tr)}中取出一部分样本分为K份,且取出一份新的数据作为验证集,剩余的K-1份作为训练集,其中i=1,2,...,N,xi tr为文本序列,yi tr为该文本序列xi tr中包含的实体集合及实体的类型,N为训练集包含的样本个数;
S2)将训练集中样本的文本序列xi tr输入中文命名实体识别CNN模型,得到对应的首部概率预测序列SP和尾部概率预测序列EP;
S3)利用文本序列xi tr中包含的实体集合及实体的类型yi tr、文本序列xi tr进行独热映射生成真实首部概率序列Strue及真实尾部序列和Etrue,计算首部概率预测序列SP、真实首部概率序列Strue之间的相似度CE(SP,Strue),尾部概率预测序列EP、真实尾部序列和Etrue之间的相似度CE(EP,Etrue),其中CE为交叉熵,用于统计一个批次内所有样本的损失函数之和并求均值作为该批次的误差;构建损失函数Loss=CE(SP,Strue)+CE(EP,Etrue);
S4)通过误差反向传播和梯度下降训练模型参数,更新网络权重,并在一个批次的训练结束后传入验证集数据并计算验证集的损失函数Loss;
S5)跳转执行步骤S1)直至达到结束条件,最终完成当前中文命名实体识别CNN模型的训练。
本实施例中训练K个中文命名实体识别CNN模型采用经典的K-fold训练方式对模型进行训练,图8给出了5-fold(K=5)的示例图。5-fold将训练集分为5份,每次使用其中(5-1)份训练,剩下的1份用于验证,重复上述步骤S1)~S5)一共5次,最终得到5个中文命名实体识别CNN模型(模型1~模型5),在使用时可将这5个中文命名实体识别CNN模型集成融合。训练过程输入:模型超参数及训练设置;随机初始化的模型权重;训练集Dtrain={(xi tr,yi tr),i=1,2,…,N,xi tr为文本序列,yi tr为该文本序列中包含的实体集合及实体的类型};测试集字符编号对照表I2C={i:chari,i<n,n为文本中出现次数超过3的字符数量};预训练词向量对照表W2V={wordj:vectorj,j<m,m为经过分词处理后得到的词语个数}。训练过程输出:测试集文本中包含的实体集合及实体类型yte。
在训练阶段的步骤包括:
Step1:将训练集Dtrain中以K-fold训练方式分为K份,取其中的1份作为验证集,剩余的一份作为训练集。利用I2C将文本序列中的字符转变为编号后,将编号序列通过基于LAC的嵌入层进行字嵌入得到向量化后的字符序列为O=(o1,o2,...,on),oi=Concat(hi,vectorj,PEi),vectorj=W2V(wordj)且chari∈wordj,位置向量PEi则可以直接构造。W2V为词转换向量工具。
Step 2:将字符序列O送入模型的编码层及注意力层,对序列进一步处理,提取高维特征及长距离依赖,文本序列转换为序列A={a1,a2,...,al},l为序列A的长度。
Step 3:将序列A传入输出层,得到首部概率预测序列SP和尾部概率预测序列EP。利用yi tr结合xi tr进行One-Hot映射生成真实首部概率序列及真实尾部序列Strue和Etrue,计算预测序列与真实序列之间的相似度作为损失函数Loss=CE(SP,Strue)+CE(EP,Etrue)。CE为交叉熵,统计一个批次内所有样本的损失函数之和并求均值作为该批次的误差。
Step 4:通过误差反向传播和梯度下降训练模型参数,更新网络权重,并在一个批次的训练结束后传入验证集数据并计算验证集损失函数Loss。
Step 5:循环执行上述Step 1~Step 4,直至达到结束条件(验证集损失函数Loss连续3个批次没有下降)。
Step 6:从训练集Dtrain中取出一份新的数据作为验证集,剩余的K-1份作为训练集,重复K次Step 1~Step 5,直至每一份数据都作为验证集使用过,得到K个中文命名实体识别CNN模型。
在测试阶段的步骤包括:
Step 1:将测试集Dtest中文本传入训练阶段得到的所有模型得到K个首部概率预测序列和尾部概率预测序列,将K个首部概率预测序列和尾部概率预测序列做均值平滑得到最终的两个序列SPte,EPte以实现K个模型的融合。
Step 2:si=argmax(spi),ei=argmax(epi),得到标签序列S和E。利用切片式解码方法结合文本序列、S以及E解码得到实体集合yte。
本实施例中对中文命名实体识别针对中文新闻及社交媒体数据集展开,使用当前公开的MSRA数据集及Weibo数据集(数据集信息如表1所示)。MSRA数据集将实体分为“地点”、“人物”、“机构”三类;Weibo数据集根据实体的含义将实体分为4类:ORG、PER、LOC、GPE,但同时根据实体的表述形式将所有实体分为两个大类:明确的命名实体如“张三”这一人名和泛指实体如“学生”这一宽泛概念。
表1:中文命名实体识别数据集。
数据集 | 样本数 | 实体类别数 | 数据来源 |
MSRA | 50730 | 3 | 微软亚研院 |
1890 | 4*2 | 微博 |
本实施例使用F1值评价模型性能,训练所用优化器为Radam,初始学习率设置为5e-4,字向量维度、词向量维度、位置向量维度设置为128、128、256,嵌入层卷积核大小设置为5,编码层卷积核大小设置为3。作为对照实验,本实施例选用了当前命名实体识别领域的主流模型:Huang等于2015年提出的BiLSTM-CRF模型,并选取两种先进方法:Cao等于2018年提出的对抗迁移学习方法(Adversarial Transfer Learning,ATL),Zhang等于2018年提出的网格长短时记忆网络(Lattice-LSTM)。所有对比方法在相同的实验数据及设置条件下运行,其对比结果如表2所示。
表2:中文命名实体识别实施例测试F1值。
对比方法 | MSRA(%) | Weibo(%) |
BiLSTM-CRF | 89.99 | 54.22 |
ATL | 90.64 | 58.7 |
Lattice-LSTM | 93.18 | 58.79 |
本方法 | 93.4 | 59.23 |
为了分析计算速度,MSRA数据集训练过程中各个模型处理一轮数据的耗时如表3所示。
表3:MSRA数据集各模型训练耗时对比。
对比方法 | 耗时(秒) | 速度比 |
BiLSTM-CRF | 2331 | 1.57× |
ATL | 3273 | 1.12× |
Lattice-LSTM | 3665 | 1× |
本方法 | 508 | 7.21× |
从上表中可以看出,相较于BiLSTM-CRF、ATL以及Lattice-LSTM,本实施例基于CNN和注意力机制的中文命名实体识别方法(本方法)在MSRA数据集和Weibo数据集上均取得了最好的F1值,且训练速度取得了较大提升,表明基于局部注意力卷积的嵌入算法可以减轻模型对分词的依赖,提高模型性能;使用膨胀门控线性单元替换LSTM可以避开循环神经网络无法进行并行计算的缺点,在保证模型性能的基础上提高计算速度。
此外,本实施例还提供一种基于CNN和注意力机制的中文命名实体识别系统,包括计算机设备,该计算机设备被编程或配置以执行本实施例前述基于CNN和注意力机制的中文命名实体识别方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行本实施例前述基于CNN和注意力机制的中文命名实体识别方法的计算机程序。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行本实施例前述基于CNN和注意力机制的中文命名实体识别方法的计算机程序。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于CNN和注意力机制的中文命名实体识别方法,其特征在于实施步骤包括:
1)将目标文本序列传入预先训练好的K个中文命名实体识别CNN模型分别得到K个首部概率预测序列SP和尾部概率预测序列EP;所述中文命名实体识别CNN模型包含嵌入层、编码层、注意力层和输出层,且其中嵌入层为使用局部注意力卷积网络的嵌入层,编码层为基于膨胀门控线性模块的编码层;
2)将K个首部概率预测序列SP和尾部概率预测序列EP做均值平滑得到最终的首部概率预测序列SPte和尾部概率预测序列Epte以实现K个中文命名实体识别CNN模型的融合;
3)根据最终的首部概率预测序列SPte中各个首部概率预测结果spi计算每一个首部标签si=argmax(spi),根据最终的尾部概率预测序列EPte中各个首部概率预测结果epi计算每一个尾部标签ei=argmax(epi),从而得到由所有首部标签si构成的首部标签序列S以及由所有尾部标签ei构成的尾部标签序列E;
4)利用切片式解码方法结合目标文本序列、首部标签序列S以及尾部标签序列E解码得到目标文本序列所对应的实体集合yte。
2.根据权利要求1所述的基于CNN和注意力机制的中文命名实体识别方法,其特征在于,步骤1)中任意一个训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP的步骤包括:
1.1)将目标文本序列T通过使用局部注意力卷积网络的嵌入层获取输出向量序列O=(o1,o2,...,on),
1.2)将输出向量序列O通过基于膨胀门控线性模块的编码层提取目标文本序列T的高维特征;
1.3)将文本序列T的高维特征通过注意力层提取目标文本序列T的长距离依赖得到序列A={a1,a2,...,al},其中l为序列A的长度;
1.4)将序列A={a1,a2,...,al}输入训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP。
3.根据权利要求2所述的基于CNN和注意力机制的中文命名实体识别方法,其特征在于,步骤1.1)的详细步骤包括:
1.1.1)将输入的文本序列T进行普通字嵌入得到n维的字向量序列C=(c1,c2,...,cn);
1.1.2)使用局部注意力卷积网络提取字向量序列C中各个字相量ci对应的含有词级别语义信息且融合了字符间依赖关系的字向量hi,得到字向量序列C对应的局部注意力卷积层输出序列H=(h1,h2,...,hn),其中i=1,2,...,n,n为字向量序列C的维度;
1.1.3)将预训练词向量作为特征拼接到字向量hi后面作为补充信息、将文本序列T中的每一个位置也编码为一个向量融入到字向量hi中得到对应字符的输出相量oi,从而得到所有字符的输出相量oi构成的输出向量序列O=(o1,o2,...,on)。
4.根据权利要求3所述的基于CNN和注意力机制的中文命名实体识别方法,其特征在于,步骤1.1.2)中字向量hi的计算函数表达式为:
上式中,W3和b都是可训练参数,*表示二者之间的对应元素积,cj为j位置字符经普通字嵌入后得到的字向量,kj为注意力权重,dh为卷积层通道数,dc为字向量维度,k为注意力权重值,j为字符的序号,i为卷积窗中心字符的序号,m为卷积窗大小的一半;
上式中注意力权重kj的计算函数表达式为:
上式中,W1,W2作为网络权重是可训练参数,<ciW1,cjW2>表示ciW1和cjW2的内积,ci为i位置字符向量,cj为j位置字符向量,cn为n位置字符向量,n为字符序号,j为该注意力权重对应字符的序号,i为窗内中心字符的序号,m为卷积窗大小的一半;
步骤1.1.3)中输出相量oi的计算函数表达式为:
oi=Concat(hi,wj,PEi),chari∈wordj
上式中,chari∈wordj表示第i个字符是第j个词的一部分,PEi则为该字符在序列中所处的位置编码得到的位置向量,hi为第i个字向量,wj为第j个词向量,j为词的序号,i为字符的序号。
7.根据权利要求2所述的基于CNN和注意力机制的中文命名实体识别方法,其特征在于,步骤1.4)将序列A={a1,a2,...,al}输入训练好的中文命名实体识别CNN模型得到首部概率预测序列SP和尾部概率预测序列EP的详细步骤包括:将序列A分别通过两个不同的以softmax函数为激活函数的全连接层得到实体首部预测序列SP=(sp1,sp2,...,spn)和实体尾部预测序列EP=(ep1,ep2,...,epn);实体首部预测序列SP=(sp1,sp2,...,spn)中的任意元素spi表示第i个位置的字符是某类实体首部的概率,且概率值最大的那一类作为该位置的标签si=argmax(spi);实体尾部预测序列EP=(ep1,ep2,...,epn)中的任意元素epi表示第i个位置的字符是某类实体尾部的概率,且概率值最大的那一类作为该位置的标签ei=argmax(epi)。
8.根据权利要求1所述的基于CNN和注意力机制的中文命名实体识别方法,其特征在于,步骤1)之前还包括训练K个中文命名实体识别CNN模型的步骤,且训练某一个中文命名实体识别CNN模型的步骤包括:
S1)从预设的样本库Dtrain={(xi tr,yi tr)}中取出一部分样本分为K份,且取出一份新的数据作为验证集,剩余的K-1份作为训练集,其中i=1,2,...,N,xi tr为文本序列,yi tr为该文本序列xi tr中包含的实体集合及实体的类型,N为训练集包含的样本个数;
S2)将训练集中样本的文本序列xi tr输入中文命名实体识别CNN模型,得到对应的首部概率预测序列SP和尾部概率预测序列EP;
S3)利用文本序列xi tr中包含的实体集合及实体的类型yi tr、文本序列xi tr进行独热映射生成真实首部概率序列Strue及真实尾部序列和Etrue,计算首部概率预测序列SP、真实首部概率序列Strue之间的相似度CE(SP,Strue),尾部概率预测序列EP、真实尾部序列和Etrue之间的相似度CE(EP,Etrue),其中CE为交叉熵,用于统计一个批次内所有样本的损失函数之和并求均值作为该批次的误差;构建损失函数Loss=CE(SP,Strue)+CE(EP,Etrue);
S4)通过误差反向传播和梯度下降训练模型参数,更新网络权重,并在一个批次的训练结束后传入验证集数据并计算验证集的损失函数Loss;
S5)跳转执行步骤S1)直至达到结束条件,最终完成当前中文命名实体识别CNN模型的训练。
9.一种基于CNN和注意力机制的中文命名实体识别系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~8中任意一项所述基于CNN和注意力机制的中文命名实体识别方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行权利要求1~8中任意一项所述基于CNN和注意力机制的中文命名实体识别方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~8中任意一项所述基于CNN和注意力机制的中文命名实体识别方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911150480.9A CN110969020B (zh) | 2019-11-21 | 2019-11-21 | 基于cnn和注意力机制的中文命名实体识别方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911150480.9A CN110969020B (zh) | 2019-11-21 | 2019-11-21 | 基于cnn和注意力机制的中文命名实体识别方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110969020A CN110969020A (zh) | 2020-04-07 |
CN110969020B true CN110969020B (zh) | 2022-10-11 |
Family
ID=70031212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911150480.9A Active CN110969020B (zh) | 2019-11-21 | 2019-11-21 | 基于cnn和注意力机制的中文命名实体识别方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110969020B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581957B (zh) * | 2020-05-06 | 2022-04-12 | 浙江大学 | 一种基于金字塔层级网络的嵌套实体检测方法 |
CN111914097A (zh) * | 2020-07-13 | 2020-11-10 | 吉林大学 | 基于注意力机制和多层级特征融合的实体抽取方法与装置 |
CN112199953B (zh) * | 2020-08-24 | 2024-06-28 | 广州九四智能科技有限公司 | 一种电话通话中信息提取方法、装置及计算机设备 |
CN112101009B (zh) * | 2020-09-23 | 2024-03-26 | 中国农业大学 | 一种基于知识图谱的红楼梦人物关系框架相似度评判方法 |
CN112257417A (zh) * | 2020-10-29 | 2021-01-22 | 重庆紫光华山智安科技有限公司 | 一种多任务命名实体识别训练方法、介质及终端 |
CN112487813B (zh) * | 2020-11-24 | 2024-05-10 | 中移(杭州)信息技术有限公司 | 命名实体识别方法及系统、电子设备及存储介质 |
CN114548102B (zh) * | 2020-11-25 | 2024-07-19 | 株式会社理光 | 实体文本的序列标注方法、装置及计算机可读存储介质 |
CN112507719A (zh) * | 2020-12-18 | 2021-03-16 | 北京百度网讯科技有限公司 | 命名实体识别方法、装置、电子设备及存储介质 |
CN112989834B (zh) * | 2021-04-15 | 2021-08-20 | 杭州一知智能科技有限公司 | 一种基于平格增强线性转换器的命名实体识别方法和系统 |
CN113377953B (zh) * | 2021-05-31 | 2022-06-21 | 电子科技大学 | 一种基于palc-dca模型的实体融合及分类方法 |
CN113610221B (zh) * | 2021-06-29 | 2024-02-13 | 西安电子科技大学 | 一种基于fpga的可变膨胀卷积运算硬件系统 |
CN113886522B (zh) * | 2021-09-13 | 2022-12-02 | 苏州空天信息研究院 | 一种基于路径扩展的非连续实体识别方法 |
CN113887169A (zh) * | 2021-09-28 | 2022-01-04 | 阿里巴巴达摩院(杭州)科技有限公司 | 文本处理方法、电子设备、计算机存储介质及程序产品 |
CN114462412B (zh) * | 2022-02-14 | 2023-05-12 | 平安科技(深圳)有限公司 | 实体识别方法、装置、电子设备及存储介质 |
CN114330323B (zh) * | 2022-03-08 | 2022-06-28 | 成都数联云算科技有限公司 | 实体关系联合抽取方法、装置、计算机终端及存储介质 |
CN114648029A (zh) * | 2022-03-31 | 2022-06-21 | 河海大学 | 一种基于BiLSTM-CRF模型的电力领域命名实体识别方法 |
CN114510946B (zh) * | 2022-04-21 | 2022-08-23 | 山东师范大学 | 基于深度神经网络的中文命名实体识别方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657239A (zh) * | 2018-12-12 | 2019-04-19 | 电子科技大学 | 基于注意力机制和语言模型学习的中文命名实体识别方法 |
CN109933801A (zh) * | 2019-03-25 | 2019-06-25 | 北京理工大学 | 基于预测位置注意力的双向lstm命名实体识别方法 |
-
2019
- 2019-11-21 CN CN201911150480.9A patent/CN110969020B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657239A (zh) * | 2018-12-12 | 2019-04-19 | 电子科技大学 | 基于注意力机制和语言模型学习的中文命名实体识别方法 |
CN109933801A (zh) * | 2019-03-25 | 2019-06-25 | 北京理工大学 | 基于预测位置注意力的双向lstm命名实体识别方法 |
Non-Patent Citations (2)
Title |
---|
关于命名实体识别的生成式对抗网络的研究;冯建周等;《小型微型计算机系统》;20190614(第06期);全文 * |
基于多注意力的中文命名实体识别;顾凌云;《信息与电脑(理论版)》;20190515(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110969020A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110969020B (zh) | 基于cnn和注意力机制的中文命名实体识别方法、系统及介质 | |
CN110298037B (zh) | 基于增强注意力机制的卷积神经网络匹配的文本识别方法 | |
CN110245229B (zh) | 一种基于数据增强的深度学习主题情感分类方法 | |
CN108733742B (zh) | 全局归一化阅读器系统和方法 | |
CN104834747B (zh) | 基于卷积神经网络的短文本分类方法 | |
CN112733866B (zh) | 一种提高可控图像文本描述正确性的网络构建方法 | |
CN111027595B (zh) | 双阶段语义词向量生成方法 | |
CN109948149B (zh) | 一种文本分类方法及装置 | |
CN110263325B (zh) | 中文分词系统 | |
CN107480143A (zh) | 基于上下文相关性的对话话题分割方法和系统 | |
CN114169330A (zh) | 融合时序卷积与Transformer编码器的中文命名实体识别方法 | |
CN108108354B (zh) | 一种基于深度学习的微博用户性别预测方法 | |
CN111400494B (zh) | 一种基于GCN-Attention的情感分析方法 | |
CN113204952A (zh) | 一种基于聚类预分析的多意图与语义槽联合识别方法 | |
CN110276396B (zh) | 基于物体显著性和跨模态融合特征的图片描述生成方法 | |
CN113220865B (zh) | 一种文本相似词汇检索方法、系统、介质及电子设备 | |
CN109614611B (zh) | 一种融合生成非对抗网络与卷积神经网络的情感分析方法 | |
CN114691864A (zh) | 文本分类模型训练方法及装置、文本分类方法及装置 | |
Grzegorczyk | Vector representations of text data in deep learning | |
CN111723572B (zh) | 基于CNN卷积层和BiLSTM的中文短文本相关性度量方法 | |
CN115687609A (zh) | 一种基于Prompt多模板融合的零样本关系抽取方法 | |
CN114036938B (zh) | 一种融合主题信息和词向量提取文本特征的新闻分类方法 | |
Prabhakar et al. | Performance analysis of hybrid deep learning models with attention mechanism positioning and focal loss for text classification | |
CN111813927A (zh) | 一种基于主题模型和lstm的句子相似度计算方法 | |
CN113626553B (zh) | 一种基于预训练模型的级联二进制中文实体关系提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |