一种中文句子的命名实体识别方法及装置

文档序号:24821401发布日期:2021-04-27 14:44阅读:116来源:国知局
一种中文句子的命名实体识别方法及装置

1.本发明涉及自然语言处理技术领域,具体涉及一种中文句子的命名实体识别方法及装置。


背景技术:

2.命名实体识别的主要任务是识别出非结构化文本中具有特定意义的实体,主要包括人名、地名、机构名以及专有名词等。其和分词、依存句法分析等任务一起作为自然语言处理任务中最重要的基础任务,在诸多下游任务中承担着基石的作用,其识别的效果往往很大程度决定了下游任务能达到的高度。尤其在信息抽取任务中,其更是作为一个决定性的基础任务而存在。
3.中文句子的命名实体识别是中文自然语言处理领域中的一个重要子课题。然而由于中文表述的多样性,实体的语义通常是与上下文语义高度相关的,并且由于中文文本中缺少中文词的分隔符,导致词边界模糊难以判断使得中文实体识别的任务难度很大。除此之外,由于主流的实体识别均是基于序列标注的方式来做,这就使得训练集标注成本很高,从而使得许多实体识别任务均因为缺乏足量的训练集而限制了其模型的识别效果。


技术实现要素:

4.本发明的目的是针对上述现有技术的不足提出的一种中文句子的命名实体识别方法及装置,该目的是通过以下技术方案实现的。
5.本发明的第一方面提出了一种中文句子的命名实体识别方法,所述方法包括:
6.将中文字符序列输入已训练的实体识别模型,以由本实体识别模型通过字符嵌入层将所述中文字符序列中的每个字符转换为字向量,并输出到本实体识别模型中的卷积网络,以由所述卷积网络对每个字向量进行卷积运算得到局部语义向量,并输出到本实体识别模型中的自适应结合层,以由所述自适应结合层对每个字符的局部语义向量进行注意力计算后与对应的字向量拼接得到表征向量,并输出到本实体识别模型中的序列建模网络,以由所述序列建模网络对每个字符的表征向量进行隐层建模,并将建模得到的隐层向量输出到本实体识别模型中的标签推理层计算每个字符的隐层向量对应的标签;
7.获取所述实体识别模型输出的标签序列并作为命名实体识别结果。
8.本发明的第二方面提出了一种中文句子的命名实体识别装置,所述装置包括:
9.实体识别模块,用于将中文字符序列输入已训练的实体识别模型,以由本实体识别模型通过字符嵌入层将所述中文字符序列中的每个字符转换为字向量,并输出到本实体识别模型中的卷积网络,以由所述卷积网络对每个字向量进行卷积运算得到局部语义向量,并输出到本实体识别模型中的自适应结合层,以由所述自适应结合层对每个字符的局部语义向量进行注意力计算后与对应的字向量拼接得到表征向量,并输出到本实体识别模型中的序列建模网络,以由所述序列建模网络对每个字符的表征向量进行隐层建模,并将建模得到的隐层向量输出到本实体识别模型中的标签推理层计算每个字符的隐层向量对
应的标签;
10.获取模块,用于获取所述实体识别模型输出的标签序列并作为命名实体识别结果。
11.本发明的第三方面提出了一种电子设备,包括可读存储介质和处理器;
12.其中,所述可读存储介质,用于存储机器可执行指令;
13.所述处理器,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现上述第一方面所述方法的步骤。
14.本发明的第四方面提出了一种芯片,包括可读存储介质和处理器;
15.其中,所述可读存储介质,用于存储机器可执行指令;
16.所述处理器,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现上述第一方面所述方法的步骤。
17.基于上述第一方面和第二方面所述的中文句子的命名实体识别方法及装置,本发明具有如下有益效果:
18.通过将中文字符序列输入实体识别模型中,通过卷积网络提取每个字符的局部语义信息后,与对应的潜在词基于字词间注意力自适应计算实现字词信息融合,从而充分且合理的实现潜在词信息的利用,避免了词边界错误传递的问题,进而达到了对中文实体识别任务的优化目的。
附图说明
19.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
20.图1为本发明根据一示例性实施例示出的一种中文句子的命名实体识别方法的实施例流程图;
21.图2为本发明根据一示例性实施例示出的一种实体识别模型结构示意图;
22.图3为本发明根据一示例性实施例示出的一种词典匹配示例图;
23.图4为本发明根据一示例性实施例示出的一种电子设备的硬件结构图;
24.图5为本发明根据一示例性实施例示出的一种中文句子的命名实体识别装置的结构示意图。
具体实施方式
25.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
26.在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
27.应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这
些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
28.在现有技术中,词边界模糊问题对中文实体识别效果影响很明显,比如,“北京市长春桥”这句话在中文分词中可被分为“北京/市长/春桥”,这样就会导致“北京市(ns)/长春桥(ns)”可能被错误识别为“北京(ns)/市长/春桥(nr)”,导致词信息损失。
29.为解决上述技术问题,本发明提出一种改进的中文命名实体识别方法,下面以具体实施例对中文句子的命名实体识别方法进行详细阐述。
30.图1为本发明根据一示例性实施例示出的一种中文句子的命名实体识别方法的实施例流程图,该中文句子的命名实体识别方法可以应用在电子设备上,结合图2所示的实体识别模型结构,本实体识别模型结构是预先训练得到的,包括字符嵌入层、卷积网络、自适应结合层、序列建模网络、标签推理层、潜在词嵌入层。如图1所示,该中文句子的命名实体识别方法包括如下步骤:
31.步骤101:将中文字符序列输入已训练的实体识别模型,以由本实体识别模型通过字符嵌入层将所述中文字符序列中的每个字符转换为字向量,并输出到本实体识别模型中的卷积网络,以由所述卷积网络对每个字向量进行卷积运算得到局部语义向量,并输出到本实体识别模型中的自适应结合层,以由所述自适应结合层对每个字符的局部语义向量进行注意力计算后与对应的字向量拼接得到表征向量,并输出到本实体识别模型中的序列建模网络,以由所述序列建模网络对每个字符的表征向量进行隐层建模,并将建模得到的隐层向量输出到本实体识别模型中的标签推理层计算每个字符的隐层向量对应的标签。
32.在一实施例中,针对字符嵌入层将中文字符序列中的每个字符转换为字向量过程,针对中文字符序列中的每个字符,通过在已训练的字向量表中查找该字符对应的字向量。
33.具体地,参见图2所示的字符嵌入层的输出,对于输入的中文句子可以看作是一个中文字符序列s={c1,c2,

,c
n
}∈v
c
,其中n为输入中文句子的长度,v
c
为字符词典。每一个字符ci都会基于预先训练好的字向量表作字符嵌入得到其对应的字向量,其中d
c
为字向量的维度,m
c
为字符词表的大小:
34.x
ic
=e
c
(c
i
)
35.从而,得到字符嵌入层输出的字向量序列为{x
1c
,x
2c
,...,x
nc
}。
36.在本实施例中,由于句子的局部语义信息对于实体识别效果有着重要作用,如“张自忠路”与“先烈张自忠”都有张自忠一词,但其在前一个中为地名,而在后一个中为人名,同时该局部语义信息对于后续的字词间注意力计算也可提供局部语义支撑。
37.基于此,针对卷积网络对每个字向量进行卷积运算得到局部语义向量的过程,针对每个字向量,可以通过本卷积网络中的第一卷积层对该字向量进行卷积运算,并输出给本卷积网络的第二卷积层,第二卷积层对第一卷积层得到的向量再进行卷积运算得到该字向量的局部语义向量。
38.其中,在卷积网络中,第一卷积层包括多个同样大小的卷积核,第二卷积层包括多个同样大小的卷积核,但两个卷积层中的卷积核大小不同。
39.具体地,参见图2所示,输入的中文字符序列s经过了字符嵌入层后输出的是字向量序列{x
1c
,x
2c
,...,x
nc
},用表示卷积网络中的一个卷积核,其中k代表卷积核的大小,d
c
表示字向量的维度,则由该卷积核卷积得到第i个字符包含的局部语义的向量计算公式如下:
[0040][0041]
其中,表示以第i个字符为中心的上下文窗口的字符嵌入拼接矩阵,f为激活函数,具体可以是relu。
[0042]
在卷积网络中的第二卷积层使用了多个卷积核来学习局部语义信息,假设卷积核个数为d
cnn
。第i个字符的局部语义向量为第二卷积层中所有卷积核输出的串联,由此可得卷积网络的输出为a={a1,a2,

,a
n
},其中
[0043]
需要说明的是,由于中文词信息通常是理解中文的最小语义单元,为了提高中文实体识别的效果,本发明通过引入中文词信息,以避免词边界错误传递的问题。
[0044]
基于此,参见图2所示的潜在词嵌入层和自适应结合层,下面分两步介绍中文词信息(即潜在词信息)的利用过程:
[0045]
首先,针对潜在词嵌入层获取每个字符对应的所有潜在词的词向量矩阵的过程,通过将中文字符序列与预先构建的字典树进行匹配,以获得子字符串,并将每个子字符串与已训练的词典进行匹配,以获取匹配成功的子字符串,然后将匹配成功的子字符串与其包含的字符进行关联,以得到每个字符的潜在词集合,并针对每个字符,在词向量表中查询该字符的潜在词集合中每个潜在词的词向量以组成该字符的词向量矩阵。
[0046]
其中,字典树由预先训练好的词典中的词构建得到。
[0047]
具体地,基于大规模语料预训练得到一个大的词典及词向量表m
w
为词向量表的大小,d
w
为词向量的维度,利用词典d与中文字符序列的所有子字符串进行匹配,得到所有的潜在词,并将匹配成功的子字符串与其包含的字符做关联得到各个字符的潜在词集合,公式如下:
[0048][0049]
需要说明的是,如果某个字符的潜在词集合为空时,用“none”填充。
[0050]
对于非空的潜在词集合,通过查询词向量表e
w
得到词向量矩阵,公式如下:
[0051][0052]
结合图2和图3所示,以“张三家在江东北路”为例,经过词典匹配后,可以得到每个字符的潜在词集合,如其中的“东”对应的潜在词集合为:
[0053]
a(c6)={w
5,6
(“江东”),w
6,6
(“东”),w
6,7
(“东北”),w
5,8
(“江东北路”)}
[0054]
其次,针对自适应结合层对每个字符的局部语义向量进行注意力计算后与对应的字向量拼接得到表征向量的过程,通过接收本实体识别模型中潜在词嵌入层输出的每个字符对应的所有潜在词的词向量矩阵,并针对每个字符,将该字符的局部语义向量与词向量矩阵进行注意力计算,并将注意力计算结果与该字符的字向量进行拼接得到该字符的表征
向量。
[0055]
具体地,由于各个字符对应的潜在词之间是互斥的,因此只有一种潜在词符合真实语义,因此本发明通过计算字词间注意力的方式将具体的潜在词选择交由模型完成,本发明将字符的局部语义向量与词向量进行注意力计算的公式如下:
[0056][0057]
其中,均为自适应结合层的参数矩阵,d
model1
=h
cw
×
d
head1
,且d
model1
与卷积网络输出的局部语义向量的维度相等,h
cw
为注意力头数,d
head1
为一个注意力头的向量维度,softmax为归一化函数。
[0058]
然后,将注意力计算结果与字符的局部语义向量进行残差连接,并与字符的字向量拼接,得到字符的表征向量y
i
,公式如下:
[0059][0060]
在一实施例中,参见图2所示,将自适应结合层输出的每个字符的表征向量输入序列建模网络中,以更好的建模字符间的序列依赖。具体实现过程包括:通过本序列建模网络中的前向长短时记忆网络对每个字符的表征向量进行隐层建模得到每个字符的前向隐层向量,通过本序列建模网络中的后向长短时记忆网络对每个字符的表征向量进行隐层建模得到每个字符的后向隐层向量,最后通过本序列建模网络中的拼接层对每个字符的前向隐层向量和后向隐层向量分别进行拼接得到每个字符的隐层向量,隐层向量序列表示为h={h1,h2,...,h
n
}。
[0061]
其中,前向长短时记忆网络和后向长短时记忆网络均为lstm(long short term memory networks,长短期记忆网络)网络。
[0062]
本领域技术人员可以理解的是,实体识别模型中的标签推理层可以采用条件随机场算法在所有可能的标签序列中,找到条件概率最大的序列即为最终的标签序列。
[0063]
步骤102:获取实体识别模型输出的标签序列并作为命名实体识别结果。
[0064]
基于上述图2中所示,输入的中文字符序列“张三家在江东北路”,经过图2所示的实体识别模型后输出的命名实体识别结果为b

