对话纠错方法、装置和电子设备与流程

文档序号:21550735发布日期:2020-07-21 10:58阅读:241来源:国知局
对话纠错方法、装置和电子设备与流程

本发明涉及对话纠错技术领域,尤其涉及一种对话纠错方法、装置和电子设备。



背景技术:

随着互联网的发展,基于人工智能技术的虚拟机器人在企业用户服务领域的应用越来越广泛。机器人客服不需要休息,可以更加快速和标准化的响应用户的问题,以语音对话或文字聊天的形式与用户进行沟通,将人工客服从大量重复性问答中解放出来。

在用户和客服机器人的对话场景中,例如,用户输入的句子可能包含语法错误,比如,输入的时候多打了字,也就是冗余,由于下游的对话、翻译模型基本是使用比较规范的语料训练的,这些语法的错误会对这些翻译模型产生很大的不良影响,比如重复冗余的输入,就会使得翻译模型重复翻译,大大影响翻译文本的可读性。

为了提高用户和客服机器人的对话纠错性能,现有技术使用语法错误诊断模型提前发现这些错误,再根据模型判断的错误类型对句子进行重构,但是,由于现有的语法错误诊断模型只依赖人工标注的训练数据,而这些人工标注的训练数据数量比较少,使得现有的语法错误诊断模型的纠错性能和泛化能力大大降低。



技术实现要素:

为了解决上述问题,本发明提供一种对话纠错方法、装置和电子设备,可以增强标注数据较少的语法诊断模型的语法诊断正确性。

本申请提供一种对话纠错方法,包括:

将句子输入到字粒度语言模型,得到所述句子的多层隐层表示;

将所述句子的多层隐层表示进行加权组合,得到所述句子的隐层加权组合向量;

将所述句子的隐层加权组合向量进行语法诊断,得到所述句子的语法诊断结果。

可选地,所述的方法,还包括:

将所述句子的隐层加权组合向量输入到所述语法诊断模型,得到所述句子的上下文表示向量,对所述所述句子的上下文表示向量经过前向网络打分,计算得到最佳序列路径;

根据所述最佳序列路径,反向还原得到所述句子的语法诊断结果。

可选地,所述的方法,还包括:

使用无标注文本数据训练所述字粒度语言模型,输出所述字粒度语言模型的中间隐层表示,所述中间隐层表示包括多层隐层表示;

在保持所述字粒度语言模型的参数不更新时,使用标注的语法诊断数据训练所述中间隐层表示的加权组合参数和所述字粒度语言模型的参数。

可选地,所述的方法,还包括:

将所述句子表示为字的序列,对所述句子中的每个字,根据对映关系,经过字向量矩阵,得到所述句子的字向量序列;

所述句子的字向量序列输入到所述字粒度语言模型,得到所述句子的多层的隐层表示。

可选地,所述的方法,还包括:

对所述句子的多层隐层表示进行隐层加权求和得到所述句子的隐层加权向量;

对所述句子的多层隐层表示根据自注意力机制进行自注意力处理得到所述句子的自注意力向量;

将所述句子的隐层加权向量和自注意力向量拼接得到所述句子的多层隐层表示的加权组合向量。

本申请还提供一种对话纠错装置,包括:

隐层处理模块,用于将句子输入到字粒度语言模型,得到所述句子的多层隐层表示;

加权组合模块,用于将所述句子的多层隐层表示进行加权组合,得到所述句子的隐层加权组合向量;

语法诊断模块,用于将所述句子的隐层加权组合向量进行语法诊断,得到所述句子的语法诊断结果。

可选地,所述语法诊断模块具体用于:

将所述句子的隐层加权组合向量输入到所述语法诊断模型,得到所述句子的上下文表示向量,对所述所述句子的上下文表示向量经过前向网络打分,计算得到最佳序列路径;

根据所述最佳序列路径,反向还原得到所述句子的语法诊断结果。

可选地,所述的装置,还包括:

训练模块,用于使用无标注文本数据训练所述字粒度语言模型,输出所述字粒度语言模型的中间隐层表示,所述中间隐层表示包括多层隐层表示;在保持所述字粒度语言模型的参数不更新时,使用标注的语法诊断数据训练所述中间隐层表示的加权组合参数和所述字粒度语言模型的参数。

