人机对话的回复生成方法和装置与流程

文档序号:14481196阅读:1137来源:国知局
本发明涉及人工智能
技术领域
,尤其涉及一种人机对话的回复生成方法和装置。
背景技术
:自然语言处理技术的发展,使得通过人机对话系统实现了人与计算机之间可用自然语言进行有效通信,而回复生成是人机对话系统的一个重要组成部分,在人机对话系统中,系统根据用户的消息,生成一句自然语言作为系统回复。相关技术中,人机对话系统中的回复生成技术主要采用模板方法,还有基于深度学习的端到端生成技术,根据接收到的用户的消息生成相应的自然语言的回复,但这两种方式系统适用性差,且得到的回复语言的流畅性、相关性和多样性均较差,都无法满足用户的需求。技术实现要素:本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种人机对话的回复生成方法和装置,通过用户消息生成多个关键词,并对关键词进行编码和解码处理,并通过采样获取关键词对应的文本词汇,进而生成回复消息,实现了不需要构建特征工程,适用于开放域的对话系统,解决了现有技术中需要依赖特定的模板,系统适用性差,生成的回复消息适用性、相关性和多样性也较差,无法满足用户需求的问题。本发明的第二个目的在于提出一种人机对话的回复生成装置。本发明的第三个目的在于提出一种计算机设备。本发明的第四个目的在于提出一种非临时性计算机可读存储介质。本发明的第五个目的在于提出一种计算机程序产品。为达上述目的,本发明第一方面实施例提出了一种人机对话的回复生成方法,包括:获取人机对话中的用户消息;根据用户消息,生成用于回复所述用户消息的多个关键词;利用编码器对所述多个关键词进行编码,得到所述多个关键词的第一隐状态;根据所述多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态;其中,若当前文本位置不为首个文本位置,当前文本位置对应的第二隐状态,是根据前一个文本位置对应的第二隐状态和所述多个关键词的第一隐状态,计算得到当前文本位置的注意力分布后,根据所述注意力分布对所述多个关键词的第一隐状态进行加权平均得到当前文本位置的上下文向量,根据所述前一个文本位置对应的第二隐状态和所述上下文向量,生成当前文本位置对应的第二隐状态;根据每一个第二隐状态进行采样,得到处于所述第二隐状态对应文本位置上的词汇;根据各词汇,以及各词汇所处的文本位置,生成回复消息。本发明实施例的人机对话的回复生成方法中,获取人机对话中的用户消息,根据用户消息,生成用于回复用户消息的多个关键词,利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态,根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇,根据各词汇,以及各词汇所处的文本位置,生成回复消息。通过用户消息生成多个关键词,并对关键词进行编码和解码处理,并通过采样获取关键词对应的文本词汇,进而生成回复消息,实现了不需要构建特征工程,适用于开放域的对话系统,解决了现有技术中需要依赖特定的模板,系统适用性差,生成的回复消息适用性、相关性和多样性也较差,无法满足用户需求的问题。为达上述目的,本发明第二方面实施例提出了一种人机对话的回复生成装置,包括:获取模块,用于获取人机对话中的用户消息;第一生成模块,用于根据用户消息,生成用于回复所述用户消息的多个关键词;编码模块,用于利用编码器对所述多个关键词进行编码,得到所述多个关键词的第一隐状态;解码模块,用于根据所述多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态;其中,若当前文本位置不为首个文本位置,当前文本位置对应的第二隐状态,是根据前一个文本位置对应的第二隐状态和所述多个关键词的第一隐状态,计算得到当前文本位置的注意力分布后,根据所述注意力分布对所述多个关键词的第一隐状态进行加权平均得到当前文本位置的上下文向量,根据所述前一个文本位置对应的第二隐状态和所述上下文向量,生成当前文本位置对应的第二隐状态;第二生成模块,用于根据每一个第二隐状态进行采样,得到处于所述第二隐状态对应文本位置上的词汇;根据各词汇,以及各词汇所处的文本位置,生成回复消息。本发明实施例的人机对话的回复生成装置中,获取模块用于获取人机对话中的用户消息,第一生成模块用于根据用户消息,生成用于回复用户消息的多个关键词,编码模块用于利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态,解码模块用于根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,第二生成模块用于根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇,根据各词汇,以及各词汇所处的文本位置,生成回复消息。通过用户消息生成多个关键词,并对关键词进行编码和解码处理,并通过采样获取关键词对应的文本词汇,进而生成回复消息,实现了不需要构建特征工程,适用于开放域的对话系统,解决了现有技术中需要依赖特定的模板,系统适用性差,生成的回复消息适用性、相关性和多样性也较差,无法满足用户需求的问题。为达上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如第一方面所述的人机对话的回复生成方法。为了实现上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的人机对话的回复生成方法。为了实现上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令被处理器执行时,实现如第一方面所述的人机对话的回复生成方法。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明实施例所提供的一种人机对话的回复生成方法的流程示意图;图2为本发明实施例所提供的另一种人机对话的回复生成方法的流程示意图;图3为本发明实施例所提供的基于关键词的文本生成系统的框图;图4为本发明实施例提供的一种人机对话的回复生成装置的结构示意图;图5为本发明实施例所提供的另一种人机对话的回复生成装置的结构示意图;以及图6示出了适于用来实现本申请实施方式的示例性计算机设备的框图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。下面参考附图描述本发明实施例的人机对话的回复生成方法和装置。现有技术中,人机对话系统中根据人机对话中的用户消息生成回复消息,而生成的回复消息适用性较差,同时回复消息的相关性和多样性也较差,无法满足用户的需求。目前,人机对话系统中的回复生成主要是通过以下2种方案实现的:方案1:模板方法:需要通过人工预先定义模板和规则,将自然语言理解和对话管理模块的输出转换为自然语言。但是,这种方式,模板的构造依赖于人工编写的特征,耗费大量的人力和成本,而构造的模板通常只适用于特定领域,如天气预报、体育报告等,无法进行其他领域的迁移,适用性较差,又由于模板方法只能生成固定样式的回复,缺乏多样性。方案2:序列-序列的深度学习框架sequencetosequence(seq2seq)深度学习框架:利用循环神经网络,将用户的消息和系统的回复建模为两个序列,通过大规模的语料训练模型学习两个序列间的映射关系。而这种方法缺乏主题规划,倾向于生成一般的模糊性回复,如“我不知道”,“我也是”等,缺乏相关性和多样性。为解决上述问题,本发明实施例提出了一种人机对话的回复生成方法,通过采集用户消息生成关键词,并基于生成的关键词进行编码和解码处理,并通过采样生成对应的词汇,进而生成回复消息,不依赖于特定模板,实现了生成的回复消息适用性、相关性和多样性较好。图1为本发明实施例所提供的一种人机对话的回复生成方法的流程示意图,如图1所示,该方法包括:步骤s101,获取人机对话中的用户消息。具体地,在人机对话系统中的人机对话界面,采集用户输入的用户消息,该用户消息可以为一个词,或一个句子,例如:天气、我要去游乐场等。步骤s102,根据用户消息,生成用于回复用户消息的多个关键词。根据获取的用户信息,可采用多种关键词生成方式生成用户回复用户消息的多个关键词,作为一种可能的实现方式,根据点互信息确定多个关键词,具体地,根据用户消息中的消息词,计算消息词wq与回复词wr之间的点互信息,可根据公式计算得到点互信息pmi,根据点互信息,从回复词中确定多个关键词。例如,在给定用户消息q={wq1,wq2,...,wqn}时,可以根据词语wr与用户消息的点互信息对词语进行排序,选取点互信息最高的若干个词语作为回复的关键词。作为另一种可能的实现方式,根据主题模型确定多个关键词,具体地,采用经过训练的主题模型,例如,twitter-lda模型,stentence-lda模型,将用户消息,输入主题模型中,能够确定用户主题。进而从用户主题中,选取出现概率最高的主题词作为多个关键词。作为又一种可能的实现方式,还可以根据对话管理算法确定多个关键词,具体地,采用对话管理算法,对获取的用户消息进行语义分析,得到语义槽,每一个语义槽中包含特定的语义,根据语义槽,确定多个关键词。可选地,还可以通过将上述3种可能的实现方式确定的关键词,进行组合和排序,得到用于回复用户消息的多个关键词,使得关键词更加准确。步骤s103,利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态。具体地,利用编码器根据确定的多个关键词,对关键词进行编码,对关键词进行编码后得到对应每一个关键词的编码结果,该编码结果即为该关键词的第一隐状态,作为一种可能的实现方式,若关键词无序,则直接将关键词的嵌入(embedding)向量作为第一隐状态;作为另一种可能的实现方式,若关键词有序,则编码器,可采用门循环单元(gatedrucurrentunit,gru)模型或sum模型或双向gru(bigru)模型来确定关键词的词序信息,进而得到关键词的第一隐状态。其中,gru模型包含2个门函数,分别为重置门resetgate的r和更新门updategate的z,在gru模型中,r和z共同控制了如何从之前的隐状态ht-1计算获得新的隐状态ht,具体地,可通过如下4个公式来解释模型的实现原理:rt=σ(wrxt+urht-1)重置门zt=σ(wzxt+uzht-1)更新门新的记忆隐状态其中,重置门:xt为模型的输入,重置信号rt直接应用于先前的隐藏状态的控制。更新门:更新信号zt会决定以多大程度将ht-1向下一个状态传递。比如,如果zt≈1,则ht-1几乎完全传递给ht,相反的,如果zt≈0,新的传递给下一层隐层。新的记忆:一个新的记忆是由重置信号rt、过去的隐状态ht-1和新的输入xt共同得到的。重置信号rt会判定ht-1对结果的重要程度,如果ht-1和新的记忆的计算不相关,那么重置门能够完全消除过去的隐状态,也就是说,这个阶段能够对新观察到的信息(词)和历史的隐状态ht-1进行合理合并,根据总结这个新词以何种状态融合。隐状态:使用过去隐状态ht-1最终产生了隐状态ht,新的记忆会根据更新门的更新信号zt判定产生ht。其中,、u、w、wz、uz、wr和ur为模型的参数,需要通过样本对模型训练过程中学习确定,σ代表非线性分类函数,一般是使用sigmoid分类函数。需要说明的是,所谓第一隐状态,是指该关键词通过编码后,无法从编码的结果直接识别该关键词,故称为隐状态,而本实施例中,为了和其它过程中的隐状态区别,故称为第一隐状态。例如,关键词:标准,通过一种可能的编码机制,如,二进制编码,利用2个字节的二进制数,可得到对应该关键词“学”的编码结果为:0011000100000111,因该二进制编码结果无法直接识别为关键字“学”,故称为关键词“学”的第一隐状态。步骤s104,根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态。具体地,若当前文本位置不为首个文本位置,当前文本位置对应的第二隐状态,是根据前一个文本位置对应的第二隐状态和编码器输出的多个关键词的第一隐状态,计算得到当前文本位置的注意力分布,解码器根据注意力分布对多个关键词的第一隐状态进行加权平均得到当前文本位置的上下文向量,根据前一个文本位置对应的第二隐状态和上下文向量,生成当前文本位置对应的第二隐状态。这是因为,未引入注意力分布时,解码器是仅通过计算得到的上下文向量来进一步确定第二隐状态。也就是说,编码器将关键词生成第一隐状态的序列,并将该序列压缩进一个固定长度的上下文向量中,这样会导致上下文向量中无法涵盖用户消息中的所有信息,或者后面的信息会将前面的信息覆盖,使得解码器获得的输入序列不完整,解码准确度较低,而引入的注意力分布用于指示当前文本位置上体现各个关键词含义的概率,即基于注意力分布能够确定出当前文本位置应表达哪一个关键词的语义,使得解码器能注意获取的第一隐状态的序列中对应该关键词的部分,进而生成对应的第二隐状态。可选地,若当前文本位置为回复消息的首个文本位置,将多个关键词编码得到的第一隐状态输入解码器,得到当前文本位置对应的多个第二隐状态。步骤s105,根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇。本步骤中对复制机制进行了进一步解释,复制机制即为通过每一个第二隐状态,以及上下文向量,计算得到词库词汇分布、词库词汇分布概率和关键词分布,进而加权计算得到词汇预测分布,根据该词汇预测分布确定处于第二隐状态对应文本位置上的词汇,复制机制通过引入关键词分布,实现了通过直接复制关键词,并通过分析关键词对应的概率的大小,来判断词汇预测分布中是低频的关键词还是高频的日常词,提高了解码器生成低频关键词的效果。具体地,首先,针对第n个文本位置对应的第二隐状态sn,根据sn,计算得到在第n个文本位置上的词库词汇分布其中,词库词汇分布用于表示在当前文本位置上,词库中各个词的概率,通常日常使用的高频词概率较高。然后,根据第n个文本位置的上下文向量cn计算得到在第n个文本位置上符合词库词汇分布的概率再根据注意力分布an,计算得到在第n个文本位置上的关键词分布最后,根据概率对词库词汇分布和关键词分布进行加权计算,代入公式得到在第n个文本位置上词汇预测分布on,也就是说,通过概率对日常高频词和关键词进行加权,确定最终的词汇分布,而这样处理,使得词汇分布同时满足多样性和与用户提问的相关性。进一步,根据词汇预测分布on,其中,词汇预测分布on指示词库中各个词被选中的概率,在词库中采样,可从词库中选择概率最高的词汇,作为当前位置上的词汇,从而确定在第n个文本位置上的词汇,使得该词汇和用户提问的相关性较高。步骤s106,根据各词汇,以及各词汇所处的文本位置,生成回复消息。具体地,根据确定的每个文本位置上的词汇,将词汇连接成一句完整的回复消息,作为用户输入消息的回复消息。需要说明的是,编码器和解码器均可以选择多种模型来实现,为了选择最优的编码器和解码器模型的组合方式,本发明的发明人预先做了测试,将不同的编码器模型和解码器模型进行组合,以及是否引入复制机制,组合得到的方案分别测试得到熵值,根据最低的熵值确定了最优的解码器和编码器的模型,如表1所示:编码器解码器复制机制熵值sumgruf6.97sumgrut6.59grugruf6.12bigrugruf6.01grugrut5.35bigrugrut5.33表1如表1中所示,f是false的简写,代表不引入复制机制,t是ture的简写,代表引入复制机制,当编码器为bigru模型,解码器为gru模型时,得到的熵值5.33最小,因熵值最小时,信息量最大,不确定性最小,故选择熵值最小时编码器和解码器对应的模型,并引入复制机制,从而能够得到最佳的效果。本发明实施例的人机对话的回复生成方法中,获取人机对话中的用户消息,根据用户消息,生成用于回复用户消息的多个关键词,利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态,根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇,根据各词汇,以及各词汇所处的文本位置,生成回复消息。通过用户消息生成多个关键词,并对关键词进行编码和解码处理,并通过采样获取关键词对应的文本词汇,进而生成回复消息,实现了不需要构建特征工程,适用于开放域的对话系统,解决了现有技术中需要依赖特定的模板,系统适用性差,生成的回复消息适用性、相关性和多样性也较差,无法满足用户需求的问题。为了清楚说明上一实施例,本实施例提供了另一种人机对话的回复生成方法,进一步清楚解释根据关键词生成各文本位置对应的词汇,从而生成回复信息的过程,图2为本发明实施例所提供的另一种人机对话的回复生成方法的流程示意图,本实施例中,根据用户消息,生成了用于回复用户消息的多个关键词,基于该关键词可获得回复用户消息的各个文本位置上的词汇,从而确定回复消息,为了清楚说明本实施例中的方法,本发明实施例还提供了一种基于关键词的文本生成系统的可能的实现方式,图3为本发明实施例所提供的基于关键词的文本生成系统的框图,结合图3,对图2实施例中的步骤进行进一步解释说明。如图2所示,该方法包括:步骤s201,获取人机对话中的用户消息。例如,人机对话系统获取到的用户消息为:说啥子标准梨花。步骤s202,根据用户消息,生成用于回复用户消息的多个关键词。具体地,根据用户消息生成用于回复用户消息的多个关键词的方法,可参照上一实施例中的步骤s102,原理相同,此处不再赘述。根据用户消息:说啥子标准梨花,得到的多个关键词可为:说,啥子,标准,梨花。步骤s203,利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态。具体地,如图3所示,将生成的关键词:说,啥子,标准,梨花,输入编码器,编码器对多个关键词进行编码,作为一种可能的实现方式,可通过bigru作为编码器,生成对应各个关键词的第一隐状态:h1,h2,h3,h4。步骤s204,根据多个关键词的第一隐状态,利用解码器,生成回复消息中首个文本位置对应的第二隐状态。具体地,回复消息包括多个文本位置,各个文本位置上的词汇构成了回复消息。例如:如图3中,“你”对应的文本位置s1即为首个文本位置,而“啥子”对应的文本位置s5即不是首个文本位置。在编码器确定出多个关键词的第一隐状态之后,将多个关键词的第一隐状态输入解码器,从而使得解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,进而才能够根据第二隐状态,最终确定对应文本位置上的词汇。为了得到较佳的效果,本发明实施例中,首个文本位置的第二隐状态的生成过程和其余文本位置的第二隐状态生成过程存在一定差异性。具体来说,首个文本位置的第二隐状态的生成过程沿用了相关技术中的解码方式,直接生成第二隐状态。而后续文本位置的第二隐状态的生成过程,则引入了注意力分布机制,从而使得其余文本位置的第二隐状态在保证相关性的同时,增强了多样性。具体引入注意力分布机制的方式将在下文进行介绍,此处不再赘述。具体在生成回复消息中首个文本位置对应的第二隐状态时,可以将多个关键词编码得到的第一隐状态输入解码器,将解码器的输出作为首个文本位置对应的第二隐状态s1。步骤s205,根据多个关键词编码得到的第一隐状态,并结合前一个文本位置对应的第二隐状态,利用解码器计算得到后续各文本位置对应的第二隐状态。具体地,若关键词在解码器中的文本位置不为首个文本位置,则计算文本位置对应的第二隐状态的方法和步骤s205中方法不同,引入了注意力分布的机制,并结合前一个文本位置对应的第二隐状态,利用解码器计算得到当前文本位置对应的第二隐状态。本实施例中,如图3所示,列举的例子得到的关键词在解码器中的文本位置均不为首个文本位置。其中,本实施例中,在编码器和解码器之间引入注意力分布机制,注意力分布机制attention就是把一个固定的输入上下文向量(context)c改成一个动态的上下文向量c,注意力分布用aij表示,公式为:其中,i代表第i个输出,j代表第j个输入,eij=α(si-1,hj),其中,hj代表输入的第j个隐状态,即本实施例中第一隐状态,si-1代表第i个输出的前一个输出,即本实施例中的第二隐状态,eij表示输入hj和输出si-1的匹配评分,aij就可以表示给定输入hj预测输出为si的概率。进而,通过注意力分布aij就可以计算得到动态的上下文向量ci,进而,通过计算对应每一个输入对应的第一隐状态h的的权值,并且根据这个权值把所有输入对应的第一隐状态h加权起来,加入到循环神经网络(rnn/recurrentneuralnetwork)中计算新的文本对应的第二隐状态st:st=f(yt-1,st-1,c),其中c为上下文向量,st-1为上一个文本位置对应的文本的第二隐状态,yt-1代表上一个输出的预测词汇。进一步,以关键词“啥子”为例,对引入注意力分布机制,利用解码器生成对应的第二隐状态进行说明。如图3中所示,关键词“啥子”对应解码器中文本所在的位置为第5个,不为首个文本位置,根据编码器生成的关键词“说,啥子,标准,梨花”对应的第一隐状态h1,h2,h3,h4,以及第五个文本位置前一个即第四个文本位置对应的文本的第二隐状态s4,计算得到关键词“啥子”对应的文本位置的注意力分布a5,根据注意力分布a5,对多个关键词的第一隐状态h1,h2,h3,h4进行加权平均,得到当前文本位置的上下文向量c5,再根据前一个文本位置对应的文本的第二隐状态s4和上下文向量c5,生成当前第五文本位置对应的第二隐状态s5。步骤s206,根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇。具体地,关键词“啥子”对应的文本位置对应的第二隐状态为s5,根据s5,计算得到第5个文本位置上的词库词汇分布利用上下文向量c5,计算得到第5个文本位置上符合词库词汇分布的概率再利用注意力分布a5,计算得到在第n个文本位置上的关键词分布进一步,根据词库词汇分布的概率对词库词汇分布和关键词分布进行加权计算,代入公式得到第5个文本位置上词汇预测分布即为前述的复制机制在确定第5个文本位置上词汇的具体例子,其中,该词汇预测分布o5指示词库中各个词被选中的概率,根据词汇预测分布o5,在词库中采样,可从词库中选择概率最高的词汇,作为当前位置上的词汇,从而确定在第5个文本位置上的词汇,也就是说通过该复制机制,即可确定在第5个文本位置上的概率最高的词是低频的关键词“啥子”。需要说明的是,其他文本位置上的词汇生成方法,同上述第5个文本位置上的词汇生成方法,原理相同,此处不再赘述。步骤s207,根据各词汇,以及各词汇所处的文本位置,生成回复消息。具体地,根据用户输入的“说啥子标准梨花”,得到的各词汇和各词汇所处的位置,进而可生成回复消息“你说的是啥子标准的梨花”。本发明实施例的人机对话的回复生成方法中,获取人机对话中的用户消息,根据用户消息,生成用于回复用户消息的多个关键词,利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态,根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇,根据各词汇,以及各词汇所处的文本位置,生成回复消息。通过用户消息生成多个关键词,并对关键词进行编码和解码处理,并通过采样获取关键词对应的文本词汇,进而生成回复消息,实现了不需要构建特征工程,适用于开放域的对话系统,解决了现有技术中需要依赖特定的模板,系统适用性差,生成的回复消息适用性、相关性和多样性也较差,无法满足用户需求的问题。为了实现上述实施例,本发明还提出一种人机对话的回复生成装置。图4为本发明实施例提供的一种人机对话的回复生成装置的结构示意图。如图4所示,该装置包括:获取模块41、第一生成模块42、编码模块43、解码模块44和第二生成模块45。获取模块41,用于获取人机对话中的用户消息。第一生成模块42,用于根据用户消息,生成用于回复用户消息的多个关键词。编码模块43,用于利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态。解码模块44,用于根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,其中,若当前文本位置不为首个文本位置,当前文本位置对应的第二隐状态,是根据前一个文本位置对应的第二隐状态和多个关键词的第一隐状态,计算得到当前文本位置的注意力分布后,根据注意力分布对多个关键词的第一隐状态进行加权平均得到当前文本位置的上下文向量,根据前一个文本位置对应的第二隐状态和上下文向量,生成当前文本位置对应的第二隐状态。第二生成模块45,用于根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇,根据各词汇,以及各词汇所处的文本位置,生成回复消息。需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。本发明实施例的人机对话的回复生成装置中,获取模块用于获取人机对话中的用户消息,第一生成模块用于根据用户消息,生成用于回复用户消息的多个关键词,编码模块用于利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态,解码模块用于根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,第二生成模块用于根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇,根据各词汇,以及各词汇所处的文本位置,生成回复消息。通过用户消息生成多个关键词,并对关键词进行编码和解码处理,并通过采样获取关键词对应的文本词汇,进而生成回复消息,实现了不需要构建特征工程,适用于开放域的对话系统,解决了现有技术中需要依赖特定的模板,系统适用性差,生成的回复消息适用性、相关性和多样性也较差,无法满足用户需求的问题。基于上述实施例,本发明实施例还提供了一种人机对话的回复生成装置的可能的实现方式,图5为本发明实施例所提供的另一种人机对话的回复生成装置的结构示意图,在上一实施例的基础上,如图5所示,该装置的第二生成模块45,还包括:计算单元451和采样单元452。计算单元451,用于针对第n个文本位置对应的第二隐状态sn,根据sn,计算得到在第n个文本位置上的词库词汇分布根据第n个文本位置的上下文向量cn计算得到在第n个文本位置上符合词库词汇分布的概率根据注意力分布an,计算得到在第n个文本位置上的关键词分布根据概率对词库词汇分布和关键词分布进行加权计算,得到在第n个文本位置上词汇预测分布on。采样单元452,用于根据词汇预测分布on,在词库中采样,确定在第n个文本位置上的词汇。作为一种可能的实现方式,计算单元451,具体用于:将概率词库词汇分布和关键词分布代入公式计算得到在第n个文本位置上的词汇预测分布on。本实施例中,作为一种可能的实现方式,解码模块44,还可以用于:若当前文本位置为回复消息的首个文本位置,将多个关键词编码得到的第一隐状态输入解码器,得到当前文本位置对应的第二隐状态。本实施例中,作为一种可能的实现方式,第一生成模块42,具体用于:根据用户消息中的消息词,计算消息词与回复词之间的点互信息,根据点互信息,从回复词中确定多个关键词。作为另一种可能的实现方式,第一生成模块42,还具体用于:采用经过训练的主题模型,根据用户消息,确定用户主题,从用户主题中,选取主题词作为多个关键词。作为又一种可能的实现方式,第一生成模块42,还具体用于:采用对话管理算法,对用户消息进行分析,得到语义槽,根据语义槽,确定多个关键词。需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。本发明实施例的人机对话的回复生成装置中,获取模块用于获取人机对话中的用户消息,第一生成模块用于根据用户消息,生成用于回复用户消息的多个关键词,编码模块用于利用编码器对多个关键词进行编码,得到多个关键词的第一隐状态,解码模块用于根据多个关键词的第一隐状态,利用解码器顺序生成回复消息中各文本位置对应的多个第二隐状态,第二生成模块用于根据每一个第二隐状态进行采样,得到处于第二隐状态对应文本位置上的词汇,根据各词汇,以及各词汇所处的文本位置,生成回复消息。通过用户消息生成多个关键词,并对关键词进行编码和解码处理,并通过采样获取关键词对应的文本词汇,进而生成回复消息,实现了不需要构建特征工程,适用于开放域的对话系统,解决了现有技术中需要依赖特定的模板,系统适用性差,生成的回复消息适用性、相关性和多样性也较差,无法满足用户需求的问题。为实现上述实施例,本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现前述方法实施例所述的人机对话的回复生成方法。为实现上述实施例,本发明实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例所述的人机对话的回复生成方法。为实现上述实施例,本发明实施例还提出了一种计算机程序产品,当该计算机程序产品中的指令被处理器执行时,实现如前述方法实施例所述的人机对话的回复生成方法。图6示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图6显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。如图6所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork;以下简称:lan),广域网(wideareanetwork;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属
技术领域
的技术人员所理解。在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。本
技术领域
的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1