nr、e

nr、o、o、b

ns、m

ns、m

ns、e

ns。其中,“b”表示实体的开始位,“e”表示实体的结束位,“m”表示实体的中间位,“nr”表示人名实体,“ns”表示地名实体,“o”表示其他。
[0065]
针对上述步骤101至步骤102的过程,通过采用相同的数据集将本方案与现有的实体识别模块进行对比,评判则是按照精确率p值、召回率r值与f1分数值来衡量,如下述表1所示,无论是精确率p值、还是召回率r值和f1分数值,本方案模型均优于现有模型。
[0066]
模型prf1现有模型193.6693.3193.48现有模型294.8194.1194.46本方案模型95.6095.9595.77
[0067]
表1
[0068]
另外,本发明通过采用控制变量的方式,将模型中的主要改进点分别取消进行对比实验,以论证各个改进点对模型整体改进的贡献。如下述表2所示,第一行为本方案完整模型的f1数值;第二行为去除完整模型中的卷积网络,直接将字符嵌入层的输出作为自适应结合层的输入,实验结果表明去掉卷积网络后导致0.3的f1值损失。这意味着卷积网络对于字符局部信息的学习有着重要作用,且融合了局部信息的字符特征可以为与潜在词计算注意力提供依据;第三行为去除完整模型中的自适应结合层,直接将卷积网络的输出作为序列建模网络的输入,实验结果表明去掉自适应结合层后导致6.6的f1值损失,由此可知,基于字词间注意力的自适应结合层对于本模型的识别效果改进起着主要作用。
[0069]
模型f1本方案模型61.01

