一种命名实体识别方法转让专利

申请号 : CN202010870524.1

文献号 : CN111967264B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 米良黄海荣李林峰孔晓泉宋寒风

申请人 : 湖北亿咖通科技有限公司

摘要 :

本发明实施例提供了一种命名实体识别方法及电子设备,涉及人工智能算法技术领域。该方法包括:获取待进行命名实体识别的目标文本;确定所述目标文本的第一分类标签;其中,所述第一分类标签用于表征所述目标文本所对应的用户意图;利用所述目标文本和所述第一分类标签构建目标表征矩阵;基于所述目标表征矩阵确定所述目标文本中每个字的命名实体识别NER标签,得到所述目标文本的命名实体识别结果。与现有技术相比,应用本发明实施例提供的方案,可以提高对文本进行命名实体识别时,所得到的识别结果的准确率。

权利要求 :

1.一种命名实体识别方法,其特征在于,所述方法包括:获取待进行命名实体识别的目标文本;

确定所述目标文本的第一分类标签;其中,所述第一分类标签用于表征所述目标文本所对应的用户意图;

利用所述目标文本和所述第一分类标签构建目标表征矩阵;

基于所述目标表征矩阵确定所述目标文本中每个字的命名实体识别NER标签,得到所述目标文本的命名实体识别结果;

其中,所述基于所述目标表征矩阵确定所述目标文本中每个字的命名实体识别NER标签,得到所述目标文本的命名实体识别结果的步骤,包括:基于所述目标表征矩阵确定所述目标文本的字特征矩阵;其中,所述字特征矩阵中包括:所述目标文本中每个字在所述目标文本的正向顺序中的字向量,以及所述目标文本中每个字在所述目标文本的反向顺序中的字向量;

基于所述字特征矩阵,确定所述目标文本的标签矩阵;其中,所述标签向量矩阵用于表征:所述目标文本中每个字具有各个NER标签的概率;

基于所述标签矩阵,确定所述目标文本中每个字的NER标签索引;

将所述目标文本中每个字的NER标签索引转换为所述目标文本中每个字的NER标签,得到所述目标文本的命名实体识别结果。

2.根据权利要求1所述的方法,其特征在于,所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤,包括:生成关于所述目标文本和所述第一分类标签的融合数组;其中,所述融合数组中的各元素为:所述目标文本中的每个字的索引值,以及所述第一分类标签所表征的虚拟字的索引值;

生成所述融合数组对应的矩阵作为目标表征矩阵;其中,所述目标表征矩阵中的各元素为:所述融合数组中的每个索引值对应的字向量。

3.根据权利要求2所述的方法,其特征在于,所述生成关于所述目标文本和所述第一分类标签的融合数组的步骤,包括:

生成关于所述目标文本的第一数组;其中,所述第一数组中的各元素为:所述目标文本中每个字的索引值;

构建关于所述第一分类标签的第二数组,确定所述第二数组所表征的虚拟字的索引值作为目标索引值;其中,所述第二数组中的各元素为:预设的各个分类标签的取值,所述第一分类标签为各个所述分类标签中的一个标签,所述第一分类标签的取值为第一设定值,除所述第一分类标签以外的各个其他分类标签的取值为第二设定值;

将所述目标索引值添加到所述第一数组中的第一指定位置处,得到融合数组;其中,所述第一指定位置处包括:所述第一数组中的第一个元素之前,或者,所述第一数组中的最后一个元素之后。

4.根据权利要求1所述的方法,其特征在于,所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤,包括:生成关于所述目标文本的第一数组;其中,所述第一数组中的各元素为:所述目标文本中每个字的索引值;

生成所述第一数组对应的矩阵作为所述目标文本的初始矩阵;其中,所述初始矩阵中的各元素为:所述第一数组中的每个索引值对应的字向量;

构建关于所述第一分类标签的第二数组;其中,所述第二数组中的各元素为:预设的各个分类标签的取值,所述第一分类标签为所述各个分类标签中的一个标签,所述第一分类标签的取值为第一设定值,除所述第一分类标签以外的各个其他分类标签的取值为第二设定值;

利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵。

5.根据权利要求4所述的方法,其特征在于,所述利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵的步骤,包括:确定所述第二数组所表征的虚拟字的索引值对应的字向量;

将所确定的字向量添加至所述初始矩阵中的第二指定位置处,得到目标表征矩阵;其中,所述第二指定位置处包括:所述初始矩阵中的第一个元素之前,或者,所述初始矩阵中的最后一个元素之后。

6.根据权利要求4所述的方法,其特征在于,所述利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵的步骤,包括:将所述第二数组添加至所述初始矩阵中的第三指定位置处,得到目标表征矩阵;

其中,所述第三指定位置包括:表示字向量的一维数组中的第一个元素之前,或者,表示字向量的一维数组中的最后一个元素之后。

7.根据权利要求3所述的方法,其特征在于,所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤,以及所述基于所述目标表征矩阵确定所述目标文本中每个字的NER标签的步骤是通过预先训练的命名实体识别模型实现的;

所述命名实体识别模型包括:串联相接的输入层、融合层、字嵌入层、双向长短期记忆网络LSTM层、全连接层、条件随机场CRF层和输出层;所述输入层、所述融合层和所述字嵌入层用于实现所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤;所述双向LSTM层、所述全连接层、所述CRF层和所述输出层用于实现所述基于所述目标表征矩阵确定所述目标文本中每个字的NER标签的步骤;

其中,所述输入层,用于生成关于所述目标文本的第一数组;

所述融合层,用于构建关于所述第一分类标签的第二数组,确定所述第二数组所表征的虚拟字的索引值作为目标索引值;将所述目标索引值添加到所述第一数组中的第一指定位置处,得到融合数组;

所述字嵌入层,用于生成所述融合数组对应的矩阵作为目标表征矩阵;

所述双向LSTM层,用于基于所述目标表征矩阵确定所述目标文本的字特征矩阵;

所述全连接层,用于基于所述字特征矩阵,确定所述目标文本的标签矩阵;

所述CRF层,用于基于所述标签矩阵,确定所述目标文本中每个字的NER标签索引;

所述输出层,用于将所述目标文本中每个字的NER标签索引转换为所述目标文本中每个字的NER标签,得到所述目标文本的命名实体识别结果。

8.根据权利要求4所述的方法,其特征在于,所述利用所述目标文本和所述第一分类标签,构建目标表征矩阵的步骤,以及所述基于所述目标表征矩阵,确定所述目标文本中每个字的NER标签的步骤是通过预先训练的命名实体识别模型实现的;

所述命名实体识别模型包括:串联相接的输入层、字嵌入层、融合层、双向LSTM层、全连接层、CRF层和输出层;所述输入层、所字嵌入层和所述融合层用于实现所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤;所述双向LSTM层、所述全连接层、所述CRF层和所述输出层用于实现所述基于所述目标表征矩阵确定所述目标文本中每个字的NER标签的步骤;

其中,所述输入层,用于生成关于所述目标文本的第一数组;

所述字嵌入层,用于生成所述第一数组对应的矩阵作为所述目标文本的初始矩阵;

所述融合层,用于构建关于所述第一分类标签的第二数组,利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵;

所述双向LSTM层,用于基于所述目标表征矩阵确定所述目标文本的字特征矩阵;

所述全连接层,用于基于所述字特征矩阵,确定所述目标文本的标签矩阵;

所述CRF层,用于基于所述标签矩阵,确定所述目标文本中每个字的NER标签索引;

所述输出层,用于将所述目标文本中每个字的NER标签索引转换为所述目标文本中每个字的NER标签,得到所述目标文本的命名实体识别结果。

9.根据权利要求7或8所述的方法,其特征在于,所述命名实体识别模型的训练方式,包括:

获取待利用的样本文本、所述样本文本的第二分类标签和所述样本文本中每个字的NER标签真值;其中,所述第二分类标签用于表征所述样本文本所对应的用户意图;

将所述样本文本和所述样本文本的第二分类标签输入所述命名实体识别模型,以使所述命名实体识别模型利用所述样本文本和所述第二分类标签,构建样本表征矩阵,并利用所述样本表征矩阵预测所述样本文本中每个字的NER标签预测值;

基于所述样本标签的每个字的NER标签真值和NER标签预测值,判断所述命名实体识别模型是否收敛,如果是,结束训练,得到训练完成的所述命名实体识别模型;否则,调整所述命名实体识别模型中的模型参数,返回所述获取待利用的样本文本、所述样本文本的第二分类标签和所述样本文本中每个字的NER标签真值的步骤。

说明书 :

一种命名实体识别方法

技术领域

[0001] 本发明涉及人工智能算法技术领域,特别是涉及一种命名实体识别方法。

背景技术

[0002] 当前,随着人工智能算法的不断发展,命名实体识别(Named  Entity Recognition,NER)任务的需求越来越多,例如,问答系统、机器翻译系统等。
[0003] 所谓命名实体识别,又称作“专名识别”,用于识别文本中的词槽的类型和位置,从而,为文本中的各个文字添加NER标签。其中,词槽可以理解为:文本中具有特定意义的实
体,例如,人名、地名、机构名、专有名词等,进而,人名、地名等即为词槽的类型,而词槽的位
置为:属于同一个词槽的各个字在该词槽中的位置,例如,词槽开始、词槽中间和词槽结尾。
[0004] 相关技术中,命名实体识别方法中,基于待进行命名实体识别的目标文本的文本内容,确定目标文本中的每个字的NER标签,得到目标文本的命名实体识别结果。例如,将待
进行命名实体识别的目标文本的表征矩阵输出至预先训练的模型进行识别,得到识别结
果。
[0005] 然而,由于同一个词槽在不同的语境下所属的词槽类型可能不同,例如,在文本“我想吃小苹果”中,“小苹果”所属的词槽类型为水果,而在文本“我想听筷子兄弟的歌曲
《小苹果》”中,“小苹果”所属的词槽类型为歌曲名。因此,采用上述相关技术可能不能准确
的识别出文本中的词槽所属的词槽类型,从而,导致所得到的识别结果的准确率较低。

发明内容

