基于多轮交互的语料生成方法和装置与流程

文档序号:11519611阅读:159来源:国知局
基于多轮交互的语料生成方法和装置与流程

本发明涉及自然语言处理技术领域,尤其涉及一种基于多轮交互的语料生成方法和装置。



背景技术:

随着计算机技术的发展,自然语言处理(naturallanguageprocessing,nlp)的人机交互中产生一种重要的交互方式-多轮对话,多轮对话中通常有两个或多个代理(agent),通过自然语言的方式交替进行多轮交互,从而使得对话持续。多轮对话例如,在电商平台的用户和客服之间,通过语音、文字等方式进行多轮的沟通和交流,以达到解决某种问题的目的。在多轮交互建模的过程中,需要让参与者扮演对话中一方的角色,和交互系统进行对话,即,基于大量的语料生成对话数据训练模型,使得交互系统能够基于该对话数据训练模型为后台服务器生成准确的自动回复。

相关技术中,让参与者扮演对话中一方的角色,和交互系统进行对话,在开始对话前可以分配至参与者一些说明,引导参与者开始并展开对话。

这种方式下,语料生成的人力成本较高,效果不佳。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的一个目的在于提出一种基于多轮交互的语料生成方法,能够有效降低多轮交互中的语料生成的人力成本,并且,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

本发明的另一个目的在于提出一种基于多轮交互的语料生成装置。

为达到上述目的,本发明第一方面实施例提出的基于多轮交互的语料生成方法,包括:依据马尔可夫链中节点之间的状态转移概率确定当前节点;执行绑定在所述当前节点上的动作事件,并执行与所述动作事件对应的消息模板事件;依据所述状态转移概率,执行所述马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成所述多轮交互的语料。

本发明第一方面实施例提出的基于多轮交互的语料生成方法,通过依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料,由于是由计算机程序直接触发执行生成语料,因此,能够有效降低多轮交互中的语料生成的人力成本,并且,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

为达到上述目的,本发明第二方面实施例提出的基于多轮交互的语料生成装置,包括:第一确定模块,用于依据马尔可夫链中节点之间的状态转移概率确定当前节点;执行模块,用于执行绑定在所述当前节点上的动作事件,并执行与所述动作事件对应的消息模板事件;生成模块,用于依据所述状态转移概率,执行所述马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成所述多轮交互的语料。

本发明第二方面实施例提出的基于多轮交互的语料生成装置,通过依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料,由于是由计算机程序直接触发执行生成语料,因此,能够有效降低多轮交互中的语料生成的人力成本,并且,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明一实施例提出的基于多轮交互的语料生成方法的流程示意图;

图2为本发明实施例中马尔可夫链的结构示意图;

图3是本发明另一实施例提出的基于多轮交互的语料生成方法的流程示意图;

图4是本发明一实施例提出的基于多轮交互的语料生成装置的结构示意图;

图5是本发明另一实施例提出的基于多轮交互的语料生成装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本发明一实施例提出的基于多轮交互的语料生成方法的流程示意图。

本实施例中基于多轮交互的语料生成方法可以被配置在基于多轮交互的语料生成装置中。该基于多轮交互的语料生成装置可以设置在服务器中,或者也可以设置在电子设备中,本发明实施例对此不作限制。

其中,电子设备例如为个人电脑(personalcomputer,pc),云端设备或者移动设备,移动设备例如智能手机,或者平板电脑等。

需要说明的是,本发明实施例的执行主体,在硬件上可以例如为服务器/电子设备中的中央处理器(centralprocessingunit,cpu),在软件上可以例如为服务器/电子设备中的应用程序,对此不作限制。

该基于多轮交互的语料生成方法可以应用在nlp的人机交互中。

参见图1,该方法包括:

s11:依据马尔可夫链中节点之间的状态转移概率确定当前节点。

马尔可夫链指数学中具有马尔可夫性质的离散事件随机过程。该随机过程中,在给定当前知识或信息的情况下,过去(即当前以前的历史状态)对于预测将来(即当前以后的未来状态)是无关的。