可选地,所述隐层处理模块具体还用于:

将所述句子表示为字的序列,对所述句子中的每个字,根据对映关系,经过字向量矩阵,得到所述句子的字向量序列;

所述句子的字向量序列输入到所述字粒度语言模型,得到所述句子的多层的隐层表示。

可选地,所述加权组合模块具体还用于:

对所述句子的多层隐层表示进行隐层加权求和得到所述句子的隐层加权向量;

对所述句子的多层隐层表示根据自注意力机制进行自注意力处理得到所述句子的自注意力向量;

将所述句子的隐层加权向量和自注意力向量拼接得到所述句子的多层隐层表示的加权组合向量。

本申请还提供一种电子设备,包括:存储器、处理器以及通信组件;

所述存储器,用于存储计算机程序;

所述处理器与所述存储器和通信组件耦合,用于执行计算机程序,以用于执行所述对话纠错的方法。

本申请还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时能够实现所述对话纠错的方法。

本发明实施例通过字粒度语言模型对句子进行隐层加权处理,得到所述句子的隐层加权组合向量;之后,将所述句子的隐层加权组合向量进行语法诊断,得到所述句子的语法诊断结果,由于,本发明实施例的字粒度语言模型是使用大量无标注数据进行训练得到,其目的是为了用于增强标注数据较少的语法诊断模型的语法诊断正确性,这种学习训练字粒度语言模型可以有效地提升语法诊断模型的标注效果和泛化能力,并且在实际中具有可行性和易用性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的对话纠错方法的流程示意图;

图2为本发明实施例中步骤101具体实现方法示意图;

图3为本发明一实施例提供的对话纠错装置的结构示意图;

图4为本发明一实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

图1为本发明一实施例提供的对话纠错方法的流程示意图,如图1所示:

101、将句子进行隐层加权处理,得到所述句子的隐层加权组合向量;

在一种可选的实施方式中,步骤101包括:

将所述句子输入到字粒度语言模型,得到所述句子的多层隐层表示;

将所述句子的多层隐层表示进行加权组合,得到所述句子的隐层加权组合向量。

需要说明的是,本实施例中的字粒度语言模型可以是多层bilstm神经网络的字粒度中文语言模型,bilsrm是双向长短记忆神经网络。

需要说明的是,本实施例中,需要通过大量的无标注数据训练字粒度语言模型(基于多层bilstm神经网络的字粒度中文语言模型),输出字粒度语言模型的中间隐层表示,由于基于多层bilstm神经网络的字粒度中文语言模型是多层的,所以输出的字粒度语言模型的中间隐层表示也有多层。

语法诊断任务是要识别文本中是否存在一些错误,并对这些错误进行分类,比如拼写错误、用词不当、意思重复等一些预先定义好的类别。一般是有一些人工标注的数据的,比如“最近平果手机销量卖得不好”,就可以人工标注“平果”是拼写错误,而无标注数据,就是单纯的文本,没有人工标注。

本实施例中,通过大量的无标注数据训练字粒度语言模型其目的是为了用于增强标注数据较少的语法诊断模型的诊断正确性,这种学习训练过程可以有效地提升语法诊断模型的标注效果。

因此,本实施例中,将所述句子输入到字粒度语言模型之前,需要训练字粒度语言模型,具体实现方法包括:

使用无标注文本数据(如通过爬取、系统日志收集到大量的无标注文本数据)训练所述字粒度语言模型,输出所述字粒度语言模型的中间隐层表示,所述中间隐层表示包括多层隐层表示;

在保持所述字粒度语言模型的参数不更新时,使用标注的语法诊断数据训练所述中间隐层表示的加权组合参数和所述字粒度语言模型的参数。

这的训练得到的中间隐层表示的加权组合参数和字粒度语言模型的参数,是为了后续句子语法诊断时使用,其目的是为了增强标注数据较少的语法诊断模型的诊断精确性。

102、将所述句子的隐层加权组合向量进行语法诊断,得到所述句子的语法诊断结果。

