基于关键词生成回复语句的方法及装置与流程

文档序号:16668767发布日期:2019-01-18 23:26阅读:171来源:国知局
基于关键词生成回复语句的方法及装置与流程

本发明实施例涉及自然语言处理技术领域,尤其涉及一种基于关键词生成回复语句的方法及装置。



背景技术:

随着人工智能技术的不断发展,基于seq2seq(sequencetosequence,序列到序列)模型开发的人机对话系统逐渐受到人们的关注。其中,seq2seq模型由编码器和解码器组成,当人机对话系统接收到终端用户输入的提问语句后,人机对话系统首先使用编码器将提问语句编码为一个状态向量,然后使用解码器对该状态向量进行解码处理,从而生成回复语句。

发明人在实现本发明的过程中,发现现有技术中存在以下技术问题,由于,在对seq2seq模型进行训练时,通常采用最大似然法进行训练,因此,会导致出现频率较高的回复语句更容易被生成的情况发生,从而使得人机对话系统很大概率会生成“不知道”、“好的”等无实质意义的通用回复语句,进而导致人机对话无法再进行下去,使得终端用户的用户体验较差。



技术实现要素:

有鉴于此,本发明实施例提供一种基于关键词生成回复语句的方法及装置,主要目的在于提高人机对话系统生成回复语句的内容丰富度。

为了达到上述目的,本发明实施例主要提供如下技术方案:

第一方面,本发明实施例提供了一种基于关键词生成回复语句的方法,该方法包括:

获取用户输入的提问语句,并生成所述提问语句对应的多个词向量;

使用编码器对多个所述词向量进行编码处理,以生成所述提问语句对应的隐藏层状态向量;

确定所述提问语句对应的关键词的词向量;

使用解码器对所述关键词的词向量以及所述隐藏层状态向量进行解码处理,以生成所述提问语句对应的回复语句。

可选的,所述编码器包含第一lstm隐藏层和第二lstm隐藏层;所述第一lstm隐藏层包含多个第一lstm神经单元,所述第二lstm隐藏层包含多个第二lstm神经单元;所述使用编码器对多个所述词向量进行编码处理,以生成所述提问语句对应的隐藏层状态向量,包括:

根据所述提问语句对多个所述词向量进行排序;

将排序后的多个所述词向量依次输入所述编码器,以便所述编码器确定每个所述词向量对应的第一lstm神经单元以及第二lstm神经单元;

通过所述第一lstm神经单元将其对应的词向量以及前一第一lstm神经单元的第一隐藏层状态向量代入第一非线性激活函数,以计算所述第一lstm神经单元对应的第一隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第一lstm神经单元的前一第一lstm神经单元的第一隐藏层状态向量的取值为空向量;

通过所述第二lstm神经单元将其对应的第一lstm神经单元的第一隐藏层状态向量、前一第二lstm神经单元的第二隐藏层状态向量以及空向量代入第二非线性激活函数,以计算所述第二lstm神经单元对应的第二隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第二lstm神经单元的前一第二lstm神经单元的第二隐藏层状态向量的取值为空向量;

将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量确定为所述提问语句对应的隐藏层状态向量。

可选的,所述解码器包含第三lstm隐藏层和第四lstm隐藏层;所述第三lstm隐藏层包含多个第三lstm神经单元,所述第四lstm隐藏层包含多个第四lstm神经单元;所述使用解码器对所述关键词的词向量以及所述隐藏层状态向量进行解码处理,以生成所述提问语句对应的回复语句,包括:

将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量、第二lstm神经单元的第二隐藏层状态向量以及所述关键词的词向量输入所述解码器;

通过所述第三lstm神经单元将其对应的前一第三lstm神经单元的第三隐藏层状态向量以及所述关键词的词向量代入第三非线性激活函数,以计算所述第三lstm神经单元对应的第三隐藏层状态向量,其中,多个所述第三lstm神经单元中的第一个第三lstm神经单元对应的前一第三lstm神经单元的第三隐藏层状态向量的取值为所述第一隐藏层状态向量;

通过所述第四lstm神经单元将其对应的第三lstm神经单元的第三隐藏层状态向量、前一第四lstm神经单元的第四隐藏层状态向量以及所述前一第四lstm神经单元对应的待解码词向量代入第四非线性激活函数,以计算所述第四lstm神经单元对应的第四隐藏层状态向量,其中,多个所述第四lstm神经单元中的第一个第四lstm神经单元对应的前一第四lstm神经单元的第四隐藏层状态向量的取值为所述第二隐藏层状态向量,所述前一第四lstm神经单元对应的待解码词向量的取值为空向量;

根据所述第四lstm神经单元对应的第四隐藏层状态向量确定所述第四lstm神经单元对应的待解码词向量,并对所述待解码词向量进行解码处理,以生成所述第四lstm神经单元对应的解码词;

当所述第四lstm神经单元对应的解码词为句末标识符时,根据所述第四lstm神经单元的前n个第四lstm神经单元对应的解码词生成所述提问语句对应的回复语句。

可选的,所述第四隐藏层状态向量中包含多个第一分量;所述根据所述第四lstm神经单元对应的第四隐藏层状态向量确定所述第四lstm神经单元对应的待解码词向量,包括:

将多个所述第一分量输入多层感知器中,以便所述多层感知器输出每个所述第一分量对应的概率分布;

根据每个所述第一分量对应的概率分布,将最大概率值对应的第一分量确定为所述待解码词向量。

可选的,所述确定所述提问语句对应的关键词的词向量,包括:

对排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量进行合并处理,以生成合并向量,其中,所述合并向量中包含多个第二分量;

将多个所述第二分量输入所述多层感知器中,以便所述多层感知器输出每个所述第二分量对应的概率分布;

根据每个所述第二分量对应的概率分布,将最大概率值对应的第二分量确定为所述关键词的词向量。

可选的,所述生成所述提问语句对应的多个词向量,包括:

对所述提问语句进行分词处理,以获得多个分词;

生成每个所述分词对应的词向量。

第二方面,本发明实施例还提供了一种基于关键词生成回复语句的装置,该装置包括:

获取单元,用于获取用户输入的提问语句;

生成单元,用于生成所述获取单元获取的所述提问语句对应的多个词向量;

编码单元,用于使用编码器对所述生成单元生成的多个所述词向量进行编码处理,以生成所述提问语句对应的隐藏层状态向量;

确定单元,用于确定所述提问语句对应的关键词的词向量;

解码单元,用于使用解码器对所述确定单元确定的所述关键词的词向量以及所述隐藏层状态向量进行解码处理,以生成所述提问语句对应的回复语句。

可选的,所述编码器包含第一lstm隐藏层和第二lstm隐藏层;所述第一lstm隐藏层包含多个第一lstm神经单元,所述第二lstm隐藏层包含多个第二lstm神经单元;所述编码单元包括:

排序模块,用于根据所述提问语句对多个所述词向量进行排序;

第一输入模块,用于将排序后的多个所述词向量依次输入所述编码器,以便所述编码器确定每个所述词向量对应的第一lstm神经单元以及第二lstm神经单元;

第一代入模块,用于通过所述第一lstm神经单元将其对应的词向量以及前一第一lstm神经单元的第一隐藏层状态向量代入第一非线性激活函数,以计算所述第一lstm神经单元对应的第一隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第一lstm神经单元的前一第一lstm神经单元的第一隐藏层状态向量的取值为空向量;

第二代入模块,用于通过所述第二lstm神经单元将其对应的第一lstm神经单元的第一隐藏层状态向量、前一第二lstm神经单元的第二隐藏层状态向量以及空向量代入第二非线性激活函数,以计算所述第二lstm神经单元对应的第二隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第二lstm神经单元的前一第二lstm神经单元的第二隐藏层状态向量的取值为空向量;

第一确定模块,用于将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量确定为所述提问语句对应的隐藏层状态向量。

可选的,所述解码器包含第三lstm隐藏层和第四lstm隐藏层;所述第三lstm隐藏层包含多个第三lstm神经单元,所述第四lstm隐藏层包含多个第四lstm神经单元;所述解码单元包括:

第二输入模块,用于将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量、第二lstm神经单元的第二隐藏层状态向量以及所述关键词的词向量输入所述解码器;

第三代入模块,用于通过所述第三lstm神经单元将其对应的前一第三lstm神经单元的第三隐藏层状态向量以及所述关键词的词向量代入第三非线性激活函数,以计算所述第三lstm神经单元对应的第三隐藏层状态向量,其中,多个所述第三lstm神经单元中的第一个第三lstm神经单元对应的前一第三lstm神经单元的第三隐藏层状态向量的取值为所述第一隐藏层状态向量;

第四代入模块,用于通过所述第四lstm神经单元将其对应的第三lstm神经单元的第三隐藏层状态向量、前一第四lstm神经单元的第四隐藏层状态向量以及所述前一第四lstm神经单元对应的待解码词向量代入第四非线性激活函数,以计算所述第四lstm神经单元对应的第四隐藏层状态向量,其中,多个所述第四lstm神经单元中的第一个第四lstm神经单元对应的前一第四lstm神经单元的第四隐藏层状态向量的取值为所述第二隐藏层状态向量,所述前一第四lstm神经单元对应的待解码词向量的取值为空向量;

第二确定模块,用于根据所述第四lstm神经单元对应的第四隐藏层状态向量确定所述第四lstm神经单元对应的待解码词向量;

解码模块,用于对所述第二确定单元确定的所述待解码词向量进行解码处理,以生成所述第四lstm神经单元对应的解码词;

第一生成模块,用于当所述第四lstm神经单元对应的解码词为句末标识符时,根据所述第四lstm神经单元的前n个第四lstm神经单元对应的解码词生成所述提问语句对应的回复语句。

可选的,所述第四隐藏层状态向量中包含多个第一分量;所述第二确定模块包括:

输入子模块,用于将多个所述第一分量输入多层感知器中,以便所述多层感知器输出每个所述第一分量对应的概率分布;

确定子模块,用于根据每个所述第一分量对应的概率分布,将最大概率值对应的第一分量确定为所述待解码词向量。

可选的,所述确定单元包括:

合并模块,对排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量进行合并处理,以生成合并向量,其中,所述合并向量中包含多个第二分量;

第三输入模块,用于将多个所述第二分量输入所述多层感知器中,以便所述多层感知器输出每个所述第二分量对应的概率分布;

第三确定模块,用于根据每个所述第二分量对应的概率分布,将最大概率值对应的第二分量确定为所述关键词的词向量。

可选的,所述生成单元包括:

分词模块,用于对所述提问语句进行分词处理,以获得多个分词;

第二生成模块,用于生成每个所述分词对应的词向量。

第三方面,本发明实施例还提供一种电子设备,至少一个处理器;

以及与所述处理器连接的至少一个存储器、总线;其中,

所述处理器、存储器通过所述总线完成相互间的通信;

所述处理器用于调用所述存储器中的程序指令,以执行第一方面中任一项所述的基于关键词生成回复语句的方法。

第四方面,本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面中任一项所述的基于关键词生成回复语句的方法。

借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:

本发明实施例提供的一种基于关键词生成回复语句的方法及装置,与现有技术中人机对话系统在接收到终端用户输入的提问语句后,先使用编码器将提问语句编码为一个状态向量,然后使用解码器对该状态向量进行解码处理,从而生成回复语句相比,本发明实施例能够在人机对话系统接收到终端用户输入的提问语句后,首先,生成该提问语句对应的多个词向量;然后,使用编码器对多个词向量进行编码处理,从而生成该提问语句对应的隐藏层状态向量;其次,人机对话系统还会确定该提问语句对应的关键词的词向量;最后,人机对话系统使用解码器对该关键词的词向量以及该提问语句对应的隐藏层状态向量进行解码处理,从而生成该提问语句对应的回复语句。由于,人机对话系统在对提问语句对应的隐藏层状态向量进行解码处理的过程中,加入了该提问语句对应的关键词的词向量,从而使得生成的回复语句中既能够表达出该关键词的语义信息,却不强制该关键词出现在回复语句中,因此,提高了人机对话系统生成回复语句的内容丰富度,进而提升了终端用户的用户体验。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种基于关键词生成回复语句的方法流程图;