在本发明的实施例中,可以依据马尔可夫链的数学特性,即马尔可夫链中节点之间的状态转移概率执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

其中,马尔可夫链中节点之间的状态转移概率可以是预先设定的。

在具体的执行过程中,可以首先将马尔可夫链中的开始状态的节点作为起始节点,进而依据预先设定的状态转移概率确定当前节点,在对每条路径遍历的过程中,每次依据预先设定的状态转移概率所确定的当前节点可以不同或者相同。

参见图2,图2为本发明实施例中马尔可夫链的结构示意图,其中,包括:节点模块21、状态转移概率22、起始节点23以及终止节点24,每个节点模块21中包括有预先绑定的动作事件。

s12:执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件。

其中,当前节点上的动作事件可以是预先绑定在马尔可夫链中的节点上的,且与动作事件对应的消息模板事件也可以是预先生成的。

在本发明的实施例中,动作事件可以例如为方法函数,与动作事件对应的消息模板事件可以例如为方法函数的应答,可以通过运行源程序代码来触发执行对应的消息模板事件,进而通过运行源程序代码来执行基于多轮交互的语料生成方法,在方法执行时,基于当前节点的标识调用预先绑定的方法函数触发执行该当前节点上的动作事件,算法实现简便,且保障方法执行的时效性。

可选地,动作事件包括:用于生成用户侧语料的用户动作事件和用于生成系统侧语料的系统动作事件,参见图2中,节点模块21中的用户动作事件可以用u表示,系统动作事件可以用g表示,具体地,用户动作事件可以例如为,request_create(date,event),表征用户侧请求创建日程,系统动作事件可以例如为,ask_time(),表征系统侧询问请求创建日程的时间,其它节点模块中的动作事件如图2中所示,对此不作限制。

执行预先绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件,包括:从用户动作事件对应的多个消息模板事件中,随机确定第一目标消息模板事件;在用户动作事件携带有第一参数时,从第一目标消息模板事件所携带的多个参数取值中,随机确定第一参数的取值;基于第一参数的取值执行第一目标消息模板事件;从系统动作事件对应的多个消息模板事件中,随机确定第二目标消息模板事件;在系统动作事件携带有第二参数时,将第一参数的取值作为第二参数的取值;基于第二参数的取值执行第二目标消息模板事件。

在本发明的实施例中,通过执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件,而不需要真人参与,由于是由计算机程序直接触发执行的,因此,能够有效降低多轮交互中的语料生成的人力成本。

s13:依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料。

参见上述图2,在本发明的实施例中,可以依据预先配置的状态转移概率,执行马尔可夫链中的部分或者全部节点上的动作事件及对应的消息模板事件,即,可以在执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件之后,依据状态转移概率确定下一个节点,例如,可以将当前节点所在的路径上,与当前节点之间的状态转移概率最大的下一个节点作为当前节点,进而,再下一轮执行时,将状态转移概率第二大的下一个节点作为当前节点,或者,也可以随机的依据状态转移概率确定下一个节点,执行每个节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料,对此不作限制。

本实施例中,通过依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料,由于是由计算机程序直接触发执行生成语料,因此,能够有效降低多轮交互中的语料生成的人力成本,并且,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

图3是本发明另一实施例提出的基于多轮交互的语料生成方法的流程示意图。

参见图3,该方法包括:

s31:根据外部指令对马尔可夫链中节点之间的状态转移概率进行配置。

在本发明的实施例中,可以根据经验或者统计数据来确定马尔可夫链中各节点之间的状态转移概率,对此不作限制。例如,通过对多轮交互中上文数据进行分析得知,用户在创建一个日程后,有50%的概率会再次创建,有30%的概率会对已建好日程进行修改,有20%的概率会将该日程删除,那么,可以将50%、30%,以及20%配置为对应节点之间的状态转移概率。

s32:基于多轮交互的属性特征,确定多轮交互中可能的动作事件及对应的消息模板事件。

在本发明的实施例中,多轮交互的属性特征可以具体例如为该多轮交互所能实现的功能,属性特征可以例如,日程管理,对此不作限制。