cnn60.70

caw54.41
[0070]
表2
[0071]
至此,完成上述图1所示流程,通过将中文字符序列输入实体识别模型中,通过卷积网络提取每个字符的局部语义信息后,与对应的潜在词基于字词间注意力自适应计算实现字词信息融合,从而充分且合理的实现潜在词信息的利用,避免了词边界错误传递的问题,进而达到了对中文实体识别任务的优化目的。
[0072]
图4为本发明根据一示例性实施例示出的一种电子设备的硬件结构图,该电子设备包括:通信接口401、处理器402、机器可读存储介质403和总线404;其中,通信接口401、处理器402和机器可读存储介质403通过总线404完成相互间的通信。处理器402通过读取并执行机器可读存储介质403中与中文句子的命名实体识别方法的控制逻辑对应的机器可执行指令,可执行上文描述的中文句子的命名实体识别方法,该方法的具体内容参见上述实施例,此处不再累述。
[0073]
本发明中提到的机器可读存储介质403可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质403可以是ram(random access memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0074]
与前述中文句子的命名实体识别方法的实施例相对应,本发明还提供了中文句子的命名实体识别装置的实施例。
[0075]
图5为本发明根据一示例性实施例示出的一种中文句子的命名实体识别装置的实施例流程图,如图5所示,该中文句子的命名实体识别装置包括:
[0076]
实体识别模块510,用于将中文字符序列输入已训练的实体识别模型,以由本实体识别模型通过字符嵌入层将所述中文字符序列中的每个字符转换为字向量,并输出到本实体识别模型中的卷积网络,以由所述卷积网络对每个字向量进行卷积运算得到局部语义向量,并输出到本实体识别模型中的自适应结合层,以由所述自适应结合层对每个字符的局部语义向量进行注意力计算后与对应的字向量拼接得到表征向量,并输出到本实体识别模型中的序列建模网络,以由所述序列建模网络对每个字符的表征向量进行隐层建模,并将建模得到的隐层向量输出到本实体识别模型中的标签推理层计算每个字符的隐层向量对
应的标签;
[0077]
获取模块520,用于获取所述实体识别模型输出的标签序列并作为命名实体识别结果。
[0078]
在一可选实现方式中,所述获取模块510,具体用于在字符嵌入层将所述中文字符序列中的每个字符转换为字向量过程中,针对所述中文字符序列中的每个字符,在已训练的字向量表中查找该字符对应的字向量。
[0079]
在一可选实现方式中,所述获取模块510,具体用于在所述卷积网络对每个字向量进行卷积运算得到局部语义向量过程中,针对每个字向量,通过本卷积网络中的第一卷积层对该字向量进行卷积运算,并输出给本卷积网络的第二卷积层;所述第二卷积层对第一卷积层得到的向量进行卷积运算得到该字向量的局部语义向量。
[0080]
在一可选实现方式中,所述获取模块510,具体用于在所述自适应结合层对每个字符的局部语义向量进行注意力计算后与对应的字向量拼接得到表征向量过程中,接收本实体识别模型中潜在词嵌入层输出的每个字符对应的所有潜在词的词向量矩阵;针对每个字符,将该字符的局部语义向量与词向量矩阵进行注意力计算,并将注意力计算结果与该字符的字向量进行拼接得到该字符的表征向量。
[0081]
在一可选实现方式中,所述获取模块510,具体用于在所述潜在词嵌入层获取每个字符对应的所有潜在词的词向量矩阵过程中,将所述中文字符序列与预先构建的字典树进行匹配,以获得子字符串;将每个子字符串与已训练的词典进行匹配,以获取匹配成功的子字符串;将匹配成功的子字符串与其包含的字符进行关联,以得到每个字符的潜在词集合;针对每个字符,在词向量表中查询该字符的潜在词集合中每个潜在词的词向量以组成该字符的词向量矩阵。
[0082]
在一可选实现方式中,所述获取模块510,具体用于在所述序列建模网络对每个字符的表征向量进行隐层建模过程中,通过本序列建模网络中的前向长短时记忆网络对每个字符的表征向量进行隐层建模得到每个字符的前向隐层向量;通过本序列建模网络中的后向长短时记忆网络对每个字符的表征向量进行隐层建模得到每个字符的后向隐层向量;通过本序列建模网络中的拼接层对每个字符的前向隐层向量和后向隐层向量分别进行拼接得到每个字符的隐层向量。
[0083]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0084]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0085]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的
权利要求指出。
[0086]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0087]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1