图2示出了本发明实施例提供的一种seq2seq模型的架构示意图;

图3示出了本发明实施例提供的另一种基于关键词生成回复语句的方法流程图;

图4示出了本发明实施例提供的一种基于关键词生成回复语句的装置的组成框图;

图5示出了本发明实施例提供的另一种基于关键词生成回复语句的装置的组成框图;

图6示出了本发明实施例提供的一种电子设备的结构框图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

本发明实施例提供一种基于关键词生成回复语句的方法,如图1所示,所述方法包括:

101、获取用户输入的提问语句,并生成提问语句对应的多个词向量。

其中,用户输入的提问语句可以但不限于为:用户在终端设备的操作界面上通过键盘输入的提问语句,或用户通过终端设备的麦克风输入的提问语句等等。

在本发明实施例中,当人机对话系统获取得到用户通过终端设备输入的提问语句时,便代表用户发起了一次人机对话,此时,人机对话系统需要生成该提问语句对应的多个词向量,即生成该提问语句包含的每个分词对应的词向量。

102、使用编码器对多个词向量进行编码处理,以生成提问语句对应的隐藏层状态向量。

对于本发明实施例,seq2seq模型由编码器和解码器组成,如图2所示,编码器包含两层lstm(longshorttermmemorynetwork,长短时记忆网络)隐藏层,每层lstm隐藏层中包含多个lstm神经单元,其中,第一层lstm隐藏层中的多个lstm神经单元与第二层lstm隐藏层中的多个lstm神经单元一一对应;解码器同样包含两层lstm隐藏层,每层lstm隐藏层中包含多个lstm神经单元,其中,第一层lstm隐藏层中的多个lstm神经单元与第二层lstm隐藏层中的多个lstm神经单元一一对应;编码器的第一层lstm隐藏层与解码器的第一层lstm隐藏层相连接,编码器的第二层lstm隐藏层与解码器的第二层lstm隐藏层相连接。

在本发明实施例中,人机对话系统在生成提问语句对应的多个词向量后,将多个词向量输入编码器,从而使用编码器对多个词向量进行编码处理,以生成该提问语句对应的隐藏层状态向量。

具体的,在本步骤中,人机对话系统在使用编码器对多个词向量进行编码处理时,首先,根据提问语句对多个词向量进行排序,即根据每个词向量对应的分词在提问语句中的位置对多个词向量进行排序;然后,将排序后的多个词向量依次输入编码器中,以便编码器能够确定每个词向量对应的第一层lstm隐藏层中的lstm神经单元和第二层lstm隐藏层中的lstm神经单元;其次,通过第一层lstm隐藏层中的lstm神经单元将该lstm神经单元对应的词向量及该lstm神经单元对应的前一lstm神经单元的隐藏层状态向量代入非线性激活函数f()中,从而计算该lstm神经单元对应的隐藏层状态向量,以及通过第二层lstm隐藏层中的lstm神经单元将该lstm神经单元对应的第一层lstm隐藏层中的lstm神经单元的隐藏层状态向量、该lstm神经单元对应的前一lstm神经单元的隐藏层状态向量及空向量<pad>代入非线性激活函数f()中,从而计算该lstm神经单元对应的隐藏层状态向量,其中,由于第一层lstm隐藏层中的第一个lstm神经单元以及第二层lstm隐藏层中的第一个lstm神经单元没有前一lstm神经单元,因此,将第一层lstm隐藏层中的第一个lstm神经单元对应的前一lstm神经单元的隐藏层状态向量的取值设置为空向量<pad>以及将第二层lstm隐藏层中的第一个lstm神经单元对应的前一lstm神经单元的隐藏层状态向量的取值设置为空向量<pad>;最后,在计算出每个词向量对应的第一层lstm神经单元的隐藏层状态向量和第二层lstm神经单元的隐藏层状态向量后,将最后一个词向量对应的第一层lstm神经单元的隐藏层状态向量和第二层lstm神经单元的隐藏层状态向量确定为提问语句对应的隐藏层状态向量,但不限于此。

103、确定提问语句对应的关键词的词向量。

在本命实施例中,人机对话系统在生成提问语句对应的隐藏层状态向量后,确定该提问语句对应的关键词的词向量。

具体的,在本步骤中,人机对话系统可以通过主题模型(latentdirichletallocation,lda)确定提问语句对应的关键词的词向量,也可以基于点互信息(pointwisemutualinformation,pmi)确定提问语句对应的关键词的词向量,还可以通过多层感知器(multilayerperceptron,mlp)确定提问语句对应的关键词的词向量,但不限于此。

104、使用解码器对关键词的词向量以及隐藏层状态向量进行解码处理,以生成提问语句对应的回复语句。

在本发明实施例中,人机对话系统在确定提问语句对应的关键词的词向量后,将该关键词的词向量以及在步骤102中生成的该提问语句对应的隐藏层状态向量输入解码器,从而使用解码器对该关键词的词向量以及该提问语句对应的隐藏层状态向量进行解码处理,以生成该提问语句对应的回复语句。