在本发明的实施例中,用户动作事件/系统动作事件包括:用于发送文本消息的第一类动作事件,以及用于调用应用程序api接口再发送文本消息的第二类动作事件。

其中,以多轮交互的属性特征为日程管理进行示例,第一类动作事件例如,当系统侧执行“询问时间”的系统动作时,会向用户侧发送文本消息“请问日程什么时间开始”。第二类动作事件例如,当系统执行“创建日程”的系统动作时,先调用创建日程的api接口,创建成功后再向用户发送文本消息“已创建好日程”。

参见表1,表1为本发明实施例中,日程管理的多轮交互中可能的动作事件及对应的消息模板事件,及动作事件对应的含义说明,对此不作限制。

表1

s33:将可能的动作事件绑定至马尔可夫链中的节点上。

在本发明的实施例中,可以通过编写源程序代码的方式,将可能的动作事件绑定至马尔可夫链中的节点上,或者,也可以通过调用预设的服务将可能的动作事件绑定至马尔可夫链中的节点上,对此不作限制。

通过设置用于发送文本消息的第一类动作事件,以及用于调用应用程序api接口再发送文本消息的第二类动作事件,且通过预先基于多轮交互的属性特征,确定多轮交互中可能的动作事件及对应的消息模板事件,能够有效降低多轮交互中的语料生成的人力成本,结合线上实际交互状况模拟多轮交互中的动作事件,有效保障了基于多轮交互中语料生成的精准度,具有较强的参考性。

s34:依据马尔可夫链中节点之间的状态转移概率确定当前节点。

在本发明的实施例中,可以依据马尔可夫链的数学特性,即马尔可夫链中节点之间的状态转移概率执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

其中,马尔可夫链中节点之间的状态转移概率可以是预先设定的。

在具体的执行过程中,可以首先将马尔可夫链中的开始状态的节点作为起始节点,进而依据预先设定的状态转移概率确定当前节点,在对每条路径遍历的过程中,每次依据预先设定的状态转移概率所确定的当前节点可以不同或者相同。

参见图2,图2为本发明实施例中马尔可夫链的结构示意图,其中,包括:节点模块21、状态转移概率22、起始节点23以及终止节点23,每个节点模块21中包括有预先绑定的动作事件。

s35:执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件。

其中,当前节点上的动作事件可以是预先绑定在马尔可夫链中的节点上的,且与动作事件对应的消息模板事件也可以是预先生成的。

在本发明的实施例中,动作事件可以例如为方法函数,与动作事件对应的消息模板事件可以例如为方法函数的应答,可以通过运行源程序代码来触发执行对应的消息模板事件,进而通过运行源程序代码来执行基于多轮交互的语料生成方法,在方法执行时,基于当前节点的标识调用预先绑定的方法函数触发执行该当前节点上的动作事件,算法实现简便。

可选地,动作事件包括:用于生成用户侧语料的用户动作事件和用于生成系统侧语料的系统动作事件,参见图2中,节点模块21中的用户动作事件可以用u表示,系统动作事件可以用g表示,具体地,用户动作事件可以例如为,request_create(date,event),表征用户侧请求创建日程,系统动作事件可以例如为,ask_time(),表征系统侧询问请求创建日程的时间,其它节点模块中的动作事件如图2中所示,对此不作限制。

执行预先绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件,包括:从用户动作事件对应的多个消息模板事件中,随机确定第一目标消息模板事件;在用户动作事件携带有第一参数时,从第一目标消息模板事件所携带的多个参数取值中,随机确定第一参数的取值;基于第一参数的取值执行第一目标消息模板事件;从系统动作事件对应的多个消息模板事件中,随机确定第二目标消息模板事件;在系统动作事件携带有第二参数时,将第一参数的取值作为第二参数的取值;基于第二参数的取值执行第二目标消息模板事件。

可选地,在用户动作事件未携带第一参数时,直接执行第一目标消息模板事件;或者,在系统动作事件未携带第二参数时,直接执行第二目标消息模板事件。