在一种可选的实施方式中,步骤102包括:

将所述句子的隐层加权组合向量输入到所述语法诊断模型,得到所述句子的上下文表示向量,对所述句子的上下文表示向量经过前向网络打分,计算得到句子的上下文表示向量的最佳序列路径;其中,计算最佳序列路径时,例如,采用条件随机场(crf层)通过维特比解码算法计算得到最佳序列路径;

根据所述最佳序列路径,反向还原得到所述句子的语法诊断结果。因为通过反向还原之前是诊断的字粒度分类结果,需要还原成语法诊断结果,例如,“最近平果手机销量卖得不好”,第三个和第四个字是第k类结果,通过反向还原,可以得到第k类结果是属于拼写错误类型,例如,根据第k类结果与其对应的语法诊断结果之间的对应关系,所以可以还原为第三个和第四个字“平果”是拼写错误。

图2为本发明实施例中步骤101具体实现方法示意图,如图2所示,包括:

201、将句子表示为字的序列,对所述句子中的每个字,根据对映关系,经过字向量矩阵,得到所述句子的字向量序列;

例如,输入句子s可以表示为一个字的序列,s=[c1,c2,…],对句子中的每个字,根据对映关系,经过字向量矩阵emb_c,得到句子的字向量序列e=[e1,e2,…]。

202、将句子的字向量序列输入到所述字粒度语言模型,得到所述句子的多层的隐层表示。

例如,将句子的字向量序列e=[e1,e2…]经过多层bilstm神经网络的字粒度中文语言模型,得到句子的多层的隐层表示:h1=[h11,h12,…],h2=[h21,h22,…],h3…;其中,h1例如表示第1层,h12表示第1层第2个字;h2例如表示第2层,h21表示第2层第1个字,以此类推,hn例如表示第n层。

由于多层隐层表示是一层一层叠加的,因此最后一层hn有之前所有层的信息。在预训练时,可以取最后一个隐层hn,hn=[hn1,hn2,…]预测各个位置前后两个汉字,具体地可以与字向量矩阵emb_c相乘,并计算softmax概率。

203、对句子的多层隐层表示进行隐层加权求和得到所述句子的隐层加权向量;

例如,对句子的各隐层输出加权求和得到句子的隐层加权向量x1,具体地,x1=alpha1*h1+alpha2*h2+…;用权重参数alpha进行加权,alpha1表示h1层的权重系数,alpha2表示h2层的权重系数,以此类推,这个权重参数alpha是在通过大量的无标注数据训练字粒度语言模型时得到。

204、对所述句子的多层隐层表示根据自注意力机制进行自注意力处理得到所述句子的自注意力向量;

例如,对句子的各隐层根据自注意力机制进行自注意力处理(self-attention)得到句子的自注意力向量x2,具体地,x2=[beta_11*h11+beta_21*h21+…,beta_12*h12+beta_22*h22+…,…],其中[beta_11,beta_21,…]=softmax(w[h11,h21,…]);

其中,自注意力机制self-attention即k=v=q,例如输入一个句子,那么里面的每个词都要和该句子中的所有词进行attention计算,目的是学习句子内部的词依赖关系,捕获句子的内部结构。

需要说明的是,步骤203和204没有先后顺序之分,可以并行进行,也可以先后进行。

205、将所述句子的隐层加权向量和自注意力向量拼接得到所述句子的多层隐层表示的加权组合向量。

例如,将上述步骤203和204得到向量x1和x2的隐层拼接得到句子的多层隐层表示的加权组合向量,即x=[x1,x2]。

本发明实施例通过字粒度语言模型对句子进行隐层加权处理,得到所述句子的隐层加权组合向量;之后,将所述句子的隐层加权组合向量进行语法诊断,得到所述句子的语法诊断结果,由于,本发明实施例的字粒度语言模型是使用大量无标注数据进行训练得到,其目的是为了用于增强标注数据较少的语法诊断模型的语法诊断正确性,这种学习训练字粒度语言模型可以有效地提升语法诊断模型的标注效果和泛化能力,并且在实际中具有可行性和易用性。