具体的,在本步骤中,人机对话系统在使用解码器对关键词的词向量以及提问语句对应的隐藏层状态向量进行解码处理时,首先,将最后一个词向量对应的第一层lstm神经单元的隐藏层状态向量、第二层lstm神经单元的隐藏层状态向量(即编码器的第一层lstm隐藏层中的最后一个lstm神经单元对应的隐藏层状态向量和第二层lstm隐藏层中的最后一个lstm神经单元对应的隐藏层状态向量)以及关键词的词向量输入解码器中;然后,通过解码器的第一层lstm隐藏层中的lstm神经单元将该lstm神经单元对应的前一lstm神经单元的隐藏层状态向量以及关键词的词向量代入非线性激活函数f()中,从而计算该lstm神经单元对应的隐藏层状态向量,以及通过解码器的第二层lstm隐藏层中的lstm神经单元将该lstm神经单元对应的第一层lstm隐藏层中的lstm神经单元的隐藏层状态向量、该lstm神经单元对应的前一lstm神经单元的隐藏层状态向量以及该前一lstm神经单元对应的待解码词向量代入非线性激活函数f()中,从而计算该lstm神经单元对应的隐藏层状态向量,其中,由于编码器的第一层lstm隐藏层与解码器的第一层lstm隐藏层相连接,编码器的第二层lstm隐藏层与解码器的第二层lstm隐藏层相连接,因此,解码器第一层lstm隐藏层中的第一个lstm神经单元的前一lstm神经单元的隐藏层状态向量的取值为编码器第一层lstm隐藏层中的最后一个lstm神经单元对应的隐藏层状态向量、解码器第二层lstm隐藏层中的第一个lstm神经单元的前一lstm神经单元的隐藏层状态向量的取值为编码器第二层lstm隐藏层中的最后一个lstm神经单元对应的隐藏层状态向量,此外,由于解码器第二层lstm隐藏层中的第一个lstm神经单元的前一lstm神经单元为编码器第二层lstm隐藏层中的最后一个lstm神经单元,其并没对应的待解码词向量,因此将解码器第二层lstm隐藏层中的第一个lstm神经单元的前一lstm神经单元对应的待解码词向量的取值为空向量<pad>;其次,在计算出解码器第二层lstm隐藏层中的某个lstm神经单元对应的隐藏层状态向量后,需要根据该lstm神经单元对应的隐藏层状态向量确定该lstm神经单元对应的待解码词向量,并对该待解码词向量进行解码处理,以生成该lstm神经单元对应的解码词;最后,当确定解码器第二层lstm隐藏层中的某个lstm神经单元对应的解码词为句末标识符<eos>时,停止解码操作,并根据该lstm神经单元的前n个lstm神经单元对应的解码词生成提问语句对应的回复语句,即根据每个解码词对应的解码时间,将n个解码词合并为提问语句对应的回复语句,其中,n为正整数,但不限于此。

本发明实施例提供的一种基于关键词生成回复语句的方法,与现有技术中人机对话系统在接收到终端用户输入的提问语句后,先使用编码器将提问语句编码为一个状态向量,然后使用解码器对该状态向量进行解码处理,从而生成回复语句相比,本发明实施例能够在人机对话系统接收到终端用户输入的提问语句后,首先,生成该提问语句对应的多个词向量;然后,使用编码器对多个词向量进行编码处理,从而生成该提问语句对应的隐藏层状态向量;其次,人机对话系统还会确定该提问语句对应的关键词的词向量;最后,人机对话系统使用解码器对该关键词的词向量以及该提问语句对应的隐藏层状态向量进行解码处理,从而生成该提问语句对应的回复语句。由于,人机对话系统在对提问语句对应的隐藏层状态向量进行解码处理的过程中,加入了该提问语句对应的关键词的词向量,从而使得生成的回复语句中既能够表达出该关键词的语义信息,却不强制该关键词出现在回复语句中,因此,提高了人机对话系统生成回复语句的内容丰富度,进而提升了终端用户的用户体验。

以下为了更加详细地说明,本发明实施例提供了另一种基于关键词生成回复语句的方法,特别是使用编码器对多个词向量进行编码处理,以生成提问语句对应的隐藏层状态向量的具体方法,以及使用解码器对关键词的词向量以及隐藏层状态向量进行解码处理,以生成提问语句对应的回复语句的具体方法,具体如图3所示,该方法包括:

201、获取用户输入的提问语句。

其中,关于步骤201、获取用户输入的提问语句,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。

202、生成提问语句对应的多个词向量。

在本发明实施例中,人机对话系统在获取得到用户通过终端设备输入的提问语句后,生成该提问语句对应的多个词向量。以下将对人机对话系统如何生成该提问语句对应的多个词向量进行详细说明。

(1)对提问语句进行分词处理,以获得多个分词;

在本发明实施例中,人机对话系统在获取得到用户通过终端设备输入的提问语句后,首先需要对该提问语句进行分词处理,以获得该提问语句对应的多个分词。需要进行说明的是,在实际应用过程中,可以但不限于:使用正向最大匹配法对提问语句进行分词处理、使用逆向最大匹配法对提问语句进行分词处理、使用最少切分对提问语句进行分词处理等等,本发明实施例对具体使用何种分词方法对提问语句进行分词处理不进行具体限定。

(2)生成每个分词对应的词向量。

在本发明实施例中,人机对话系统在获取得到提问语句对应的多个分词后,分别生成每个分词对应的词向量。

203、使用编码器对多个词向量进行编码处理,以生成提问语句对应的隐藏层状态向量。

其中,编码器包含第一lstm隐藏层和第二lstm隐藏层;第一lstm隐藏层包含多个第一lstm神经单元,第二lstm隐藏层包含多个第二lstm神经单元。

在本发明实施例中,人机对话系统在生成提问语句对应的多个词向量后,将多个词向量输入编码器,从而使用编码器对多个词向量进行编码处理,以生成该提问语句对应的隐藏层状态向量。以下将对人机对话系统如何使用编码器对多个词向量进行编码处理,以生成提问语句对应的隐藏层状态向量进行详细说明。

(1)根据提问语句对多个词向量进行排序。

在本发明实施例中,人机对话系统在生成提问语句对应的多个词向量后,首先根据提问语句对多个词向量进行排序,即根据每个词向量对应的分词在提问语句中的位置对多个词向量进行排序。

(2)将排序后的多个词向量依次输入编码器,以便编码器确定每个词向量对应的第一lstm神经单元以及第二lstm神经单元。

在本发明实施例中,人机对话系统在根据提问语句对多个词向量进行排序后,将排序后的多个词向量依次输入编码器中,以便编码器能够确定每个词向量对应的第一lstm神经单元以及第二lstm神经单元。

(3)通过第一lstm神经单元将其对应的词向量以及前一第一lstm神经单元的第一隐藏层状态向量代入第一非线性激活函数,以计算第一lstm神经单元对应的第一隐藏层状态向量。