通过分别模拟用户侧和系统侧的动作事件,实现了生成基于多轮交互中的语料。

在本发明的实施例中,通过执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件,而不需要真人参与,由于是由计算机程序直接触发执行的,因此,能够有效降低多轮交互中的语料生成的人力成本。

s36:依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料。

在本发明的实施例中,生成的多轮交互的语料示意可以如下:

对话1:

u:新建一个明天的日程,回访客户张三。

g:请问几点?

u:上午十点。

g:已创建明天上午十点的日程:回访客户张三。

u:地址是中关村大厦1201。

g:已将日程地点设为中关村大厦1201。

对话2:

u:下周一公司季度总结会,时间下午四点。

g:下周一下午四点,公司季度总结会,已创建日程。

u:不对,时间是下午三点。

g:已将日程时间改为下午三点。

本实施例中,通过设置用于发送文本消息的第一类动作事件,以及用于调用应用程序api接口再发送文本消息的第二类动作事件,且通过预先基于多轮交互的属性特征,确定多轮交互中可能的动作事件及对应的消息模板事件,能够结合线上实际交互状况模拟多轮交互中的动作事件,有效保障了基于多轮交互中语料生成的精准度,具有较强的参考性。通过依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料,由于是由计算机程序直接触发执行生成语料,因此,能够有效降低多轮交互中的语料生成的人力成本,并且,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

图4是本发明一实施例提出的基于多轮交互的语料生成装置的结构示意图。

参见图4,该装置400包括:第一确定模块401、执行模块402,以及生成模块403,其中,

第一确定模块401,用于依据马尔可夫链中节点之间的状态转移概率确定当前节点。

执行模块402,用于执行绑定在当前节点上的动作事件,并执行与动作事件对应的消息模板事件。

可选地,一些实施例中,动作事件包括:用于生成用户侧语料的用户动作事件和用于生成系统侧语料的系统动作事件,参见图5,执行模块402,包括:

第一消息模板事件确定子模块4021,用于从用户动作事件对应的多个消息模板事件中,随机确定第一目标消息模板事件。

第一参数值确定子模块4022,用于在用户动作事件携带有第一参数时,从第一目标消息模板事件所携带的多个参数取值中,随机确定第一参数的取值。

第一执行子模块4023,用于基于第一参数的取值执行第一目标消息模板事件。

第二消息模板事件确定子模块4024,用于从系统动作事件对应的多个消息模板事件中,随机确定第二目标消息模板事件。

第二参数值确定子模块4025,用于在系统动作事件携带有第二参数时,将第一参数的取值作为第二参数的取值。

第二执行子模块4026,用于基于第二参数的取值执行第二目标消息模板事件。

可选地,第一执行子模块4023,还用于在用户动作事件未携带第一参数时,直接执行第一目标消息模板事件。

第二执行子模块4026,还用于在系统动作事件未携带第二参数时,直接执行第二目标消息模板事件。

可选地,一些实施例中,参见图5,该装置400还包括:

配置模块404,用于根据外部指令对马尔可夫链中节点之间的状态转移概率进行配置。

第二确定模块405,用于基于多轮交互的属性特征,确定多轮交互中可能的动作事件及对应的消息模板事件。

绑定模块406,用于将可能的动作事件绑定至马尔可夫链中的节点上。

生成模块403,用于依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料。

可选地,用户动作事件/系统动作事件包括:用于发送文本消息的第一类动作事件,以及用于调用应用程序api接口再发送文本消息的第二类动作事件。

需要说明的是,前述图1-图3实施例中对基于多轮交互的语料生成方法实施例的解释说明也适用于该实施例的基于多轮交互的语料生成装置400,其实现原理类似,此处不再赘述。

本实施例中,通过依据状态转移概率,执行马尔可夫链中的部分节点上的动作事件及对应的消息模板事件,以生成多轮交互的语料,由于是由计算机程序直接触发执行生成语料,因此,能够有效降低多轮交互中的语料生成的人力成本,并且,由于马尔可夫链中离散事件随机性,使得生成的语料具有较好的随机性和多样性。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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