本说明书实施例涉及互联网
技术领域:
:,尤其涉及一种文本生成方法、装置和电子设备。
背景技术:
::随着智能客服的日益发展,客服机器人也从被动式问题求助开始拓展到主动式服务,例如:在销售场景下,就需要客服机器人能够主动发现并了解用户意图,通过相应的话术来激励或者促使用户能够接受客服机器人的需求,从而达到相应的业务目标。上述客服机器人可以通过强化学习的方式进行训练,在客服机器人的训练过程中应用强化学习需要建立用户模拟器,该用户模拟器用于模拟用户的对话内容,需要根据对话上文生成多样性的对话下文,以增强客服机器人的对话能力。技术实现要素:本说明书实施例提供了一种文本生成方法、装置和电子设备,以实现根据指定的用户意图和对话上文,生成既和对话上文衔接流畅,又能明确表达指定的用户意图的文本。第一方面,本说明书实施例提供一种文本生成方法,包括:获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本;将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本;对所述输入文本进行编码获得输入向量;通过单向注意力模型对所述输入向量进行自注意力计算,获得所述输入向量对应的上下文向量;根据所述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率;根据所述概率从所述输出文本候选集合中选择下一个输出文本。上述文本生成方法中,获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本之后,将对话上文、用户意图和输出文本进行拼接,获得输入文本;然后对上述输入文本进行编码获得输入向量,通过单向注意力模型对上述输入向量进行自注意力计算,获得上述输入向量对应的上下文向量,根据上述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率,最后根据上述概率从上述输出文本候选集合中选择下一个输出文本,循环执行上述步骤,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度,这样最终获得的所有输出文本组成对话下文,从而可以实现根据预先设定的用户意图和对话上文,生成既和对话上文衔接流畅,又能明确表达指定的用户意图的文本,可以用来训练和测试客服机器人对于不同用户意图的覆盖度和应对能力。其中一种可能的实现方式中,所述根据所述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率包括:获取所述上下文向量中特定位置的上下文向量;将所述特定位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量;对转换维度后获得的向量进行分类,获得所述输出文本候选集合中的每个输出文本作为下一个输出文本的概率。其中一种可能的实现方式中,所述将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本包括:通过起始标识符、意图标识符和结束标识符,将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本。其中一种可能的实现方式中,所述获取预先设定的用户意图包括:获取表示所述预先设定的用户意图的文本;或者,根据所述预先设定的用户意图的标识,从预先建立的意图向量矩阵中,获取所述标识对应的意图向量。其中一种可能的实现方式中,所述根据所述概率从所述输出文本候选集合中选择下一个输出文本之后,还包括:循环执行所述获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本的步骤及其后续步骤,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度,获得的所有输出文本组成对话下文;在所述当前对话中输出所述对话下文。第二方面,本说明书实施例提供一种文本生成装置,包括:获取模块,用于获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本;拼接模块,用于将所述获取模块获取的所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本;编码模块,用于对所述拼接模块获得的输入文本进行编码获得输入向量;注意力计算模块,用于通过单向注意力模型对所述编码模块获得的输入向量进行自注意力计算,获得所述输入向量对应的上下文向量;概率获得模块,用于根据所述注意力计算模块获得的上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率;预测模块,用于根据所述概率获得模块获得的概率从所述输出文本候选集合中选择下一个输出文本。其中一种可能的实现方式中,所述概率获得模块包括:向量获取子模块,用于获取所述上下文向量中特定位置的上下文向量;向量转换子模块,用于将所述向量获取子模块获取的特定位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量;向量分类子模块,用于对所述向量转换子模块转换维度后获得的向量进行分类,获得所述输出文本候选集合中的每个输出文本作为下一个输出文本的概率。其中一种可能的实现方式中,所述拼接模块,具体用于通过起始标识符、意图标识符和结束标识符,将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本。其中一种可能的实现方式中,所述获取模块,具体用于获取表示所述预先设定的用户意图的文本;或者,根据所述预先设定的用户意图的标识,从预先建立的意图向量矩阵中,获取所述标识对应的意图向量。第三方面,本说明书实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。第四方面,本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。应当理解的是,本说明书实施例的第二~四方面与本说明书实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。附图说明为了更清楚地说明本说明书实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本说明书文本生成方法一个实施例的流程图;图2为本说明书文本生成方法另一个实施例的流程图;图3为本说明书文本生成方法一个实施例的算法框架图;图4为本说明书文本生成装置一个实施例的结构示意图;图5为本说明书文本生成装置另一个实施例的结构示意图;图6为本说明书电子设备一个实施例的结构示意图。具体实施方式为了更好的理解本说明书的技术方案,下面结合附图对本说明书实施例进行详细描述。应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。在本说明书实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。在使用强化学习来训练客服机器人的过程中,需要根据指定的用户意图和对话上文,生成对话下文,以增强客服机器人的对话能力。本说明书实施例提供一种文本生成方法,用于客服机器人的离线训练和测试,可以根据指定的用户意图和对话上文,生成既和对话上文衔接流畅,又能明确表达指定的用户意图的文本,可以用来训练和测试客服机器人对于不同用户意图的覆盖度和应对能力。图1为本说明书文本生成方法一个实施例的流程图,如图1所示,上述文本生成方法可以包括:步骤102,获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本。其中,上述预先设定的用户意图可以包括预先挖掘或预先定义的用户意图。具体地,获取预先设定的用户意图可以为:获取表示上述预先设定的用户意图的文本;或者,根据上述预先设定的用户意图的标识,从预先建立的意图向量矩阵中,获取上述标识对应的意图向量。也就是说,本实施例中,可以直接使用表示上述用户意图的文本,也可以将上述用户意图标识化,预先建立意图向量矩阵,根据预先设定的用户意图的标识,从上述预先建立的意图向量矩阵中,获取上述标识对应的意图向量,使用意图向量进行后续的单向注意力计算,这种方式可以缓解用户意图和具体文字的强绑定关系,稳定性更好。步骤104,将上述对话上文、上述用户意图和上述输出文本进行拼接,获得输入文本。具体地,可以通过起始标识符、意图标识符和结束标识符,将上述对话上文、上述用户意图和上述输出文本进行拼接,获得输入文本。举例来说,可以在用户意图的左侧加上[cls]起始标识符,右侧加上[int]意图标识符,然后将对话上文放在[int]意图标识符的右侧,并在对话上文的右侧加上[sep]结束标识符,然后在[sep]结束标识符的右侧加输出文本,并在输出文本的右侧再加[sep]结束标识符。步骤106,对上述输入文本进行编码获得输入向量。步骤108,通过单向注意力模型对上述输入向量进行自注意力计算,获得上述输入向量对应的上下文向量。本实施例中,由于在预测下一个输出文本时,每个字符只能获取对话上文和已生成的输出文本,无法获取未来数据,因此本实施例使用单向注意力模型,在进行自注意力(self-attention)计算时,每个字符只与对话上文和已生成的输出文本计算注意力(attention)值。步骤110,根据上述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率。步骤112,根据上述概率从上述输出文本候选集合中选择下一个输出文本。在具体实现时,可以根据上述概率,从上述输出文本候选集合中选择概率最高的文本作为下一个输出文本。进一步地,步骤112之后,需要循环执行步骤102~步骤112,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度,这样最终获得的所有输出文本组成对话下文,然后可以在上述当前对话中输出上述对话下文。从而可以实现根据预先设定的用户意图和对话上文,生成既和对话上文衔接流畅,又能明确表达指定的用户意图的文本,可以用来训练和测试客服机器人对于不同用户意图的覆盖度和应对能力。其中,上述预定的长度可以在具体实现时自行设定,本实施例对上述预定的长度的长短不作限定。另外,步骤102之前,在初始还没有生成输出文本时,可以获取当前对话中的对话上文和预先设定的用户意图,然后将对话上文和上述用户意图进行拼接,获得输入文本;对上述输入文本进行编码获得输入向量,通过单向注意力模型对上述输入向量进行自注意力计算,获得上述输入向量对应的上下文向量,然后根据上述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率。最后根据上述概率从上述输出文本候选集合中选择下一个输出文本,这样获得了第一个输出文本,进而可以循环执行步骤102~步骤112,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度。上述文本生成方法中,获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本之后,将对话上文、用户意图和输出文本进行拼接,获得输入文本;然后对上述输入文本进行编码获得输入向量,通过单向注意力模型对上述输入向量进行自注意力计算,获得上述输入向量对应的上下文向量,根据上述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率,最后根据上述概率从上述输出文本候选集合中选择下一个输出文本,循环执行上述步骤,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度,这样最终获得的所有输出文本组成对话下文,从而可以实现根据预先设定的用户意图和对话上文,生成既和对话上文衔接流畅,又能明确表达指定的用户意图的文本,可以用来训练和测试客服机器人对于不同用户意图的覆盖度和应对能力。图2为本说明书文本生成方法另一个实施例的流程图,如图2所示,本说明书图1所示实施例中,步骤110可以包括:步骤202,获取上述上下文向量中特定位置的上下文向量。其中,上述特定位置可以为倒数第二个字符位置,当然上述特定位置也可以为其他位置,本实施例对上述特定位置不作限定。步骤204,将上述特定位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量。具体地,可以通过全连接层将上述特定位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量,其中,上述全连接层可以通过多层感知机(multilayerperceptron,mlp)实现。步骤206,对转换维度后获得的向量进行分类,获得上述输出文本候选集合中的每个输出文本作为下一个输出文本的概率。具体地,可以通过softmax对转换维度后获得的向量进行分类,获得上述输出文本候选集合中的每个输出文本作为下一个输出文本的概率;当然可以通过其他的分类算法对转换维度后获得的向量进行分类,本实施例对采用的分类算法不作限定。图3为本说明书文本生成方法一个实施例的算法框架图,下面结合图3,对本说明书提供的文本生成方法进行说明。图3所示的算法框架图包括3部分:输入意图、对话上文和输出文本,其中,输入意图即为预先设定的用户意图,算法框架的主要结构是单向注意力模型,文本生成的具体步骤可以包括:步骤32,将输入意图、对话上文和输出文本使用不同的标识符拼接起来输入到单向注意力模型的编码器中,获得输入向量。如图3所示,本实施例将预先挖掘或者定义出来的用户意图作为输入文本,并且在输入意图的文本左侧加上[cls]起始标识符,右侧加上[int]意图标识符,以便于获取输入意图的位置。进一步地,如图3所示,将对话上文放在[int]意图标识符之后,在对话上文的右侧加上[sep]结束标识符,用以区分对话上文和已生成的输出文本。步骤34,对上述输入向量经过多层单向自注意力模型进行自注意运算,获得上述输入向量对应的上下文向量。具体地,本实施例在进行自注意力计算时,使用的是单向注意力模型,如图3所示,输出字符c4对应的汉字是“困”,上下文向量为t9,在进行自注意力(self-attention)计算时,c4只和该字符前面的文本计算注意力(attention)值。由于本实施例提出的文本生成方法是预测下一个输出文本,因此每个字符只能获取对话上文和已生成的输出文本,无法获取未来数据,因此本实施例使用单向注意力模型,每个字符只与对话上文和已生成的输出文本计算注意力(attention)值。步骤36,获取上述上下文向量中倒数第二个字符位置的上下文向量。步骤38,通过全连接层(mlp),将上述倒数第二个字符位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量,通过softmax对转换维度后获得的向量进行分类,获得上述输出文本候选集合中的每个输出文本作为下一个输出文本的概率,然后从上述输出文本候选集合中选择概率最高的文本作为下一个输出文本。其中,上述输出文本候选集合可以为词表(vocabulary)。循环执行上述步骤32~步骤38,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度。另外,上述方法是直接将表示用户意图的文本与对话上文和已生成的输出文本拼接起来,除此之外,还可以预先建立一个意图向量(embedding)矩阵,根据预先设定的用户意图的标识,从上述意图向量矩阵中获取上述标识对应的意图向量,然后将上述意图向量放到[cls]起始标识符与[int]意图标识符之间,参与后续的单向自注意力计算,这种方式可以缓解用户意图和具体的文字的强绑定关系,稳定性更好。本说明书实施例提供的文本生成方法中,将用户意图作为输入文本的一部分进行编码,从而可以生成用户意图明确的回复,进而可以增加生成的文本对用户意图的针对性、多样性和可控性。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。图4为本说明书文本生成装置一个实施例的结构示意图,如图4所示,上述文本生成装置可以包括:获取模块41、拼接模块42、编码模块43、注意力计算模块44、概率获得模块45和预测模块46;其中,获取模块41,用于获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本;拼接模块42,用于将获取模块41获取的上述对话上文、上述用户意图和上述输出文本进行拼接,获得输入文本;编码模块43,用于对拼接模块42获得的输入文本进行编码获得输入向量;注意力计算模块44,用于通过单向注意力模型对编码模块43获得的输入向量进行自注意力计算,获得上述输入向量对应的上下文向量;概率获得模块45,用于根据注意力计算模块44获得的上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率;预测模块46,用于根据概率获得模块45获得的概率从所述输出文本候选集合中选择下一个输出文本。图4所示实施例提供的文本生成装置可用于执行本说明书图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。图5为本说明书文本生成装置另一个实施例的结构示意图,与图4所示的文本生成装置相比,图5所示的文本生成装置中,概率获得模块45可以包括:向量获取子模块451、向量转换子模块452和向量分类子模块453;向量获取子模块451,用于获取上述上下文向量中特定位置的上下文向量;向量转换子模块452,用于将向量获取子模块451获取的特定位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量;向量分类子模块453,用于对向量转换子模块452转换维度后获得的向量进行分类,获得上述输出文本候选集合中的每个输出文本作为下一个输出文本的概率。本实施例中,拼接模块42,具体用于通过起始标识符、意图标识符和结束标识符,将上述对话上文、上述用户意图和上述输出文本进行拼接,获得输入文本。本实施例中,获取模块41,具体用于获取表示上述预先设定的用户意图的文本;或者,根据上述预先设定的用户意图的标识,从预先建立的意图向量矩阵中,获取上述标识对应的意图向量。进一步地,预测模块46根据概率获得模块45获得的概率从上述输出文本候选集合中选择下一个输出文本之后,获取模块41、拼接模块42、编码模块43、注意力计算模块44、概率获得模块45和预测模块46可以循环执行获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本的步骤及其后续步骤,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度,获得的所有输出文本组成对话下文;这样,上述文本生成装置还可以包括:输出模块47,用于在当前对话中输出上述对话下文。图5所示实施例提供的文本生成装置可用于执行本申请图1~图3所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。图6为本说明书电子设备一个实施例的结构示意图,如图6所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本说明书图1~图3所示实施例提供的文本生成方法。其中,上述电子设备可以为服务器,例如普通的物理服务器或云服务器等,本实施例对上述电子设备的形式不作限定。图6示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图6显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。如图6所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同组件(包括存储器430、通信接口420和处理单元410)的通信总线440。通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,或者使用多种总线结构中的任意总线结构的局域总线。举例来说,通信总线440可以包括但不限于工业标准体系结构(industrystandardarchitecture,isa)总线,微通道体系结构(microchannelarchitecture,mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection,pci)总线。电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)和/或高速缓存存储器。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书图1~图3所示实施例的功能。具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书图1~图3所描述的实施例中的功能和/或方法。处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书图1~图3所示实施例提供的文本生成方法。本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图1~图3所示实施例提供的文本生成方法。上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)或闪存、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属
技术领域:
:的技术人员所理解。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、手机、mp3播放器、mp4播放器等。在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种文本生成方法,包括:
获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本;
将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本;
对所述输入文本进行编码获得输入向量;
通过单向注意力模型对所述输入向量进行自注意力计算,获得所述输入向量对应的上下文向量;
根据所述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率;
根据所述概率从所述输出文本候选集合中选择下一个输出文本。
2.根据权利要求1所述的方法,其中,所述根据所述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率包括:
获取所述上下文向量中特定位置的上下文向量;
将所述特定位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量;
对转换维度后获得的向量进行分类,获得所述输出文本候选集合中的每个输出文本作为下一个输出文本的概率。
3.根据权利要求1所述的方法,其中,所述将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本包括:
通过起始标识符、意图标识符和结束标识符,将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本。
4.根据权利要求1所述的方法,其中,所述获取预先设定的用户意图包括:
获取表示所述预先设定的用户意图的文本;或者,
根据所述预先设定的用户意图的标识,从预先建立的意图向量矩阵中,获取所述标识对应的意图向量。
5.根据权利要求1-4任意一项所述的方法,其中,所述根据所述概率从所述输出文本候选集合中选择下一个输出文本之后,还包括:
循环执行所述获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本的步骤及其后续步骤,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度,获得的所有输出文本组成对话下文;
在所述当前对话中输出所述对话下文。
6.一种文本生成装置,包括:
获取模块,用于获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本;
拼接模块,用于将所述获取模块获取的所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本;
编码模块,用于对所述拼接模块获得的输入文本进行编码获得输入向量;
注意力计算模块,用于通过单向注意力模型对所述编码模块获得的输入向量进行自注意力计算,获得所述输入向量对应的上下文向量;
概率获得模块,用于根据所述注意力计算模块获得的上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率;
预测模块,用于根据所述概率获得模块获得的概率从所述输出文本候选集合中选择下一个输出文本。
7.根据权利要求6所述的装置,其中,所述概率获得模块包括:
向量获取子模块,用于获取所述上下文向量中特定位置的上下文向量;
向量转换子模块,用于将所述向量获取子模块获取的特定位置的上下文向量转换为维度与输出文本候选集合的维度相同的向量;
向量分类子模块,用于对所述向量转换子模块转换维度后获得的向量进行分类,获得所述输出文本候选集合中的每个输出文本作为下一个输出文本的概率。
8.根据权利要求6所述的装置,其中,
所述拼接模块,具体用于通过起始标识符、意图标识符和结束标识符,将所述对话上文、所述用户意图和所述输出文本进行拼接,获得输入文本。
9.根据权利要求6所述的装置,其中,
所述获取模块,具体用于获取表示所述预先设定的用户意图的文本;或者,根据所述预先设定的用户意图的标识,从预先建立的意图向量矩阵中,获取所述标识对应的意图向量。
10.一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至5任一所述的方法。
11.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至5任一所述的方法。
技术总结本说明书实施例提出了一种文本生成方法、装置和电子设备,其中,上述文本生成方法中,获取当前对话中的对话上文和预先设定的用户意图,以及获取已生成的输出文本之后,将对话上文、用户意图和输出文本进行拼接,获得输入文本;然后对输入文本进行编码获得输入向量,通过单向注意力模型对上述输入向量进行自注意力计算,获得上述输入向量对应的上下文向量,根据上述上下文向量,获得输出文本候选集合中的每个输出文本作为下一个输出文本的概率,最后根据上述概率从上述输出文本候选集合中选择下一个输出文本,循环执行上述步骤,直至下一个输出文本为结束符,或者已生成的输出文本的长度达到预定的长度,这样最终获得的所有输出文本组成对话下文。
技术研发人员:金春祥;刘佳;崔恒斌
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2020.04.24
技术公布日:2020.06.05