人机对话上下文语义拒识方法与流程

文档序号:32164707发布日期:2022-11-12 03:56阅读:424来源:国知局
人机对话上下文语义拒识方法与流程

1.本发明涉及自然语言处理领域,具体是一种人机对话上下文语义拒识方法。


背景技术:

2.人机交互已经渗透到我们的生活,如我们可以通过语音控制身边的电视,空调等。目前市面上运行在智能电视的语音助手普遍采用半双工交互方式进行人机交互。其不足在于:一是使用唤醒词,每次对话都需要使用唤醒词,唤醒后才能进行交互;二是使用语音遥控器,当用户按下语音键,开启对话进入拾音状态,当用户抬起语音键,停止拾音;三是在半双工状态下,环境噪声以及周围人声容易引起无效输入,对话系统或错误响应,或给出“没听懂”的呆板播报,并且播报时不能打断,十分影响交互效率。
3.为了优化体验,引入了全双工技术。当用户开启全双工模式时,由于周围噪声及语音技术局限,当说话人的语音模糊不清、有周围人说话声、无意义语音或者语音数据不在已有训练集合中时,识别系统会产生识别错误,从而影响对话系统的识别和理解效果。为了解决这一问题,采用了语义拒识别方法。
4.现有的人机对话中的语义拒识别一般采用以下两种方式:一是采用文本分类模型或文本相似度模型,获取用户问句和知识库所有知识点的类别概率或相似度,从获取的多个相似度中选取最大的类别概率或相似度,若最大类别概率或最大相似度未超过预设阈值,则拒绝识别用户问句。二是在分类器新增“拒绝识别类”,如果用户问句被分为拒绝识别类,则拒绝识别,否则,从知识库获取分类类别对应知识点回答。第一种方式中的文本相似度模型方法,对特征工程具有较强的依赖性,容易造成拒识准确率低。第二种方式,“拒绝识别类”的训练语料有限,因而拒绝识别范围有限,面对真实世界中成千上万的业务无关问句,造成拒识率太低。


技术实现要素:

