虚拟场景的对话处理方法、装置、电子设备及存储介质与流程

文档序号:32072505发布日期:2022-11-05 03:12阅读:186来源:国知局
虚拟场景的对话处理方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机技术,尤其涉及一种虚拟场景的对话处理方法、装置、电子设备及存储介质。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。自然语言处理(nature language processing,nlp)是计算机科学领域与人工智能领域中的一个重要方向。
3.以游戏虚拟场景为例,为支持游戏剧情,游戏中需要有大量的虚拟对象之间的对话内容,人工编辑对话内容成本较高且效率较低,而借助人工智能进行生成的对话内容,存在对话内容的质量偏低的情况。相关技术暂无较好的方案生成多个虚拟对象之间的高质量对话内容。


技术实现要素:

4.本技术实施例提供一种虚拟场景的对话处理方法、装置、电子设备及计算机可读存储介质、计算机程序产品,能够提升生成特定领域的虚拟对象的对话的质量。
5.本技术实施例的技术方案是这样实现的:本技术实施例提供一种虚拟场景的对话处理方法,所述虚拟场景包括参与当前一场对话的多个虚拟对象,每个所述虚拟对象对应一个领域对话模型,所述领域对话模型是基于特定领域的对话样本训练得到的;所述方法包括:基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的所述领域对话模型进行对话生成处理,得到每个所述参与对象的多个输出语句,其中,所述至少一个参与对象是所述多个虚拟对象中除上一轮次的发言对象以外的所述虚拟对象;基于每个所述输出语句调用通用对话模型进行质量预测处理,得到每个所述输出语句的质量参数,其中,所述通用对话模型是基于通用领域的对话样本训练得到的;基于每个所述输出语句的质量参数,从所述多个输出语句中选取当前轮次的对话语句。
6.本技术实施例提供一种虚拟场景的对话处理装置,所述虚拟场景包括参与当前一场对话的多个虚拟对象,每个所述虚拟对象对应一个领域对话模型,所述领域对话模型是基于特定领域的对话样本训练得到的;所述装置包括:对话生成模块,用于基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的所述领域对话模型进行对话生成处理,得到每个所述参与对象的多个输出语句,其中,所述至少一个参与对象是所述多个虚拟对象中除上一轮次的发言对象以外的所述虚拟对象;质量检测模块,用于基于每个所述输出语句调用通用对话模型进行质量预测处
理,得到每个所述输出语句的质量参数,其中,所述通用对话模型是基于通用领域的对话样本训练得到的;所述质量检测模块,用于基于每个所述输出语句的质量参数,从所述多个输出语句中选取当前轮次的对话语句。
7.本技术实施例提供一种电子设备,包括:存储器,用于存储计算机可执行指令;处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本技术实施例提供的虚拟场景的对话处理方法。
8.本技术实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于引起处理器执行时,实现本技术实施例提供的虚拟场景的对话处理方法。
9.本技术实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时实现本技术实施例提供的虚拟场景的对话处理方法。
10.本技术实施例具有以下有益效果:在一场对话的每个轮次中,对于调用特定领域的领域对话模型生成的多个输出语句,通过通用对话模型来进行质量评估,一方面,确保筛选出高质量的输出对话作为相应轮次的对话语句,另一方面,将当前轮次的对话数据又作为下一个轮次的输入语句,即用于引导下一轮次的对话生成处理,从一场对话的不同轮次的层面提升了整体的对话内容的质量。
附图说明
11.图1是本技术实施例提供的虚拟场景的对话处理方法的应用模式示意图;图2是本技术实施例提供的服务器200的结构示意图;图3a是本技术实施例提供的虚拟场景的对话处理方法的步骤301至步骤303的流程示意图;图3b是本技术实施例提供的虚拟场景的对话处理方法的步骤3011b至步骤3012b的流程示意图;图3c是本技术实施例提供的虚拟场景的对话处理方法的步骤3011c至步骤3012c的流程示意图;图3d是本技术实施例提供的虚拟场景的对话处理方法的步骤30111至步骤30114的流程示意图;图3e是本技术实施例提供的虚拟场景的对话处理方法的步骤3021至步骤3022的流程示意图;图3f是本技术实施例提供的虚拟场景的对话处理方法的步骤30211至步骤30214的流程示意图;图3g是本技术实施例提供的虚拟场景的对话处理方法的步骤3031至步骤3032的流程示意图;图3h是本技术实施例提供的虚拟场景的对话处理方法的步骤301至步骤304的流程示意图;
图4a是本技术实施例提供的虚拟场景的对话处理方法的步骤401a至步骤403a的流程示意图;图4b是本技术实施例提供的虚拟场景的对话处理方法的步骤4011b至步骤4015b的流程示意图;图4c是本技术实施例提供的虚拟场景的对话处理方法的步骤40121至步骤40125的流程示意图;图4d是本技术实施例提供的虚拟场景的对话处理方法的步骤40131至步骤40132的流程示意图;图4e是本技术实施例提供的虚拟场景的对话处理方法的步骤4031e至步骤4034e的流程示意图;图4f是本技术实施例提供的虚拟场景的对话处理方法的步骤40321至步骤40325的流程示意图;图4g是本技术实施例提供的虚拟场景的对话处理方法的步骤401g至步骤402g的流程示意图;图4h是本技术实施例提供的虚拟场景的对话处理方法的步骤4021h至步骤4024h的流程示意图;图5a是本技术实施例提供的虚拟场景的对话处理方法的应用场景的示意图;图5b是本技术实施例提供的虚拟场景的对话处理方法的步骤501b至步骤508b的流程示意图;图5c是本技术实施例提供的虚拟场景的对话处理方法的步骤501c至步骤505c的流程示意图;图6a是本技术实施例提供的虚拟场景的对话处理方法的步骤601a至步骤607a的流程示意图;图6b是本技术实施例提供的虚拟场景的对话处理方法的步骤601b至步骤607b的流程示意图;图6c是本技术实施例提供的虚拟场景的对话处理方法的步骤601c至步骤606c的流程示意图;图7a是本技术实施例提供的文本示意图;图7b是本技术实施例提供的待训练模型的第一结构示意图;图7c是本技术实施例提供的待训练模型的第二结构示意图。
具体实施方式
12.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
13.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
14.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代
表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
15.需要指出,在本技术实施例中,涉及到用户信息、用户反馈数据等相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
16.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
17.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
18.1)虚拟场景,利用设备输出的区别于现实世界的场景,通过裸眼或设备的辅助能够形成对虚拟场景的视觉感知,例如通过显示屏幕输出的二维影像,通过立体投影、虚拟现实和增强现实技术等立体显示技术来输出的三维影像;此外,还可以通过各种可能的硬件形成听觉感知、触觉感知、嗅觉感知和运动感知等各种模拟现实世界的感知。虚拟场景例如:游戏虚拟场景。
19.2)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
20.3)虚拟对象,虚拟场景中进行交互的对象,受到用户或机器人程序(例如,基于人工智能的机器人程序)的控制,能够在虚拟场景中静止、移动以及进行各种行为的对象,例如游戏中的各种角色等。
21.4)一场对话,包括多个轮次的对话语句,其中,一场对话中至少有两个虚拟对象进行发言。以下举例一场对话:角色a说“今天的天气真好。”,角色b说:“适合去海边。”。其中,角色a、角色b是发言的虚拟对象。
22.5)一轮对话语句,也称为一个轮次的(或一条)对话语句,每个轮次的对话语句是一个角色(虚拟对象)对上一个轮次的对话语句进行回复的语句,或者是发起话题所说的话,比如:以下起始语句(即作为开场白的语句):“今天星期几”,发起话题所说的话;“今天星期一”,对前人对话语句进行回复。
23.6)归一化(softmax)函数,用于将不同类别的输出值转换为范围在[0,1]和为1的概率分布的函数。公式如下:。其中,为第i个节点的输出值,c为输出节点的个数,即分类的类别个数。
[0024]
7)通用对话数据集(wudao corpus-dialog),大规模的语料数据集,约为2tb文本,7250亿汉字。在数据层面上着重去除了数据中包含的隐私信息,防止了隐私泄露,能够适用于不同种类的自然语言处理任务(例如:语言识别、对话预测等),训练出的模型泛化性更强。
[0025]
8)特定领域,具有特定的风格的语言领域,例如:古风风格领域、网络语言风格领域等。
[0026]
9)通用领域,普遍使用的语言的领域。
[0027]
10)角色信息,在文本内容中“说”出对话语句的虚拟对象对应的信息。角色信息可以是角色的名称、代称(例如:你、你们等指代对象的词)。
[0028]
本技术实施例提供一种虚拟场景的对话处理方法、虚拟场景的对话处理装置、电子设备和计算机可读存储介质及计算机程序产品,能够提升生成特定领域的虚拟对象的对话的质量。
[0029]
本技术实施例提供一种虚拟场景的对话处理方法、虚拟场景的对话处理装置、电子设备和计算机可读存储介质及计算机程序产品,能够提升接入游戏的速度。
[0030]
下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、车载终端等各种类型的用户终端,也可以实施为服务器。下面,将说明电子设备实施为服务器时的示例性应用。
[0031]
在对图1进行说明之前,首先对终端设备和服务器协同实施的方案涉及的游戏模式进行介绍。针对终端设备和服务器协同实施的方案,主要涉及两种游戏模式,分别为本地游戏模式和云游戏模式,其中,本地游戏模式是指终端设备和服务器协同运行游戏处理逻辑,玩家在终端设备中输入的操作指令,部分由终端设备运行游戏逻辑处理,另一部分由服务器运行游戏逻辑处理,并且,服务器运行的游戏逻辑处理往往更复杂,需要消耗更多的算力;云游戏模式是指完全由服务器运行游戏逻辑处理,并由云端服务器将游戏场景数据渲染为音视频流,并通过网络传输至终端设备显示。终端设备只需要拥有基本的流媒体播放能力与获取玩家的操作指令并发送给服务器的能力。
[0032]
参考图1,图1是本技术实施例提供的虚拟场景的对话处理方法的应用模式示意图。应用于终端设备400和服务器200,服务器200终端设备400之间通过网络300进行通信。
[0033]
示例的,虚拟场景是游戏的虚拟场景,数据库500是游戏数据库,用户是游戏的剧情编辑人员,以下结合上述举例进行说明。
[0034]
游戏的剧情编辑人员将起始的输入语句输入到终端设备400中,终端设备400通过网络300将起始的输入语句发送给服务器200。服务器200基于输入语句调用多个虚拟对象对应的领域对话模型生成大量的输出语句,并调用通用对话模型获取每个输出语句的质量参数,基于质量参数从输出语句中选取对话语句,迭代进行上述处理,得到包括多个轮次的对话语句的一场对话。将一场对话发送至数据库500存储,数据库500中的对话可以用于作为游戏的剧情。或者,将生成的一场对话发送给终端设备400,供剧情编辑人员筛选,将筛选后的对话发送到数据库500中存储,提升了生成虚拟场景的对话的效率,节约了续写虚拟场景剧情的成本。
[0035]
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。也即,服务器200可以实施为多个服务器。例如:服务器200可以实施为训练服务器(用于训练领域对话模型以及通用多行模型)、对话生成服务器(存储有领域对话模型,用于生成不同虚拟对象对应的输出语句)以及质量检测服务器(存储有通用对话模型,用于检测输出语句的质量)等多个服务器。
[0036]
本技术实施例可以通过区块链技术实现,可以将本技术实施例的排队信息作为检测结果,将检测结果上传到区块链中存储,通过共识算法保证检测结果的可靠性。区块链是
分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
[0037]
示例的,本技术实施例的服务器还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
[0038]
参考图2,图2是本技术实施例提供的服务器200的结构示意图,图2所示的服务器200包括:至少一个处理器410、存储器450、至少一个网络接口420。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
[0039]
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0040]
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
[0041]
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器450旨在包括任意适合类型的存储器。
[0042]
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0043]
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;网络通信模块452,用于经由一个或多个(有线或无线)网络接口到达其他电子设备,示例性的网络接口包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;在一些实施例中,本技术实施例提供的虚拟场景的对话处理装置可以采用软件方式实现,图2示出了存储在存储器450中的虚拟场景的对话处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:对话生成模块4551和质量检测模块4552,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
[0044]
将结合本技术实施例提供的终端设备的示例性应用和实施,说明本技术实施例提供的虚拟场景的对话处理方法。
[0045]
参见图3a,图3a是本技术实施例提供的虚拟场景的对话处理方法的步骤301至步骤303的流程示意图,以服务器为执行主体,将结合图3a示出的步骤进行说明。
[0046]
虚拟场景包括参与当前一场对话的多个虚拟对象,每个虚拟对象对应一个领域对话模型,领域对话模型是基于特定领域的对话样本训练得到的,当前一场对话包括待生成的多个轮次的对话语句。
[0047]
示例的,特定领域是指具有某种语言风格的领域,例如:网络用语、古风(例如:武侠小说风格)用语等。一场对话包括多个轮次的对话语句,且一场对话中至少有两个发言的虚拟对象。例如:有虚拟对象a与虚拟对象b,依次进行发言,虚拟对象a与虚拟对象b分别对应的对话语句组成一场对话。
[0048]
示例的,领域对话模型以及下文的通用对话模型基于相同的待训练模型训练得到,待训练模型可以是各种形式的神经网络模型,例如,可以是生成式预训练模型(gpt,general pre-training),是基于信息转换器(transformer)的生成模型,通常用于生成文本内容。训练通用对话模型的数据集可以是通用对话数据集(例如:wudao corpus-dialog)。参考图7b,图7b是本技术实施例提供的待训练模型的第一结构示意图。待训练模型702b包括12个转换器层701b,每个转换器层701b包括编码器703b以及解码器704b。编码器703b以及解码器704b均能用于对词进行编码,得到对应的词向量。转换器层701b还用于调用归一化函数,能够用于对词向量进行转换处理得到相应的特征。
[0049]
在步骤301中,基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的领域对话模型进行对话生成处理,得到每个参与对象的多个输出语句。
[0050]
示例的,至少一个参与对象是多个虚拟对象中除上一轮次的发言对象以外的虚拟对象。排除上一轮次的发言对象是为了避免虚拟对象自身与自身进行多个轮次的对话。例如:目前有虚拟对象1、虚拟对象2、虚拟对象3,虚拟对象1在上一轮次发言,则当前轮次的参与对象是虚拟对象2和3。
[0051]
在一些实施例中,参考图3b,图3b是本技术实施例提供的虚拟场景的对话处理方法的步骤3011b至步骤3012b的流程示意图,在步骤301之前,可以通过以下步骤3011b以及步骤3012b确定输入语句。
[0052]
在步骤3011b,若当前轮次为第一轮次,获取针对当前一场对话预设的起始语句,将起始语句作为第一轮次的输入语句。
[0053]
示例的,起始语句可以是游戏制作人员或者玩家输入的语句,且起始语句以任意一个虚拟对象的身份输入,或者是从语料库中提取的任意一个虚拟对象对应的预设对话内容。
[0054]
在步骤3012b,若当前轮次为第一轮次之后的后续轮次,从以下语句中选取至少一个语句作为后续轮次的至少一个输入语句:起始语句,当前轮次之前的任意轮次的对话语句。
[0055]
示例的,一场对话包括多个轮次,假设:当前轮次为第x次,x为大于1的正整数,上一轮次为x-1,当前存在x-1个已经生成的对话语句,以及起始语句。从x-1个已经生成的对话语句以及起始语句中选取至少一个语句作为第x次的输入语句。
[0056]
示例的,步骤3012b可以通过以下方式实现:方式1、响应于上一轮次的对话语句的类型是疑问句,确定当前的对话场景为问答
场景,至少将上一轮次的对话语句作为输入语句。
[0057]
示例的,基于对话语句所包括的符号(例如:感叹号、句号以及问号)或者内容,确定语句的类型。例如:当对话语句以问号结尾,则对话语句的类型为疑问句;或者,当对话语句中包括“吗”、“是否”等表征不确定的词汇,确定对话语句的类型为疑问句。
[0058]
例如:目前有起始语句、语句1、语句2、语句3,当前轮次为第4轮次,上一轮次的语句3是疑问句,至少将语句3作为第4轮次的输入语句。
[0059]
方式2、响应于上一轮次的对话语句的类型不是疑问句,确定当前的对话场景为聊天场景,从当前轮次之前的任意轮次的对话语句以及起始语句中,选取至少一个语句作为输入语句。
[0060]
例如:目前有起始语句、语句1、语句2、语句3,当前轮次为第4轮次,语句3不是疑问句,选取起始语句、语句1至3中至少一个作为输入语句。
[0061]
本技术实施例中,通过多种不同的方式确定当前轮次的输入语句,使得生成的对话内容与之前的对话内容关联性更强,使得对话内容更接近于真实对话,提升了虚拟对象之间的对话内容的质量、逼真感。
[0062]
在一些实施例中,在步骤301之前,通过以下至少一种方式,确定当前轮次的至少一个参与对象:方式1、在当前对话场景为问答场景,且上一轮次的对话语句为疑问句时,获取上一轮次的对话语句所包括的至少一个角色信息(例如:名字、表征对象的词汇),将至少一个角色信息对应的至少一个虚拟对象,作为当前轮次的至少一个参与对象。
[0063]
例如:一场对话中包括虚拟对象a、虚拟对象b以及虚拟对象c。上一轮次的对话语句是虚拟对象a说出的,且对话语句为疑问句,从疑问句中提取得到被提问的虚拟对象b的名字,将虚拟对象b作为参与对象。或者,从疑问句中提取得到“你”、“你们”等表征对象的词汇,将词汇“你们”表征的虚拟对象b以及虚拟对象c作为参与对象。
[0064]
方式2、在当前对话场景为聊天场景时,将多个虚拟对象中除上一轮次的发言对象以外的至少一个虚拟对象,作为当前轮次的至少一个参与对象。
[0065]
例如:虚拟场景对应的一场对话中有5个虚拟对象,其中虚拟对象3在上一轮中发言,则将5个虚拟对象中除了虚拟对象3以外的每个虚拟对象作为参与对象。
[0066]
方式3、从对话轮次表中查询针对当前轮次预先设置的至少一个参与对象。
[0067]
示例的,对话轮次表包括针对每个对话轮次预先设置的至少一个参与对象,且对话轮次表中相邻轮次的参与对象不同。例如:一场对话中包括3个虚拟对象,对话轮次表中根据虚拟对象的序号(1至3)从小到大顺序,循环地对虚拟对象进行排序,并将排序的顺序作为发言顺序。也即,虚拟对象1、虚拟对象2以及虚拟对象3循环地依次发言。或者,对话轮次表中虚拟对象的序号随机排列,相邻的序号不同。
[0068]
方式4、从虚拟对象对应的第二平均值的降序排序结果中,将从首位开始的至少一个第二平均值对应的至少一个虚拟对象,作为当前轮次的至少一个参与对象。虚拟对象对应的第二平均值是虚拟对象对应的每个输出语句的质量参数的平均值。
[0069]
示例的,在排除上一轮次的参与对象的情况下,将生成的输出语句的质量最高的领域对话模型对应的虚拟对象作为当前轮次的参与对象。例如:排除上一轮次的参与对象,针对剩余的每个虚拟对象,获取虚拟对象对应的每个输出语句的质量参数,获取每个质量
参数的第二平均值,将最高的第二平均值对应的虚拟对象作为当前轮次的参与对象。
[0070]
本技术实施例中,通过多种不同的方式确定当前轮次发言的虚拟对象,避免了相邻轮次的发言对象重复、形成虚拟对象“自言自语”的情况影响对话的质量。通过调用不同的虚拟对象的领域对话模型进行对话生成处理,使得生成的对话内容更加丰富,提升了生成对话的效率以及质量,提升了虚拟对象之间的对话内容的真实感。
[0071]
在一些实施例中,参考图3c,图3c是本技术实施例提供的虚拟场景的对话处理方法的步骤3011c至步骤3012c的流程示意图。步骤301可以通过以下步骤3011c至步骤3012c实现,以下具体说明。
[0072]
在步骤3011c中,基于至少一个输入语句,调用当前轮次的参与对象的领域对话模型进行语句内容预测处理,得到多个输出词。
[0073]
语句内容预测处理是以预测输出语句中每个词的粒度进行的,参考图3d,图3d是本技术实施例提供的虚拟场景的对话处理方法的步骤30111至步骤30114的流程示意图;步骤3011c可以通过以下步骤30111至步骤30114实现,以下具体说明。
[0074]
在步骤30111中,获取词表以及输出语句的最大词数量n。
[0075]
示例的,n为正整数,例如:128个词。词表包括多个候选词、以及每个候选词对应的词编码向量。词表是预先获取的对话内容中能够使用的候选词组成的列表,候选词的数量可以是海量的(例如:三万个),在训练阶段中,可以从用于训练领域对话模型的文本数据中提取得到候选词。
[0076]
在步骤30112中,对至少一个输入语句进行编码处理,得到至少一个输入语句对应的输入语句向量。
[0077]
示例的,编码处理也即将输入语句由文字转换为计算机可以直接读取的数据,转换后的输入语句的每个字符通过向量中的每个维度的数据表示。
[0078]
在步骤30113中,基于输入语句向量,调用当前轮次的参与对象的领域对话模型进行语句内容预测处理,得到每个候选词的第一预测概率,将与最大的第一预测概率对应的候选词作为第1个输出词。
[0079]
示例的,语句内容预测处理包括:基于输入语句向量,调用当前轮次的参与对象的领域对话模型对词表中的每个候选词的第一预测概率进行预测,第一预测概率表征候选词出现在输出语句中的概率。第一预测概率最大,表征候选词出现在输出语句中的可能性最高,将该候选词作为输出语句中的第一个输出词。
[0080]
示例的,第一轮次的语句内容预测处理可以通过以下公式(1)实现:其中,在第一轮次中,x是输入语句,=0,表征当前还未生成输出词。表征第一轮次预测得到的输出词。表征领域对话模型对输入语句进行编码,得到输入语句向量,并基于输入语句向量预测得到概率特征;softmax归一化函数对概率特征进行归一化处理得到第一预测概率(取值范围为[0,1]);argmax函数,用于获取最大的第一预测概率在词表中对应的索引数值,函数用于基于最大的第一预测概率的索
引数值,获取词表中对应的候选词的文字,得到最大的第一预测概率对应的候选词。
[0081]
在步骤30114中,令n的取值逐渐递增且满足n,迭代n执行以下处理:基于输入语句向量与n个输出词的词编码向量,调用当前轮次的参与对象的领域对话模型进行语句内容预测处理,得到每个候选词的第一预测概率,将与最大的第一预测概率对应的候选词作为第n+1个输出词。
[0082]
示例的,在后续轮次中,上文公式(1)中的用于表征当前已经预测得到的输出词。例如:当前轮次为第3轮次,在此之前,已经预测得到了2个输出词,则公式(1)中的表征已经预测得到的2个输出词,基于2个输出词以及输入语句预测得到第3轮次的输出词。
[0083]
继续参考图3c,在步骤3012c中,按照先后时间顺序依次对多个输出词进行多次选取处理,将每次选取处理得到的输出词按照先后时间顺序组合为一个输出语句。
[0084]
这里,第一次的选取处理的选取数量为一,且多次选取处理的选取数量依次递增。
[0085]
例如:第一次选取处理得到1个输出词,可以将该输出词作为一个输出语句,第二次选取得到第一个输出词以及第二个输出词,将二者组合为一个输出语句。依次类推,每次选取得到的输出词均可以组合为一个输出语句,从而得到多个输出语句。
[0086]
继续参考图3a,在步骤302中,基于每个输出语句调用通用对话模型进行质量预测处理,得到每个输出语句的质量参数。
[0087]
通用对话模型是基于通用领域的对话样本训练得到的。示例的,质量参数用于表征输出语句的流畅程度,质量参数越高,输出语句的流畅程度越高越接近于真实语言表达。通用对话模型的结构与领域对话模型的结构是相同的,二者使用不同的样本训练得到。基于通用领域的对话样本训练模型,可以使模型具有生成通用对话内容的功能,进而可以通过通用对话模型评估输出语句的流畅程度的质量参数。
[0088]
参考图3e,图3e是本技术实施例提供的虚拟场景的对话处理方法的步骤3021至步骤3022的流程示意图;步骤302可以通过以下步骤3021至步骤3022实现,以下具体说明。
[0089]
在步骤3021中,针对每个输出语句执行以下处理:基于输出语句以及与输出语句对应的至少一个输入语句,调用通用对话模型进行质量预测处理,得到输出语句中每个输出词对应的第二预测概率。
[0090]
示例的,确定输出语句的方式已在上文说明,此处不再赘述。通用对话模型预测输出词对应的第二预测概率的处理,也即,基于通用对话模型预测输出词在语句中出现的概率。输出词在语句中出现的概率越高,那么输出词越符合真实语言的表达,输出语句的流畅程度越高。
[0091]
参考图3f,图3f是本技术实施例提供的虚拟场景的对话处理方法的步骤30211至步骤30214的流程示意图,步骤3021可以通过以下步骤30211至步骤30214实现,以下具体说明。
[0092]
在步骤30211中,获取输出语句的词总数量m、以及输出语句中每个输出词的词编码向量。
[0093]
示例的,m是正整数,输出语句中每个输出词的词编码向量可以从词表中直接获取,此处不再赘述。
[0094]
在步骤30212中,获取与输出语句对应的至少一个输入语句的输入语句向量。
[0095]
示例的,步骤30212的执行可以参考上文中步骤30112,此处不再赘述。
[0096]
在步骤30213中,基于至少一个输入语句的输入语句向量,调用通用对话模型进行语句内容预测处理,得到输出语句中的第1个输出词对应的第二预测概率。
[0097]
示例的,调用通用对话模型进行语句内容预测处理可以通过以下方式实现:基于至少一个输入语句调用通用对话模型,针对第1个输出词进行概率预测,得到第1个输出词对应的第二预测概率。
[0098]
在步骤30214中,令m的取值逐渐递增且满足,迭代m执行以下处理:基于至少一个输入语句的输入语句向量与m个第二预测概率的对应的输出词的词编码向量,调用通用对话模型进行语句内容预测处理,得到输出语句中的第m+1个输出词对应的第二预测概率。
[0099]
示例的,步骤30214的原理与步骤30114的原理相同,此处不再赘述。
[0100]
继续参考图3e,在步骤3022中,获取每个第二预测概率的第一平均值,将第一平均值作为输出语句的质量参数。
[0101]
示例的,假设输出语句中存在10个词,获取每个词的第二预测概率的加和,将加和除以10的结果作为输出语句的质量参数。
[0102]
本技术实施例中,通过评估输出语句的质量参数,将输出语句的流畅程度量化,能够提升对话内容的质量,使得对话内容符合虚拟场景对应的特定领域,使得对话内容更加逼真,提升虚拟场景的真实感,节约了编辑虚拟场景剧情的人工成本。
[0103]
继续参考图3a,在步骤303中,基于每个输出语句的质量参数,从多个输出语句中选取当前轮次的对话语句。
[0104]
参考图3g,图3g是本技术实施例提供的虚拟场景的对话处理方法的步骤3031至步骤3032的流程示意图,步骤303可以通过以下步骤3031至步骤3032实现,以下具体说明。
[0105]
在步骤3031中,基于每个输出语句的质量参数,对每个输出语句进行降序排序,得到降序排序列表。
[0106]
示例的,质量参数表征输出语句的流畅程度,质量参数越高则说明输出语句的流畅程度越高,根据质量参数对输出语句进行降序排序,则降序排列列表中排序越前的输出语句的质量参数越高,那么流畅程度也越高。
[0107]
在步骤3032中,从降序排序列表的头部的预设数量的输出语句中,选取任意一个输出语句作为当前轮次的对话语句。
[0108]
示例的,降序排序列表中次序越高,则质量参数越高。例如:预设数量可以是3,从降序排序列表的头部(top)的前3个输出语句中,选取任意一个作为当前轮次的对话语句。
[0109]
参考图3h,图3h是本技术实施例提供的虚拟场景的对话处理方法的步骤301至步骤304的流程示意图,在步骤303之后,执行步骤304,响应于满足对话结束条件,按照选取的先后时间顺序将每个轮次的对话语句组合为对话序列。
[0110]
示例的,对话序列可以作为一场对话,包括多个轮次的对话语句、以及每个轮次的
对话语句对应的发言的虚拟对象;或者,将起始语句与对话序列组合在一起,作为一场对话的完整内容。获取多场对话,对话内容可以用于作为游戏剧情。
[0111]
示例的,对话序列也即一场对话,包括每个轮次的对话语句,以及每个对话语句对应的虚拟对象。对话结束条件包括以下至少一项:1、已经生成的对话语句的数量达到语句数量阈值;例如:假设语句数量阈值为10个,若已经生成的对话语句的数量为10个,则满足对话结束条件。
[0112]
2、对话内容总字数大于对话字数阈值,其中,对话内容总字数是以下参数的加和:已经生成的对话语句的字数、第一轮次的输入语句的字数。
[0113]
例如:对话字数阈值可以是1000字,当起始语句(第一轮次的输入语句)以及已经生成的对话语句的总字数大于等于1000,满足对话结束条件。
[0114]
3、每个参与对象对应的领域对话模型分别输出了至少一个对话语句。例如:一场对话对应于5个虚拟对象,在当前生成的对话语句中,每个虚拟对象分别对应至少一个对话语句,那么每个虚拟对象均已经进行发言,满足对话结束条件。
[0115]
本技术实施例通过不同虚拟对象分别对应的领域对话模型生成不同虚拟对象对应的输出语句,提升了虚拟对象之间对话的真实感,基于起始语句能够续写特定领域的对话,生成的对话能够用于作为游戏虚拟场景的剧情内容,节约了编辑游戏剧情所需的时间与成本。基于通用对话模型评估输出语句的质量参数,基于质量参数选取输出语句,提升了对话内容的质量。
[0116]
在一些实施例中,参考图4a,图4a是本技术实施例提供的虚拟场景的对话处理方法的步骤401a至步骤403a的流程示意图;在步骤301之前,可以通过步骤401a至步骤403a训练领域对话模型,以下具体说明。
[0117]
在步骤401a中,获取特定领域的对话样本的第一样本集合。
[0118]
这里,每个对话样本包括至少一个样本输入语句、用于回复至少一个样本输入语句的一个样本输出语句、以及样本输出语句关联的虚拟对象的角色信息。
[0119]
示例的,样本输出语句关联的虚拟对象的角色信息,是说出样本输出语句的虚拟对象的角色信息。例如:对话样本是一场对话,一场对话包括语句1、语句2以及语句3。语句1以及语句2是样本输入语句,语句3是样本输出语句。语句1与角色a关联,语句2与角色b关联,语句3与角色a关联,则样本输出语句由角色a说出。
[0120]
在一些实施例中,参考图4b,图4b是本技术实施例提供的虚拟场景的对话处理方法的步骤4011b至步骤4015b的流程示意图;步骤401a可以通过以下步骤4011b至步骤4015b实现,以下具体说明。
[0121]
在步骤4011b中,获取特定领域的文本数据。
[0122]
示例的,文本数据可以从网络中通过爬虫抓取得到,特定领域可以是武侠小说领域,下文结合举例进行解释说明。例如:从网络中抓取大量的武侠小说文本数据。
[0123]
在步骤4012b中,从文本数据中提取多场样本对话。
[0124]
示例的,每场样本对话包括多个轮次的样本对话语句。在一些实施例中,参考图4c,图4c是本技术实施例提供的虚拟场景的对话处理方法的步骤40121至步骤40125的流程示意图;步骤4012b可以通过以下步骤40121至步骤40125实现,以下具体说明。
[0125]
在步骤40121中,从文本数据中提取对话符号所对应的文本内容。
[0126]
示例的,对话符号包括以下至少一种:双引号、单引号、冒号。
[0127]
例如:下文以省略号表征文本内容,文本内容是剧本,为以下格式:角色a:
……
角色b:
……
冒号所对应的文本内容是冒号之后的语句。
[0128]
再例如:文本内容是小说,为以下格式:角色c说:
“……
角色b提起
‘……’”
。引号中的内容是引号所对应的文本内容。
[0129]
在步骤40122中,将文本内容中满足筛选条件的语句作为样本对话语句。
[0130]
这里,筛选条件包括以下至少之一:文本内容的出现次数小于次数阈值,且文本内容的字数大于字数阈值。
[0131]
示例的,文本中引号所包括的内容除了角色所发言的语句以外,还包括拟声词,字数阈值可以是1或者2,次数阈值可以是20次,将长度小于等于2个字且出现次数大于等于20的文本内容删除,保留剩余的文本内容作为样本对话语句。
[0132]
在步骤40123中,在文本数据中,获取处于相邻的两个样本对话语句之间的文本内容的文本数据量。
[0133]
示例的,文本数据量通过以下至少一种方式表征:文本字数、文本对应的行数、文本对应的句子数量。
[0134]
在步骤40124中,响应于文本数据量大于数据量阈值,确定相邻的两个样本对话语句之间存在剧情间隔。
[0135]
示例的,数据量阈值可以根据文本数据量的表征方式进行设置,例如:文本数据量通过文本字数表征,则数据量阈值可以为字数阈值,例如:1000字。通过行数表征,则数据量阈值可以为行数阈值,例如:10行。通过文本对应的句子数量表征,数据量阈值可以是句子数量阈值,例如:10句。
[0136]
在步骤40125中,基于每个剧情间隔对每个样本对话语句进行分组处理,得到多场样本对话。
[0137]
示例的,每场样本对话包括至少两个样本对话语句。基于剧情间隔对多个样本对话语句进行分组处理。参考图7a,图7a是本技术实施例提供的文本示意图。图7a中每个方框表征一个语句,多个语句构成一段文本,假设通过文本对应的句子数量表征数据量,数据量阈值可以是句子数量阈值,例如:10句。其中对话语句701a表征为空白方框,非对话语句702a表征为阴影方框,剧情间隔704a中有10句非对话语句702a,基于剧情间隔704a对文本进行分组,得到第一场对话703a与第二场对话705a。第二场对话705a中部分对话语句之间存在非对话语句,非对话语句对应的数据量小于数据量阈值。
[0138]
本技术实施例中,通过筛选文本内容,从特定领域的文本数据中提取了多场对话,通过筛选删除无效内容,能够提升训练对话模型的效果,提升对话模型预测输出语句的准确性,使得输出语句更加接近于真实对话。
[0139]
继续参考图4b,在步骤4013b中,从文本数据中提取与多场样本对话分别关联的角色信息。
[0140]
示例的,相邻轮次的样本对话语句分别对应不同的虚拟对象的角色信息,样本对话中相邻轮次的样本对话语句分别对应不同的虚拟对象,能够避免对话模型预测得到的一
场对话中虚拟对象在相邻的轮次进行连续性的发言,提升对话内容的真实感。
[0141]
在一些实施例中,参考图4d,图4d是本技术实施例提供的虚拟场景的对话处理方法的步骤40131至步骤40132的流程示意图,步骤4013b可以通过以下步骤40131至步骤40132实现,以下具体说明。
[0142]
在步骤40131中,针对每场样本对话中的每个轮次的样本对话语句执行以下处理:从文本数据中提取以下两者之间的文本内容:样本对话语句,上一轮次的样本对话语句。
[0143]
示例的,样本对话语句与上一轮次的样本对话语句之间的文本内容中包括样本对话语句对应的虚拟对象的信息。例如:文本内容如下所示:角色a说:“今天是星期一”。角色b说:“周末过得怎么样”。
[0144]
其中,样本对话语句是“周末过得怎么样”,样本对话语句与上一轮次的样本对话语句之间的文本内容是“角色b说”。
[0145]
在步骤40132中,从文本内容中提取类型为对象名称的目标实体词,将目标实体词作为样本对话语句关联的虚拟对象的角色信息。
[0146]
示例的,基于上述举例继续说明,文本内容中可以提取到类型为对象名称的目标实体词“角色b”,则将角色b作为第二轮次的样本对话语句“周末过得怎么样”的角色信息。
[0147]
继续参考图4b,在步骤4014b中,针对每场样本对话执行以下处理:按照先后时间顺序,依次对样本对话中的多个样本对话语句进行多次选取处理,将每次选取处理得到的样本对话语句组合为特定领域的一场对话样本。
[0148]
其中,第一次的选取处理的选取数量为二,且多次选取处理的选取数量依次递增;例如:对样本对话中有多个样本对话语句,第一次选取2个,第二次选取3个,以此类推。
[0149]
在每一场对话样本中,最后一个样本对话语句为样本输出语句,除最后一个样本对话之外的样本对话语句为样本输入语句。例如,针对第1次选取的语句1和语句2,将语句1作为样本输入语句,将语句2作为样本输出语句;针对第2次选取的语句1至语句3,将语句1和语句2作为样本输入语句,将语句3作为样本输出语句,以此类推。
[0150]
示例的,假设一场对话中包括y个对话语句,y是正整数,按照先后时间顺序分别为语句1至语句y。第一次选取处理,选择语句1与语句2组合为一个对话样本,其中,语句1是样本输入语句,语句2是样本输出语句。第i次选取处理,选择语句1至语句i(小于等于y-1),将语句1至语句i-1作为样本输入语句,将语句i作为样本输出语句。
[0151]
在步骤4015b中,将每个对话样本组合为第一样本集合。
[0152]
示例的,继续基于上述举例说明,基于一场对话可以得到y-1个对话样本,将y-1个对话样本添加到第一样本集合中。针对每场对话执行上文的处理,得到不同场对话对应的对话样本,组合为第一样本集合。
[0153]
本技术实施例中,复用包括多个轮次的对话语句的对话,生成多个样本对话,提升了获取样本的效率,降低了获取样本所需的计算量。
[0154]
继续参考图4a,在步骤402a中,根据每个样本输出语句关联的虚拟对象的角色信息,对第一样本集合中的每个对话样本进行分类处理,得到每个虚拟对象对应的第一样本子集合。
[0155]
示例的,第一样本子集合中的每个样本输出语句对应于同一个虚拟对象。通过对对话样本进行分类处理,可以针对不同的虚拟对象的语言风格训练不同的虚拟对象对应的领域对话模型,使得最终生成的对话内容更生动。
[0156]
在步骤403a中,针对每个虚拟对象关联的待训练模型执行以下处理:基于虚拟对象对应的第一样本子集合,对待训练模型进行迭代训练处理,将训练后的待训练模型作为虚拟对象对应的领域对话模型。
[0157]
示例的,迭代训练处理的次数可以是训练次数阈值(例如:10次)。
[0158]
或者,根据训练效果确定是否停止训练,当待训练模型输出的输出语句与样本对话中的样本输出语句的相似度大于等于相似度阈值,则停止训练。例如:对待训练模型输出的输出语句进行特征提取,得到预测语句特征,对样本对话中的样本输出语句进行特征提取,得到样本语句特征,通过向量表征语句特征,获取预测语句特征与样本语句特征之间的余弦相似度。
[0159]
在一些实施例中,参考图4e,图4e是本技术实施例提供的虚拟场景的对话处理方法的步骤4031e至步骤4034e的流程示意图,步骤403a可以通过以下步骤4031e至步骤4034e实现,以下具体说明。
[0160]
在步骤4031e中,针对第一样本子集合中的每个对话样本执行以下处理:基于对话样本中的至少一个样本输入语句,调用待训练模型进行对话生成处理,得到预测输出语句。
[0161]
示例的,对话生成处理的具体原理参考上文中步骤301,此处不再赘述。
[0162]
在步骤4032e中,获取预测输出语句与对话样本中的样本输出语句之间的差异,将差异作为预测损失。
[0163]
在一些实施例中,参考图4f,图4f是本技术实施例提供的虚拟场景的对话处理方法的步骤40321至步骤40325的流程示意图,步骤4032e可以通过以下步骤40321至步骤40325实现,以下具体说明。
[0164]
在步骤40321中,对至少一个样本输入语句进行编码处理,得到样本输入向量。
[0165]
在步骤40322中,对预测输出语句与样本输出语句分别进行编码处理,得到预测向量以及样本输出向量。
[0166]
示例的,步骤40321以及步骤40322中编码处理的原理参考上文中步骤30112,此处不再赘述。
[0167]
在步骤40323中,对样本输入向量与样本输出向量进行拼接处理,得到第一拼接向量,对第一拼接向量进行转换处理,得到样本输出语句的第一文本特征。
[0168]
示例的,拼接处理的过程如下:样本输入向量在前、样本输出向量在后,将二者作为一个完整的向量,得到第一拼接向量。例如:样本输入向量是一个20维度的向量s1,样本输出向量是一个10维度的向量s2,对样本输入向量与样本输出向量进行拼接处理,得到第一拼接向量p1,p1=(s1,s2),其中,第一拼接向量p1的维度为30,前20个维度由向量s1构成,后10个维度由向量s2构成。
[0169]
示例的,转换处理通过以下方式实现:调用待训练模型中的转换器层,对第一拼接向量进行多个层次的转换处理,预测得到第一文本特征。继续参考图7b,调用待训练模型702b中的每个转换器层701b对第一拼接向量进行多个层次的转换处理,将上一层次的转换器层701b的输出作为下一层次的转换器层701b输入,预测得到第一文本特征。
[0170]
在步骤40324中,对样本输入向量与预测向量进行拼接处理,得到第二拼接向量,对第二拼接向量转换处理,得到预测输出语句对应的第二文本特征。
[0171]
示例的,拼接处理和转换处理的原理如步骤40323所示,此处不再赘述。
[0172]
在步骤40325中,获取第一文本特征与第二文本特征之间的差异,并将差异作为预测损失。
[0173]
示例的,第一文本特征与第二文本特征可以表征为概率分布,将二者分别对应的概率分布之间进行相减,得到第一文本特征与第二文本特征之间的差异,将差异作为预测损失。预测损失表征预测得到的预设输出语句,与样本输入语句实际上对应的样本输出语句之间的差异。
[0174]
继续参考图4e,在步骤4033e中,基于预测损失对待训练模型进行反向传播处理,得到参数更新后的待训练模型。
[0175]
示例的,反向传播处理可以通过以下方式实现:将预测损失逐层地对待训练模型进行反向传播计算参数的梯度(可以采用梯度下降法获取参数,梯度下降法包括:沿损失函数梯度下降的方向,寻找损失函数的最小值,得到最优参数),基于梯度计算待训练模型每层的更新参数。以更新参数替换待训练模型中对应的参数,则可以得到更新后的待训练模型。
[0176]
在步骤4034e中,响应于反向传播处理的次数达到训练次数阈值,将参数更新后的待训练模型作为参与对象对应的领域对话模型。
[0177]
在一些实施例中,训练次数阈值例如50次,或者,当预测输出语句与样本输出语句之间的差异小于设定值时,停止进行训练,将参数更新后的待训练模型作为参与对象对应的领域对话模型。
[0178]
在一些实施例中,参考图4g,图4g是本技术实施例提供的虚拟场景的对话处理方法的步骤401g至步骤402g的流程示意图,在步骤301之前,可以通过步骤401g至步骤403g训练通用对话模型,以下具体说明。
[0179]
在步骤401g中,获取通用领域的对话样本的第二样本集合。
[0180]
这里,每个对话样本包括至少一个样本输入语句、以及用于回复至少一个样本输入语句的一个样本输出语句。
[0181]
在步骤402g中,基于第二样本集合对待训练模型进行迭代训练处理,将训练后的待训练模型作为通用对话模型。
[0182]
在一些实施例中,参考图4h,图4h是本技术实施例提供的虚拟场景的对话处理方法的步骤4021h至步骤4024h的流程示意图,步骤402g可以通过步骤4021h至步骤4024h实现,以下具体说明。
[0183]
在步骤4021h中,针对第二样本集合中的每个对话样本执行以下处理:基于对话样本中的至少一个样本输入语句,调用待训练模型进行对话生成处理,得到预测输出语句。
[0184]
在步骤4022h中,获取预测输出语句与对话样本中的样本输出语句之间的差异,将差异作为预测损失。
[0185]
在步骤4023h中,基于预测损失对待训练模型进行反向传播处理,得到参数更新后的待训练模型。
[0186]
在步骤4024h中,响应于反向传播处理的次数达到训练次数阈值,将参数更新后的
待训练模型作为通用对话模型。
[0187]
示例的,步骤4021h至步骤4024h的原理可以参考步骤4031e至步骤4034e,此处不再赘述。
[0188]
本技术实施例通过基于相同的待训练模型训练通用对话模型、领域对话模型,提升了评估输出语句的质量参数的准确性,进而能够获得流畅程度更高的对话语句,提升了生成虚拟对象的对话的效率以及质量。
[0189]
本技术实施例通过基于输入语句调用特定领域的领域对话模型生成输出对话,提升了生成虚拟对象的对话的效率,通过调用通用对话模型对输出对话的质量进行评估,提升了生成的对话内容的质量,能够基于起始语句生成包括多个轮次的对话语句的对话,提升了生成虚拟对象的对话的效率以及质量,能够根据游戏相关的逻辑生成符合游戏流程的对话剧情,辅助游戏剧情创作,满足越来越丰富的游戏种类的创作需求。
[0190]
下面,将说明本技术实施例提供的虚拟场景的对话处理方法在一个实际的应用场景中的示例性应用。
[0191]
在剧情为主的游戏虚拟场景中,常常需要大量的各个人物(虚拟对象)的对话信息来丰富玩家的游戏体验,剧情内容的生成需要大量的人力、时间。通过本技术实施例提供的虚拟场景的对话处理方法,可以通过接收起始语句,根据游戏剧情生成不同游戏角色(虚拟对象)之间的剧情对话。剧情编辑人员可以采用生成的剧情对话进行内容筛选作为游戏角色的对话内容,通过本技术实施例提供的虚拟场景的对话处理方法可以快速生成大量的、符合游戏场景的剧情对话内容。
[0192]
参考图5a,图5a是本技术实施例提供的虚拟场景的对话处理方法的应用场景的示意图,将结合图5a对本技术实施例的虚拟场景的对话处理方法的应用进行解释说明,假设对话场景中包括角色a与角色b,编辑人员输入起始语句,起始语句是具有武侠风格的内容,并且起始语句基于角色a或者角色b的身份输入到剧情生成系统502a,剧情生成系统502a是运行本技术实施例虚拟场景的对话处理方法的系统,例如:以角色b的身份输入起始语句501a“兄台也是来送朋友的么”到剧情生成系统502a,得到以下生成内容503a:“角色a:非也,在下是来等人的!角色b:但不知兄台等的是谁角色a:便是此人!角色b:兄台认识他么!角色a:不错,敢问兄台是否也认识他角色b:当然认识。
[0193]
角色a:别说,我们已经是好朋友了。
[0194]
角色b:前方有个酒楼,去喝一杯如何。”生成内容503a以及起始语句501a组成一场对话,将生成内容503a以及起始语句501a存储到数据库504a。数据库504a可以是游戏数据库,游戏数据库中存储有大量的对话内容,可以用于制作游戏剧情。编辑人员只需要以对话中任意一个角色的身份输入起始语句,执行本技术实施例提供的虚拟场景的对话处理方法,可以生成起始语句之后的剧情对话内容,富含武侠情结,编辑人员可以直接采纳,或者对剧情对话内容调整之后存入游戏数
据库。
[0195]
在一些实施例中,特定领域可以是网络语言、古风小说、英语翻译风格、科普文献等语言风格领域。本技术实施例中,以特定领域为古风小说领域为例进行解释说明。参考图5b,图5b是本技术实施例提供的虚拟场景的对话处理方法的步骤501b至步骤508b的流程示意图,以服务器为执行主体,将结合图5b示出的步骤进行说明。
[0196]
在步骤501b中,获取古风领域对话数据。
[0197]
示例的,古风领域对话数据可以从互联网中抓取的武侠小说文本、历史小说文本、文言文的文献等文本中提取。
[0198]
在一些实施例中,步骤501b可以通过以下步骤5011b至步骤5014b实现。
[0199]
在步骤5011b中,获取古风文本集合。
[0200]
在步骤5012b中,提取古风对话数据。
[0201]
参考图5c,图5c是本技术实施例提供的虚拟场景的对话处理方法的步骤501c至步骤505c的流程示意图;可以通过步骤501c至步骤505c实现步骤5011b至5012b。
[0202]
在步骤501c中,从互联网获取古风文本集合。
[0203]
示例的,古风文本集合可以是从小说网站中提取的,例如武侠小说网站。
[0204]
在步骤502c中,提取双引号内部对话内容,删除无效对话语句,得到多轮对话语句。
[0205]
示例的,角色对话通常通过双引号、单引号、冒号等符号标注,可以通过确定上述与对话内容相关的符号在文本中的位置,并获取符号关联的语句内容作为对话内容。无效对话语句是字数小于字数阈值(例如:2个字)且出现频率高于频率阈值(例如:每10000字中出现20次)的语句。例如:“嗖”、“咣当”等拟声词,这类对话语句内容往往较短,对字数小于等于2的短句进行频率统计,当任意一个短句出现频率大于20次时,且短句的内容为拟声词,该短句为无效对话语句,从文本数据中将无效对话语句剔除掉。
[0206]
在步骤503c中,提取每2轮对话语句之间的剧情数据,确定对话场景。
[0207]
示例的,当2个对话语句之间的文本数据量超过预设数据量(例如:预设行数(例如:10行)、预设字数(例如:100字)、预设句子数量(例如:10个句子)),两个对话语句分别属于不同场的对话。据此对文本进行分段(也即,上文中分组处理),得到多场对话,每场对话由多个语句构成。
[0208]
在步骤504c中,提取双引号前置内容,得到对话角色。
[0209]
示例的,对话角色是上文的虚拟对象,以下举例一段文本内容,对获取对话角色进行解释说明:某角色说:“你几时知道的!”其中,双引号中的内容是对话语句的内容,“某角色说”是前置内容,从前置内置中提取表征名称的实体词作为对话角色,则“某角色”是对话角色。在获取对话角色之后,还可以通过人工方式矫正补充对话角色的角色信息。
[0210]
在步骤505c中,分段切分采样,得到训练数据。
[0211]
示例的,以下举例一场对话,对分段切分采样进行解释说明。
[0212]
(语句1)角色c:你是做生意的(语句2)角色d:在下本就是个生意人。
[0213]
(语句3)角色c:做生意是为了什么(语句4)角色d:当然是为了赚钱。
[0214]
从上述对话中的最后一个语句开始依次进行切分,第一次切分得到前三个语句以及语句4,将语句4作为输出语句,将前三个语句作为输出语句,组成为一个样本对话。第二次切分,针对前三个语句进行,切分得到语句3,将语句3作为输出语句,将语句1和语句2作为输入语句。依次类推,基于一场对话获取了多个样本。
[0215]
继续参考图5b,在步骤5013b中,提取角色数据。
[0216]
示例的,步骤5013b的原理与上文中步骤504c相同,此处不再赘述。
[0217]
在步骤5014b中,对角色数据与对话数据进行关联处理。
[0218]
示例的,将角色数据与对应的对话数据进行关联处理,每个对话语句与说出该对话语句的虚拟对象一一对应。
[0219]
在步骤502b中,训练模型。
[0220]
示例的,基于步骤501b得到的古风领域对话数据训练剧情生成模型(上文的领域对话模型)。
[0221]
参考图7c,图7c是本技术实施例提供的待训练模型的第二结构示意图;待训练模型包括多个预训练模型转换层701c(gpt transformer layer,general pre-training transformer layer),本技术实施例中以转换层为12个为例进行解释说明。每个预训练模型转换层701c包括编码器704c以及解码器705c,编码器704c用于对样本输入语句(例如:你几时知道)进行编码,得到键key和值value。解码器705c用于对样本输出语句(例如:知道什么)进行编码,得到query查询向量。将query查询向量、键key、值value拼接,在待训练模型中进行多个层次的转换,预测得到每个样本输出语句的预测文本特征,对预测文本特征进行归一化(softmax)处理,得到每个语句对应的概率。
[0222]
训练模型可以通过以下方式实现:设置样本输入对话的最大字数为256,预测输出语句的最大字数为128,可以表征为batch size=128,训练次数(epoch)设置为10。加载待训练模型的参数,可以采用实体属性值模型(eva2.0-large,entity attribute value)作为待训练模型,得到初始化参数。每次选取batch size的文本进行推理,得到batch size组概率特征y,维度为batchsize*vocab_num,其中vocab_num代表预测词汇的总数量,例如:vocab_num=30000。待训练模型预测得到预测概率特征y(上文中第二文本特征)与样本输出语句的实际概率特征(上文中第一文本特征)之间的差异,将差异作为预测损失(loss),基于预测损失进行反向传播,更新待训练模型的参数,使得在每条训练数据中,利用样本输入语句的内容来生成最后一轮对话语句,并不断逼近训练数据中的样本输出语句。
[0223]
重复进行训练,直至收敛,或者当前训练次数达到设定的训练次数(epoch)10次。在整个训练微调过程中,使得剧情生成模型即保留了通用对话模型的流畅度和常识逻辑,同时能够学习到古风领域中对话的风格和特色,得到合适的剧情对话模型。
[0224]
示例的,基于海量开源数据集训练通用对话模型。利用大规模通用对话语料训练的通用对话模型,不仅可以提高对话生成的流畅度和合理性,同时可以使得通用对话模型
可以学习到中文常识习惯,通用对话模型的作用是评估特定风格的剧情生成模型输出的对话的流畅度和质量。训练通用对话模型的原理与训练剧情生成模型的原理是相同的,此处不再赘述。
[0225]
在步骤503b中,获取起始语句、对话轮次阈值、语句的最小字数。
[0226]
示例的,起始语句是可以是剧情编辑人员手动输入的;或者,本技术实施例提供的方法应用在游戏中时,由玩家手动输入的起始语句;或者,从数据库中随机抽取对话角色以及对应的对话语句作为起始语句。对话轮次阈值是一次对话中轮次的最大值,可以设置为30句。语句的最小字数可以设置为3个字,从而避免出现内容极少的无效语句。
[0227]
在步骤504b中,调用剧情生成模型生成多个角色对应的多个语句。
[0228]
示例的,参考图6a,图6a是本技术实施例提供的虚拟场景的对话处理方法的步骤601a至步骤607a的流程示意图。
[0229]
在步骤601a中,输入起始语句。
[0230]
示例的,步骤601a的执行可以参考步骤503b此处不再赘述。
[0231]
在步骤602a中,从n个剧情生成模型中,排除上一个对话角色。
[0232]
示例的,上一个对话角色也即上文的参与对象,每次对话生成需要去掉上一轮次发言的参与对象,用户可以输入指定参与对象,当用户指定参与对象时,得到指定角色对应的输出语句,获取下一轮次的输出语句时需要排除指定参与对象,避免相邻轮次的对话语句由相同的虚拟对象的剧情生成模型输出,造成虚拟对象“自言自语”影响生成的对话的质量。
[0233]
在步骤603a中,生成多个输出语句,以及对应的质量评分。
[0234]
示例的,获取词表,词表中可以包括大量的候选词,例如:30000个。剧情生成模型基于输入语句预测词表中的每个候选词是输出语句中的第一个词的概率。预测公式(1)如下所示:其中,在第一轮次中,x是输入语句,=0,表征当前还未生成输出词。表征第一轮次预测得到的输出词。表征领域对话模型对输入语句进行编码,得到输入语句向量,并基于输入语句向量预测得到概率特征;softmax归一化函数对概率特征进行归一化处理得到第一预测概率(取值范围为[0,1]);argmax函数,用于获取最大的第一预测概率在词表中对应的索引数值,函数用于基于最大的第一预测概率的索引数值,获取词表中对应的候选词的文字,得到最大的第一预测概率对应的候选词。
[0235]
参考图6b,图6b是本技术实施例提供的虚拟场景的对话处理方法的步骤601b至步骤607b的流程示意图。剧情生成模型602b执行步骤603b、步骤607b。剧情生成模型602b中包括多种函数,包括:softmax函数(604b)、argmax函数(605b)。剧情生成模型602b还包括解码器606b。
[0236]
输入数据601b包括:输入语句6011b(例如:“角色a说:你几时知道”)、n个已经生
成的内容6012b(例如:“角色b回复:知”,输出词“知”是已经生成的内容)。
[0237]
在步骤603b中,判断已经生成的对话语句的长度是否小于对话最小字数。
[0238]
当步骤603b的判断结果为是时,执行步骤607b,结束符设置最小值:a[4]=min(a)。判断结果为否时,将输入数据依次输入softmax函数、argmax函数以及解码器。其中,在当前轮次生成的对话内容长度小于设置的对话最小字数,将结束符对应的序号的数值设置为当前总列表的最小值,如果对话语句的数据量(行数、字数或者句子数量)已经达到设置的最小数据量需求,不进行结束符数值操作。最终采用通过归一化函数(softmax)处理的方法进行概率计算,挑选出概率最大的位置id所对应的词汇作为下一个词汇的续写。
[0239]
基于上述举例进行解释说明,softmax函数基于输入数据得到n*30000维度概率数据,argmax函数用于获取n*30000维度概率数据中概率最大的候选词对应的位置id,本技术实施例中为92,解码器用于对位置id对应的数据进行解码,得到位置id对应的字符“道”。
[0240]
也即,剧情对话模型基于输入语句“你几时知道”预测得到输出语句中的第一个词“知”,基于输入语句“你几时知道”以及词“知”预测得到输出语句中的第二个词“道”。以此类推,得到输出语句中后续的词。
[0241]
为便于对通用对话模型与剧情生成模型的关系进行解释说明,参考图6c,图6c是本技术实施例提供的虚拟场景的对话处理方法的步骤601c至步骤606c的流程示意图。剧情生成模型602b执行步骤601c至步骤603c,通用对话模型603b执行步骤604c至步骤606c。上文中已经对输入数据601b进行解释,此处不再赘述。
[0242]
在步骤601c中,预测每个候选词的第一概率。
[0243]
步骤601c的原理可以参考上文图6b中的各步骤。第一概率也即上文的第一预测概率。
[0244]
步骤604c的执行与步骤601c可以是并行的。在步骤604c中,预测每个候选词的第二概率。第二概率也即上文的第二预测概率。
[0245]
在步骤601c之后执行步骤602c,在步骤602c中,获取与最大第一概率对应的词的位置id。
[0246]
示例的,词表中包括30000个词,每个词对应不同的序号(位置id),剧情生成模型对词表中每个词出现的概率进行预测,可以得到30000维度的第一个概率特征,概率特征中每个维度的数据表征一个词的第一概率,获取最大第一概率在第一个概率特征中的对应的位置id。
[0247]
在步骤602c之后,执行步骤603c以及步骤605c。在步骤603c中,将与最大第一概率对应的词作为输出词。在步骤605c中,获取位置id对应的词的第二概率。
[0248]
在步骤606c中,将第二概率作为输出词的质量评分。
[0249]
例如:文字“道”在概率特征1中的位置id是92,然后查找概率特征2中位置id92对应的概率,得到0.69的数值,将位置id92对应的概率0.69作为文字“道”的质量评分。
[0250]
示例的,对输出语句中的每个输出词均进行评分,汇总每个输出词对应的第二概率,得到一个分数列表,计算每个输出词对应的分数的均值,将均值作为输出语句的质量评分。
[0251]
继续参考图6a,在步骤604a中,根据质量评分,选取一个输出语句作为对话语句。
[0252]
示例的,将质量评分大小作为随机选取的概率大小,根据质量评分对输出语句进行降序排序,从topn(例如:n为3)的输出语句中,选择一个输出语句作为生成的对话语句。
[0253]
在步骤605a中,判断续写是否结束。当605a的判断结果为是时,执行步骤606a,输出剧情对话序列;当605a的判断结果为否时,执行步骤607a,输入已经生成的对话语句。并在步骤607a之后执行步骤602a。
[0254]
示例的,续写结束的判断条件可以是生成的对话语句的数量是否达到预设的数量,或者对话的总字数是否达到预设的字数。
[0255]
继续参考图5b,在步骤505b中,调用通用对话模型对每个语句进行评分。
[0256]
在步骤506b中,根据每个语句的评分获取当前轮次的对话语句、发言的虚拟对象。
[0257]
在步骤507b中,判断是否续写结束。当步骤507b的判断结果为是时,执行步骤508b,结束续写,输出对话内容和每个对话语句的评分。当步骤507b的判断结果为否时,执行步骤504b。
[0258]
示例的,步骤505b至步骤508b的执行可以参考上文中步骤602a至607a,此处不再赘述。
[0259]
本技术实施例提供的虚拟场景的对话处理方法可以应用在游戏中,例如:剧情游戏中,多个玩家扮演不同的角色,多个虚拟对象对某一话题进行讨论,对话过程中提供每个用户对应的发言位置,为每个用户提供多个选项进行选择,每个选项对应不同的子任务,根据用户选择的选项生成后续对话,并向用户发放对话选项对应的子任务。或者,手动输入对应的对话内容,根据用户输入的对话内容生成后续对话,并根据后续对话向用户的角色发放子任务。
[0260]
本技术实施例实现了以下技术效果:1、利用和特定游戏背景相似的武侠小说进行训练,学习到符合游戏风格的对话生成模型,提高了对话生成模型在游戏中的适配性;2、结合游戏中本身的内容、剧情设置等因素,通过学习游戏中的剧情,生成更加符合游戏逻辑的对话剧情;3、通过对话生成的方式,提高剧情生成的多样性;4、采用多角色对话生成,设计严谨的对话评估方案,可以生成场景和故事丰富的剧情对话内容。
[0261]
下面继续说明本技术实施例提供的虚拟场景的对话处理装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的虚拟场景的对话处理装置455中的软件模块可以包括:对话生成模块4551,用于基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的领域对话模型进行对话生成处理,得到每个参与对象的多个输出语句,其中,至少一个参与对象是多个虚拟对象中除上一轮次的发言对象以外的虚拟对象;质量检测模块4552,用于基于每个输出语句调用通用对话模型进行质量预测处理,得到每个输出语句的质量参数,其中,通用对话模型是基于通用领域的对话样本训练得到的;质量检测模块4552,用于基于每个输出语句的质量参数,从多个输出语句中选取当前轮次的对话语句。
[0262]
在一些实施例中,对话生成模块4551,用于基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的领域对话模型进行对话生成处理,得到每个参与对象的多
个输出语句之前,若当前轮次为第一轮次,获取针对当前一场对话预设的起始语句,将起始语句作为第一轮次的输入语句;若当前轮次为第一轮次之后的后续轮次,从以下语句中选取至少一个语句作为后续轮次的至少一个输入语句:起始语句,当前轮次之前的任意轮次的对话语句。
[0263]
在一些实施例中,对话生成模块4551,用于响应于上一轮次的对话语句的类型是疑问句,确定当前的对话场景为问答场景,至少将上一轮次的对话语句作为输入语句;响应于上一轮次的对话语句的类型不是疑问句,确定当前的对话场景为聊天场景,从当前轮次之前的任意轮次的对话语句以及起始语句中,选取至少一个语句作为输入语句。
[0264]
在一些实施例中,对话生成模块4551,用于基于至少一个输入语句,调用当前轮次的参与对象的领域对话模型进行语句内容预测处理,得到多个输出词;按照先后时间顺序依次对多个输出词进行多次选取处理,将每次选取处理得到的输出词按照先后时间顺序组合为一个输出语句,其中,第一次的选取处理的选取数量为一,且多次选取处理的选取数量依次递增。
[0265]
在一些实施例中,对话生成模块4551,用于获取词表以及输出语句的最大词数量n,其中,n为正整数,词表包括多个候选词、以及每个候选词对应的词编码向量;对至少一个输入语句进行编码处理,得到至少一个输入语句对应的输入语句向量;基于输入语句向量,调用当前轮次的参与对象的领域对话模型进行语句内容预测处理,得到每个候选词的第一预测概率,将与最大的第一预测概率对应的候选词作为第1个输出词;令n的取值逐渐递增且满足n,迭代n执行以下处理:基于输入语句向量与n个输出词的词编码向量,调用当前轮次的参与对象的领域对话模型进行语句内容预测处理,得到每个候选词的第一预测概率,将与最大的第一预测概率对应的候选词作为第n+1个输出词。
[0266]
在一些实施例中,质量检测模块4552,用于针对每个输出语句执行以下处理:基于输出语句以及与输出语句对应的至少一个输入语句,调用通用对话模型进行质量预测处理,得到输出语句中每个输出词对应的第二预测概率;获取每个第二预测概率的第一平均值,将第一平均值作为输出语句的质量参数。
[0267]
在一些实施例中,质量检测模块4552,用于获取输出语句的词总数量m、以及输出语句中每个输出词的词编码向量,其中,m是正整数;获取与输出语句对应的至少一个输入语句的输入语句向量;基于至少一个输入语句的输入语句向量,调用通用对话模型进行语句内容预测处理,得到输出语句中的第1个输出词对应的第二预测概率;令m的取值逐渐递增且满足m,迭代m执行以下处理:基于至少一个输入语句的输入语句向量与m个第二预测概率的对应的输出词的词编码向量,调用通用对话模型进行语句内容预测处理,得到输出语句中的第m+1个输出词对应的第二预测概率。
[0268]
在一些实施例中,对话生成模块4551,用于在基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的领域对话模型进行对话生成处理之前,通过以下至少一种方式,确定当前轮次的至少一个参与对象:在当前对话场景为问答场景,且上一轮次的对话语句为疑问句时,获取上一轮次的对话语句所包括的至少一个角色信息,将至少一个角色信息对应的至少一个虚拟对象,作为当前轮次的至少一个参与对象;在当前对话场景为聊天场景时,将多个虚拟对象中除上一轮次的发言对象以外的至少一个虚拟对象,作为当
前轮次的至少一个参与对象;从对话轮次表中查询针对当前轮次预先设置的至少一个参与对象,其中,对话轮次表包括针对每个对话轮次预先设置的至少一个参与对象,且对话轮次表中相邻轮次的参与对象不同;从虚拟对象对应的第二平均值的降序排序结果中,将从首位开始的至少一个第二平均值对应的至少一个虚拟对象,作为当前轮次的至少一个参与对象,其中,虚拟对象对应的第二平均值是虚拟对象对应的每个输出语句的质量参数的平均值。
[0269]
在一些实施例中,质量检测模块4552,用于基于每个输出语句的质量参数,对每个输出语句进行降序排序,得到降序排序列表;从降序排序列表的头部的预设数量的输出语句中,选取任意一个输出语句作为当前轮次的对话语句。
[0270]
在一些实施例中,对话生成模块4551,用于在基于每个输出语句的质量参数,从多个输出语句中选取当前轮次的对话语句之后,响应于满足对话结束条件,按照选取的先后时间顺序将每个轮次的对话语句组合为对话序列,其中,对话结束条件包括以下至少一项:已经生成的对话语句的数量达到语句数量阈值;对话内容总字数大于对话字数阈值,其中,对话内容总字数是以下参数的加和:已经生成的对话语句的字数、第一轮次的输入语句的字数;每个参与对象对应的领域对话模型分别输出了至少一个对话语句。
[0271]
在一些实施例中,对话生成模块4551,用于在基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的领域对话模型进行对话生成处理,得到每个参与对象的多个输出语句之前,获取特定领域的对话样本的第一样本集合,其中,每个对话样本包括至少一个样本输入语句、用于回复至少一个样本输入语句的一个样本输出语句、以及样本输出语句关联的虚拟对象的角色信息;根据每个样本输出语句关联的虚拟对象的角色信息,对第一样本集合中的每个对话样本进行分类处理,得到每个虚拟对象对应的第一样本子集合,其中,第一样本子集合中的每个样本输出语句对应于同一个虚拟对象;针对每个虚拟对象关联的待训练模型执行以下处理:基于虚拟对象对应的第一样本子集合,对待训练模型进行迭代训练处理,将训练后的待训练模型作为虚拟对象对应的领域对话模型。
[0272]
在一些实施例中,对话生成模块4551,用于获取特定领域的文本数据;从文本数据中提取多场样本对话,其中,每场样本对话包括多个轮次的样本对话语句;从文本数据中提取与多场样本对话分别关联的角色信息,其中,相邻轮次的样本对话语句分别对应不同的虚拟对象的角色信息;针对每场样本对话执行以下处理:按照先后时间顺序,依次对样本对话中的多个样本对话语句进行多次选取处理,将每次选取处理得到的样本对话语句组合为特定领域的一场对话样本;其中,第一次选取处理的选取数量为二,且多次选取处理的选取数量依次递增;在每一场对话样本中,最后一个样本对话语句为样本输出语句,除最后一个样本对话之外的样本对话语句为样本输入语句;将每个对话样本组合为第一样本集合。
[0273]
在一些实施例中,对话生成模块4551,用于从文本数据中提取对话符号所对应的文本内容,其中,对话符号包括以下至少一种:双引号、单引号、冒号;将文本内容中满足筛选条件的语句作为样本对话语句,其中,筛选条件包括以下至少之一:文本内容的出现次数小于次数阈值,且文本内容的字数大于字数阈值;在文本数据中,获取处于相邻的两个样本对话语句之间的文本内容的文本数据量,其中,文本数据量通过以下至少一种方式表征:文本字数、文本对应的行数、文本对应的句子数量;响应于文本数据量大于数据量阈值,确定相邻的两个样本对话语句之间存在剧情间隔;基于每个剧情间隔对每个样本对话语句进行
分组处理,得到多场样本对话,其中,每场样本对话包括至少两个样本对话语句。
[0274]
在一些实施例中,对话生成模块4551,用于针对每场样本对话中的每个轮次的样本对话语句执行以下处理:从文本数据中提取以下两者之间的文本内容:样本对话语句,上一轮次的样本对话语句;从文本内容中提取类型为对象名称的目标实体词,将目标实体词作为样本对话语句关联的虚拟对象的角色信息。
[0275]
在一些实施例中,对话生成模块4551,用于针对第一样本子集合中的每个对话样本执行以下处理:基于对话样本中的至少一个样本输入语句,调用待训练模型进行对话生成处理,得到预测输出语句;获取预测输出语句与对话样本中的样本输出语句之间的差异,将差异作为预测损失;基于预测损失对待训练模型进行反向传播处理,得到参数更新后的待训练模型;响应于反向传播处理的次数达到训练次数阈值,将参数更新后的待训练模型作为参与对象对应的领域对话模型。
[0276]
在一些实施例中,对话生成模块4551,用于对至少一个样本输入语句进行编码处理,得到样本输入向量;对预测输出语句与样本输出语句分别进行编码处理,得到预测向量以及样本输出向量;对样本输入向量与样本输出向量进行拼接处理,得到第一拼接向量,对第一拼接向量进行转换处理,得到样本输出语句的第一文本特征;对样本输入向量与预测向量进行拼接处理,得到第二拼接向量,对第二拼接向量转换处理,得到预测输出语句对应的第二文本特征;获取第一文本特征与第二文本特征之间的差异,并将差异作为预测损失。
[0277]
在一些实施例中,质量检测模块4552,用于在基于至少一个输入语句,调用当前轮次的至少一个参与对象分别对应的领域对话模型进行对话生成处理,得到每个参与对象的多个输出语句之前,获取通用领域的对话样本的第二样本集合,其中,每个对话样本包括至少一个样本输入语句、以及用于回复至少一个样本输入语句的一个样本输出语句;基于第二样本集合对待训练模型进行迭代训练处理,将训练后的待训练模型作为通用对话模型。
[0278]
在一些实施例中,质量检测模块4552,用于针对第二样本集合中的每个对话样本执行以下处理:基于对话样本中的至少一个样本输入语句,调用待训练模型进行对话生成处理,得到预测输出语句;获取预测输出语句与对话样本中的样本输出语句之间的差异,将差异作为预测损失;基于预测损失对待训练模型进行反向传播处理,得到参数更新后的待训练模型;响应于反向传播处理的次数达到训练次数阈值,将参数更新后的待训练模型作为通用对话模型。
[0279]
本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该计算机设备执行本技术实施例上述的虚拟场景的对话处理方法。
[0280]
本技术实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的虚拟场景的对话处理方法,例如,如图3a示出的虚拟场景的对话处理方法。
[0281]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0282]
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码
的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0283]
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0284]
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
[0285]
综上所述,通过本技术实施例通过在一场对话的每个轮次中,对于调用特定领域的领域对话模型生成的多个输出语句,通过通用对话模型来进行质量评估,一方面,确保筛选出高质量的输出对话作为相应轮次的对话语句,另一方面,将当前轮次的对话数据又作为下一个轮次的输入语句,即用于引导下一轮次的对话生成处理,从一场对话的不同轮次的层面提升了整体的对话内容的质量。
[0286]
以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1