其中,由于排序后的多个词向量中的第一个词向量对应的第一lstm神经单元(即第一lstm隐藏层中的第一个第一lstm神经单元)并没有前一第一lstm神经单元,因此,将第一lstm隐藏层中的第一个第一lstm神经单元对应的前一第一lstm神经单元的第一隐藏层状态向量的取值设置为空向量<pad>。

在本发明实施例中,人机对话系统在将排序后的多个词向量依次输入编码器中后,通过第一lstm隐藏层中的第一lstm神经单元将该第一lstm神经单元对应的词向量以及该第一lstm神经单元对应的前一第一lstm神经单元的第一隐藏层状态向量代入第一非线性激活函数,以计算该第一lstm神经单元对应的第一隐藏层状态向量,其中,第一非线性激活函数具体如下:

hil1=f(xi,hi-1l1)

其中,hil1为第一lstm隐藏层中的第i个第一lstm神经单元对应的第一隐藏层状态向量,xi为排序后的多个词向量中的第i个词向量,hi-1l1为第一lstm隐藏层中的第i-1个第一lstm神经单元对应的第一隐藏层状态向量;其中,i的取值范围为[1,n],n为多个词向量的数量;其中,h0l1的取值为空向量<pad>。

(4)通过第二lstm神经单元将其对应的第一lstm神经单元的第一隐藏层状态向量、前一第二lstm神经单元的第二隐藏层状态向量以及空向量代入第二非线性激活函数,以计算第二lstm神经单元对应的第二隐藏层状态向量。

其中,由于排序后的多个词向量中的第一个词向量对应的第二lstm神经单元(即第二lstm隐藏层中的第一个第二lstm神经单元)并没有前一第二lstm神经单元,因此,将第二lstm隐藏层中的第一个第二lstm神经单元对应的前一第二lstm神经单元的第二隐藏层状态向量的取值设置为空向量<pad>。

在本发明实施例中,人机对话系统通过第二lstm隐藏层中的第二lstm神经单元将该第二lstm神经单元对应的第一lstm神经单元的第一隐藏层状态向量、该第二lstm神经单元对应的前一第二lstm神经单元的第二隐藏层状态向量以及空向量<pad>代入第二非线性激活函数,以计算该第二lstm神经单元对应的第二隐藏层状态向量,其中,第二非线性激活函数具体如下:

hil2=f(<pad>,hil1,hi-1l2)

其中,hil2为第二lstm隐藏层中的第i个第二lstm神经单元对应的第二隐藏层状态向量,<pad>为空向量,hil1为第一lstm隐藏层中的第i个第一lstm神经单元对应的第一隐藏层状态向量,hi-1l2为第二lstm隐藏层中的第i-1个第二lstm神经单元对应的第二隐藏层状态向量;其中,i的取值范围为[1,n],n为多个词向量的数量;其中,h0l2的取值为空向量<pad>。

(5)将排序后的多个词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量确定为提问语句对应的隐藏层状态向量。

在本发明实施例中,人机对话系统在计算出每个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量后,将排序后的多个词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量确定为提问语句对应的隐藏层状态向量。

204、确定提问语句对应的关键词的词向量。

在本命实施例中,人机对话系统在生成提问语句对应的隐藏层状态向量后,需要确定该提问语句对应的关键词的词向量。以下将对人机对话系统如何确定提问语句对应的关键词的词向量进行详细说明。

(1)对排序后的多个词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量进行合并处理,以生成合并向量。

其中,合并向量中包含多个第二分量。

在本发明实施例中,人机对话系统在生成排序后的多个词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量(即第一lstm隐藏层中的最后一个第一lstm神经单元对应的第一隐藏层状态向量和第二lstm隐藏层中的最后一个第二lstm神经单元对应的第二隐藏层状态向量)后,将该第一隐藏层状态向量和该第二隐藏层状态向量进行合并处理,以生成合并向量。

(2)将多个第二分量输入多层感知器中,以便多层感知器输出每个第二分量对应的概率分布。

在本发明实施例中,由于多层感知器(multi-layerperceptron,mlp)内预先定义有包含2000个话题信息的话题词表,这2000个话题信息相当于2000个话题维度,因此可以认为该话题词表为包含所有日常聊天信息维度的话题信息库,从而人机对话系统在生成合并向量后,将该合并向量中的多个第二分量输入该多层感知器中,以便该多层感知器输出这2000个话题信息在每个第二分量上的概率分布,即每个第二分量对应的概率分布。

(3)根据每个第二分量对应的概率分布,将最大概率值对应的第二分量确定为关键词的词向量。

在本发明实施例中,由于第二分量对应的概率值越大,该第二分量为关键词的词向量的概率越大,因此在获取得到每个第二分量对应的概率分布后,根据每个第二分量对应的概率分布,将最大概率值对应的第二分量确定为关键词的词向量。

205、使用解码器对关键词的词向量以及隐藏层状态向量进行解码处理,以生成提问语句对应的回复语句。

其中,解码器包含第三lstm隐藏层和第四lstm隐藏层;第三lstm隐藏层包含多个第三lstm神经单元,第四lstm隐藏层包含多个第四lstm神经单元。

在本发明实施例中,人机对话系统在确定提问语句对应的关键词的词向量后,将该关键词的词向量以及在步骤203中生成的该提问语句对应的隐藏层状态向量输入解码器,从而使用解码器对该关键词的词向量以及该提问语句对应的隐藏层状态向量进行解码处理,以生成该提问语句对应的回复语句。以下将对人机对话系统如何使用解码器对关键词的词向量以及隐藏层状态向量进行解码处理,以生成提问语句对应的回复语句进行详细说明。

(1)将排序后的多个词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量、第二lstm神经单元的第二隐藏层状态向量以及关键词的词向量输入解码器。

在本发明实施例中,人机对话系统在确定提问语句对应的关键词的词向量后,首先将排序后的多个词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量、第二lstm神经单元的第二隐藏层状态向量(即第一lstm隐藏层中的最后一个第一lstm神经单元对应的第一隐藏层状态向量和第二lstm隐藏层中的最后一个第二lstm神经单元对应的第二隐藏层状态向量)以及关键词的词向量输入解码器中。