5.为了提高拒识准确率,提供了一种人机对话上下文语义拒识方法。
6.本发明解决上述问题所采用的技术方案是:
7.人机对话上下文语义拒识方法,包括:
8.步骤1、建立强弱语义模型及上下文关系模型并训练,所述强弱语义模型用于判断语句是否是针对机器作出的,所述上下文关系模型用于判断当前语句与前一轮语句是否有关联;
9.步骤2、获取用户当前语句,并将其输入强弱语义模型进行判断,若语句不是针对机器的,则将语句输入上下文关系模型;
10.步骤3、上下文关系模型判断当前语句与前一轮语句是否有关联:若不相关,则当前语句为拒识;若相关且前一轮语句为拒识,则当前语句为拒识。
11.进一步地,所述强弱语义模型包括:词嵌入层、卷积层、池化层及输出层。
12.进一步地,所述上下文关系模型包括:输入层、embedding层、lstm层、attention层
及输出层。
13.进一步地,所述步骤2具体为:
14.步骤21、获取用户当前语句并使用bert模型将其转换为向量;
15.步骤22、将步骤21得到的向量输入强弱语义模型进行判断,若语句不是针对机器的,则将语句输入上下文关系模型。
16.进一步地,所述步骤1还包括建立关键词库,对应的,所述步骤2中,若语句不是针对机器的,则将其输入上下文关系模型前,还包括判断语句中是否包含关键词,若不包含,则将语句输入上下文关系模型,若包含,则当前语句不拒识。
17.进一步地,所述步骤3具体为:上下文关系模型判断当前语句与前一轮语句是否有关联:若不相关,则当前语句拒识;若相关,前一轮语句为拒识、且两轮时间间隔小于设定值,则当前语句为拒识。
18.进一步地,所述步骤3将当前语句判定为拒识后,还包括判断当前语句与前一轮语句的拼音相似度,若拼音相似度大于阈值,则当前语句不拒识。
19.本发明相比于现有技术具有的有益效果是:采用深度机器学习算法及上下文关系判断方法,对全双工连接对话中明显不是对机器说的话或上下文无关的语音识别后的文本拒识。通过从语义方面对人机连续对话中无关的文本进行拒识别,从而提高了拒识准确率;由于去除了语音识别后没有语义意义的文本,因此,节省了后端处理的计算资源,提高了整个对话系统的交互鲁棒性,提升了用户使用体验感,避免错误的语义理解引发错误的反馈到用户端。
附图说明
20.图1为人机对话上下文语义拒识方法的流程图;
21.图2为强弱语义模型结构示意图;
22.图3为上下文关系模型结构示意图。
具体实施方式
23.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
24.人机对话上下文语义拒识方法,包括:
25.步骤1、建立强弱语义模型及上下文关系模型并训练,所述强弱语义模型用于判断语句是否是针对机器作出的,所述上下文关系模型用于判断当前语句与前一轮语句是否有关联;
26.步骤2、获取用户当前语句,并将其输入强弱语义模型进行判断,若语句不是针对机器的,则将语句输入上下文关系模型;
27.步骤3、上下文关系模型判断当前语句与前一轮语句是否有关联:若不相关,则当前语句为拒识;若相关且前一轮语句为拒识,则当前语句为拒识。
28.具体的,所述强弱语义模型包括:词嵌入层、卷积层、池化层及输出层。
29.所述上下文关系模型包括:输入层、embedding层、lstm层、attention层及输出层。
30.所述步骤2具体为:
31.步骤21、获取用户当前语句并使用bert模型将其转换为向量;
32.步骤22、将步骤21得到的向量输入强弱语义模型进行判断,若语句不是针对机器的,则将语句输入上下文关系模型。
33.进一步地,所述步骤1还包括建立关键词库,对应的,所述步骤2中,若语句不是针对机器的,则将其输入上下文关系模型前,还包括判断语句中是否包含关键词,若不包含,则将语句输入上下文关系模型,若包含,则当前语句不拒识。
34.更近一步地,所述步骤3具体为:上下文关系模型判断当前语句与前一轮语句是否有关联:若不相关,则当前语句拒识;若相关,前一轮语句为拒识、且两轮时间间隔小于设定值,则当前语句为拒识。
35.优选的,所述步骤3将当前语句判定为拒识后,还包括判断当前语句与前一轮语句的拼音相似度,若拼音相似度大于阈值,则当前语句不拒识。
36.实施例
37.以与电视交互为例,为了充分挖掘用户与电视交互时的数据特点,从千万级的用户数据中挖掘用户与电视交互的行为特点、意图等并结合业务需求,将用户对电视说的话又分为51个领域及300多个意图以进行模型训练。本技术只涉及到两种语义空间:1、对电视说的话;2、不是对电视说的话。对电视说的话,如“我想看电影”,认为是强语义,不拒识别;不是对电视说的话,如周围人的聊天,认为是弱语义。
38.如图1所示,人机对话上下文语义拒识方法,包括:
39.步骤1、建立强弱语义模型及上下文关系模型并训练,所述强弱语义模型用于判断语句是否是针对机器作出的,即进行强语义及弱语义划分;所述上下文关系模型用于判断当前语句与前一轮语句是否有关联。
40.步骤2、获取用户当前语句及上一轮语句,并采用bert模型将其分别转换为向量,并将当前语句对应的向量输入强弱语义模型进行判断,若语句不是针对机器的,则将语句输入上下文关系模型。
41.强弱语义模型的结构如图2所示,包括:
42.输入层(embbeding layer),如图2所示,将输入语句利用bert转化为词向量,每行代表一个词向量,如果一个句子有6个词,每个词的词向量长度为7,那输入矩阵就是6x7。
43.卷积层(convolutional layer),卷积核的“宽度”就是输入矩阵的宽度(词向量维度),“高度”每次扫过2-5个单词,是整行整行的进行的,在移动过程中相当于提取n-gram特征,卷积核的大小为n
×
h,卷积核第二维h的维度与词embedding层的一致,卷积的时候是整行整行的卷积的,因此只需要确定每次卷积的行数即可,n一般取2-5个单词,这里我们取4个卷积核,尺寸为2*100,3*100,4*100,5*100,每个尺寸各2个,输入层分别与8个卷积核进行卷积操作,再使用激活函数激活,每个卷积核都得到了对应的特征图。
44.池化层(pooling layer),使用1-max pooling提取出每个特征图的最大值,然后进行级联,得到卷积向量维度(d_embedding-d_filter+1)/stride。
45.输出层(softmax),输出层使用softmax激活函数进行分类,在这层可以进行正则化操作(l2-regulariation)。
46.通过强弱语义模型即可判断当前语句是否是针对机器的。
47.上下文关系模型结构如图3所示,包括输入层、embedding层、lstm层、attention层及输出层:
48.将上轮文本及本轮文本对应的向量分别输入两个bilstm网络进行编码,即特征提取;
49.embedding层接入bi-lstm模型进行特征提取,模型bi-lstm有2个隐含层,组成了双层lstm模型,也就是两个lstm进行叠加,能够更好的抽取特征的表现,lstm(longshort-term memory)是一种特殊的循环神经网络(recurrent neural network,rnn),该结构中“门”的引入,巧妙地解决了rnn中由于时间间隔较长而产生的“梯度消失”问题,它保存了流经它的所有信息,是lstm实现记忆的关键部分。在训练模型时,设置正向传播的dropout取值为0.5,反向传播的dropout取值为0.5。根据长短期记忆网络的特点,得到lstm双向信息。假如需要预测的情感语句为x={x1,x2,...xi...,xn},xi表示第i个词,n为句长,通过获取bert词向量,然后通过bi-lstm进行上下文特征提取。
50.对于给定的n维输入x={x1,x2,...,xn},时间为t,bilstm的输出为h
t
,计算流程如下式:
[0051][0052][0053]
其中,表示提取的正向特征,表示提取的逆向特征,权重矩阵为w,偏置向量为b,σ为激活函数,代表正向与反向bilstm的输出,x表示t时刻的输入,h表示t时刻隐藏层。
[0054]
上轮文本和本轮文本经bilstm编码后特征使用concat方法进行连接,上轮文本和本轮文本经bilstm编码后特征使用concat方法进行连接,为了区分是两轮文本,在词向量前后加入句子的开始([cls])和分隔/结尾([sep])的特别标记。
[0055]
attention层权重调整:将经bilstm编码的上下文特征的正反隐藏层输出进行拼接为h
t
,将h
t
输入到注意力机制中,对隐含层的不同时间的输出进行不同的权重分配,不同的权重代表了不同的注意程度,将h
t
经过一层非线性转换为tanh为激活函数,ww和bw为注意力计算过程中的权重矩阵和篇置项,ww随机初始化,随模型训练不断更新。然后通过一层softmax进行归一化得到注意力权重矩阵α
t
,将α
t
和h
t
进行操作得到经过注意力机制的最终向量h