[0006] 本发明实施例的目的在于提供一种命名实体识别方法,以提高对文本进行命名实体识别时,所得到的识别结果的准确率。
[0007] 本发明实施例一方面提供一种命名实体识别方法,该方法包括:
[0008] 获取待进行命名实体识别的目标文本;
[0009] 确定所述目标文本的第一分类标签;其中,所述第一分类标签用于表征所述目标文本所对应的用户意图;
[0010] 利用所述目标文本和所述第一分类标签构建目标表征矩阵;
[0011] 基于所述目标表征矩阵确定所述目标文本中每个字的命名实体识别NER标签,得到所述目标文本的命名实体识别结果。
[0012] 可选的,所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤,包括:
[0013] 生成关于所述目标文本和所述第一分类标签的融合数组;其中,所述融合数组中的各元素为:所述目标文本中的每个字的索引值,以及所述第一分类标签所表征的虚拟字
的索引值;
[0014] 生成所述融合数组对应的矩阵作为目标表征矩阵;其中,所述目标表征矩阵中的各元素为:所述融合数组中的每个索引值对应的字向量。
[0015] 可选的,所述生成关于所述目标文本和所述第一分类标签的融合数组的步骤,包括:
[0016] 生成关于所述目标文本的第一数组;其中,所述第一数组中的各元素为:所述目标文本中每个字的索引值;
[0017] 构建关于所述第一分类标签的第二数组,确定所述第二数组所表征的虚拟字的索引值作为目标索引值;其中,所述第二数组中的各元素为:预设的各个分类标签的取值,所
述第一分类标签为各个所述分类标签中的一个标签,所述第一分类标签的取值为第一设定
值,除所述第一分类标签以外的各个其他分类标签的取值为第二设定值;
[0018] 将所述目标索引值添加到所述第一数组中的第一指定位置处,得到融合数组;其中,所述第一指定位置处包括:所述第一数组中的第一个元素之前,或者,所述第一数组中
的最后一个元素之后。
[0019] 可选的,所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤,包括:
[0020] 生成关于所述目标文本的第一数组;其中,所述第一数组中的各元素为:所述目标文本中每个字的索引值;
[0021] 生成所述第一数组对应的矩阵作为所述目标文本的初始矩阵;其中,所述初始矩阵中的各元素为:所述第一数组中的每个索引值对应的字向量;
[0022] 构建关于所述第一分类标签的第二数组;其中,所述第二数组中的各元素为:预设的各个分类标签的取值,所述第一分类标签为所述各个分类标签中的一个标签,所述第一
分类标签的取值为第一设定值,除所述第一分类标签以外的各个其他分类标签的取值为第
二设定值;
[0023] 利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵。
[0024] 可选的,所述利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵的步骤,包括:
[0025] 确定所述第二数组所表征的虚拟字的索引值对应的字向量;
[0026] 将所确定的字向量添加至所述初始矩阵中的第二指定位置处,得到目标表征矩阵;其中,所述第二指定位置处包括:所述初始矩阵中的第一个元素之前,或者,所述初始矩
阵中的最后一个元素之后。
[0027] 可选的,所述利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵的步骤,包括:
[0028] 将所述第二数组添加至所述初始矩阵中的第三指定位置处,得到目标表征矩阵;
[0029] 其中,所述第三指定位置包括:表示字向量的一维数组中的第一个元素之前,或者,表示字向量的一维数组中的最后一个元素之后。
[0030] 可选的,所述基于所述目标表征矩阵确定所述目标文本中每个字的命名实体识别NER标签,得到所述目标文本的命名实体识别结果的步骤,包括:
[0031] 基于所述目标表征矩阵确定所述目标文本的字特征矩阵;其中,所述字特征矩阵中包括:所述目标文本中每个字在所述目标文本的正向顺序中的字向量,以及所述目标文
本中每个字在所述目标文本的反向顺序中的字向量;
[0032] 基于所述字特征矩阵,确定所述目标文本的标签矩阵;其中,所述标签向量矩阵用于表征:所述目标文本中每个字具有各个NER标签的概率;
[0033] 基于所述标签矩阵,确定所述目标文本中每个字的NER标签索引;
[0034] 将所述目标文本中每个字的NER标签索引转换为所述目标文本中每个字的NER标签,得到所述目标文本的命名实体识别结果。
[0035] 可选的,所述利用所述目标文本和所述第一分类标签构建目标表征矩阵的步骤,以及所述基于所述目标表征矩阵确定所述目标文本中每个字的NER标签的步骤是通过预先
训练的命名实体识别模型实现的;
[0036] 所述命名实体识别模型包括:串联相接的输入层、融合层、字嵌入层、双向LSTM层、全连接层、CRF层和输出层;所述输入层、所述融合层和所述字嵌入层用于实现所述利用所
述目标文本和所述第一分类标签构建目标表征矩阵的步骤;所述双向LSTM层、所述全连接
层、所述CRF层和所述输出层用于实现所述基于所述目标表征矩阵确定所述目标文本中每
个字的NER标签的步骤;
[0037] 其中,所述输入层,用于生成关于所述目标文本的第一数组;
[0038] 所述融合层,用于构建关于所述第一分类标签的第二数组,确定所述第二数组所表征的虚拟字的索引值作为目标索引值;将所述目标索引值添加到所述第一数组中的第一
指定位置处,得到融合数组;
[0039] 所述字嵌入层,用于生成所述融合数组对应的矩阵作为目标表征矩阵;
[0040] 所述双向LSTM层,用于基于所述目标表征矩阵确定所述目标文本的字特征矩阵;
[0041] 所述全连接层,用于基于所述字特征矩阵,确定所述目标文本的标签矩阵;
[0042] 所述CRF层,用于基于所述标签矩阵,确定所述目标文本中每个字的NER标签索引;
[0043] 所述输出层,用于将所述目标文本中每个字的NER标签索引转换为所述目标文本中每个字的NER标签,得到所述目标文本的命名实体识别结果。
[0044] 可选的,所述利用所述目标文本和所述第一分类标签,构建目标表征矩阵的步骤,以及所述基于所述目标表征矩阵,确定所述目标文本中每个字的NER标签的步骤是通过预
先训练的命名实体识别模型实现的;
[0045] 所述命名实体识别模型包括:串联相接的输入层、字嵌入层、融合层、双向LSTM层、全连接层、CRF层和输出层;所述输入层、所字嵌入层和所述融合层用于实现所述利用所述
目标文本和所述第一分类标签构建目标表征矩阵的步骤;所述双向LSTM层、所述全连接层、
所述CRF层和所述输出层用于实现所述基于所述目标表征矩阵确定所述目标文本中每个字
的NER标签的步骤;
[0046] 其中,所述输入层,用于生成关于所述目标文本的第一数组;
[0047] 所述字嵌入层,用于生成所述第一数组对应的矩阵作为所述目标文本的初始矩阵;
[0048] 所述融合层,用于构建关于所述第一分类标签的第二数组,利用所述第二数组对所述初始矩阵进行扩展,生成目标表征矩阵;
[0049] 所述双向LSTM层,用于基于所述目标表征矩阵确定所述目标文本的字特征矩阵;
[0050] 所述全连接层,用于基于所述字特征矩阵,确定所述目标文本的标签矩阵;
[0051] 所述CRF层,用于基于所述标签矩阵,确定所述目标文本中每个字的NER标签索引;
[0052] 所述输出层,用于将所述目标文本中每个字的NER标签索引转换为所述目标文本中每个字的NER标签,得到所述目标文本的命名实体识别结果。
[0053] 可选的,所述命名实体识别模型的训练方式,包括:
[0054] 获取待利用的样本文本、所述样本文本的第二分类标签和所述样本文本中每个字的NER标签真值;其中,所述第二分类标签用于表征所述样本文本所对应的用户意图;
[0055] 将所述样本文本和所述样本文本的第二分类标签输入所述命名实体识别模型,以使所述命名实体识别模型利用所述样本文本和所述第二分类标签,构建样本表征矩阵,并
利用所述样本表征矩阵预测所述样本文本中每个字的NER标签预测值;
[0056] 基于所述样本标签的每个字的NER标签真值和NER标签预测值,判断所述命名实体识别模型是否收敛,如果是,结束训练,得到训练完成的所述命名实体识别模型;否则,调整
所述命名实体识别模型中的模型参数,返回所述获取待利用的样本文本、所述样本文本的
第二分类标签和所述样本文本中每个字的NER标签真值的步骤。
[0057] 本发明实施例有益效果:
[0058] 以上可见,在本发明实施例提供的方案中,在对待进行命名实体识别的目标文本进行命名实体识别时,在获取到待进行命名实体识别的目标文本后,确定用于表征该目标
文本所对应的用户意图的第一分类标签;进而,利用该目标文本和第一分类标签构建目标
表征矩阵;进而,便可以基于该目标表征矩阵确定目标文本中每个字的NER标签,得到目标
文本的命名实体识别结果。
[0059] 由于上述目标表征矩阵是利用目标文本和表征用户意图的第一分类标签构成的,因此,上述目标表征矩阵可以表征目标文本的文本内容和用户意图的标签内容的融合结
果。这样,在对目标文本进行命名实体识别时,可以增加用户意图维度的信息,从而,在识别
过程中,可以学习到目标文本和用户意图的关联关系,确定目标文本所表达的用户意图,进
而,可以从文本内容和用户意图两个维度对目标文本中每个字的NER标签进行综合考虑。
[0060] 基于此,在识别目标文本中的各个词槽的词槽类型时,便可以考虑到目标文本对应的用户意图对词槽类型的影响,进而,可以识别得到同一词槽在表达不同用户意图的文
本中的词槽类型,提高对目标文本进行命名实体识别时,所得到的识别结果的准确率。

附图说明

[0061] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0062] 图1为本发明实施例提供的一种命名实体识别方法的流程示意图;
[0063] 图2为本发明实施例提供的一种生成关于目标文本和第一分类标签的融合数组的方式的流程示意图;
[0064] 图3为本发明实施例提供的一种命名实体识别模型的训练方式的流程示意图;
[0065] 图4为本发明实施例提供的一种预先训练的命名实体识别模型的结构示意图;
[0066] 图5为本发明实施例提供的另一种预先训练的命名实体识别模型的结构示意图;
[0067] 图6为本发明实施例提供的一种意图分类模型的结构示意图;
[0068] 图7为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