(2)通过第三lstm神经单元将其对应的前一第三lstm神经单元的第三隐藏层状态向量以及关键词的词向量代入第三非线性激活函数,以计算第三lstm神经单元对应的第三隐藏层状态向量。

其中,由于编码器包含的第一lstm隐藏层与解码器包含的第三lstm隐藏层相连接,因此第三lstm隐藏层中的第一个第三lstm神经单元对应的前一第三lstm神经单元的第三隐藏层状态向量的取值为第一lstm隐藏层中的最后一个第一lstm神经单元对应的第一隐藏层状态向量。

在本发明实施例中,人机对话系统在将第一lstm隐藏层中的最后一个第一lstm神经单元对应的第一隐藏层状态向量和第二lstm隐藏层中的最后一个第二lstm神经单元对应的第二隐藏层状态向量以及关键词的词向量输入解码器中后,通过第三lstm隐藏层中的第三lstm神经单元将该第三lstm神经单元对应的前一第三lstm神经单元的第三隐藏层状态向量以及关键词的词向量代入第三非线性激活函数,以计算该第三lstm神经单元对应的第三隐藏层状态向量,其中,第三非线性激活函数具体如下:

sjl1=f(y,sj-1l1)

其中,sjl1为第三lstm隐藏层中的第j个第三lstm神经单元对应的第三隐藏层状态向量,y为关键词的词向量,sj-1l1为第三lstm隐藏层中的第j-1个第三lstm神经单元对应的第三隐藏层状态向量;其中,s0l1的取值为hnl1

需要进行说明的是,第一非线性激活函数中包含的参数与第三非线性激活函数中包含的参数的取值相同。

(3)通过第四lstm神经单元将其对应的第三lstm神经单元的第三隐藏层状态向量、前一第四lstm神经单元的第四隐藏层状态向量以及前一第四lstm神经单元对应的待解码词向量代入第四非线性激活函数,以计算第四lstm神经单元对应的第四隐藏层状态向量。

其中,由于编码器包含的第二lstm隐藏层与解码器包含的第四lstm隐藏层相连接,因此第四lstm隐藏层中的第一个第四lstm神经单元对应的前一第四lstm神经单元的第四隐藏层状态向量的取值为第二lstm隐藏层中的最后一个第二lstm神经单元对应的第二隐藏层状态向量;其中,由于第四lstm隐藏层中的第一个第四lstm神经单元的前一第四lstm神经单元为第二lstm隐藏层中的最后一个第二lstm神经单元,其并没对应的待解码词向量,因此将第四lstm隐藏层中的第一个第四lstm神经单元的前一第四lstm神经单元对应的待解码词向量的取值设置为空向量<pad>。

在本发明实施例中,人机对话系统通过第四lstm隐藏层中的第四lstm神经单元将该第四lstm神经单元对应的第三lstm神经单元的第三隐藏层状态向量、该第四lstm神经单元对应的前一第四lstm神经单元的第四隐藏状态向量以及该前一第四lstm神经单元对应的待解码词向量代入第四非线性激活函数,以计算该第四lstm神经单元对应的第四隐藏层状态向量,其中,第四非线性激活函数具体如下:

sjl2=f(zj-1,sjl1,sj-1l2)

其中,sjl2为第四lstm隐藏层中的第j个第四lstm神经单元对应的第四隐藏层状态向量,zj-1为第四lstm隐藏层中的第j-1个第四lstm神经单元对应的待解码词向量,sjl1为第三lstm隐藏层中的第j个第三lstm神经单元对应的第三隐藏层状态向量,sj-1l2为第四lstm隐藏层中的第j-1个第四lstm神经单元对应的第四隐藏层状态向量;其中,s0l2的取值为hnl2;其中,z0的取值为空向量<pad>。

(4)根据第四lstm神经单元对应的第四隐藏层状态向量确定第四lstm神经单元对应的待解码词向量,并对待解码词向量进行解码处理,以生成第四lstm神经单元对应的解码词。

其中,第四隐藏层状态向量中包含多个第一分量。

在本发明实施例中,人机对话系统在计算出第四lstm隐藏层中的某个第四lstm神经单元对应的第四隐藏状态向量后,需要根据该第四lstm神经单元对应的第四隐藏层状态向量确定该第四lstm神经单元对应的待解码词向量,并对该待解码词向量进行解码处理,以生成该第四lstm神经单元对应的解码词。

具体的,在本步骤中,人机对话系统在根据第四lstm神经单元对应的第四隐藏层状态向量确定该第四lstm神经单元对应的待解码词向量时,可以将该第四隐藏层状态向量中的多个第一分量输入多层感知器中,以便多层感知器输出2000个话题信息在每个第一分量上的概率分布,即每个第一分量对应的概率分布,由于第一分量对应的概率值越大,该第一分量为该第四lstm神经单元对应的待解码词向量的可能性越大,因此在获取得到每个第一分量对应的概率分布后,根据每个第一分量对应的概率分布,将最大概率值对应的第一分量确定为该第四lstm神经单元对应的待解码词向量,其中,多层感知器在计算每个第一分量的概率分布时,可以通过以下公式进行计算:

pt=softmax(η(sjl2))

其中,sjl2为第四lstm隐藏层中的第j个第四lstm神经单元对应的第四隐藏层状态向量,pt为该第四隐藏层状态向量中第t个第一分量对应的概率分布。

(5)当第四lstm神经单元对应的解码词为句末标识符时,根据第四lstm神经单元的前n个第四lstm神经单元对应的解码词生成提问语句对应的回复语句。

在本发明实施例中,当人机对话系统得到第四lstm隐藏层中的某个第四lstm神经单元对应的解码词为句末标识符<eos>时,停止解码操作,并根据该第四lstm神经单元的前n个第四lstm神经单元对应的解码词生成提问语句对应的回复语句,即根据每个解码词对应的解码时间,将n个解码词合并为提问语句对应的回复语句,其中,n为正整数。

进一步的,作为对上述图1、图3所示方法的实现,本发明实施例提供了一种基于关键词生成回复语句的装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于提高人机对话系统生成回复语句的内容丰富度,具体如图4所示,该装置包括:

获取单元31,用于获取用户输入的提问语句;