t
,最后在attention后面连接一个全连接层和softmax输出预测数值。
[0056]
步骤3、上下文关系模型判断当前语句与前一轮语句是否有关联:若不相关,则当前语句为拒识;若相关且前一轮语句为拒识,则当前语句为拒识。
[0057]
为了提高拒识准确率,所述步骤1还包括建立关键词库,对应的,所述步骤2中,若语句不是针对机器的,则将其输入上下文关系模型前,还包括判断语句中是否包含关键词,若不包含,则将语句输入上下文关系模型,若包含,则当前语句不拒识。本文实施在智能电视上,“我想看”、“电影”、“电视剧”之类的词可能是用户与机器交互的常用关键词,为了修
正模型误识别情况做关键词修正,带关键词的都不拒识。
[0058]
进一步地,还可以在时间维度上进行判断:所述步骤3具体为:上下文关系模型判断当前语句与前一轮语句是否有关联:若不相关,则当前语句拒识;若相关,前一轮语句为拒识、且两轮时间间隔小于设定值,则当前语句为拒识。
[0059]
优选的,所述步骤3将当前语句判定为拒识后,还包括判断当前语句与前一轮语句的拼音相似度,若拼音相似度大于阈值,则当前语句不拒识。拼音相似度计算:将本轮与上轮语句转换为不带声调的拼音(我想看电影
‑‑
》[wo,xiang,kan,dian,ying]),计算其编辑距离,编辑距离指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。通过编辑距离即可判断其相似度。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1