发明内容
本申请实施例提供一种自然语言处理方法、设备及存储介质,以提高自然语言处理的准确率。
第一方面,本申请实施例提供一种自然语言处理方法,包括:
获取目标文本;
将所述目标文本输入第一分类识别模型进行分类识别,得到所述目标文本的初步分类识别结果;所述初步分类识别结果包括置信度;所述第一分类识别模型是通过预先标注的第一文本集对第一待训练模型进行训练得到的;
若所述置信度小于预设值,则将所述目标文本输入第二分类识别模型进行分类识别,得到所述目标文本的最终分类识别结果;所述第二分类识别模型是通过预先标注的第二文本集对第二待训练模型进行训练得到的,所述第二文本集中各文本输入第一分类识别模型得到的分类识别结果与预先标注的结果不一致。
在一种可能的设计中,所述将所述目标文本输入第一分类识别模型进行分类识别之前,还包括:
获取多个待训练文本;
对多个所述待训练文本进行标注,得到所述第一文本集以及所述第一文本集中各文本分别对应的第一标注结果;
根据所述第一文本集和所述第一标注结果,对所述第一待训练模型进行训练,得到所述第一分类识别模型。
在一种可能的设计中,所述根据所述第一文本集和所述第一标注结果,对所述第一待训练模型进行训练,得到所述第一分类识别模型之后,还包括:
将所述第一文本集中各文本输入所述第一分类识别模型,得到所述第一文本集中各文本分别对应的第一分类识别结果;
将所述第一文本集中所述第一分类识别结果与所述第一标注结果不一致的各文本加入所述第二文本集;
根据所述第二文本集,对所述第二待训练模型进行训练,得到所述第二分类识别模型。
在一种可能的设计中,所述得到所述目标文本的第一分类识别结果之后,还包括:
若所述置信度大于等于所述预设值,则将所述初步分类识别结果确认为所述最终分类识别结果。
在一种可能的设计中,所述第一分类识别模型和所述第二分类识别模型均包括意图识别分类模型和命名实体识别模型。
在一种可能的设计中,所述第一分类识别模型的意图识别分类模型的类型与所述第二分类识别模型的意图识别分类模型的类型相同,和/或,所述第一分类识别模型的命名实体识别模型的类型与所述第二分类识别模型的命名实体识别模型的类型相同。
在一种可能的设计中,所述将所述目标文本输入第一分类识别模型进行分类识别之前,还包括:
查询待搜索缓存区中是否存在与所述目标文本相关的目标缓存文本;
若存在,则调取所述目标缓存文本对应的第二分类识别结果,并将所述第二分类识别结果确定为所述最终分类识别结果。
在一种可能的设计中,所述待搜索缓存区为终端缓存区;所述终端缓存区用于将终端接收到的使用频次大于第一预设频次的第一目标待处理文本以及所述第一目标待处理文本对应的第一目标分类识别结果存储为缓存文本。
在一种可能的设计中,所述待搜索缓存区为云端缓存区。
在一种可能的设计中,所述云端缓存区包括固定回复缓存区;所述固定回复缓存区用于将使用频次大于第二预设频次的第二目标待处理文本以及所述第二目标待处理文本对应的第一答复结果存储为缓存文本;所述第一答复结果是根据所述第二目标待处理文本对应的第二目标分类识别结果确定的,且所述第一答复结果是固定不变的。
在一种可能的设计中,所述云端缓存区包括根据特定特征划分的多个子缓存区;每个所述子缓存区用于将具有相同特定特征值的,且使用频次大于第三预设频次的第三目标待处理文本以及所述第三目标待处理文本对应的答复结果存储为缓存文本;所述答复结果是根据所述第三目标待处理文本对应的第三目标分类识别结果确定的;
所述查询待搜索缓存区中是否存在与所述目标文本相关的目标缓存文本,包括:
确定所述目标文本对应的目标特定特征值;
根据所述目标特定特征值,从多个所述子缓存区中确定目标子缓存区;
查询所述目标子缓存区中是否存在与所述目标文本相关的目标缓存文本。
第二方面,本申请实施例提供一种自然语言处理设备,包括:
获取模块,用于获取目标文本;
第一处理模块,用于将所述目标文本输入第一分类识别模型进行分类识别,得到所述目标文本的初步分类识别结果;所述初步分类识别结果包括置信度;所述第一分类识别模型是通过预先标注的第一文本集对第一待训练模型进行训练得到的;
第二处理模块,用于在所述置信度小于预设值时,将所述目标文本输入第二分类识别模型进行分类识别,得到所述目标文本的最终分类识别结果;所述第二分类识别模型是通过预先标注的第二文本集对第二待训练模型进行训练得到的,所述第二文本集中各文本输入第一分类识别模型得到的分类识别结果与预先标注的结果不一致。
第三方面,本申请实施例提供一种自然语言处理设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
本实施例提供的自然语言处理方法、设备及存储介质,该方法包括获取目标文本,将所述目标文本输入第一分类识别模型进行分类识别,得到所述目标文本的初步分类识别结果,所述初步分类识别结果包括置信度,所述第一分类识别模型是通过预先标注的第一文本集对第一待训练模型进行训练得到的,若所述置信度小于预设值,则将所述目标文本输入第二分类识别模型进行分类识别,得到所述目标文本的最终分类识别结果,所述第二分类识别模型是通过预先标注的第二文本集对第二待训练模型进行训练得到的,所述第二文本集中各文本输入第一分类识别模型得到的分类识别结果与预先标注的结果不一致。本实施例提供的自然语言处理方法通过采用两个分类识别模型,能够通过由异常数据训练得到的第二分类识别模型准确处理第一分类识别模型无法处理的异常数据,从而提高了自然语言处理的准确率。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在车机自然语言处理(Natural Language Processing,NLP)中,通常采用意图识别分类模型和命名实体识别模型命名实体识别构成的分类识别模型对目标文本做意图识别和词槽提取。意图识别分类模型和命名实体识别模型可以是两个独立的模型。意图识别分类模型用于对输入的文本进行分类,实现意图识别,命名实体识别模型用于对文本进行词槽提取。
意图识别分类模型用来识别用户意图,例如,ABC为一个歌手的名字,XXX为一个歌曲名称,若用户说“我要听ABC的XXX”, 用户的意图是查询歌手“ABC”的“XXX”这首歌,预先为不同的意图进行编号,例如可以将“歌手歌名查询”的编号设定为1。
图1为本申请实施例提供的意图识别分类模型的原理示意图,如图1所示,该意图识别分类模型包括输入层、字嵌入层、卷积层、池化层、融合层、全连接层和输出层。
其中,输入层(one-hot转换层):用户输入语句的字符串,经过输入层变成一个个字的索引号,一句话就变成一个索引号的数组,考虑到人一次讲话一般少于70个字,因此,可以约定用户输入语句最长70个字,超过70的部分进行截断丢弃。那么输入层的输出可以是一个最长70个元素的数组,数组元素的值是整型数值,代表该元素对应字的索引。
字嵌入层(字向量):字嵌入是指通过不同的多维的浮点数据,即不同的字向量表示不同的字,例如,浮点数据可以是128维,也就是说,每个字可以用128个元素的一维数组表示。字向量是在训练时获得,训练好的模型可以在对文本进行推理时直接使用该字向量。输入层输出的字索引数组经过字嵌入层转换成多维字向量,所以输入层输出的70个字的索引就变成一个[70,128]的矩阵,每个元素是一个浮点数。
卷积层:卷积层的作用是忽略大部分特征,而把某些特征放大并提取出来,例如,在NLP意图分类处理中,可以使用3字长、4字长、5字长的特征提取,即把连续的3个字、4个字、5个字作为感兴趣的特征,提取出来供后面处理,由此可以把3~5个字作为整体来看待,如果它们是词语或短语就当成整体考虑,如果都是单字,则考虑它们的前后关系。卷积层的输入是上述字嵌入层输出的矩阵,卷积层的输出也是一个矩阵,该矩阵的大小和卷积核的大小相关,例如,如果卷积核大小为[3,128],则卷积以后输出的矩阵为[68,1]。3个字节长度特征提取对应卷积核[3,128],4个字节长度特征提取对应卷积核[4,128],5个字节长度特征提取对应卷积核[5,128],每个尺寸的卷积核有多个,例如可以为128个。
池化层:池化层的作用是将卷积层的卷积核提取出来的特征中忽略不重要的特性,只考虑最重要的特征,相应采取的手段是“下采样”,所谓“下采样”就是找出卷积层输出的矩阵中的最大的值,用该最大值替代整个矩阵。每一个卷积核后面接一个池化层, 池化层的输出为卷积层对应卷积核输出的矩阵中的最大值。
融合层:将多个池化层输出的数据进行组合得到一个大的一维数组,例如,128个3字节卷积池化、128个4字节卷积池化、128个5字节卷积池化,得到的384个数值,组成一个一维数组,数组中每个元素都是一个浮点数。
全连接层:全连接层接收来自融合层的输出,例如,融合层输出的是一个384个元素的一维数组,经过全连接层映射到预设的用户意图分类类别以后变成n个浮点数,n等于预设的用户意图分类类别数量,例如用户意图有20个,则n等于20。n个浮点数中每个数值的大小代表对应类别的可能性的大小,可能性越高,浮点数的数值越大。通常还可以对n个浮点数进行归一化处理,通过归一化处理可以将n个浮点数进行等比例缩小,使得n个浮点数之和为1。
输出层:接收上述全连接层的输出的n个浮点数,相当于一个有n个元素的一维数组,数组每个元素的下标代表一个分类的分类号, 输出层把分类号转换成用户可识别的意图,例如分类号1代表”歌手”类别,分类号2代表“歌名”类别。分类号和类别名字是用户预先定义好的。
NLP中命名实体识别是用来识别句子中的词槽(词槽类型,位置)的,假定ABC为一个歌手的名字,XXX为一个歌曲名称,语句“我要听ABC的XXX”, 命名实体识别处理的结果如表1所示,命名实体识别所需的标签(tag)的定义如表2所示:
表1
字 |
标签 |
我 |
O |
要 |
O |
听 |
O |
A |
B-人名 |
B |
I-人名 |
C |
L-人名 |
的 |
O |
X |
B-歌曲名 |
X |
I-歌曲名 |
X |
L-歌曲名 |
表2
标签 |
含义 |
B(Begin) |
词槽开始 |
I(Internal) |
词槽中间 |
L(Last) |
词槽结尾 |
U(Unique) |
单字词槽 |
O(Other) |
非词槽 |
图2为本申请实施例提供的命名实体识别模型的原理示意图。如图2所示,该命名实体识别模型是基于双向长短期记忆(Long Short-Term Memory, LSTM)加条件随机场算法(Conditional Random Fields,CRF)的命名实体识别模型结构,由左到右分别是输入层(one-hot转换层)、字嵌入层(字向量)、双向LSTM层(BiLstm)、全连接层(BiLstm output)和维特比解码层(CRF Viterbi decode)。
输入层(one-hot转换层):用户输入语句的字符串,经过输入层变成一个个字的索引号,一句话就变成一个索引号的数组,考虑到人一次讲话一般少于70个字,因此,可以约定用户输入语句最长70个字,超过70的部分进行截断丢弃。那么输入层的输出可以是一个最长70个元素的数组,数组元素的值是整型数值,代表该元素对应字的索引。
字嵌入层(字向量):字嵌入是指通过不同的多维的浮点数据,即不同的字向量表示不同的字,例如,浮点数据可以是128维,也就是说,每个字可以用128个元素的一维数组表示。字向量是在训练时获得,训练好的模型可以在对文本进行推理时直接使用该字向量。输入层输出的字索引数组经过字嵌入层转换成多维字向量,所以输入层输出的70个字的索引就变成一个[70,128]的矩阵,每个元素是一个浮点数。
双向LSTM层:LSTM在处理一句话时,会考虑整句话中的每一个字,而不是只考虑最近的一个字或者几个字, 例如,在处理“我要听ABC的XXX”这句话时,词“ABC”,前面有“我要听”,后面有“XXX”,LSTM长短网络在识别“ABC”时,考虑了前面的“我要听”以及后面的“ABC”,通过结合上下文,能更准确的判断出“ABC”可能是一个歌手。如果只用一个方向的LSTM就会丢失句子中字、词顺序的信息,例如“我爱你”和“你爱我”会区分不出来,若使用双向LSTM,通过正向LSTM处理“我爱你”,反向LSTM处理“你爱我”,2个LSTM处理的结果合并起来,模型就可以获得语句中每个字、词的顺序关系。
双向LSTM层的输入是上述字嵌入层的输出,例如,字嵌入层的输出是一个70*128的矩阵,那么双向LSTM层的输出也是一个矩阵,大小是[2*70, HIDDENUNIT], 其中70是指70个字,正向LSTM加反向LSTM就是140, HIDDENUNIT是预设的长度,例如128。矩阵的每个元素同样是一个浮点数。
全连接层:双向LSTM输出的矩阵[2*70, HIDDENUNIT]经过全连接层映射到预设的命名实体标签变成一个新的矩阵[70, OUTPUTDIM],其中,70代表最大70个字,OUTPUTDIM代表命名实体标签数量,例如歌名、歌手都属于命名实体标签。每个字产生OUTPUTDIM个可能的标签,每个标签用一个浮点数表示,数值越大表示可能性越大。
维特比解码层(Viterbi decode):前面全连接层输出了每个字的标签值,矩阵格式是[70, OUTPUTDIM], 但是最终每个字只能有一个标签,70个字就是70个标签,输出格式是70个元素的一维数组。矩阵到一维数组的转换就是维特比解码的功能,维特比解码会把每一条链路的值相加,并且加上转移矩阵,最终得到整条链路的值,选择最大的那一条,就是最有可能的标签路径。其中转移矩阵是在训练时产生的,运行时放在内存中供维特比解码使用。
以上,示例性介绍了NLP采用的分类识别模型中采用意图识别分类模型和命名实体识别的结构。通过该分类识别模型可以对大部分文本进行分类识别,得到正确的分类识别结果,但是依然会存在一部分文本无法被正确的分类识别。该部分文本被称作异常数据。
现有技术中,通常采用对异常数据扩增的方式或者将异常数据直接复制多份加入样本集的方式,得到新的样本集,并根据新的样本集对待训练模型进行重新训练,得到最终的自然语言处理模型。然而,不是所有的异常数据都能通过增扩样本的方式来解决,并且如果是由于特征空间的冲突导致某类样本收敛不了,重复该异常数据虽然能解决该类异常数据的样本的问题,但是会导致其他样本的识别错误。
针对上述技术问题,发明人研究发现,可以针对异常数据专门训练一个分类识别模型,以提高对异常数据的分类识别能力。基于此,本实施例提供了一种自然语言处理方法,通过采用两个分类识别模型,能够通过由异常数据训练得到的第二分类识别模型准确处理第一分类识别模型无法处理的异常数据,从而提高了自然语言处理的准确率。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请实施例提供的自然语言处理方法的流程示意图一。如图3所示,该方法包括:
301、获取目标文本。
302、将所述目标文本输入第一分类识别模型进行分类识别,得到所述目标文本的初步分类识别结果;所述初步分类识别结果包括置信度;所述第一分类识别模型是通过预先标注的第一文本集对第一待训练模型进行训练得到的。
303、判断所述置信度是否小于预设值,若小于,则执行步骤304,若大于等于,则执行步骤305。
304、将所述目标文本输入第二分类识别模型进行分类识别,得到所述目标文本的最终分类识别结果;所述第二分类识别模型是通过预先标注的第二文本集对第二待训练模型进行训练得到的,所述第二文本集中各文本输入第一分类识别模型得到的分类识别结果与预先标注的结果不一致。
305、将所述初步分类识别结果确认为所述最终分类识别结果。
本实施例的执行主体可以为计算机、平板电脑、手机、车机系统等处理设备。
本实施例中,所述第一分类识别模型和所述第二分类识别模型均可以包括意图识别分类模型和命名实体识别模型。示例性的,意图识别分类模型可以采用图1所示的结构,命名实体识别模型命名实体识别模型可以采用图2所示的结构。
在一些实施例中,所述第一分类识别模型的意图识别分类模型的类型与所述第二分类识别模型的意图识别分类模型的类型相同,和/或,所述第一分类识别模型的命名实体识别模型的类型与所述第二分类识别模型的命名实体识别模型的类型相同。
具体的,进行意图识别的意图识别分类模型可以采用TextCNN网络,命名实体识别模型可以采用双向长短记忆BiLSTM网络。第一分类识别模型和第二分类识别模型可以是相同的模型,也可以是不同的模型,只要完成相同的功能即可。例如第一分类识别模型的意图识别分类模型可以是TextCNN,第二分类识别模型的意图识别分类模型可以是循环神经网络RNN,还可以是TextCNN的变形。再例如,第一分类识别模型中的命名实体识别模型可以为双向长短记忆BiLSTM网络,第二分类识别模型中的命名实体识别模型可以是预训练双向编码器(Bidirectional Encoder Representations from Transformers,BERT),还可以是和第一分类识别模型中命名实体识别模型相同的BiLSTM(双向长短记忆)网络,但是参数规模小一点。
在具体模型应用过程中,通过第一分类识别模型对获取的目标文本进行分类识别等预测处理。第一分类识别模型的输入是目标文本,输出是意图和实体,以及它们的置信度。
所述第一分类识别模型可以包括意图识别分类模型和命名实体识别模型。示例性的,意图识别分类模型可以采用图1所示的结构,命名实体识别模型命名实体识别模型可以采用图2所示的结构。推理的过程,可以参考图1和图2所示实施例的介绍,此处不再赘述。
第一分类识别类型输出的初步分类识别结果中可以包括目标文本的意图及该意图对应的置信度,以及实体。将置信度与预设值,即置信度门限值,进行比较。该置信度门限值是预先人为设置的,置信度门限值的范围可以为大于0小于1的任意值。如果初步分类结果中的置信度小于置信度门限值,则认为预测失败,需要进行第二分类识别模型的进行进一步的分类识别;反之,如果预测置信度大于或等于置信度门限值,则认为预测成功,则可以将该初步分类识别结果作为最终的分类识别结果进行后续的处理,例如调取答复语句发送给用户。
初步分类结果中的置信度小于置信度门限值,需要进行第二分类识别模型的进行进一步的分类识别,表示目标文本在第一分类识别模型中的分类识别结果不可信,该目标文本可能属于异常数据,所以需要通过异常数据训练得到的第二分类识别模型来进行分类识别。
第二分类识别模型可以包括意图识别分类模型和命名实体识别模型。示例性的,意图识别分类模型可以采用图1所示的结构,命名实体识别模型命名实体识别模型可以采用图2所示的结构。推理的过程,可以参考图1和图2所示实施例的介绍。输入是用户的句子文本,输出是意图类别和命名实体,以及它们的置信度。此处不再赘述。
第二分类识别模型和第一分类识别模型在分类识别过程中,输入是相同的,都是目标文本,目标文本先经过第一分类识别模型进行分类识别,如果第一分类识别模型的分类识别结果中的置信度比较低,低于预设值,则认为第一分类识别模型推理预测失败,再把目标文本输入到第二分类识别模型进行分类识别,第二分类识别模型的分类识别结果作为最终分类识别结果。第二分类识别模型和第一分类识别模型的输出均为意图类别、命名实体以及它们的置信度。
本实施例提供的自然语言处理方法,通过采用两个分类识别模型,能够通过由异常数据训练得到的第二分类识别模型准确处理第一分类识别模型无法处理的异常数据,从而提高了自然语言处理的准确率。
图4为本申请实施例提供的自然语言处理方法的模型训练的流程示意图。如图4所示,该模型训练过程可以包括:
401、获取多个待训练文本。
402、对多个所述待训练文本进行标注,得到所述第一文本集以及所述第一文本集中各文本分别对应的第一标注结果。
403、根据所述第一文本集和所述第一标注结果,对所述第一待训练模型进行训练,得到所述第一分类识别模型。
本实施例中,对待训练文本进行预先标注后,加入第一文本集,将第一文本集中各待训练文本依次输入第一待训练模型,训练完成后得到第一分类识别模型。在应用过程中,通过训练得到的第一分类识别模型对目标文本进行分类识别。
为了得到异常数据,并通过异常数据训练得到第二分类识别模型,在一些实施例中,该方法还可以包括:
404、将所述第一文本集中各文本输入所述第一分类识别模型,得到所述第一文本集中各文本分别对应的第一分类识别结果。
405、将所述第一文本集中所述第一分类识别结果与所述第一标注结果不一致的各文本加入所述第二文本集。
406、根据所述第二文本集,对所述第二待训练模型进行训练,得到所述第二分类识别模型。
在通过步骤401至步骤403,得到第一分类识别模型后,可以将用于训练第一待训练模型的第一文本集中的各待训练文本输入第一分类识别模型,通过第一分类识别模型对各训练文本进行分类识别,一般来说,第一文本集中的大部分待训练文本的分类识别结果和预先标注的标注结果应该是一致的,有少部分会出现不一致的情况,该少部分待训练文本就是异常数据或者离群点,使用这些异常数据构成第二文本集,来对第二待训练模型进行训练得到第二分类识别模型。
本实施例提供的自然语言处理方法,由于是通过异常数据训练得到的,因此第二分类识别模型对于第一分类识别模型无法处理的异常数据会具有更高的处理准确率。在应用过程中,首先通过第一分类识别模型进行分类识别,再将置信度较低的目标文本输入第二分类识别模型进行再次分类识别,提高了对异常数据的处理能力,从而提高了自然语言处理的准确率。
图5为本申请实施例提供的自然语言处理方法的流程示意图二。如图5所示,在上述实施例的基础上,例如在图3所示实施例的基础上,为了提高处理效率,本实施例增加了缓存处理的步骤,该方法包括:
501、获取目标文本。
502、查询待搜索缓存区中是否存在与所述目标文本相关的目标缓存文本,若存在,则执行步骤503,若不存在,则执行步骤504。
503、调取所述目标缓存文本对应的第二分类识别结果,并将所述第二分类识别结果确定为所述最终分类识别结果。
本实施例中,待搜索缓存区既可以为云端缓存区,还可以为终端缓存区,还可以同时包括云端缓存区和终端缓存区。在具体查询过程中可以制定不同的策略对各缓存区进行顺序查询或者并行查询,本实施例对此不做限定。
在一些实施例中,所述待搜索缓存区可以为终端缓存区;所述终端缓存区用于将终端接收到的使用频次大于第一预设频次的第一目标待处理文本以及所述第一目标待处理文本对应的第一目标分类识别结果存储为缓存文本。
本实施例中,第一目标分类识别结果可以是将第一目标待处理文本输入至第一分类识别模型或者第二分类识别模型获得的。
具体的,由于每个用户的使用习惯不同,不同用户频繁使用的语音交互命令会存在不同,云端缓存不能保证每一个用户的常用命令被缓存,因此在在用户的终端侧设置小型缓冲,缓存该用户自己的高频语句,这样特定用户的习惯性的高频语句就会被缓存起来,加速了用户的语音交互处理,提升了用户体验。
在具体实现过程中,接收到用户输入的目标文本后,首先在终端缓存区中搜索,查看是否有同样的文本已经被缓存,如果有则直接调取出该文本对应的意图和实体,作为最终分类识别结果,进而根据该最终分类识别进行后续处理,例如调取答复语句返回给用户。通过直接调取终端缓存区的分类识别结果,无需进入神经网络处理,能够节省时间,提高处理效率。
在一些实施例中,所述待搜索缓存区还可以为云端缓存区。
在一些实施例中,所述云端缓存区包括固定回复缓存区;所述固定回复缓存区用于将使用频次大于第二预设频次的第二目标待处理文本以及所述第二目标待处理文本对应的第一答复结果存储为缓存文本;所述第一答复结果是根据所述第二目标待处理文本对应的第二目标分类识别结果确定的,且所述第一答复结果是固定不变的。
本实施例中,第二目标分类识别结果可以是将第二目标待处理文本输入至第一分类识别模型或者第二分类识别模型获得的。
具体的,考虑到某些信息是不会随时间更新的,也即回复是固定的内容,对于此种情况可以直接缓存回复的结果,例如,用户问“窗前明月光的作者是谁”、“世界上有几个大洲”,这种问句回答是固定不变的,可以直接把回答缓存起来,以便进一步节省处理时间。
为了缓存这种固定回复的语句,可以设置单独的固定回复缓存区,提前把句子分成固定回复和非固定回复,所有固定回复的句子被处理时加入到固定回复缓存区。
示例性的,在具体实现过程中,接收到用户输入的目标文本后,首先在固定回复缓存区中搜索,查看是否有同样的文本已经被缓存,如果有则直接取出回复返回给用户,因为无需进入神经网络处理以及后续处理,能够节省时间,如果该固定回复缓存区中没有,还可以查询其他缓存区。
在一些实施例中,所述云端缓存区包括根据特定特征划分的多个子缓存区;每个所述子缓存区用于将具有相同特定特征值的,且使用频次大于第三预设频次的第三目标待处理文本以及所述第三目标待处理文本对应的答复结果存储为缓存文本;所述答复结果是根据所述第三目标待处理文本对应的第三目标分类识别结果确定的。
本实施例中,第三目标分类识别结果可以是将第三目标待处理文本输入至第一分类识别模型或者第二分类识别模型获得的。
所述查询待搜索缓存区中是否存在与所述目标文本相关的目标缓存文本,可以包括以下步骤:确定所述目标文本对应的目标特定特征值;根据所述目标特定特征值,从多个所述子缓存区中确定目标子缓存区;查询所述目标子缓存区中是否存在与所述目标文本相关的目标缓存文本。
具体的,有一些句子的回复具有特定特征,例如,"今天的天气如何",其包含了车主所在地理位置这一特定特征,所有地理位置在S城市的车主问这句话,回复就是今天S城市的天气,如果是G城市的车主问这句话,则回复是G城市的天气,因此,可以根据地理位置这一特定特征,分别设置多个子缓存区,每一特定特征值(例如某一城市)占用一个子缓存区,这样,各个大城市使用独立的缓存空间,缓存住本地天气的回复,能够快速为不同地区的用户提供相应的回复,提升了用户体验。
再例如,“XX银行几点下班”,其包含了季节这一特定特征,夏令时会采用夏季作息时间,非夏令时会采用冬季作息时间,如果当前是夏令时,则可以回复夏季作息时间,如果当前不是夏令时,则可以回复冬季作息时间。因此,可以根据季节这一特定特征,分别设置两个子缓存区,每一特定特征值(夏令时或非夏令时)占用一个子缓存区,缓存对应的回复内容。能够快速为不同地区的用户提供相应的回复,提升了用户体验。
示例性的,为了保证用户能够获得准确的回复,可以根据一个预定的周期更新特定特征对应的缓存区域内存储的缓存文本的答复结果,使用户及时获得最新的答复结果。
在具体的实现过程中,接收到用户输入的目标文本后,在子缓存区中搜索,查看是否有同样的文本已经被缓存,如果有则直接调取中该文本对应的意图和实体词槽,而无需进入神经网络处理,节省了时间;如果本缓存区中没有,还可以查询其他缓存区。
在一些实施例中,所述云端缓存区包括通用缓存区,所述通用缓存区用于缓存用户使用频次大于第四预设频次的第四目标待处理文本,以及第四目标待处理文本的对应的第四目标分类识别结果。
具体的,使用频率高的语句,不具备上述各实施例的特征,例如属于用户个人的习惯问句,具有固定答复,具有特定特征(例如地域性、时间性),那么可以将其缓存在通用缓存区。在其他缓存区均查询不到相关结果时,可以对通用缓存区进行查询,如果有则直接调取出意图和实体词槽,而无需进入神经网络处理,节省了时间;如果没有,则可以进入步骤504的模型处理。当然,以上各个种类的缓存区的查询顺序可以根据实际需要进行适应性设置,本实施例对此不做限定。
504、将所述目标文本输入第一分类识别模型进行分类识别,得到所述目标文本的初步分类识别结果;所述初步分类识别结果包括置信度;所述第一分类识别模型是通过预先标注的第一文本集对第一待训练模型进行训练得到的。
505、判断所述置信度是否小于预设值,若小于,则执行步骤506,若大于等于,则执行步骤507。
506、将所述目标文本输入第二分类识别模型进行分类识别,得到所述目标文本的最终分类识别结果;所述第二分类识别模型是通过预先标注的第二文本集对第二待训练模型进行训练得到的,所述第二文本集中各文本输入第一分类识别模型得到的分类识别结果与预先标注的结果不一致。
507、将所述初步分类识别结果确认为所述最终分类识别结果。
本实施例提供的自然语言处理方法,通过采用缓存的方式,能够在无需将目标文本输入第一分类识别模型,即可获得相应的结果,能够极大的提高处理效率,提高用户体验。
图6为本申请实施例提供的自然语言处理设备的结构示意图。如图6所示,该自然语言处理设备60包括:获取模块601、第一处理模块602以及第二处理模块603。
获取模块601,用于获取目标文本;
第一处理模块602,用于将所述目标文本输入第一分类识别模型进行分类识别,得到所述目标文本的初步分类识别结果;所述初步分类识别结果包括置信度;所述第一分类识别模型是通过预先标注的第一文本集对第一待训练模型进行训练得到的;
第二处理模块603,用于在所述置信度小于预设值时,将所述目标文本输入第二分类识别模型进行分类识别,得到所述目标文本的最终分类识别结果;所述第二分类识别模型是通过预先标注的第二文本集对第二待训练模型进行训练得到的,所述第二文本集中各文本输入第一分类识别模型得到的分类识别结果与预先标注的结果不一致。
本申请实施例提供的自然语言处理设备,通过获取模块601获取目标文本;第一处理模块602将所述目标文本输入第一分类识别模型进行分类识别,得到所述目标文本的初步分类识别结果;所述初步分类识别结果包括置信度;所述第一分类识别模型是通过预先标注的第一文本集对第一待训练模型进行训练得到的;第二处理模块603在所述置信度小于预设值时,将所述目标文本输入第二分类识别模型进行分类识别,得到所述目标文本的最终分类识别结果;所述第二分类识别模型是通过预先标注的第二文本集对第二待训练模型进行训练得到的,所述第二文本集中各文本输入第一分类识别模型得到的分类识别结果与预先标注的结果不一致,能够通过由异常数据训练得到的第二分类识别模型准确处理第一分类识别模型无法处理的异常数据,从而提高了自然语言处理的准确率。
本申请实施例提供的自然语言处理设备,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图7是本申请实施例提供的一种自然语言处理设备的框图,该设备可以是计算机,平板设备,车机系统等,该设备可以设置在无人驾驶车辆上。
装置70可以包括以下一个或多个组件:处理组件701,存储器702,电源组件703,多媒体组件704,音频组件705,输入/输出(I/ O)接口706,传感器组件707,以及通信组件708。
处理组件701通常控制装置70的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件701可以包括一个或多个处理器709来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件701可以包括一个或多个模块,便于处理组件701和其他组件之间的交互。例如,处理组件701可以包括多媒体模块,以方便多媒体组件704和处理组件701之间的交互。
存储器702被配置为存储各种类型的数据以支持在装置70的操作。这些数据的示例包括用于在装置70上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件703为装置70的各种组件提供电力。电源组件703可以包括电源管理系统,一个或多个电源,及其他与为装置70生成、管理和分配电力相关联的组件。
多媒体组件704包括在所述装置70和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件704包括一个前置摄像头和/或后置摄像头。当装置70处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件705被配置为输出和/或输入音频信号。例如,音频组件705包括一个麦克风(MIC),当装置70处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或经由通信组件708发送。在一些实施例中,音频组件705还包括一个扬声器,用于输出音频信号。
I/ O接口706为处理组件701和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件707包括一个或多个传感器,用于为装置70提供各个方面的状态评估。例如,传感器组件707可以检测到装置70的打开/关闭状态,组件的相对定位,例如所述组件为装置70的显示器和小键盘,传感器组件707还可以检测装置70或装置70一个组件的位置改变,用户与装置70接触的存在或不存在,装置70方位或加速/减速和装置70的温度变化。传感器组件707可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件707还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件707还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件708被配置为便于装置70和其他设备之间有线或无线方式的通信。装置70可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件708经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件708还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置70可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器702,上述指令可由装置70的处理器709执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上自然语言处理设备执行的自然语言处理方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。