生成单元32,用于生成获取单元31获取的所述提问语句对应的多个词向量;

编码单元33,用于使用编码器对生成单元32生成的多个所述词向量进行编码处理,以生成所述提问语句对应的隐藏层状态向量;

确定单元34,用于确定所述提问语句对应的关键词的词向量;

解码单元35,用于使用解码器对确定单元34确定的所述关键词的词向量以及所述隐藏层状态向量进行解码处理,以生成所述提问语句对应的回复语句。

进一步的,如图5所示,所述编码器包含第一lstm隐藏层和第二lstm隐藏层;所述第一lstm隐藏层包含多个第一lstm神经单元,所述第二lstm隐藏层包含多个第二lstm神经单元;编码单元33包括:

排序模块331,用于根据所述提问语句对多个所述词向量进行排序;

第一输入模块332,用于将排序后的多个所述词向量依次输入所述编码器,以便所述编码器确定每个所述词向量对应的第一lstm神经单元以及第二lstm神经单元;

第一代入模块333,用于通过所述第一lstm神经单元将其对应的词向量以及前一第一lstm神经单元的第一隐藏层状态向量代入第一非线性激活函数,以计算所述第一lstm神经单元对应的第一隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第一lstm神经单元的前一第一lstm神经单元的第一隐藏层状态向量的取值为空向量;

第二代入模块334,用于通过所述第二lstm神经单元将其对应的第一lstm神经单元的第一隐藏层状态向量、前一第二lstm神经单元的第二隐藏层状态向量以及空向量代入第二非线性激活函数,以计算所述第二lstm神经单元对应的第二隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第二lstm神经单元的前一第二lstm神经单元的第二隐藏层状态向量的取值为空向量;

第一确定模块335,用于将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量确定为所述提问语句对应的隐藏层状态向量。

进一步的,如图5所示,所述解码器包含第三lstm隐藏层和第四lstm隐藏层;所述第三lstm隐藏层包含多个第三lstm神经单元,所述第四lstm隐藏层包含多个第四lstm神经单元;解码单元35包括:

第二输入模块351,用于将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量、第二lstm神经单元的第二隐藏层状态向量以及所述关键词的词向量输入所述解码器;

第三代入模块352,用于通过所述第三lstm神经单元将其对应的前一第三lstm神经单元的第三隐藏层状态向量以及所述关键词的词向量代入第三非线性激活函数,以计算所述第三lstm神经单元对应的第三隐藏层状态向量,其中,多个所述第三lstm神经单元中的第一个第三lstm神经单元对应的前一第三lstm神经单元的第三隐藏层状态向量的取值为所述第一隐藏层状态向量;

第四代入模块353,用于通过所述第四lstm神经单元将其对应的第三lstm神经单元的第三隐藏层状态向量、前一第四lstm神经单元的第四隐藏层状态向量以及所述前一第四lstm神经单元对应的待解码词向量代入第四非线性激活函数,以计算所述第四lstm神经单元对应的第四隐藏层状态向量,其中,多个所述第四lstm神经单元中的第一个第四lstm神经单元对应的前一第四lstm神经单元的第四隐藏层状态向量的取值为所述第二隐藏层状态向量,所述前一第四lstm神经单元对应的待解码词向量的取值为空向量;

第二确定模块354,用于根据所述第四lstm神经单元对应的第四隐藏层状态向量确定所述第四lstm神经单元对应的待解码词向量;

解码模块355,用于对第二确定单元34确定的所述待解码词向量进行解码处理,以生成所述第四lstm神经单元对应的解码词;

第一生成模块356,用于当所述第四lstm神经单元对应的解码词为句末标识符时,根据所述第四lstm神经单元的前n个第四lstm神经单元对应的解码词生成所述提问语句对应的回复语句。

进一步的,如图5所示,所述第四隐藏层状态向量中包含多个第一分量;第二确定模块354包括:

输入子模块3541,用于将多个所述第一分量输入多层感知器中,以便所述多层感知器输出每个所述第一分量对应的概率分布;

确定子模块3542,用于根据每个所述第一分量对应的概率分布,将最大概率值对应的第一分量确定为所述待解码词向量。

进一步的,如图5所示,确定单元34包括:

合并模块341,对排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量进行合并处理,以生成合并向量,其中,所述合并向量中包含多个第二分量;

第三输入模块342,用于将多个所述第二分量输入所述多层感知器中,以便所述多层感知器输出每个所述第二分量对应的概率分布;

第三确定模块343,用于根据每个所述第二分量对应的概率分布,将最大概率值对应的第二分量确定为所述关键词的词向量。

进一步的,如图5所示,生成单元32包括:

分词模块321,用于对所述提问语句进行分词处理,以获得多个分词;

第二生成模块322,用于生成每个所述分词对应的词向量。

由于本实施例所介绍的基于关键词生成回复语句的装置为可以执行本发明实施例中的基于关键词生成回复语句的方法的装置,故而基于本发明实施例中所介绍的基于关键词生成回复语句的方法,本领域所属技术人员能够了解本实施例的基于关键词生成回复语句的装置的具体实施方式以及其各种变化形式,所以在此对于该基于关键词生成回复语句的装置如何实现本发明实施例中的基于关键词生成回复语句的方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中基于关键词生成回复语句的方法所采用的装置,都属于本申请所欲保护的范围。

本发明实施例提供的一种基于关键词生成回复语句的方法及装置,与现有技术中人机对话系统在接收到终端用户输入的提问语句后,先使用编码器将提问语句编码为一个状态向量,然后使用解码器对该状态向量进行解码处理,从而生成回复语句相比,本发明实施例能够在人机对话系统接收到终端用户输入的提问语句后,首先,生成该提问语句对应的多个词向量;然后,使用编码器对多个词向量进行编码处理,从而生成该提问语句对应的隐藏层状态向量;其次,人机对话系统还会确定该提问语句对应的关键词的词向量;最后,人机对话系统使用解码器对该关键词的词向量以及该提问语句对应的隐藏层状态向量进行解码处理,从而生成该提问语句对应的回复语句。由于,人机对话系统在对提问语句对应的隐藏层状态向量进行解码处理的过程中,加入了该提问语句对应的关键词的词向量,从而使得生成的回复语句中既能够表达出该关键词的语义信息,却不强制该关键词出现在回复语句中,因此,提高了人机对话系统生成回复语句的内容丰富度,进而提升了终端用户的用户体验。