[0069] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0070] 相关技术中,命名实体识别方法中,基于待进行命名实体识别的目标文本的文本内容,确定目标文本中的每个字的NER标签,得到目标文本的命名实体识别结果。然而,由于
同一个词槽在不同的语境下所属的词槽类型可能不同,因此,采用上述相关技术可能不能
准确的识别出文本中的词槽所属的词槽类型,从而,导致所得到的识别结果的准确率较低。
[0071] 为了解决上述技术问题,本发明实施例提供了一种命名实体识别方法。
[0072] 其中,该命名实体识别方法可以应用于任一类型的电子设备,例如,台式电脑、笔记本电脑、平板电脑等,对此,本发明实施例不做具体限定,以下简称电子设备。
[0073] 此外,该方法可以适用于任一需要进行命名实体识别的场景。例如,在金融领域,针对某金融公司的年报,对该年报中的日期、货币类型、百分比等词槽进行识别,并为该年
报中的每个字添加NER标签。从而,可以得到该年报的命名实体识别结果,该结果便为:为年
报中的各个字添加NER标签后的年报文本;又例如,在交通管理领域,针对某交通事故报告,
对该报告中的人名、地点、时间、伤亡数量等词槽进行识别,并为该报告中的每个字添加NER
标签。从而,可以得到该报告的命名实体识别结果,该结果便为:为报告中的各个字添加NER
标签后的报告文本。
[0074] 其中,可选的,在对文本进行命名实体识别时,为每个字所添加的各类NER标签可以如下表1所示:
[0075] 表1
[0076] NER标签 含义B‑词槽类型 B为Begin的简写,表示词槽开始
I‑词槽类型 I为Internal的简写,表示词槽中间
L‑词槽类型 L为Last的简写,表示词槽结尾
U‑词槽类型 U为Unique的简写,表示单字词槽
O O为Other的简写,表示非词槽
[0077] 基于此,针对所识别到的多字词槽,可以基于该词槽的词槽类型和该词槽中的每个字的位置,为该词槽中的每个字添加“B‑词槽类型”标签、“I‑词槽类型”标签或“L‑词槽类
型”标签;针对未被识别为词槽的字,可以为该字添加“非词槽”标签;针对所识别到的单字
词槽,可以为该字添加“单字词槽标签”。
[0078] 示例性的,文本“给我放一首刘德华的忘情水”的命名实体识别结果可以如下表2所示:
[0079] 表2
[0080]
[0081]
[0082] 进而,本发明实施例提供的一种命名实体识别方法可以包括如下步骤:
[0083] 获取待进行命名实体识别的目标文本;
[0084] 确定所述目标文本的第一分类标签;其中,所述第一分类标签用于表征所述目标文本所对应的用户意图;
[0085] 利用所述目标文本和所述第一分类标签构建目标表征矩阵;
[0086] 基于所述目标表征矩阵确定所述目标文本中每个字的命名实体识别NER标签,得到所述目标文本的命名实体识别结果。
[0087] 以上可见,在本发明实施例提供的方案中,在对待进行命名实体识别的目标文本进行命名实体识别时,在获取到待进行命名实体识别的目标文本后,确定用于表征该目标
文本所对应的用户意图的第一分类标签;进而,利用该目标文本和第一分类标签构建目标
表征矩阵;进而,便可以基于该目标表征矩阵确定目标文本中每个字的NER标签,得到目标
文本的命名实体识别结果。
[0088] 由于上述目标表征矩阵是利用目标文本和表征用户意图的第一分类标签构成的,因此,上述目标表征矩阵可以表征目标文本的文本内容和用户意图的标签内容的融合结
果。这样,在对目标文本进行命名实体识别时,可以增加用户意图维度的信息,从而,在识别
过程中,可以学习到目标文本和用户意图的关联关系,确定目标文本所表达的用户意图,进
而,可以从文本内容和用户意图两个维度对目标文本中每个字的NER标签进行综合考虑。
[0089] 基于此,在识别目标文本中的各个词槽的词槽类型时,便可以考虑到目标文本对应的用户意图对词槽类型的影响,进而,可以识别得到同一词槽在表达不同用户意图的文
本中的词槽类型,提高对目标文本进行命名实体识别时,所得到的识别结果的准确率。
[0090] 下面,对本发明实施例提供的一种命名实体识别方法进行具体说明。
[0091] 图1为本发明实施例提供的一种命名实体识别方法的流程示意图,如图1所示,该方法可以包括如下步骤:
[0092] S101:获取待进行命名实体识别的目标文本;
[0093] 在执行本发明实施例提供的一种命名实体识别方法时,首先获取待进行命名实体识别的目标文本。
[0094] 其中,可以通过多种方式获取上述目标文本,例如,可以获取用户手动输入的上述目标文本,又例如,可以采集到用户的语音信息,从而,将该语音信息转换为上述目标文本,
再例如,还可以从通信连接的其他设备处获取上述目标文本。这都是合理的。
[0095] S102:确定目标文本的第一分类标签;
[0096] 其中,第一分类标签用于表征目标文本所对应的用户意图;
[0097] 在获取到上述目标文本后,可以进一步确定用于表征目标文本所对应的用户意图的第一分类标签。
[0098] 其中,可以通过多种方式确定上述第一分类标签,例如,可以获取用户输入的上述目标文本所对应的用户意图,从而,将该用户意图确定为目标文本的第一分类标签;又例
如,可以将上述所获取到的目标文本输入到预先训练得到的意图分类模型中,得到该意图
分类模型的输出结果,从而,将该输出结果确定为目标文本的第一分类标签,示例性的,该
意图分类模型可以为:CNN(Convolutional Neural Networks,卷积神经网络)分类模型等。
这都是合理的。
[0099] 需要说明的是,为了行为清晰,后续将会对上述预先训练得到的意图分类模型进行举例介绍。
[0100] S103:利用目标文本和第一分类标签构建目标表征矩阵;
[0101] 在得到上述目标文本和第一分类标签后,便可以利用该目标文本和第一分类标签构建目标表征矩阵。
[0102] 其中,上述所构建的目标表征矩阵可以表征目标文本的文本内容和第一分类标签的标签内容的融合结果。
[0103] S104:基于目标表征矩阵确定目标文本中每个字的命名实体识别NER标签,得到目标文本的命名实体识别结果。
[0104] 在构建得到上述目标表征矩阵后,便可以基于该目标表征矩阵,确定目标文本中的每个字的NER标签,得到目标文本的命名实体识别结果。
[0105] 其中,由于上述目标表征矩阵是利用目标文本和表征用户意图的第一分类标签构成的,因此,上述目标表征矩阵可以将目标文本的文本内容和用户意图的标签内容进行融
合。这样,可以学习到目标文本和用户意图的关联关系,确定目标文本所表达的用户意图,
进而,可以从文本内容和用户意图两个维度对目标文本中每个字的NER标签进行综合考虑。
进而,针对目标文本中的各个词槽,在对该词槽的词槽类型进行识别时,便可以从该词槽的
文本内容和目标文本所对应的用户意图两个维度,对词槽的词槽类型进行综合考虑,从而,
提高目标文本的命名实体识别结果的准确率。
[0106] 以上可见,在本发明实施例提供的方案中,在对待进行命名实体识别的目标文本进行命名实体识别时,在获取到待进行命名实体识别的目标文本后,确定用于表征该目标
文本所对应的用户意图的第一分类标签;进而,利用该目标文本和第一分类标签构建目标
表征矩阵;进而,便可以基于该目标表征矩阵确定目标文本中每个字的NER标签,得到目标
文本的命名实体识别结果。
[0107] 由于上述目标表征矩阵是利用目标文本和表征用户意图的第一分类标签构成的,因此,上述目标表征矩阵可以表征目标文本的文本内容和用户意图的标签内容的融合结
果。这样,在对目标文本进行命名实体识别时,可以增加用户意图维度的信息,从而,在识别
过程中,可以学习到目标文本和用户意图的关联关系,确定目标文本所表达的用户意图,进
而,可以从文本内容和用户意图两个维度对目标文本中每个字的NER标签进行综合考虑。
[0108] 基于此,在识别目标文本中的各个词槽的词槽类型时,便可以考虑到目标文本对应的用户意图对词槽类型的影响,进而,可以识别得到同一词槽在表达不同用户意图的文
本中的词槽类型,提高对目标文本进行命名实体识别时,所得到的识别结果的准确率。
[0109] 可选的,一种具体实现方式中,上述步骤S103,利用目标文本和第一分类标签构建目标表征矩阵的步骤,可以包括如下步骤11‑12:
[0110] 步骤11:生成关于目标文本和第一分类标签的融合数组;
[0111] 其中,融合数组中的各元素为:目标文本中的每个字的索引值,以及第一分类标签所表征的虚拟字的索引值;
[0112] 可以理解的,通常,所得到的目标文本和第一分类标签可以通过文字形式表示,进而,在对目标文本进行命名实体识别时,需要将目标文本和第一分类标签转换为通过数学
形式表示的内容。
[0113] 基于此,可以预先设定每个分类标签所表征的虚拟字,该虚拟字可以认为是意图类别的索引值对应的某个字。进而,可以预先为文本所可能涉及的每个文字和每个分类标
签所表征的虚拟字设定索引值,从而,在得到上述目标文本和第一分类标签后,便可以确定
目标文本中的每个字的索引值和第一分类标签所表征的虚拟字的索引值,从而,在确定上
述各个预设索引值后,便可以生成包括上述各个索引值的融合数组。
[0114] 也就是说,在上述融合数组中,目标文本中的每个字的索引值和第一分类标签所表征的虚拟字的索引值分别作为该融合数组中的一个元素。进而,融合数组中所包括的索
引值的数量可以为:目标文本中所包括的字的数量与第一分类标签所表征的虚拟字的数量
的和值。通常,第一分类标签所表征的虚拟字的数量为1。
[0115] 其中,由于目标文本中的每个字的索引值和第一分类标签所表征的虚拟字的索引值均为一个数值,因此,所生成的关于目标文本和第一分类标签的融合数组即为一个一维
数组。
[0116] 步骤12:生成融合数组对应的矩阵作为目标表征矩阵;
[0117] 其中,目标表征矩阵中的各元素为:融合数组中的每个索引值对应的字向量。
[0118] 在生成上述融合数组后,便可以确定该融合数组中的每个索引值对应的字向量,从而,在得到上述融合数组中全部索引值对应的字向量后,便可以基于所确定的各个字向
量生成上述融合数组对应的矩阵,从而,得到目标表征矩阵。
[0119] 其中,每个索引值对应的字向量可以为一个一维数组,且该一维数组的类型为浮点数据。
[0120] 由于融合数组中包括多个索引值,且每个索引值对应一个字向量,字向量可以为一维数组,则生成的目标表征矩阵包括多个一维数组,并且,目标表征矩阵所包括的一维数
组的个数与上述融合数组中所包括的索引值的个数相同。此外,目标表征矩阵中的每个一
维数组中可以包括预设数量个元素,例如,该预设数量可以为128,则目标表征矩阵中的每
个一维数组中可以包括128个元素。当然,上述预设数量还可以为其他数值,对此,本发明实
施例不做具体限定。
[0121] 可选的,一种具体实现方式中,如图2所示,上述步骤11,生成关于目标文本和第一分类标签的融合数组,可以包括如下步骤:
[0122] 步骤S111:生成关于目标文本的第一数组;
[0123] 其中,第一数组中的各元素为:目标文本中每个字的索引值;
[0124] 在得到上述目标文本后,便可以首先确定目标文本中的各个字的索引值,从而,根据所得到的索引值,生成关于目标文本的第一数组。其中,目标文本中每个字的索引值可以
分别作为第一数组中的一个元素。
[0125] 其中,上述所得到的第一数组所包括的索引值的数量可以为:目标文本中所包括的字的数量。
[0126] 然而,考虑到处理速度等因素,可以设置目标文本的最大长度,从而,当获取到的待进行命名实体识别的目标文本中所包括的字的数量超过上述所设置的最大长度时,可以
丢弃该待进行命名实体识别的目标文本中超过上述所设置的最大长度的字,进而,利用所
保留的各个字生成上述第一数组。例如,由于通常人一次讲话所包括的字的数量不超过70
个字,则可以设置目标文本的最大长度为70。
[0127] 也就是说,在上述获取到的待进行命名实体识别的目标文本中所包括的字的数量超过上述所设置的最大长度的情况下,用于构成上述目标表征矩阵的目标文本为上述获取
到的待进行命名实体识别的目标文本丢弃超过所设置的最大长度的字后,剩余的目标文
本,则该剩余的目标文本中所包括字的数量与上述所设置的目标文本的最大长度相同。
[0128] 例如,当目标文本中包括N(N≥1)个字,且所设置的目标文本的最大长度为P(P而,便可以确定目标文本中第1个至第P个字的索引值,从而,基于所确定的P个索引值,生成
第一数组。
[0129] 其中,除上述所举的例子之外,其他的能够生成上述第一数组的方式也处于本发明实施例所保护的范围内。
[0130] 步骤S112:构建关于第一分类标签的第二数组,确定第二数组所表征的虚拟字的索引值作为目标索引值;
[0131] 其中,第二数组中的各元素为:预设的各个分类标签的取值,第一分类标签为各个分类标签中的一个标签,第一分类标签的取值为第一设定值,除第一分类标签以为的各个
其他分类标签的取值为第二设定值;
[0132] 可以理解的,在实际场景中,用户可以通过文本表达多种用户意图,例如,询问天气、查询歌曲、查询地名等。因此,根据实际场景的需求,可以预设各个分类标签,并且,上述
所确定的目标文本的第一分类标签即为所预设的各个分类标签中的一个标签。
[0133] 这样,在确定出目标文本的第一分类标签后,便可以确定所预设的各个分类标签的取值。其中,第一分类标签的取值为第一设定值,除第一分类标签以为的各个其他分类标
签的取值为第二设定值。从而,所得到的第二数组即为:由一个第一设定值和至少一个第二
设定值构成的一维数组,并且,第二数组所包括的元素的数量为上述预设的各个分类标签
的总量。
[0134] 可选的,上述第一设定值可以为1,且上述第二设定值为0。
[0135] 基于此,每个分类标签与第二数组中的一个元素存在对应关系。这样,在得到目标文本的第一分类标签后,便可以将第二数组中与该第一分类标签对应的元素设定为第一设
定值,将第二数组中除与该第一分类标签对应的元素以外的各个其他元素设定为第二设定
值。进而,在第二数组中各个元素设定完成后,得到关于第一分类标签的第二数组。
[0136] 进而,在得到上述第二数组后,便可以根据预设的数组与虚拟字的对应关系,确定上述第二数组所表征的虚拟字,从而,可以进一步确定上述第二数组所表征的虚拟字的索
引值,得到目标索引值。
[0137] 步骤S113:将目标索引值添加到第一数组中的第一指定位置处,得到融合数组;
[0138] 其中,第一指定位置处包括:第一数组中的第一个元素之前,或者,第一数组中的最后一个元素之后。
[0139] 在得到上述第一数组和目标索引值后,便可以将目标索引值添加到第一数组中的第一指定位置处,得到融合数组。
[0140] 其中,可以将目标索引值添加到第一数组中的第一个元素之前,也可以将目标索引值添加到第一数组中的最后一个元素之后;当然,还可以将目标索引值添加至第一数组
中的其他指定位置处。
[0141] 这样,相比于上述第一数组,该融合数组中的索引值的个数增加了一个,其该新增的索引值即为上述目标索引值。
[0142] 可选的,一种具体实现方式中,上述步骤S103,利用目标文本和第一分类标签构建目标表征矩阵的步骤,可以包括如下步骤21‑23:
[0143] 步骤21:生成关于目标文本的的第一数组;
[0144] 其中,第一数组中的各元素为:目标文本中每个字的索引值;
[0145] 在得到上述目标文本后,便可以首先确定目标文本中的各个字的索引值,从而,根据所得到的索引值,生成关于目标文本的第一数组。其中,目标文本中每个字的索引值可以
分别作为第一数组中的一个元素。
[0146] 其中,上述所得到的第一数组所包括的索引值的数量可以为:目标文本中所包括的字的数量。
[0147] 然而,考虑到处理速度等因素,可以设置目标文本的最大长度,从而,当获取到的待进行命名实体识别的目标文本中所包括的字的数量超过上述所设置的最大长度时,可以
丢弃该待进行命名实体识别的目标文本中超过上述所设置的最大长度的字,进而,利用所
保留的各个字生成上述第一数组。例如,由于通常人一次讲话所包括的字的数量不超过70
个字,则可以设置目标文本的最大长度为70。
[0148] 也就是说,当获取到的待进行命名实体识别的目标文本中所包括的字的数量超过所设置的目标文本的最大长度时,用于构成上述目标表征矩阵的目标文本为上述获取到的
待进行命名实体识别的目标文本丢弃超过所设置的最大长度的字后,剩余的目标文本,则
该剩余的目标文本中所包括字的数量与上述所设置的目标文本的最大长度相同。
[0149] 例如,当目标文本中包括N(N≥1)个字,且所设置的目标文本的最大长度为P(P而,便可以确定目标文本中第1个至第P个字的索引值,从而,基于所确定的P个索引值,生成
第一数组。
[0150] 其中,除上述所举的例子之外,其他的能够生成上述第一数组的方式也处于本发明实施例所保护的范围内。
[0151] 步骤22:生成第一数组对应的矩阵作为目标文本的初始矩阵;
[0152] 其中,初始矩阵中中的各元素为:第一数组中的每个索引值对应的字向量;
[0153] 在生成上述第一数组后,便可以确定该第一数组中的每个索引值对应的字向量,从而,在得到上述第一数组中全部索引值对应的字向量后,便可以基于所确定的各个字向
量生成上述第一数组对应的矩阵,从而得到目标文本的初始矩阵。
[0154] 其中,所得到的目标文本的初始矩阵的行数为:第一数组中包括的索引值的数量;所得到的目标文本的初始矩阵的列数为:所确定的每个索引值对应的字向量所包括的元素
的数量。也就是说,目标文本的初始矩阵的每一行可以为上述所确定的一个字向量,从而,
目标文本的初始矩阵的每一行可以对应上述第一数组中的一个索引值,进而,目标文本的
初始矩阵的每一行可以对应目标文本中的一个字。
[0155] 其中,由于上述第一数组中包括目标文本中每个字的索引值,而所得到的目标文本的初始矩阵中包括第一数组中每个索引值对应的字向量,因此,可以认为,所得到的目标
文本的初始矩阵中包括目标文本中每个字对应的字向量。进一步的,目标文本的初始矩阵
中包括的字向量的数量与上述第一数组中包括的索引值的数量相同,即目标文本的初始矩
阵中包括的字向量的数量与目标文本中包括的字的数量相同。
[0156] 步骤23:构建关于第一分类标签的第二数组;
[0157] 其中,第二数组中的各元素为:预设的各个分类标签的取值,第一分类标签为各个分类标签中的一个标签,第一分类标签的取值为第一设定值,除第一分类标签以为的各个
其他分类标签的取值为第二设定值。
[0158] 可以理解的,在实际场景中,用户可以通过文本表达多种用户意图,例如,询问天气、查询歌曲、查询地名等。因此,根据实际场景的需求,可以预设各个分类标签,并且,上述
所确定的目标文本的第一分类标签即为所预设的各个分类标签中的一个标签。
[0159] 这样,在确定出目标文本的第一分类标签后,便可以确定所预设的各个分类标签的取值。其中,第一分类标签的取值为第一设定值,除第一分类标签以为的各个其他分类标
签的取值为第二设定值。从而,所得到的第二数组即为:由一个第一设定值和至少一个第二
设定值构成的一维数组,并且,第二数组所包括的数字的数量为上述预设的各个分类标签
的总量。
[0160] 可选的,上述第一设定值可以为1,且上述第二设定值为0。
[0161] 基于此,每个分类标签与第二数组中的一个元素存在对应关系。这样,在得到目标文本的第一分类标签后,便可以将第二数组中与该第一分类标签对应的元素设定为第一设
定值,将第二数组中除与该第一分类标签对应的元素以外的各个其他元素设定为第二设定
值。进而,在第二数组中各个元素设定完成后,得到关于第一分类标签的第二数组。
[0162] 步骤24:利用第二数组对初始矩阵进行扩展,生成目标表征矩阵。
[0163] 在得到上述第二数组和上述目标文本的初始矩阵后,便可以利用该第二数组对上述初始矩阵进行扩展,从而,生成目标表征矩阵。
[0164] 其中,可选的,一种具体实现方式中,上述步骤24可以包括如下步骤241A‑242A:
[0165] 步骤241A:确定第二数组所表征的虚拟字的索引值对应的字向量;
[0166] 步骤242A:将所确定的字向量添加至初始矩阵中的第二指定位置处,得到目标表征矩阵;
[0167] 其中,第二指定位置处包括:初始矩阵中的第一个元素之前,或者,初始矩阵中的最后一个元素之后。
[0168] 需要说明的是,针对上述所得到的目标文本的初始矩阵,该初始矩阵的行数为:第一数组中包括的索引值的数量;该初始矩阵的列数为:所确定的每个索引值对应的字向量
所包括的元素的数量。
[0169] 也就是说,目标文本的初始矩阵的每一行可以为上述所确定的一个字向量,因此,上述初始矩阵中的第一个元素之前为:初始矩阵中的第一行之前;上述初始矩阵中的最后
一个元素之后可以为:初始矩阵中的最后一行之后。
[0170] 其中,可选的,可以将上述步骤242A中所确定的字向量作为所得到的目标表征矩阵中的第一行,并在目标表征矩阵中,将初始矩阵中的各个行向下移动一行,从而,目标表
征矩阵比初始矩阵的行数多一行;
[0171] 或者,可以将上述步骤242A中所确定的字向量作为所得到的目标表征矩阵中的最后一行,并在目标表征矩阵中,初始矩阵中的各个行的行数保持不变,从而,目标表征矩阵
比初始矩阵的行数多一行。
[0172] 例如,初始矩阵包括20个字向量,且每个字向量可以为一维数组,一维数组包括的元素的数量可以为128,则可以将第二数组所表征的虚拟字的索引值对应的字向量添加到
该初始矩阵的第一行之前或者添加到该初始矩阵的最后一行之后,从而,所得到的目标表
征矩阵包括21个一维数组,且每个一维数组中包括的元素的数量为128。也就是说,初始矩
阵为一个20行,128列的矩阵,目标表征矩阵为一个21行,128列的矩阵。
[0173] 可选的,为了提高目标文本当用户意图的标签内容在目标表征矩阵中的权重,以进一步提高所得到的目标文本的命名实体识别结果的准确性,在将第二数组所表征的虚拟
字的索引值对应的字向量添加到该初始矩阵的指定位置时,可以在该指定位置处重复添加
多次。
[0174] 基于此,当上述第二指定位置处为初始矩阵中的第一个元素之前时,可以将初始矩阵中的各个行向下移动T(T>1)行,从而,将第二数组所表征的虚拟字的索引值对应的字
向量作为该初始矩阵的第一行之前的每一行中的内容;这样,所得到的目标表征矩阵比初
始矩阵的行数多T行,且该目标表征矩阵中第1行至第T行是相同的,均为第二数组所表征的
虚拟字的索引值对应的字向量,也就是说,目标表征矩阵中可以存在T个第二数组所表征的
虚拟字的索引值对应的字向量。
[0175] 例如,假设T=3,初始矩阵包括20个字向量,且每个字向量可以为一维数组,一维数组包括的元素的数量可以为128,则可以将第二数组所表征的虚拟字的索引值对应的字
向量添加到该初始矩阵的第一行之前,并重复添加3行。从而,所得到的目标表征矩阵包括
23个一维数组,且每个一维数组中包括的元素的数量为128。也就是说,初始矩阵为一个20
行,128列的矩阵,目标表征矩阵为一个23行,128列的矩阵,并且目标表征矩阵的第1行、第2
行和第3行是相同的,均为第二数组所表征的虚拟字的索引值对应的字向量。
[0176] 此外,当上述第二指定位置处为初始矩阵中的最后一行之后时,可以在初始矩阵中的最后一行之后,重复添加T(T>1)个第二数组所表征的虚拟字的索引值对应的字向量;
这样,所得到的目标表征矩阵比初始矩阵的行数多T行,且该目标表征矩阵中的最后T行是
相同的,均为第二数组所表征的虚拟字的索引值对应的字向量,也就是说,目标表征矩阵中
可以存在T个第二数组所表征的虚拟字的索引值对应的字向量。
[0177] 例如,假设T=3,初始矩阵包括20个字向量,且每个字向量可以为一维数组,一维数组包括的元素的数量可以为128,则可以将第二数组所表征的虚拟字的索引值对应的字
向量添加到该初始矩阵的最后一行之后,并重复添加3行。从而,所得到的目标表征矩阵包
括23个一维数组,且每个一维数组中包括的元素的数量为128。也就是说,初始矩阵为一个
20行,128列的矩阵,目标表征矩阵为一个23行,128列的矩阵,并且目标表征矩阵的第21行、
第22行和第23行是相同的,均为第二数组所表征的虚拟字的索引值对应的字向量。
[0178] 在本具体实现方式中,在得到上述关于第一分类标签的第二数组后,便可以根据预设的数组与虚拟字的对应关系,确定上述第二数组所表征的虚拟字,从而,可以进一步确
定上述第二数组所表征的虚拟字的索引值。进而,便可以确定上述第二数组所表征的虚拟
字的索引值对应的字向量。
[0179] 其中,上述第二数组所表征的虚拟字的索引值对应的字向量中包括的元素的数量与上述目标文本的初始矩阵中的字向量中包括的元素的数量相同。
[0180] 基于此,便可以将第二数组所表征的虚拟字的索引值对应的字向量添加至目标文本的初始矩阵中的第二指定位置处,从而,实现对目标文本的初始矩阵的扩展,并且,扩展
后的初始矩阵即为目标表征矩阵。
[0181] 其中,可以将第二数组所表征的虚拟字的索引值对应的字向量添加到初始矩阵中的第一个元素之前,也可以将第二数组所表征的虚拟字的索引值对应的字向量添加到初始
矩阵中的最后一个元素之后;当然,还可以将第二数组所表征的虚拟字的索引值对应的字
向量添加至初始矩阵中的其他指定位置处。
[0182] 这样,相比于初始矩阵,所得到的目标表征矩阵中的字向量的个数增加了至少一个,其新增的至少一个字向量均为第二数组所表征的虚拟字的索引值对应的字向量。
[0183] 可选的,另一种具体实现方式中,上述步骤24可以包括如下步骤241B:
[0184] 步骤231B:将第二数组添加至初始矩阵中的第三指定位置处,得到目标表征矩阵;
[0185] 其中,第三指定位置包括:表示字向量的一维数组中的的第一个元素之前,或者,表示字向量的一维数组中的最后一个元素之后。
[0186] 需要说明的是,针对上述所得到的目标文本的初始矩阵,该初始矩阵中包括多个字向量,并且,每个字向量通过一个一维数组表示,而表示每个字向量的每个一维数组中可
以包括多个元素。进一步的,该初始矩阵的行数为:第一数组中包括的索引值的数量;该初
始矩阵的列数为:所确定的每个索引值对应的字向量所包括的元素的数量,则初始矩阵的
每一行可以为上述所确定的一个表示字向量的一维数组。
[0187] 因此,上述表示字向量的一维数组中的第一个元素之前为:该初始矩阵中的每一行中位于第一列的元素之前,即假设第二数组中包括Q(Q>0)个元素时,则将上述第二数组
中所包括的Q个元素作为所得到的目标表征矩阵中的每一行中位于第一列至第Q列的元素,
并将目标表征矩阵中,将初始矩阵中的各个列向右移动Q列,从而,目标表征矩阵比初始矩
阵多Q列;
[0188] 上述表示字向量的一维数组中的最后一个元素之后为:该初始矩阵中每一行中位于最后一列的元素之后,即假设初始矩阵的列数为R(R>0),且第二数组中包括Q个元素时,
则将上述第二数组中所包括的Q个元素作为所得到的目标表征矩阵中的每一行中位于第R+
1列至第R+Q列的元素,并在目标表征矩阵中,初始矩阵中的各个列的列数保持不变,从而,
目标表征矩阵比初始矩阵多Q列。
[0189] 在本具体实现方式中,在得到上述关于第一分类标签的第二数组后,可以直接利用第二数组对目标文本的初始矩阵进行扩展。也就是说,可以直接将第二数组添加至初始
矩阵中的第三指定位置处,得到目标表征矩阵。
[0190] 其中,可以将第二数组添加到初始矩阵中表示字向量的一维数组中的第一个元素之前,即在初始矩阵中每一行中位于第一列的元素之前添加第二数组,也可以将第二数组
添加到初始矩阵中表示字向量的一维数组中的最后一个元素之后,即在初始矩阵中每一行
中位于最后一列的元素之后添加第二数组;当然,还可以将第二数组添加至初始矩阵中的
其他指定位置处。
[0191] 其中,可以理解的,不同的第一分类标签对应于不同的第二数组,因此,可以通过不同的第二数组表征不同的第一分类标签。进而,目标文本的初始矩阵所包括的各个字向
量为目标文本中每个字对应的字向量;这样,当在初始矩阵中的每个表示字向量的一维数
组中添加第二数组时,便可以将目标文本所对应的用户意图添加至目标文本中,从而,实现
目标文本的文本内容和表征用户意图的标签内容的融合。
[0192] 这样,由于第二数组所包括的元素的数量为上述预设的各个分类标签的总量,因此,相比于初始矩阵,所得到的目标表征矩阵中的每个表示字向量的一维数组中所包括的
元素的数量增加了上述预设的分类标签的总量,其该新增的元素即为上述第二数组。
[0193] 例如,初始矩阵包括20个表示字向量的一维数组,且每个表示字向量的一维数组中包括的元素的数量为128,预设的分类标签的总量为10,则所得到的目标表征矩阵包括20
个表示字向量的一维数组,且每个表示字向量的一维数组中包括的元素的数量为138。
[0194] 可选的,一种具体实现方式中,上述步骤S104,基于目标表征矩阵确定目标文本中每个字的命名实体识别NER标签,得到目标文本的命名实体识别结果的步骤,可以包括如下
步骤31‑34:
[0195] 步骤31:基于目标表征矩阵确定目标文本的字特征矩阵;
[0196] 其中,字特征矩阵中包括:目标文本中每个字在目标文本的正向顺序中的字向量,以及目标文本中每个字在目标文本的反向顺序中的字向量;
[0197] 在得到目标表征矩阵后,便可以基于目标表征矩阵确定目标文本的字特征矩阵。
[0198] 其中,首先根据目标表征矩阵的构建方式,从目标表征矩阵中分析得到用于表征目标文本中包括的每个字的内容和表征目标文本的第一分类标签的内容。从而,便可以根
据目标文本中每个字的正向顺序和反向顺序,以及目标文本中每个字与其他字之间的上下
文语义关系,利用分析得到的表征目标文本中包括的每个字的内容,确定目标文本中每个
字在目标文本的正向顺序中的字向量,以及目标文本中每个字在目标文本的反向顺序中的
字向量,从而,得到目标文本的字特征矩阵。
[0199] 步骤32:基于字特征矩阵,确定目标文本中的标签矩阵;
[0200] 其中,标签矩阵用于表征:目标文本中每个字具有各个NER标签的概率;
[0201] 进而,在得到目标文本的字特征矩阵后,便可以根据从目标表征矩阵中分析得到的表征目标文本的第一分类标签的内容,以及所确定的目标文本的字特征矩阵,确定目标
文本中的每个字所可能具有的NER标签,以及该字具有每个NER标签的可能性,从而,得到用
于表征目标文本中每个字具有每个NER标签的概率的标签矩阵。
[0202] 其中,可以理解的,在确定目标文本的标签矩阵时,利用了从目标表征矩阵中分析得到的表征目标文本中每个字的内容和表征目标文本的第一分类标签的内容之间的关联
关系,也就是说,所确定的目标文本的标签矩阵所表征的目标文本中每个字具有每个NER标
签的概率,是在考虑了用户意图的维度下所确定的。
[0203] 步骤33:基于标签矩阵,确定目标文本中每个字的NER标签索引;
[0204] 进而,在得到目标文本的标签矩阵后,便可以基于该标签矩阵,确定目标文本中每个字最终的NER标签,并进一步确定该最终的NER标签的NER标签索引,从而,可以确定目标
文本中每个字的NER标签索引。
[0205] 步骤34:将目标文本中每个字的NER标签索引转换为目标文本中每个字的NER标签,得到目标文本的命名实体识别结果。
[0206] 由于在上述步骤23中所确定的目标文本中每个字的NER标签索引的可读性较差,用户不能直观地得到目标文本中每个字的NER标签,因此,可以进一步的将目标文本中每个
字的NER标签索引转换为目标文本中每个字的NER标签,从而,提高可读性,使得用户最终得
到目标文本的命名实体识别结果。
[0207] 可选的,一种具体实现方式中,本发明实施例提供的一种命名实体识别方法可以通过预先训练的命名实体识别模型实现。即在本具体实现方式中,上述步骤S103,利用目标
文本和第一分类标签构建目标表征矩阵;以及上述步骤S104,基于目标表征矩阵确定目标
文本中每个字的NER标签是通过上述命名实体识别模型实现的。
[0208] 在本具体实现方式中,如图4所示,上述命名实体识别模型包括:串联相接的输入层、融合层、字嵌入层、双向LSTM(Long Short‑Term Memory,长短期记忆网络)层、全连接
层、CRF(conditional random field,条件随机场)层和输出层;
[0209] 输入层、融合层和字嵌入层用于实现利用目标文本和第一分类标签构建目标表征矩阵的步骤;双向LSTM层、全连接层、CRF层和输出层用于实现基于目标表征矩阵确定目标
文本中每个字的NER标签的步骤;
[0210] 其中,输入层,用于根据目标文本生成关于该目标文本的第一数组;
[0211] 融合层,用于构建关于第一分类标签的第二数组,确定第二数组所表征的虚拟字的索引值作为目标索引值;将目标索引值添加到第一数组中的第一指定位置处,得到融合
数组;
[0212] 字嵌入层,用于生成融合数组对应的矩阵作为目标表征矩阵;
[0213] 双向LSTM层,用于基于目标表征矩阵确定目标文本的字特征矩阵;
[0214] 全连接层,用于基于字特征矩阵,确定目标文本的标签矩阵;
[0215] CRF层,用于基于标签矩阵,确定目标文本中每个字的NER标签索引;
[0216] 输出层,用于将目标文本中每个字的NER标签索引转换为目标文本中每个字的NER标签,得到目标文本的命名实体识别结果。
[0217] 在本具体实现方式中,上述预先训练的命名实体识别模型即为:预先训练的基于双向LSTM+CRF的NER模型。具体的:
[0218] 针对输入层:
[0219] 在得到上述目标文本和第一分类标签后,便可以将该目标文本和第一分类标签输入到上述预先训练的命名实体识别模型中。
[0220] 进而,在上述命名实体识别模型中,输入层中预先设定了每个字的索引值,其中,每个字的索引值的格式可以为one‑hot(独热码)格式。
[0221] 这样,输入层在接收到目标文本后,可以首先从目标文本的第一个字开始,依次确定目标文本中的每个字的one‑hot格式的索引值。进而,输出层便可以生成关于目标文本的
第一数组。
[0222] 其中,该第一数组中包括上述目标文本中每个字的索引值,且所包括的索引值的数量与上述目标文本中包括的字的数量。
[0223] 此外,可选的,由于用户讲话的时候,通常一句话不会超过70个字,因此,可以设置目标文本的最大长度为70。这样,当获取到的待进行命名实体识别的目标文本中包括的字
的数量超过70时,丢弃第70个字之后的各个字。从而,获取到的待进行命名实体识别的目标
文本中包括的字的数量超过70时,所得到的第一数组中包括70个索引值。
[0224] 当然,上述目标文本的最大长度也可以设置为其他具体数值,对此,本发明实施例不做具体限定。
[0225] 其中,可选的,所生成的第一数组中的每个索引值为整数数值。
[0226] 进而,在生成上述第一数组后,输入层便可以将该第一数组作为输出,从而,将该第一数组输入到融合层中。
[0227] 针对融合层:
[0228] 其中,在将上述目标文本和第一分类标签输入到上述预先训练的命名实体识别模型中时,可以将上述目标文本和第一分类标签输入到上述输入层中。这样,由于输入层不对
第一分类标签进行处理,因此,输入层还可以将第一分类标签作为输出,从而,将第一分类
标签输入到融合层;也可以将上述目标文本和第一分类标签分别输入到上述输入层和融合
层中。
[0229] 这样,融合层在得到上述第一数组和第一分类标签后,便可以首先构建关于该第一分类标签的第二数组。
[0230] 例如,可以将上述第一设定值设为1,将上述第二设定值设为0,且分类标签总数为10,第一分类标签为10个分类标签中的第5个分类标签,则可以得到第二数组:[0,0,0,0,1,
0,0,0,0,0]。
[0231] 其中,可以确定上述第二数组所表征的虚拟字,进而,确定该虚拟字的one‑hot格式的索引值,从而,得到关于第一分类标签的第二数组所表征的虚拟字的索引值,即得到目
标索引值。
[0232] 进而,融合层便可以将上述目标索引值添加到第一数组中的第一指定位置处,得到融合数组。其中,所得到的融合结果仍然为一维数组,且融合结果所包括的索引值的数量
为:目标文本所包括的字的数量和第二数组所表征的虚拟字的数量的和值。通常,第二数组
所表征的虚拟字的数量为1。
[0233] 其中,需要说明的是,上述第一数组包括目标文本中的各个字的索引值,上述目标索引值为:关于第一分类标签的第二数组所表征的虚拟字的索引值,因此,上述所得到的融
合数组包括:目标文字中的各个字的索引值和第一分类标签所表征的虚拟字的索引值。
[0234] 基于此,本具体实现方式所提供的融合方式相当于:将第一分类标签作为虚拟字,从而,将目标文本扩展为“虚拟字+目标文本”,进而,对该拓展后的“虚拟字+目标文本”进行
索引值转换,得到上述融合数组。
[0235] 接着,融合层便可以将上述所得到的融合数组作为输出,从而,将上述融合数组输入到上述字嵌入层。
[0236] 针对字嵌入层:
[0237] 所谓字嵌入是指用一个包括多个元素的一维数组表示每个字,其中,每个元素为一个数字,例如,利用包括128个元素的一维数组表示每个字,即利用包括128个数字的一维
数组表示每个字。
[0238] 这样,由于每个字的索引值对应一字向量,因此,字嵌入层可以确定所得到的融合数组中的各个索引值对应的字向量,从而,基于所确定的各个字向量,生成目标表征矩阵。
其中,所确定的每个索引值对应的字向量中所包括的元素的数量均为预设数量。
[0239] 接着,字嵌入层便可以将上述所得到的目标表征矩阵作为输出,从而,将上述目标表征矩阵输入到上述双向LSTM层。
[0240] 针对双向LSTM层:
[0241] LSTM层是一个神经网络模型,其在处理文本时,会考虑目标文本中的每一个字。例如,LSTM层处理文本“我要听刘德华的忘情水”时,所得到的最后一个词是“忘情水”,并且在
“忘情水”之前,还得到了“我要听”和“刘德华”两个字,从而,LSTM层在对“忘情水”进行词槽
识别时,考虑了“我要听”和“刘德华”的因素,从而,结合文本中的上下文,识别出“忘情水”
可能是一首歌名。
[0242] 由于如果采用单向LSTM,可能会丢失文本中关于字、词顺序的信息。例如,无法区分“我爱你”和“你爱我”。因此,在本具体实现方式中,采用双向LSTM层,从而可以将正向和
反向两个方向的识别结果结合,获得文本中每个字、词的顺序关系。
[0243] 其中,在本具体实现方式中,双向LSTM层的输入为上述字嵌入层得到的目标表征矩阵。
[0244] 可选的,目标表征矩阵可以表示为[1+X,Y]。其中,X表示目标文本中字的数量,Y表示目标表征矩阵中每个字向量中所包括的元素的数量。
[0245] 进而,双向LSTM层的输出即为目标文本的字特征矩阵。其中,当目标表征矩阵表示为[1+X,Y]时,双向LSTM层所输出的目标文本的字特征矩阵可以表示为:[2*(1+X),
HIDDENUNIT]。
[0246] 也就是说,双向LSTM层输出的目标文本的字特征矩阵中包括2*(1+X)个一维数组,每个一维数组所包括的元素的数量为HIDDENUNIT。
[0247] 由于双向LSTM层需要进行正向和反向两个方向的识别,因此,所得到的目标文本的字特征矩阵中包括的一维数组的数量为目标表征矩阵中包括的一维数组的数量的两倍,
并且,目标文本的字特征矩阵中包括的每个一维数组均为一个设定长度的一维数组,即每
个一维数组中均包括预设数量个元素。
[0248] 其中,目标文本的字特征矩阵中包括的每个一维数组为一个字向量,从而,目标文本的字特征矩阵中包括:目标文本中每个字在目标文本的正向顺序中的字向量,以及目标
文本中每个字在目标文本的反向顺序中的字向量。
[0249] 进而,在得到上述目标文本的字特征矩阵后,双向LSTM层便可以将该字特征矩阵作为输出,从而,将该字特征矩阵输入到全连接层。
[0250] 针对全连接层:
[0251] 全连接层包括维度变换和特征提取两个作用,这样,全连接层在得到上述目标文本的字特征矩阵后,便可以基于该字特征矩阵,确定目标文本的标签矩阵。
[0252] 以双向LSTM输出的目标文本的字特征矩阵[2*(1+X),HIDDENUNIT]为例,经过全连接层后,该字特征矩阵[2*(1+X),HIDDENUNIT]可以转换为目标文本的标签矩阵,且该标签
矩阵可以表示为[(1+X),OUTPUTDIM]。
[0253] 上述目标文本的标签矩阵[(1+X),OUTPUTDIM]中包括(1+X)个一维向量,每个一维向量可以表示:关于第一分类标签的第二数组所表征的虚拟字的标签向量和目标文本中每
个字的标签向量。
[0254] 其中,关于第一分类标签的第二数组所表征的虚拟字的NER标签为“XX”,例如,可以为上述表1中的“O”,即关于第一分类标签的第二数组所表征的虚拟字为非词槽。相应的,
目标文本中每个字的标签向量可以表示:该字对应OUTPUTDIM个值,且该OUTPUTDIM个值是
该字可能具有的NER标签的数目,表示该字可以有OUTPUTDIM个概率值,其中,每个概率值的
大小代表这个字属于该概率值所对应的NER标签的可能性,概率值越大则说明字具有该概
率值所对应的NER标签的概率越大。
[0255] 基于此,全连接层可以基于目标文本的字特征矩阵,确定目标文本的标签矩阵,其该标签矩阵可以用于表征:目标文本中每个字具有各个NER标签的概率。也就是说,根据目
标文本的标签矩阵,可以确定目标文本中每个字具有各个NER标签的概率。
[0256] 进一步的,全连接层便可以将上述目标文本的标签矩阵作为输出,从而,将该目标文本的标签矩阵输入到上述CRF层。
[0257] 针对CRF层:
[0258] CRF层可以理解为维特比解码层(Viterbi decode),进而,CRF层在接收到目标文本的标签矩阵后,便可以利用预设的转移矩阵,计算该标签矩阵的每条链路的和值,并得到
和值最大的链路,从而,得到可能性最大的路径。这样,便可以确定目标文本中的每个字的
NER标签,从而,得到目标文本中每个字的NER标签索引。
[0259] 进而,在得到上述目标文本中每个字的NER标签索引后,CRF层便可以将目标文本中每个字的NER标签索引作为输出,从而,将目标文本中每个字的NER标签索引输入到输出
层。
[0260] 针对输出层:
[0261] 由于CRF的输出为目标文本中每个字的NER标签索引,因此,对于用户而言,其可读性较差,这样,输出层便可以将目标文本中每个字的NER标签索引转换成该字的NER标签,其
中,目标文本中每个字的NER标签可以是通过NER标签字符串表示的,从而,可以提高可读
性。例如,每个字的NER标签可以通过上述表2形式表示。
[0262] 可选的,一种具体实现方式中,本发明实施例提供的一种命名实体识别方法可以通过预先训练的命名实体识别模型实现。即在本具体实现方式中,上述步骤S103,利用目标
文本和第一分类标签构建目标表征矩阵;以及上述步骤S104,基于目标表征矩阵确定目标
文本中每个字的NER标签是通过上述命名实体识别模型实现的。
[0263] 在本具体实现方式中,如图5所示,上述命名实体识别模型包括:串联相接的输入层、字嵌入层、融合层、双向LSTM层、全连接层、CRF层和输出层;
[0264] 输入层、所字嵌入层和融合层用于实现利用目标文本和第一分类标签构建目标表征矩阵的步骤;双向LSTM层、全连接层、CRF层和输出层用于实现基于目标表征矩阵确定目
标文本中每个字的NER标签的步骤;
[0265] 其中,输入层,用于根据目标文本生成关于该目标文本的第一数组;
[0266] 字嵌入层,用于生成第一数组对应的矩阵作为目标文本的初始矩阵;
[0267] 融合层,用于构建关于第一分类标签的第二数组,利用第二数组对初始矩阵进行扩展,生成目标表征矩阵;
[0268] 双向LSTM层,用于基于目标表征矩阵确定目标文本的字特征矩阵;
[0269] 全连接层,用于基于字特征矩阵,确定目标文本的标签矩阵;
[0270] CRF层,用于基于标签矩阵,确定目标文本中每个字的NER标签索引;
[0271] 输出层,用于将目标文本中每个字的NER标签索引转换为目标文本中每个字的NER标签,得到目标文本的命名实体识别结果。
[0272] 在本具体实现方式中,上述预先训练的命名实体识别模型即为:预先训练的基于双向LSTM+CRF的NER模型。具体的:
[0273] 针对输入层:
[0274] 在得到上述目标文本和第一分类标签后,便可以将该目标文本和第一分类标签输入到上述预先训练的命名实体识别模型中。
[0275] 进而,在上述命名实体识别模型中,输入层中预先设定了每个字的索引值,其中,每个字的索引值的格式可以为one‑hot格式。
[0276] 这样,输入层在接收到目标文本后,可以首先从目标文本的第一个字开始,依次确定目标文本中的每个字的one‑hot格式的索引值。进而,输出层便可以生成关于目标文本的
第一数组。
[0277] 其中,该第一数组中包括上述目标文本中每个字的索引值,且所包括的索引值的数量与上述目标文本中包括的字的数量。
[0278] 此外,可选的,由于用户讲话的时候,通常一句话不会超过70个字,因此,可以设置目标文本的最大长度为70。这样,当获取到的待进行命名实体识别的目标文本中包括的字
的数量超过70时,丢弃第70个字之后的各个字。从而,获取到的待进行命名实体识别的目标
文本中包括的字的数量超过70时,所得到的第一数组中包括70个索引值。
[0279] 当然,上述目标文本的最大长度也可以设置为其他具体数值,对此,本发明实施例不做具体限定。
[0280] 其中,可选的,所生成的第一数组中的每个索引值为整数数值。
[0281] 进而,在生成上述第一数组后,输入层便可以将该第一数组作为输出,从而,将该第一数组输入到上述字嵌入层。
[0282] 针对字嵌入层:
[0283] 所谓字嵌入是指用一个包括多个元素的一维数组表示每个字,其中,每个元素为一个数字,例如,利用包括128个元素的一维数组表示每个字,即利用包括128个数字的一维
数组表示每个字。
[0284] 这样,由于每个字的索引值对应一字向量,因此,字嵌入层可以确定所得到的第一数组中的各个索引值对应的字向量,从而,基于所确定的各个字向量,生成目标文本的初始
矩阵。其中,所确定的每个索引值对应的字向量中所包括的元素的数量均为预设数量。
[0285] 进而,在生成上述初始矩阵后,字嵌入层便可以将该目标文本的初始矩阵作为输出,从而,将该目标文本的初始矩阵输入到上述融合层。
[0286] 针对融合层:
[0287] 其中,在将上述目标文本和第一分类标签输入到上述预先训练的命名实体识别模型中时,可以将上述目标文本和第一分类标签输入到上述输入层中。这样,由于输入层不对
第一分类标签进行处理,因此,输入层还可以将第一分类标签作为输出,从而,将第一分类
标签输入到上述字嵌入层,进而,由于上述字嵌入层也不对第一分类标签进行处理,从而,
上述字嵌入层还可以将第一分类标签作为输出,从而,将第一分类标签输入到上述融合层;
也可以将上述目标文本和第一分类标签分别输入到上述输入层和融合层中。
[0288] 这样,融合层在得到上述初始矩阵和第一分类标签后,便可以首先构建关于该第一分类标签的第二数组。
[0289] 例如,可以将上述第一设定值设为1,将上述第二设定值设为0,且分类标签总数为10,第一分类标签为10个分类标签中的第5个分类标签,则可以得到的第二数组:[0,0,0,0,
1,0,0,0,0,0]。
[0290] 进而,便可以利用该第二数组对目标文本的初始矩阵进行扩展,从而,得到目标表征矩阵。
[0291] 可选的,一种具体实现方式中,融合层可以执行上述步骤241A‑242A。
[0292] 其中,可以确定上述第二数组所表征的虚拟字,进而,确定该虚拟字的one‑hot格式的索引值,从而,得到关于第一分类标签的第二数组所表征的虚拟字的索引值。进而,便
可以确定上述第二数组所表征的虚拟字的索引值对应的字向量。
[0293] 基于此,便可以将第二数组所表征的虚拟字的索引值对应的字向量添加至目标文本的初始矩阵中的第二指定位置处,从而,实现对目标文本的初始矩阵的扩展,并且,扩展
后的初始矩阵即为目标表征矩阵。
[0294] 其中,需要说明的是,上述目标文本的初始矩阵包括目标文本中的每个字的索引值对应的字向量,因此,上述目标表征矩阵包括:目标文本中的每个字的索引值对应的字向
量与第一分类标签所表征的虚拟字的索引值对应的字向量。从而,上述目标表征矩阵包括:
目标文本中的每个字对应的字向量与第一分类标签所表征的虚拟字对应的字向量。
[0295] 基于此,本具体实现方式所提供的融合方式相当于:将第一分类标签作为虚拟字,从而,将目标文本扩展为“虚拟字+目标文本”,进而,对该拓展后的“虚拟字+目标文本”进行
字嵌入转换,得到上述目标表征矩阵,并且,该“虚拟字”的NER标签为“XX”,例如,可以为上
述表1中的“O”,即关于第一分类标签的第二数组所表征的虚拟字为为非词槽。
[0296] 可选的,另一种具体实现方式中,融合层可以执行上述步骤241B。
[0297] 在得到上述关于第一分类标签的第二数组后,可以直接利用第二数组对目标文本的初始矩阵进行扩展。也就是说,可以直接将第二数组添加至初始矩阵中的第三指定位置
处,得到目标表征矩阵。
[0298] 其中,需要说明的是,上述目标文本的初始矩阵包括目标文本中的每个字的索引值对应的字向量,也就是说,上述目标文本的初始矩阵包括目标文本中的每个字对应的字
向量,因此,当在目标文本的初始矩阵中的每个表示字向量的一维数组添加第二数组时,便
可以将目标文本所对应的用户意图添加至目标文本中。
[0299] 基于此,本具体实现方式所提供的融合方式相当于:将第一分类标签作为目标文本的各个字对应的字向量中的多个元素,从而,将目标文本的各个字的对应的字向量进行
扩展。
[0300] 针对双向LSTM层:
[0301] LSTM层是一个神经网络模型,其在处理文本时,会考虑目标文本中的每一个字。例如,LSTM层处理文本“我要听刘德华的忘情水”时,所得到的最后一个词是“忘情水”,并且在
“忘情水”之前,还得到了“我要听”和“刘德华”两个字,从而,LSTM层在对“忘情水”进行词槽
识别时,考虑了“我要听”和“刘德华”的因素,从而,结合文本中的上下文,识别出“忘情水”
可能是一首歌名。
[0302] 由于如果采用单向LSTM,可能会丢失文本中关于字、词顺序的信息。例如,无法区分“我爱你”和“你爱我”。因此,在本具体实现方式中,采用双向LSTM层,从而可以将正向和
反向两个方向的识别结果结合,获得文本中每个字、词的顺序关系。
[0303] 其中,在本具体实现方式中,双向LSTM层的输入为上述字嵌入层得到的目标表征矩阵。
[0304] 可选的,目标表征矩阵可以表示为[1+X,Y]。其中,X表示目标文本中字的数量,Y表示目标表征矩阵中每个字向量中所包括的元素的数量。
[0305] 进而,双向LSTM层的输出即为目标文本的字特征矩阵。
[0306] 可选的,当目标表征矩阵表示为[1+X,Y]时,双向LSTM层所输出的目标文本的字特征矩阵可以表示为:[2*(1+X),HIDDENUNIT]。
[0307] 也就是说,双向LSTM层输出的目标文本的字特征矩阵中包括2*(1+X)个一维数组,每个一维数组中所包括的元素的数量为HIDDENUNIT。
[0308] 可选的,当目标表征矩阵表示为[X,Y+CLASS]时,其中,X表示目标文本中字的数量,Y表示目标文本的初始矩阵中的每个字向量所包括的元素的数量,CLASS表示预设的分
类标签的总量。
[0309] 则双向LSTM层的输出即为目标文本的字特征矩阵,可以表示为:[2*X,HIDDENUNIT’]。
[0310] 也就是说,双向LSTM层输出的矩阵中包括2*X个一维数组,每个一维数组中所包括的元素的数量为HIDDENUNIT’。
[0311] 由于双向LSTM层需要进行正向和反向两个方向的识别,因此,所得到的目标文本的字特征矩阵中包括的一维数组的数量为目标表征矩阵中包括的一维数组的数量的两倍,
并且,目标文本的字特征矩阵中包括的每个一维数组均为一个设定长度的一维数组,即每
个一维数组中均包括预设数量个元素。
[0312] 其中,目标文本的字特征矩阵中包括的每个一维数组为一个字向量,从而,目标文本的字特征矩阵中包括:目标文本中每个字在目标文本的正向顺序中的字向量,以及目标
文本中每个字在目标文本的反向顺序中的字向量。
[0313] 进而,在得到上述目标文本的字特征矩阵后,双向LSTM层便可以将该字特征矩阵作为输出,从而,将该字特征矩阵输入到全连接层。
[0314] 针对全连接层:
[0315] 全连接层包括维度变换和特征提取两个作用,这样,全连接层在得到上述目标文本的字特征矩阵后,便可以基于该字特征矩阵,确定目标文本的标签矩阵。
[0316] 以双向LSTM输出的目标文本的字特征矩阵[2*(1+X),HIDDENUNIT]为例,经过全连接层后,该字特征矩阵[2*(1+X),HIDDENUNIT]可以转换为目标文本的标签矩阵,且该标签
矩阵可以表示为[(1+X),OUTPUTDIM]。
[0317] 上述目标文本的标签矩阵[(1+X),OUTPUTDIM]中包括(1+X)个一维向量,每个一维向量可以表示:关于第一分类标签的第二数组所表征的虚拟字的标签向量和目标文本中每
个字的标签向量。
[0318] 其中,关于第一分类标签的第二数组所表征的虚拟字的NER标签为“XX”,例如,可以为上述表1中的“O”,即关于第一分类标签的第二数组所表征的虚拟字为非词槽。相应的,
目标文本中每个字的标签向量可以表示:该字对应OUTPUTDIM个值,且该OUTPUTDIM个值是
该字可能具有的NER标签的数目,表示该字可以有OUTPUTDIM个概率值,其中,每个概率值的
大小代表这个字属于该概率值所对应的NER标签的可能性,概率值越大则说明字具有该概
率值所对应的NER标签的概率越大。
[0319] 基于此,全连接层可以基于目标文本的字特征矩阵,确定目标文本的标签矩阵,其该标签矩阵可以用于表征:目标文本中每个字具有各个NER标签的概率。也就是说,根据目
标文本的标签矩阵,可以确定目标文本中每个字具有各个NER标签的概率。
[0320] 进一步的,全连接层便可以将上述目标文本的标签矩阵作为输出,从而,将该目标文本的标签矩阵输入到上述CRF层。
[0321] 针对CRF层:
[0322] CRF层可以理解为维特比解码层(Viterbi decode),进而,CRF层在接收到目标文本的标签矩阵后,便可以利用预设的转移矩阵,计算该标签矩阵的每条链路的和值,并得到
和值最大的链路,从而,得到可能性最大的路径。这样,便可以确定目标文本中的每个字的
NER标签,从而,得到目标文本中每个字的NER标签索引。
[0323] 进而,在得到上述目标文本中每个字的NER标签索引后,CRF层便可以将目标文本中每个字的NER标签索引作为输出,从而,将目标文本中每个字的NER标签索引输入到输出
层。
[0324] 针对输出层:
[0325] 由于CRF的输出为目标文本中每个字的NER标签索引,因此,对于用户而言,其可读性较差,这样,输出层便可以将目标文本中每个字的NER标签索引转换成该字的的NER标签,
其中,目标文本中每个字的NER标签可以是通过NER标签字符串表示的,从而,可以提高可读
性。例如,每个字的NER标签可以通过上述表2形式表示。
[0326] 可以理解的,当通过预先训练的命名实体识别模型实现本发明实施例提供的一种命名实体识别方法时,需要实现训练得到该命名实体识别模型。
[0327] 基于此,可选的,一种具体实现方式中,如图3所示,上述命名实体识别模型的训练方式,包括:
[0328] S301:获取待利用的样本文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值;
[0329] 其中,第二分类标签用于表征样本文本所对应的用户意图;
[0330] S302:将样本文本和样本文本的第二分类标签输入命名实体识别模型,以使命名实体识别模型利用样本文本和第二分类标签,构建样本表征矩阵,并利用样本表征矩阵预
测样本文本中每个字的NER标签预测值;
[0331] S303:基于样本标签的每个字的NER标签真值和NER标签预测值,判断命名实体识别模型是否收敛,如果是,执行步骤S304;否则,执行S305,并返回上述步骤S301;
[0332] S304:结束训练,得到训练完成的命名实体识别模型;
[0333] S305:调整命名实体识别模型中的模型参数,返回获取待利用的样本文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值的步骤。
[0334] 其中,该命名实体识别模型可以是任一类型的训练得到的,例如,笔记本电脑、台式电脑、平板电脑等,对此,本发明实施例不做具体限定,以下简称训练设备。其中,训练设
备与上述可以是同一,也可以是不同的。当训练设备和是同一设备时,即可以在同一中训练
得到上述命名实体识别模型,进而,在该上,利用所得到的命名实体识别模型实现本发明实
施例提供的一种命名实体识别方法;当上述训练设备和不是同一设备时,训练设备在训练
得到上述命名实体识别模型后,可以将所得到的命名实体识别模型发送给。这样,在得到命
名实体识别模型后,便可以利用所得到的命名实体识别模型实现本发明实施例提供的一种
命名实体识别方法。
[0335] 其中,训练设备可以首先获取待利用的样本文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值,进而,便可以基于所获取的样本文本、样本文本的第二分
类标签和样本文本中每个字的NER标签真值,对命名实体识别模型进行训练,得到训练完成
的命名实体识别模型。
[0336] 其中,样本文本可以是句子,也可以是由多个词语组成的词组或者短语,这都是合理的;另外,样本文本的第二分类标签可以是利用预设的意图分类模型对目标文本进行意
图分类所确定的。
[0337] 可以通过多种方式获取待利用的样本文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值。例如,可以直接获取保存在本地存储空间中的待利用的样本文
本、样本文本的第二分类标签和样本文本中每个字的NER标签真值;也可以从其他非本地的
存储空间中获取待利用的样本文本、样本文本的第二分类标签和样本文本中每个字的NER
标签真值。这都合理的。
[0338] 此外,在本发明实施例中,为了保证训练得到的命名实体识别模型的准确率,在命名实体识别模型的训练过程中,可以利用大量的样本文本、每个样本文本的第二分类标签
和每个样本文本中每个字的NER标签真值。因此,第二可以获取多组待利用的样本文本、样
本文本的第二分类标签和样本文本中每个字的NER标签真值。
[0339] 其中,训练样本的数量可以根据实际应用中的需求进行设定,本发明中不做具体限定。且样本文本的类型可以仅仅包括句子、短语或者词组,也可以包括句子、短语和词组
中的至少两类。这都是合理的。
[0340] 在获取到上述待利用的样本文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值后,便可以将这些样本文本、样本文本的第二分类标签和样本文本中每个字
的NER标签真值输入到命名实体识别模型中。
[0341] 其中,命名实体识别模型包括预处理子网络和命名实体识别子网络。这样,在获取到上述样本文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值后,上述预
处理子网络便可以利用样本文本和第二分类标签,构建样本表征矩阵。进而,上述命名实体
识别子网络便可以利用样本表征矩阵预测样本文本中每个字的NER标签预测值。
[0342] 其中,预处理子网络便可以利用样本文本和第二分类标签,构建样本表征矩阵的方式,与上述预处理子网络利用目标文本和第一分类标签,构建目标表征矩阵的方式类似,
在此不再赘述。
[0343] 在得到样本文本中每个字的NER标签预测值后,便可以基于样本标签的每个字的NER标签真值和NER标签预测值,判断命名实体识别模型是否收敛。
[0344] 其中,如果判断得到命名实体识别模型收敛,则说明命名实体识别模型已经训练完成,则可以停止训练,得到训练完成的命名实体识别模型。
[0345] 如果判断出命名实体识别模型未收敛,则说明命名实体识别模型还未训练完成,需要继续训练。则可以调整命名实体识别模型中的模型参数,从而,再次获取待利用的样本
文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值,并利用所获取的样本
文本、样本文本的第二分类标签和样本文本中每个字的NER标签真值,对参数调整后的命名
实体识别模型进行继续训练。直至判断出命名实体识别模型收敛,得到训练完成的命名实
体识别模型。
[0346] 其中,可选的,可以基于样本标签的每个字的NER标签真值和NER标签预测值之间的匹配度,判断命名实体识别模型是否收敛。
[0347] 例如,当样本标签的每个字的NER标签真值和NER标签预测值之间的匹配度大于预设匹配度时,可以判断命名实体识别模型收敛,否则,判定命名实体识别模型未收敛。
[0348] 下面,对预先训练的,用于得到上述第一分类标签和第二分类标签的意图分类模型进行举例说明。
[0349] 可选的,一种具体实现方式中,上述意图分类模型可以为CNN分类模型。
[0350] 其中,如图6所示,该CNN分类模型可以包括:输入层、字嵌入层、卷积层、池化层、融合层、全连接层和输出层。
[0351] 其中,在得到上述目标文本后,便可以将该目标文本输入到上述CNN分类模型中。
[0352] 进而,在上述CNN分类模型中,输入层中预先设定了每个字的索引值,其中,每个字的索引值的格式可以为one‑hot格式。
[0353] 这样,输入层在接收到目标文本后,可以首先从目标文本的第一个字开始,依次确定目标文本中的每个字的one‑hot格式的索引值。进而,输出层便可以生成关于目标文本的
第一数组。
[0354] 其中,该第一数组中包括上述目标文本中每个字的索引值,且所包括的搜引号的数量与上述目标文本中包括的字的数量。
[0355] 此外,可选的,由于用户讲话的时候,通常一句话不会超过70个字,因此,可以设置目标文本的最大长度为70。这样,当获取到的目标文本中包括的字的数量超过70时,丢弃第
70个字之后的各个字。从而,获取到的目标文本中包括的字的数量超过70时,所得到的第一
数组中包括70个索引值。
[0356] 当然,上述目标文本的最大长度也可以设置为其他具体数值,对此,本发明实施例不做具体限定。
[0357] 其中,可选的,所生成的第一数组中的每个索引值为整数数值。
[0358] 进而,在生成上述索引数组后,输入层便可以将该第一数组作为输出,从而,将该第一数组输入到字嵌入层中。
[0359] 所谓字嵌入是指用一个包括多个元素的一维数组表示每个字,其中,每个元素为一个数字,例如,利用包括128个元素的一维数组表示每个字,即利用包括128个数字的一维
数组表示每个字。
[0360] 这样,由于每个字的索引值对应一字向量,因此,字嵌入层可以确定所得到的索引数组中的各个索引值对应的字向量,从而,基于所确定的各个字向量,生成目标矩阵。其中,
所确定的每个索引值对应的字向量中所包括的元素的数量均为预设数量。
[0361] 进而,字嵌入层便可以将所生成的目标矩阵作为输出,并将该目标矩阵输入到卷积层中。
[0362] 卷积层的作用是放大并提出目标文本中的某些特征,从而,输出一个关于目标文本的特征的特征矩阵。该特征矩阵的大小与卷积层的卷积核有关。
[0363] 其中,卷积核可以表示为[K,Length],其中,K表示使用K字长的特征提取,即把目标文本中连续的K个字作为感兴趣的特征,从而,能够把目标文本中的连续的K个字进行整
体处理。其中,当该连续的K个字是词语或短语时,可以将该该连续的K个字作为一个整体考
虑,当该连续的K个字是单字时,需要考虑该连续的K个字中,各个字的前后关系。Length表
示K字长的卷积核的数量。
[0364] 在本具体实现方式中,卷积层中可以包括多个卷积核,从而,可以针对每个卷积核,得到一个特征矩阵。
[0365] 池化层的目的是忽略卷积核提取出来的特征中的不重要的特性,只保留最重要的特征。
[0366] 其中,池化层可以采用“下采样”方法,所谓“下采样”方式是针对卷积层输出的各个矩阵,找到每个矩阵中的最大值,从而,用该最大值代替该矩阵。
[0367] 并且,在本具体实现方式中,由于可以存在多个卷积层,因此,可以存在多个池化层,即每个卷积层后相接一个池化层,从而,池化层的输出即为相接的卷积层输出的矩阵中
的最大值。
[0368] 融合层用于将多个池化层的输出进行组合,得到一个新的一维数组。
[0369] 全连接层的输入为融合层输出的一维数组。其用于将该一维数组中的各个数字转换为预设的分类标签总数个概率值,其中,所转换得到的概率值可以为浮点数值。并且,每
个概率值的大小代表目标文本对应于每个分类标签的可能性。其中,概率值越大,目标文件
对应该概率值代表的分类标签的可能性越大。
[0370] 通常,所得到的各个概率值的数值较大,因此,可以对所得到的各个概率值进行归一化,使归一化后的各个概率值的和值为1。
[0371] 输出层接收全连接成输出的各个概率值,即接收一个包括分类标签总数个数字的一维数组。其中,该一维数组中每个数字的下标表示一个分类标签的分类号,并且,输出层
可以将该分类标签的分类号转换为用户可识别的分类标签,即转换为用户可以识别的意
图。
[0372] 相应于上述本发明实施例提供的一种命名实体识别方法,本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,
处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
[0373] 存储器703,用于存放计算机程序;
[0374] 处理器701,用于执行存储器703上所存放的程序时,实现上述本发明实施例提供的任一命名实体识别方法的步骤。
[0375] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard 
Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便
于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0376] 通信接口用于上述电子设备与其他设备之间的通信。
[0377] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可
以是至少一个位于远离前述处理器的存储装置。
[0378] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal 
Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现
场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立
门或者晶体管逻辑器件、分立硬件组件。
[0379] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一命名实体
识别方法的步骤。
[0380] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一命名实体识别方法的步骤。
[0381] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序
产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或
部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计
算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质
中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机
指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字
用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或
数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以
是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘
Solid State Disk(SSD))等。
[0382] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0383] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
[0384] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围
内。