图3为本发明一实施例提供的对话纠错装置的结构示意图;如图3所示,包括:

隐层处理模块,用于将句子输入到字粒度语言模型,得到所述句子的多层隐层表示;

加权组合模块,用于将所述句子的多层隐层表示进行加权组合,得到所述句子的隐层加权组合向量;

语法诊断模块,用于将所述句子的隐层加权组合向量进行语法诊断,得到所述句子的语法诊断结果。

可选地,所述语法诊断模块具体用于:

将所述句子的隐层加权组合向量输入到所述语法诊断模型,得到所述句子的上下文表示向量,对所述所述句子的上下文表示向量经过前向网络打分,计算得到最佳序列路径;

根据所述最佳序列路径,反向还原得到所述句子的语法诊断结果。

可选地,所述的装置还包括:

训练模块,用于使用无标注文本数据训练所述字粒度语言模型,输出所述字粒度语言模型的中间隐层表示,所述中间隐层表示包括多层隐层表示;在保持所述字粒度语言模型的参数不更新时,使用标注的语法诊断数据训练所述中间隐层表示的加权组合参数和所述字粒度语言模型的参数。

可选地,所述隐层处理模块具体还用于:

将所述句子表示为字的序列,对所述句子中的每个字,根据对映关系,经过字向量矩阵,得到所述句子的字向量序列;

所述句子的字向量序列输入到所述字粒度语言模型,得到所述句子的多层的隐层表示。

可选地,所述加权组合模块具体还用于:

对所述句子的多层隐层表示进行隐层加权求和得到所述句子的隐层加权向量;

对所述句子的多层隐层表示根据自注意力机制进行自注意力处理得到所述句子的自注意力向量;

将所述句子的隐层加权向量和自注意力向量拼接得到所述句子的多层隐层表示的加权组合向量。

本实施例所示装置可以执行上述图1所示方法实施例,其实现原理和技术效果不再赘述。

图4为本发明一实施例提供的电子设备的结构示意图,如图4所示,包括:

存储器、处理器以及通信组件;

存储器,用于存储计算机程序;

处理器,与存储器和通信组件耦合,用于执行计算机程序,以用于执行:

将句子输入到字粒度语言模型,得到所述句子的多层隐层表示;

将所述句子的多层隐层表示进行加权组合,得到所述句子的隐层加权组合向量;

将所述句子的隐层加权组合向量进行语法诊断,得到所述句子的语法诊断结果。

处理器还用于执行:

将所述句子的隐层加权组合向量输入到所述语法诊断模型,得到所述句子的上下文表示向量,对所述所述句子的上下文表示向量经过前向网络打分,计算得到最佳序列路径;

根据所述最佳序列路径,反向还原得到所述句子的语法诊断结果。

处理器还用于执行:

使用无标注文本数据训练所述字粒度语言模型,输出所述字粒度语言模型的中间隐层表示,所述中间隐层表示包括多层隐层表示;

在保持所述字粒度语言模型的参数不更新时,使用标注的语法诊断数据训练所述中间隐层表示的加权组合参数和所述字粒度语言模型的参数。

处理器还用于执行:

将所述句子表示为字的序列,对所述句子中的每个字,根据对映关系,经过字向量矩阵,得到所述句子的字向量序列;

所述句子的字向量序列输入到所述字粒度语言模型,得到所述句子的多层的隐层表示。

处理器还用于执行:

对所述句子的多层隐层表示进行隐层加权求和得到所述句子的隐层加权向量;

对所述句子的多层隐层表示根据自注意力机制进行自注意力处理得到所述句子的自注意力向量;

将所述句子的隐层加权向量和自注意力向量拼接得到所述句子的多层隐层表示的加权组合向量。

进一步,如图4所示,所述设备还包括:显示器、电源组件、音频组件等其它组件。图4中仅示意性给出部分组件,并不意味着所述设备只包括图4所示组件。

本实施例所示电子设备可以执行上述图1所示方法实施例,其实现原理和技术效果不再赘述。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被计算机执行时能够实现上述图1所示方法实施例中相关的步骤或操作,在此不再赘述。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1