1.本发明涉及自然语言处理领域,尤其涉及句子相似度的获得方法,一种基于句子相似度的意图识别装置和方法。
背景技术:2.意图识别是自然语言处理(natural language processing,nlp)中一项重要功能,可识别出用户意图,其本质上是一个分类问题。目前普遍的方法是采用深度学习,根据创建好的意图和收集到的相关语料,训练模型,来实现意图识别(分类),一个数据充分、训练良好的模型在分类任务上表现一般很好,但在迭代、维护的过程中,耗时较长,如要新增一个意图类别,需要前期收集、整理大量该意图语料数据,在后续加入模型重新训练或者增量学习,整个过程都需要大量的时间,同时,模型训练的好坏程度也会对预测的准确率有很大的影响。
技术实现要素:3.本发明针对意图识别模型迭代耗时周期长、准确率不够高的问题,提供一种基于句子相似度的意图识别方法,采用训练分类模型构建句子编码器,利用编码器获取其语义表征后计算句子间的余弦相似度来表示句子间的相似度,不直接由模型给出分类结果,而是通过句子相似度来判断意图的方法。
4.为实现上述目的,本发明提供如下技术方案:
5.一种基于句子相似度的意图识别方法,包括:
6.构建带有意图的句子标准数据集,获得句子标准数据集的语义表征;
7.获取待预测句子的语义表征,计算待预测句子与句子标准数据集中句子的语义表征余弦相似度,以句子标准数据集中余弦相似度最高的句子意图作为输出意图。
8.进一步的技术方案是:所述意图识别方法还包括训练编码器,以获得各意图句子的语义表征,具体为:
9.收集、整理同义句子数据组,作为训练语料;
10.对训练语料进行数据预处理;
11.构建模型,将预处理后的训练语料通过embedd、mask、bilstm、l2处理后,输入全连接层按分类模型进行训练,获取除最后全连接层外的所有部分作为编码器。
12.进一步的技术方案是:所述对训练语料进行数据预处理的方法,包括:
13.将全角转为半角,字母转为小写;
14.统计各字符出现的频次,按频次大小排序构建字典,依据字典将句子转化为整数序列并统一长度。
15.进一步的技术方案是:对所述预处理后的训练语料进行处理时,具体包括:
16.在mask时,前向直接对0遮盖,后向传播时在遮盖前处理,将有意义的整数反转,填充0不变,保证双向传播训练时0都表示具体语义特征。
17.进一步的技术方案是:所述编码器使用am-softmax约束分类。
18.进一步的技术方案是:所述am-softmax约束分类的方法,具体为:
19.对softmax的余弦值减去一个正数m同时缩放s倍,得到am-softmax取交叉熵loss有:
[0020][0021]
其中,p
′
t
表示am-softmax的值,n表示目标类别总数,t表示预测标签的期望类别,e为自然对数底数,cosθ
t
表示预测值与真实标签的内积,即为预测值与真实标签的余弦相似度,m为任意一个正数,s为缩放倍数;
[0022]
由公式一得到cosθ,通过cosθ对句子标准数据集进行聚类,a0,a1∈n0,b0∈n1,a0,b0分别为类别n0,n1的聚类中心,其中,|a
1-a0|<0.5|a
1-b0|。
[0023]
进一步的技术方案是:所述m=30,s=0.35。
[0024]
进一步的技术方案是:所述意图识别方法还包括:通过定时任务工具直接配置意图所属标准语句至编码器,对意图进行新增或更改;具体为:
[0025]
1).定时查询数据库,判断更新时间的数据是否大于上次查询时间的数据;
[0026]
2).如有,则判断更改标志,是新增还是删除;
[0027]
3).如果为新增:计算句子的向量表示,按“意图、文本、序列表示、向量表示”的格式加入句子标准数据集中;如为删除:将句子标准数据集中的“意图”修改为无效意图。
[0028]
另外,本发明提供如下技术方案:一种基于句子相似度的意图识别装置,包括:
[0029]
构建单元,用于构建带有意图的句子标准数据集,
[0030]
获取单元,获取句子标准数据集的语义表征,作为标准语义表征数据集;并获取待预测句子的语义表征;
[0031]
对比单元,将待预测句子的语义表征和标准语义表征数据集进行对比,获得余弦相似度最高的句子意图作为输出意图。
[0032]
与现有技术相比,本发明的有益效果是:
[0033]
本发明在于句子相似度的判断,利用分类模型训练,但是不取最终全连接层的分类结果,而是取到全连接层前的部分作为编码器,输入句子获取句子的语义表征来计算句子间的相似度;在训练模型阶段,采用的语料数据可以和后续使用模型时预测的语料数据完全不相关;不采用常见的孪生模型计算语义表征,而是训练一个单独编码器,分别计算句子的语义表征,再通过其之间的余弦相似度作为其相似判断的依据;解决了意图识别模型迭代周期长、准确率不高的问题,通过该意图识别方法可随时增加或删减意图,提高了便利性。
附图说明
[0034]
图1为本发明实施例中模型结构图;
[0035]
图2为本发明实施例中基于句子相似度的意图识别方法流程图。
具体实施方式
[0036]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]
在其中一个实施例中,一种基于句子相似度的意图识别方法,包括以下步骤:
[0038]
构建带有意图的句子标准数据集,获得句子标准数据集的语义表征;
[0039]
获取待预测句子的语义表征,计算待预测句子与句子标准数据集中句子的语义表征余弦相似度,以句子标准数据集中余弦相似度最高的句子意图作为输出意图。
[0040]
在一个可能的实施例中,意图识别方法还包括训练编码器,以获得各意图句子的语义表征,具体为:
[0041]
收集、整理同义句子数据组,作为训练语料;
[0042]
对训练语料进行数据预处理;
[0043]
构建模型,将预处理后的训练语料通过embedd、mask、bilstm、l2处理后,输入全连接层按分类模型进行训练,获取除最后全连接层外的所有部分作为编码器。
[0044]
进一步地,对训练语料进行数据预处理的方法,包括:
[0045]
将全角转为半角,字母转为小写;
[0046]
统计各字符出现的频次,按频次大小排序构建字典,依据字典将句子转化为整数序列并统一长度。
[0047]
更进一步地,对预处理后的训练语料进行处理时,具体包括:
[0048]
在mask时,前向直接对0遮盖,后向传播时在遮盖前处理,将有意义的整数反转,填充0不变,保证双向传播训练时0都表示具体语义特征。
[0049]
在一个可能的实施例中,编码器使用am-softmax约束分类。
[0050]
具体约束分类方法为:
[0051]
对softmax的余弦值减去一个正数m同时缩放s倍,得到am-softmax取交叉熵loss有:
[0052][0053]
其中,p
′
t
表示am-softmax的值,n表示目标类别总数,t表示预测标签的期望类别,e为自然对数底数,cosθ
t
表示预测值与真实标签的内积,即为预测值与真实标签的余弦相似度,m为任意一个正数,s为缩放倍数;
[0054]
由公式一得到cosθ,通过cosθ对句子标准数据集进行聚类,a0,a1∈n0,b0∈n1,a0,b0分别为类别n0,n1的聚类中心,其中,|a
1-a0|<0.5|a
1-b0|。
[0055]
在一个具体的实施例中,包括:
[0056]
1.训练语料准备
[0057]
通过爬虫或者开源数据集,收集、整理同义句子数据组,作为训练语料;构建带有意图的句子标准数据集,并聚类,一组数据为3-6条,共组建约20000组同义句子数据组,格式包括:组号、语句。例如:
[0058]
0为什么我的借呗用不了;
[0059]
0为什么我的借呗不能接了;
[0060]
0我的借呗为什么一直开通不了;
[0061]
1不能用花呗;
[0062]
1我的花呗用不了;
[0063]
1花呗怎么用不了
[0064]
…………
等等
[0065]
将全角转为半角,字母转为小写;对同义句子数据组统一处理后,再基于字统计语料中各字符出现频次,按出现频次大小排序构建字典,依据字典将句子转化为整数序列,并统一长度,不足补“0”,超出截断;例如最大长度为10,则:“我想看电影”的整数序列为[1 2 3 4 5 0 0 0 0 0]。
[0066]
2.构建模型,训练编码器
[0067]
构建如图1所示的模型结构,训练阶段有embedd、mask、bilstm、l2和全连接层。将预处理后的训练语料通过embedd、mask、bilstm、l2处理后,输入全连接层按分类模型进行训练,获取除最后全连接层外的所有部分作为编码器。其中,双向序列模型有前后向传播,在mask时,前向直接对0遮盖,后向传播时需要在遮盖前处理,将有意义的反转,填充0不变,例如“我想看电影”—[1 2 3 4 5 0 0 0 0 0],在后向传播遮盖时,应使其序列变为[5 4 3 2 1 0 0 0 0 0],而不是[0 0 0 0 0 5 4 3 2 1],保证双向传播训练时0都表示具体语义特征。
[0068]
为使训练过程中类与类间距离更大,编码器使用am-softmax约束分类,让同一类别的句向量间的距离更近,提高后续对相似度计算的精度。原来对softmax取交叉熵loss有:
[0069]
为使训练过程中类与类间距离更大,使用am-softmax约束分类,让同一类别的句向量间的距离更近,提高后续对相似度计算的精度。
[0070]
原来对softmax取交叉熵loss有:
[0071]
其中,pt表示softmax的值,n表示目标类别总数,t表示预测标签的期望类别,因前面对其作了l2归一化处理,《y
pred
,y
true
》表示预测值与真实标签的内积:《y
pred
,y
true
》=y
predytrue
=|y
pred
||y
true
|cosθ
t
,y
pred
为预测值,y
true
为目标值,且|y
pred
||y
true
|=1,因此预测值与真实标签的内积也可以用cosθ
t
表示:cosθ
t
=y
predytrue
=《y
pred
,y
true
);
[0072]
为保证后续预测相似度的准确率,需要分类模型将一个类别尽可能集中,类与类之间的距离尽可能大。
[0073]
需保证|a
1-a0|<0.5|a
1-b0|,a0,a1∈n0,b0∈n1,其中a0,b0分别为类别n0,n1的聚类中心,可依据人脸识别领域当中的am-softmax设计,对目标的余弦值减去一个正数m同时缩放s倍,以此加强分类约束,减小类内距离,增大类间距离,作为优选,m=30,s=0.35。
[0074]
对am-softmax取交叉熵loss有:
[0075][0076]
其中,p
′
t
表示am-softmax的值,n表示目标类别总数,t表示预测标签的期望类别,
e为自然对数底数,cosθ
t
表示预测值与真实标签的内积,即为余弦相似度,m为任意一个正数,s为缩放倍数。
[0077]
通过对am-softmax交叉熵loss的约束,到达聚类更集中的目的,即相似语句的语义向量之间的距离更小,即可提高相似度判断的精确度。保存模型时,舍去最后一层全连接层,将模型作为编码器。
[0078]
3.标准数据集构建
[0079]
整理待识别意图的数据集,以及从线上用户数据中收集的部分无具体意图请求作为召回修正,构建为句子标准数据集,包括意图、词条等;
[0080]
再将句子标准数据集输入上述步骤训练好的模型当中,得到各意图的标准数据语义表征库。同时使用定时任务工具,为服务添加增删标准数据的功能:
[0081]
1).定时查询数据库,判断是否更新时间大于上次查询时间的数据;
[0082]
2).如有,则判断更改标志,是新增还是删除;
[0083]
3).新增:计算句子的向量表示,按“意图文本序列表示向量表示”的格式加入标准数据中,同时将向量表示添加到标注数据矩阵中;删除:将标准数据中的“意图”修改为无效意图。
[0084]
这样,可实时增加意图以及所属标准数据,以及其数据的语义表征,便于对线上服务的实时维护同时缩短迭代周期。
[0085]
4.预测相似度
[0086]
计算通过模型后输出的句子的句向量之间的余弦相似度:
[0087][0088]
因为,之前在模型中,对输出的句向量已经过l2归一化处理,即则相似度为
[0089][0090]
其中,表示待预测句子向量,表示句子标准数据集中的句子向量,表示待预测句子的模长,表示句子标准数据集中的句子模长。计算出输入请求的待预测句子与标准数据集中的所有标准数据的余弦相似度,排序,取得分最高的数据所在意图为最终结果,输出。
[0091]
例如:输入文本“打开语音设置菜单”,可得到其向量表示(256维向量):
[0092]
[-0.0552034 0.0439968
ꢀ……ꢀ
0.03779338];
[0093]
将10000条标准数据矩阵,即100000
×
256的矩阵,每一行代表一个标准数据与其相乘,得到10000维的相似度向量[0.2276204 0.15901154
ꢀ……ꢀ
0.19017453],从中选取相似度的最高得分0.8195756673812866,输出其标签对应的标准数据的文本“把语音设置菜单开启”。
[0094]
在一个可能的实施例中,还公开了一种基于句子相似度的意图识别装置,包括:
[0095]
构建单元,用于构建带有意图的句子标准数据集,
[0096]
获取单元,获取句子标准数据集的语义表征,作为标准语义表征数据集;并获取待
预测句子的语义表征;
[0097]
对比单元,将待预测句子的语义表征和标准语义表征数据集进行对比,获得余弦相似度最高的句子意图作为输出意图。
[0098]
本发明在于句子相似度的判断,利用分类模型训练,但是不取最终全连接层的分类结果,而是取到全连接层前的部分作为编码器,输入句子获取句子的语义表征来计算句子间的相似度;在训练模型阶段,采用的语料数据可以和后续使用模型时预测的语料数据完全不相关;不采用常见的孪生模型计算语义表征,而是训练一个单独编码器,分别计算句子的语义表征,再通过其之间的余弦相似度作为其相似判断的依据;解决了意图识别模型迭代周期长、准确率不高的问题,通过该意图识别方法可随时增加或删减意图,提高了便利性。
[0099]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:1.一种基于句子相似度的意图识别方法,其特征在于,包括:构建带有意图的句子标准数据集,获得句子标准数据集的语义表征;获取待预测句子的语义表征,计算待预测句子与句子标准数据集中句子的语义表征余弦相似度,以句子标准数据集中余弦相似度最高的句子意图作为输出意图。2.根据权利要求1所述一种基于句子相似度的意图识别方法,其特征在于,所述意图识别方法还包括训练编码器,以获得各意图句子的语义表征,具体为:收集、整理同义句子数据组,作为训练语料;对训练语料进行数据预处理;构建模型,将预处理后的训练语料通过embedd、mask、bilstm、l2处理后,输入全连接层按分类模型进行训练,获取除最后全连接层外的所有部分作为编码器。3.根据权利要求2所述一种基于句子相似度的意图识别方法,其特征在于,所述对训练语料进行数据预处理的方法,包括:将全角转为半角,字母转为小写;统计各字符出现的频次,按频次大小排序构建字典,依据字典将句子转化为整数序列并统一长度。4.根据权利要求2所述一种基于句子相似度的意图识别方法,其特征在于,对所述预处理后的训练语料进行处理时,具体包括:在mask时,前向直接对0遮盖,后向传播时在遮盖前处理,将有意义的整数反转,填充0不变,保证双向传播训练时0都表示具体语义特征。5.根据权利要求2所述一种基于句子相似度的意图识别方法,其特征在于,所述编码器使用am-softmax约束分类。6.根据权利要求5所述一种基于句子相似度的意图识别方法,其特征在于,所述am-softmax约束分类的方法,具体为:对softmax的余弦值减去一个正数m同时缩放s倍,得到am-softmax取交叉熵loss有:其中,p
′
t
表示am-softmax的值,n表示目标类别总数,t表示预测标签的期望类别,e为自然对数底数,cosθ
t
表示预测值与真实标签的内积,即为预测值与真实标签的余弦相似度,m为任意一个正数,s为缩放倍数;由公式一得到cosθ,通过cosθ对句子标准数据集进行聚类,a0,a1∈n0,b0∈n1,a0,b0分别为类别n0,n1的聚类中心,其中,|a
1-a0|<0.5|a
1-b0|。7.根据权利要求6所述一种基于句子相似度的意图识别方法,其特征在于,所述m=30,s=0.35。8.根据权利要求2所述一种基于句子相似度的意图识别方法,其特征在于,所述意图识别方法还包括:通过定时任务工具直接配置意图所属标准语句至编码器,对意图进行新增或更改;具体为:1).定时查询数据库,判断更新时间的数据是否大于上次查询时间的数据;2).如有,则判断更改标志,是新增还是删除;
3).如果为新增:计算句子的向量表示,按“意图、文本、序列表示、向量表示”的格式加入句子标准数据集中;如为删除:将句子标准数据集中的“意图”修改为无效意图。9.一种基于句子相似度的意图识别装置,其特征在于,包括:构建单元,用于构建带有意图的句子标准数据集,获取单元,获取句子标准数据集的语义表征,作为标准语义表征数据集;并获取待预测句子的语义表征;对比单元,将待预测句子的语义表征和标准语义表征数据集进行对比,获得余弦相似度最高的句子意图作为输出意图。
技术总结本发明公开了一种基于句子相似度的意图识别方法,包括:构建带有意图的句子标准数据集,获得句子标准数据集的语义表征;获取待预测句子的语义表征,计算待预测句子与句子标准数据集中句子的语义表征余弦相似度,以句子标准数据集中余弦相似度最高的句子意图作为输出意图。同时,本发明还公开了一种基于句子相似度的意图识别装置,利用分类模型训练,取到全连接层前的部分作为编码器,输入句子获取句子的语义表征来计算句子间的相似度;采用的语料数据可以和后续使用模型时预测的语料数据完全不相关;解决了意图识别模型迭代周期长、准确率不高的问题,通过该意图识别方法可随时增加或删减意图,提高了便利性。提高了便利性。提高了便利性。
技术研发人员:刘光毅
受保护的技术使用者:四川长虹电器股份有限公司
技术研发日:2022.07.06
技术公布日:2022/11/1