所述基于关键词生成回复语句的装置包括处理器和存储器,上述获取单元、生成单元、编码单元、确定单元和解码单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高人机对话系统生成回复语句的内容丰富度。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述实施例所述的基于关键词生成回复语句的方法。

本发明实施例提供了一种电子设备,如图6所示,包括:

至少一个处理器41;

以及与所述处理器41连接的至少一个存储器42、总线43;其中,

所述处理器41、存储器42通过所述总线43完成相互间的通信;

所述处理器41用于调用所述存储器42中的程序指令,以执行以下步骤:

获取用户输入的提问语句,并生成所述提问语句对应的多个词向量;

使用编码器对多个所述词向量进行编码处理,以生成所述提问语句对应的隐藏层状态向量;

确定所述提问语句对应的关键词的词向量;

使用解码器对所述关键词的词向量以及所述隐藏层状态向量进行解码处理,以生成所述提问语句对应的回复语句。

进一步的,所述编码器包含第一lstm隐藏层和第二lstm隐藏层;所述第一lstm隐藏层包含多个第一lstm神经单元,所述第二lstm隐藏层包含多个第二lstm神经单元;所述使用编码器对多个所述词向量进行编码处理,以生成所述提问语句对应的隐藏层状态向量,包括:

根据所述提问语句对多个所述词向量进行排序;

将排序后的多个所述词向量依次输入所述编码器,以便所述编码器确定每个所述词向量对应的第一lstm神经单元以及第二lstm神经单元;

通过所述第一lstm神经单元将其对应的词向量以及前一第一lstm神经单元的第一隐藏层状态向量代入第一非线性激活函数,以计算所述第一lstm神经单元对应的第一隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第一lstm神经单元的前一第一lstm神经单元的第一隐藏层状态向量的取值为空向量;

通过所述第二lstm神经单元将其对应的第一lstm神经单元的第一隐藏层状态向量、前一第二lstm神经单元的第二隐藏层状态向量以及空向量代入第二非线性激活函数,以计算所述第二lstm神经单元对应的第二隐藏层状态向量,其中,排序后的多个所述词向量中的第一个词向量对应的第二lstm神经单元的前一第二lstm神经单元的第二隐藏层状态向量的取值为空向量;

将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量确定为所述提问语句对应的隐藏层状态向量。

进一步的,所述解码器包含第三lstm隐藏层和第四lstm隐藏层;所述第三lstm隐藏层包含多个第三lstm神经单元,所述第四lstm隐藏层包含多个第四lstm神经单元;所述使用解码器对所述关键词的词向量以及所述隐藏层状态向量进行解码处理,以生成所述提问语句对应的回复语句,包括:

将排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量、第二lstm神经单元的第二隐藏层状态向量以及所述关键词的词向量输入所述解码器;

通过所述第三lstm神经单元将其对应的前一第三lstm神经单元的第三隐藏层状态向量以及所述关键词的词向量代入第三非线性激活函数,以计算所述第三lstm神经单元对应的第三隐藏层状态向量,其中,多个所述第三lstm神经单元中的第一个第三lstm神经单元对应的前一第三lstm神经单元的第三隐藏层状态向量的取值为所述第一隐藏层状态向量;

通过所述第四lstm神经单元将其对应的第三lstm神经单元的第三隐藏层状态向量、前一第四lstm神经单元的第四隐藏层状态向量以及所述前一第四lstm神经单元对应的待解码词向量代入第四非线性激活函数,以计算所述第四lstm神经单元对应的第四隐藏层状态向量,其中,多个所述第四lstm神经单元中的第一个第四lstm神经单元对应的前一第四lstm神经单元的第四隐藏层状态向量的取值为所述第二隐藏层状态向量,所述前一第四lstm神经单元对应的待解码词向量的取值为空向量;

根据所述第四lstm神经单元对应的第四隐藏层状态向量确定所述第四lstm神经单元对应的待解码词向量,并对所述待解码词向量进行解码处理,以生成所述第四lstm神经单元对应的解码词;

当所述第四lstm神经单元对应的解码词为句末标识符时,根据所述第四lstm神经单元的前n个第四lstm神经单元对应的解码词生成所述提问语句对应的回复语句。

进一步的,所述第四隐藏层状态向量中包含多个第一分量;所述根据所述第四lstm神经单元对应的第四隐藏层状态向量确定所述第四lstm神经单元对应的待解码词向量,包括:

将多个所述第一分量输入多层感知器中,以便所述多层感知器输出每个所述第一分量对应的概率分布;

根据每个所述第一分量对应的概率分布,将最大概率值对应的第一分量确定为所述待解码词向量。

进一步的,所述确定所述提问语句对应的关键词的词向量,包括:

对排序后的多个所述词向量中的最后一个词向量对应的第一lstm神经单元的第一隐藏层状态向量和第二lstm神经单元的第二隐藏层状态向量进行合并处理,以生成合并向量,其中,所述合并向量中包含多个第二分量;

将多个所述第二分量输入所述多层感知器中,以便所述多层感知器输出每个所述第二分量对应的概率分布;

根据每个所述第二分量对应的概率分布,将最大概率值对应的第二分量确定为所述关键词的词向量。

进一步的,所述生成所述提问语句对应的多个词向量,包括:

对所述提问语句进行分词处理,以获得多个分词;

生成每个所述分词对应的词向量。

本发明实施例中的电子设备可以是智能手机、平板电脑、可穿戴设备等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取用户输入的提问语句,并生成所述提问语句对应的多个词向量;使用编码器对多个所述词向量进行编码处理,以生成所述提问语句对应的隐藏层状态向量;确定所述提问语句对应的关键词的词向量;使用解码器对所述关键词的词向量以及所述隐藏层状态向量进行解码处理,以生成所述提问语句对应的回复语句。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

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

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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