会话内容生成和处理方法、对话机器人的诊断方法及装置与流程

文档序号:22627732发布日期:2020-10-23 19:36阅读:231来源:国知局
会话内容生成和处理方法、对话机器人的诊断方法及装置与流程

本公开涉及通信技术领域,尤其涉及一种会话内容生成和处理方法、对话机器人的诊断方法及装置。



背景技术:

在目前的对话机器人的使用过程中,用户与机器人之间往往需要进行多轮对话。

在多轮对话中,用户带着明确的目的而来,希望得到满足限制条件的信息或服务,例如:订餐、订票、寻找音乐、电影或某种商品等。因为用户的需求可以比较复杂,可能需要分多轮进行陈述,用户也可能在对话过程中不断修改或完善自己的需求。当用户的需求不够具体或者明确的时候,对话机器人也可以通过询问、澄清或者确认来帮助用户找到满意的结果。因此,任务驱动的多轮对话不是一个简单的自然语言理解加信息检索的过程,而是一个决策过程,需要对话机器人在对话过程中不断根据当前的状态决策下一步应该采取的最优动作(如:提供结果、询问特定限制条件,澄清或确认需求,等等)从而有效的辅助用户完成信息或服务获取的任务。

由于对话任务具有多分支的特点,评价或者测试一个对话系统较为困难。手动的测试往往难以覆盖到所有的对话流程,而且需要耗费大量的人力。另外,对话系统的配置过程中,往往存在一些不容易发现的错误,这些错误需要在对话流运行的过程中才能暴露出来。



技术实现要素:

有鉴于此,本公开提出了一种会话内容生成和处理方法、对话机器人的诊断方法及装置。

根据本公开的第一方面,提供了一种会话内容生成方法,所述方法包括:获取对话业务当前所处业务状态;在所述业务状态可达的一个或多个触发节点中,确定一个目标触发节点;在所述目标触发节点指向的意图中,随机确定一个意图,作为当前意图;基于所述当前意图,生成会话内容。

根据本公开的第二方面,提供了一种会话内容处理方法,所述方法包括:获取本轮对话的预期目标;根据所述预期目标生成本轮对话的会话内容和当前意图;从对话机器人获取针对所述会话内容的语义理解结果;对所述当前意图和所述语义理解结果进行对比;根据对比结果,对所述对话机器人进行本轮对话的评价。

根据本公开的第三方面,提供了一种对话机器人的诊断方法,所述方法包括:针对每一轮对话:基于预期目标生成会话内容和当前意图;将所述会话内容发送至对话机器人;接收对话机器人响应于所述会话内容返回的语义理解结果,并与所述当前意图进行对比;根据所述语义理解结果更新预期目标;在对话结束时,基于各轮对比结果,生成所述对话机器人的诊断报告。

根据本公开的第四方面,提供了一种会话内容生成装置,所述装置包括:状态获取模块,用于获取对话业务当前所处业务状态;节点确定模块,用于在所述业务状态可达的一个或多个触发节点中,确定一个目标触发节点;意图确定模块,用于在所述目标触发节点指向的意图中,随机确定一个意图,作为当前意图;内容生成模块,用于基于所述当前意图,生成会话内容。

根据本公开的第五方面,提供了一种会话内容处理装置,所述装置包括:目标获取模块,用于获取本轮对话的预期目标;内容生成模块,用于根据所述预期目标生成本轮对话的会话内容和当前意图;回复获取模块,用于从对话机器人获取针对所述会话内容的语义理解结果;内容对比模块,用于对所述当前意图和所述语义理解结果进行对比;结果评价模块,用于根据对比结果,对所述对话机器人进行本轮对话的评价。

根据本公开的第六方面,提供了一种对话机器人的诊断装置,所述装置包括:内容生成模块,用于基于预期目标生成会话内容和当前意图;内容发送模块,用于将所述会话内容发送至对话机器人;回复接收模块,用于接收对话机器人响应于所述会话内容返回的语义理解结果,并与所述当前意图进行对比;目标更新模块,用于根据所述语义理解结果更新预期目标;结果诊断模块,用于在对话结束时,基于各轮对比结果,生成所述对话机器人的诊断报告。

根据本公开的第七方面,提供了一种会话内容生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述第一方面的会话内容生成方法。

根据本公开的第八方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述第一方面的会话内容生成方法。

根据本公开的第九方面,提供了一种会话内容处理装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述第二方面的会话内容处理方法。

根据本公开的第十方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述第二方面的会话内容处理方法。

根据本公开的第十一方面,提供了一种对话机器人的诊断装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述第三方面的对话机器人的诊断方法。

根据本公开的第十二方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述第三方面的对话机器人的诊断方法。

在本公开实施例中,基于对话业务当前所处状态确定用户的当前意图,进而生成会话内容,从而使得诊断系统可以自动生成大量的测试数据,以完成对对话流中各个业务分支的充分遍历。

在本公开实施例中,针对任意一轮对话,根据本轮对话的预期目标生成本轮对话的会话内容和当前意图,从对话机器人获取针对本轮会话内容的语义理解结果,对语义理解结果和当前意图进行比对,实现对会话机器人本轮对话的评价,从而发现对话配置中的错误。

在本公开实施例中,基于预期目标自动生成会话内容作为多轮对话的输入,针对每轮对话根据对话机器人针对会话内容返回的语义理解结果和基于预期目标生成的当前意图的对比结果,确定对话机器人的回复是否符合预期,统计多轮对话的对比结果,生成对话机器人的诊断报告,从而实现诊断设备对话机器人自动测试,完成对话机器人的智能诊断过程。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出根据本公开一实施例的诊断系统的示意图。

图2示出根据本公开一实施例的会话内容生成方法的流程图。

图3示出根据本公开一实施例的请假业务的流程的示意图。

图4示出根据本公开一实施例的步骤s14的一个示例。

图5示出根据本公开一实施例的步骤s14的一个示例。

图6示出根据本公开一实施例的会话内容处理方法的流程图。

图7示出根据本公开一实施例的对话机器人的诊断方法的流程图。

图8示出根据本公开一实施例的会话内容生成装置的框图。

图9示出根据本公开一实施例的会话内容处理装置的框图。

图10示出根据本公开一实施例的对话机器人的诊断装置的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出根据本公开一实施例的诊断系统的示意图。如图1所示,诊断系统包括诊断设备和对话机器人。其中,诊断设备可以用来模拟用户在对话过程中的行为,与对话机器人进行交互。对话机器人可以针对诊断设备发送的会话内容自动进行应答。诊断设备和对话机器人均可以通过软件集成或安装在计算设备中。

诊断设备可以包括生成模块和评价模块,生成模块可以基于用户的预期目标生成会话内容和当前意图,评价模块可以根据用户的意图对话机器人的语义理解结果进行诊断。

图2示出根据本公开一实施例的会话内容生成方法的流程图。图2所示的方法可以应用于图1所示的诊断设备。如图2所示,该方法可以包括:

步骤s11,获取对话业务当前所处状态。

步骤s12,在所述状态可达的一个或多个触发节点中,确定一个目标触发节点。

步骤s13,在所述目标触发节点指向的意图中,随机确定一个意图,作为当前意图。

步骤s14,基于所述当前意图,生成会话内容。

在本公开实施例中,基于对话业务当前所处状态确定用户的当前意图,进而生成会话内容,从而使得诊断系统可以自动生成大量的测试数据,以完成对对话流中各个业务分支的充分遍历。

对话业务的流程由业务方搭建并持续维护。对话业务的流程可以采用一个有向无环图(directedcyclicgraph,dcg)表示。对话业务的流程中主要包括状态节点、触发节点和函数节点。

其中,状态节点可以代表对话业务中的业务状态,诊断系统可以基于对话业务所处的业务状态自动生成回复。触发节点可以根据用户的输入来决定诊断系统要执行的下一步动作,该节点会配置一个触发的条件,一般为用户意图的条件判断;如果用户的输入符合该节点配置的触发条件,则该条件被激活,然后执行该条件所对应的动作。在对话业务的流程中,往往需要查询一些外部的接口,执行一些特殊的业务逻辑等,这些接口可以通过函数调用,这些逻辑可以通过函数表示,如果对话业务的执行过程中函数节点被访问到,则执行函数所对应的代码逻辑。

下面以对话业务中的请假业务为例,对本公开实施例的会话内容生成方法进行说明。图3示出根据本公开一实施例的请假业务的流程的示意图。如图3所示,该请假业务的流程包括请假回复、病假回复和事假回复等状态节点,请假触发、病假触发和事假触发等触发节点,以及请病假接口和请事假接口等函数节点。

在步骤s11中,获取对话业务当前所处业务状态实际上是确定对话业务当前所处的状态节点。在一种可能的实现方式中,诊断设备可以根据当前对话轮的预期目标,确定对话业务当前所处的状态节点。举例来说,如图3所示,在当前对话轮的预期目标是请假时,对应状态节点为“开始”。在当前对话轮的预期目标是确定请病假还是请事假时,对应状态节点为“请假回复”。

在步骤s12中,一个状态节点可以连接一个或多个触发节点。满足的触发条件不同时,触发的触发节点不同,代表的意图不同,后续执行的动作也不同。举例来说,如图3所示,假设当前所处业务状态对应的状态节点为“请假回复”,该状态节点连接两个触发节点,分别为“病假触发”和“事假触发”。若“病假触发”节点被触发,代表意图是请病假,若“事假触发”节点被触发,代表意图是请事假。

需要说明的是,图3所示的“请假回复”还可以连接其他触发节点,例如“年假触发”、“婚假触发”和“产假触发”等,如前所述,状态节点和状态节点具体连接的触发节点的类型和数量由业务方搭建并持续维护,本公开对此不做限制。

诊断设备可从对话业务当前所处业务状态可达的一个或多个触发节点中,确定一个触发节点,作为目标触发节点,进而基于该目标触发节点进行意图确定和会话内容生成。

在一种可能的实现方式中,一个触发节点被确定为目标触发节点的概率与该触发节点潜在的路径的数量成正比。一个触发节点潜在路径的数量越多,该触发节点被确定为目标触发节点的概率越大,一个触发节点潜在路径的数量越少,该触发节点被确定为目标触发节点的概率越低。举例来说,在图3中,触发节点“病假触发”和“事件触发”的潜在路径的数量均为2,两者被确定为目标触发节点的概率相同。触发节点“病假确认”和“病假取消”的潜在的路径的数量均为2,两者被确定为目标触发节点的概率相同。

在步骤s13中,一个触发节点可以指向一个或多个意图,例如触发节点“事假触发”可以指向“请事假”这一个意图,也可以指向“请普通事假”和“请带薪事假”两个意图,触发节点指向的意图由业务方搭建并持续维护,本公开对此不做限制。诊断设备可以在目标触发节点指向的意图中,随机确定一个意图,作为当前意图。

在步骤s14中,诊断设备可以基于用户的当前意图,生成会话内容。每个意图配置有对应的会话模板,诊断设备可以根据当前意图对应的会话模板,生成会话内容。举例来说,意图“请病假”对应会话模板“我要请病假”,在当前意图为“请病假”时,诊断设备可以根据“我要请病假”生成会话内容,例如,将我要请病假作为会话内容。

在一种可能的实现方式中,图4示出根据本公开一实施例的步骤s14的一个示例。如图4所示,步骤s14可以包括:

步骤s141,获取所述当前意图对应的会话列表,所述会话列表包括一个或多个会话模板。

一个意图可以对应一个或多个会话模板,这一个或多个会话模板可以组成一个会话列表。

假设当前意图为“请病假”,对应的会话列表包括两个会话模板,分别为会话模板1“我要请病假”和会话模板2“我想请${病假时间}的病假”。

在一种可能的实现方式中,会话列表中的会话模板按照各会话模板的md5值进行排序。

具体的,可以分别计算会话模板1和会话模板2的md5值,作为会话模板1和会话模板2的id,按照id由小到大的顺序对会话模板1和会话模板2进行排序。在一个示例中,会话模板1“我要请病假”的md5值为136050ce****************8ce5cb66,会话模板2“我想请${病假时间}的病假”的md5值为551b4633****************c1722b9e,此时按照md5值对会话模板进行排序后,可以得到会话模板1“我要请病假”在第一位,会话模板2“我想请${病假时间}的病假”在第二位。

需要说明的是,在计算出md5值后,可以对md5值进行处理,按照处理后的md5值对会话模板进行排序。例如,取md5值的第一位,按照md5值的第一位对会话模板进行排序,对此本公开不做限制。

步骤s142,从所述会话列表中随机确定一个会话模板,作为目标会话模板。

诊断设备在确定用户的当前意图后,可以从当前意图对应的会话列表中随机确定一个会话模板,作为目标会话模板。

在一种可能的实现方式中,步骤s142可以包括:基于会话列表包括的会话模板的数量、当前进行对话的轮数、当前对话的回合数,以及随机的种子数,确定第一偏移量;将所述会话列表中所述第一偏移量指向的会话模板,确定为所述目标会话模板。

诊断设备可以基于会话列表包括的会话模板的数量(在上述示例中为2)、当前进行对话的轮数(假设当前是第5轮对话,则当前进行对话的轮数为5)、当前对话的回合数(假设当前对话为第2回合,则当前对话的回合数为2),以及随机的种子数,确定第一偏移量,将所述会话列表中所述第一偏移量指向的会话模板,确定为所述目标会话模板。

在一个示例中,假设确定的第一偏移量为1,则诊断设备可以将会话模板1“我要请病假”确定为目标会话模板;假设确定的第一偏移量为2,则诊断设备可以将会话模板2“我想请${病假时间}的病假”确定为目标会话模板。

步骤s143,若所述目标会话模板中不包括槽位的占位信息,则将所述目标会话模板的内容作为所述会话内容。

槽位表示需要填写参数的位置,在会话模板中采用槽位的占位信息知识槽位的位置。槽位的占位信息可以采用指定的符号表示,例如“${}”、“$[]”、和“$()”等,对此本公开不做限制。

在会话模板中不包括槽位的占位信息时,表明会话模板中不存在需要填写的参数,此时可以直接以会话模板的内容作为会话内容。例如,上述会话模板1“我要请病假”中不包括槽位的占位信息,诊断设备可以将“我要请病假”作为会话内容。

在一种可能的实现方式中,图5示出根据本公开一实施例的步骤s14的一个示例。如图5所示,步骤s14可以包括:

步骤s141,获取所述当前意图对应的会话列表,所述会话列表包括一个或多个会话模板。

步骤s142,从所述会话列表中随机确定一个会话模板,作为目标会话模板。

步骤s144,若所述目标会话模板中包括槽位的占位信息,则从所述槽位对应的实体中,随机确定一个实体,作为所述槽位的目标实体。

在会话模板中包括槽位的占位信息时,表明会话模板中存在需要填写的参数,例如,上述会话模板2“我想请${病假时间}的病假”中“${病假时间}”为槽位“病假时间”的占位信息,该会话模板2中需要填写病假时间。

一个槽位可以对应一个或多个实体,例如,槽位“病假时间”可以对应“周一”、“明天”和“星期三”等实体。诊断设备可以从槽位对应的一个或多个实体中,随机确定一个实体,作为槽位的目标实体。

在一种可能的实现方式中,在步骤s144中从所述槽位对应的实体中,随机确定一个实体,作为所述槽位的目标实体可以包括:获取预先为所述槽位设置的采样表;根据所述采样表包括的实体的数量,当前进行对话的轮数、当前对话的回合数,以及随机的种子数,确定第二偏移量;将所述采样表中所述第二偏移量指向的实体,确定为所述目标实体。

采样表可以根据需要进行设置。例如,槽位“病假时间”的采样表可以包括“周一”、“周二”和“周三”等实体。槽位“病假天数”的采样表可以包括“一天”、“三天”和“一周”等实体。本公开对此不做限制。

诊断设备可以根据采样表包括的实体的数量,当前进行对话的轮数、当前对话的回合数,以及随机的种子数,确定第二偏移量;将所述采样表中所述第二偏移量指向的实体,确定为所述目标实体。

假设槽位“病假天数”的采样表包括实体“一天”、“三天”和“一周”,第二偏移量为1时,目标实体为“一天”;第二偏移量为2时,目标实体为“三天”;第二偏移量为3时,目标实体为“一周”。

步骤s145,采用所述槽位的目标实体对所述会话模板中所述槽位的占位信息进行替换。

步骤s146,将进行内容替换后的会话模板的内容作为所述会话内容。

在一个示例中,针对会话模板2“我想请${病假时间}的病假”,假设确定的目标实体为“明天”,则采用“明天”替代“${病假时间}”,得到最终的会话内容“我想请明天的病假”。

在本公开实施例中,通过在一个或多个触发节点中确定一个目标触发节点,在一个或多个意图中随机确定一个当前意图,在一个或多个会话模板中,随机确定一个目标会话模板,以及在一个或多个实体中,随机确定一个目标实体,可以使得自动生成的大量测试数据(即会话内容),能够对对话业务中各个业务分支进行充分遍历。

另外,本公开实施例生成的会话内容具有一致性。这里的一致性是指:在外部条件不改变的情况下,系统多次生成的会话内容是一致的。其中,外部条件的改变包括对话业务的流程改变,流程中涉及的意图和实体改变等。保持会话内容的一致性可以实现以下效果:在诊断出错误之前,用户在作出简单修改的情况下,错误的分布不会发生太大的变化,比如上依稀出现的错误因为生成的会话内容的变化而无法被复现,或者出现了更多的之前没有见过的错误。

为了实现会话内容的一致性,本公开实施例中:一方面,在每次诊断前,维护一个随机采样的种子数,除非用户终端要求换一批采样的数据,否则步骤s142和步骤s144中采用的随机的种子数不进行更改。另一方面,在步骤s141中会话列表中的会话模板按照各会话模板的md5值进行排序,这样,会话模板的内容不改变的情况下,会话列表中各会话模板的顺序也就不会发生变化,每次采样时,第一偏移量可能发生变化,但采样依据的会话列表不会发生变化,这样可以达到每次采样结果的一致性。

图6示出根据本公开一实施例的会话内容处理方法的流程图。该方法可以应用于图1所示的诊断设备。如图6所示,该方法可以包括:

步骤s21,获取本轮对话的预期目标。

步骤s22,根据所述预期目标生成本轮对话的会话内容和当前意图。

步骤s23,从对话机器人获取针对所述会话内容的语义理解结果。

步骤s24,对所述当前意图和所述语义理解结果进行对比。

步骤s25,根据对比结果,对所述对话机器人进行本轮对话的评价。

在本公开实施例中,针对任意一轮对话,根据本轮对话的预期目标生成本轮对话的会话内容和当前意图,从对话机器人获取针对本轮会话内容的语义理解结果,对语义理解结果和当前意图进行比对,实现对会话机器人的本轮对话的评价,从而发现对话配置中的错误。

步骤s21中的预期目标可以参照步骤s11,这里不再赘述。

在一种可能的实现方式中,步骤s22可以包括:根据所述预期目标,对话业务当前所处业务状态;在所述业务状态可达的一个或多个触发节点中,确定一个目标触发节点;在所述目标触发节点指向的意图中,随机确定一个意图,作为当前意图;基于所述当前意图,生成会话内容。

步骤s22可以参照步骤s11至步骤s14这里不再赘述。

在一种可能的实现方式中,基于所述当前意图,生成会话内容可以包括:获取所述当前意图对应的会话列表,所述会话列表包括一个或多个会话模板;从所述会话列表中随机确定一个会话模板,作为目标会话模板;若所述目标会话模板中不包括槽位的占位信息,则将所述目标会话模板的内容作为所述会话内容。

在一种可能的实现方式中,基于所述当前意图,生成会话内容可以包括:若所述目标会话模板中包括槽位的占位信息,则从所述槽位对应的实体中,随机确定一个实体,作为所述槽位的目标实体;采用所述槽位的目标实体对所述会话模板中所述槽位的占位信息进行替换;

将进行内容替换后的会话模板的内容作为所述会话内容。

基于所述当前意图,生成会话内容的具体实现方式可以参照步骤s141至步骤s146,这里不再赘述。

在步骤s23中,参照图1,诊断设备可以将步骤s22中生成的会话内容发送至对话机器人,并接收对话机器人针对该会话内容返回的语义理解结果。

诊断设备与对话机器人具有相同的对话业务的流程。对话机器人的语义理解结果可以代表对话业务的流程中的一个意图。对话机器人中针对不同的意图也会设置不同的回复模板,对话机器人可以根据语义理解结果,生成针对会话内容的回复内容,并在返回语义理解结果的同时,返回该回复内容。

在一个示例中,假设诊断设备确定当前意图为“请病假”,基于该当前意图生成的会话内容为“我要请周一的病假”。如果对话机器人对“我要请周一的病假”这句话的语义理解正确,则对话机器人可以确定诊断设备的意图为“请病假”,对话机器人可以返回语义理解结果“请病假”,同时返回回复内容“请问您确定请周一的病假吗”。

在步骤s24中,诊断设备可以对某一轮中对诊断设备进行对话的当前意图和对话机器人返回的语义理解结果进行比对,从而确定对话机器人本轮对话的评价,例如评价对话机器人的语义理解是否正确、回复是否产生错误等。

在一种可能的实现方式中,所述方法还包括:根据所述语义理解结果,更新预期目标;将更新后的预期目标确定为下一轮对话预期目标,并启动下一轮对话。

在一个示例中,当对话机器人的语义理解正确时,诊断设备可以根据对话业务流程中当前意图对应的触发节点连接的状态节点确定新的预期目标。例如,诊断设备生成的当前意图为“请假”,会话内容为“我要请假”。在对话机器人的语义理解结果为“请假”时,参照图3可以确定“请假”对应的触发节点为“请假触发”,该触发节点连接“请假回复”这个状态节点,此时,诊断设备可以将“确定是请病假还是事假”确定为新的预期目标,这样,在下一轮对话中当前对话业务所处的状态对应的状态节点即为“请假回复”,目标触发节点即为“病假触发”和“事假触发”中的一个。又如,诊断设备生成的当前意图为“请病假”,会话内容为“我要请周一的病假”。在对话机器人的语义理解结果为“请病假”时,参照图3可以确定“请病假”对应的触发节点为“病假回复”,该触发节点连接“病假回复”这个状态节点,此时,诊断设备可以将“是否确认请病假”确定为新的预期目标,这样,在下一轮对话中当前对话业务所处的状态对应的状态节点即为“病假回复”,目标触发节点即为“病假确认”和“病假取消”中的一个。

在一种可能的实现方式中,所述方法还包括:在发生错误或者满足会话终止条件时,终止对话流程。

在一个示例中,错误类型包括:意图识别错误、槽位识别错误、函数执行错误和变量解析错误中的一者或多者。在一个示例中,所述会话终止条件包括达到指定对话轮数和/或出现重复对话内容。

假设当前意图为“病假时间”:

若对话机器人针对该会话内容返回的语义理解结果为“请病假”,则可以确定对话机器人的回复没有问题,继续进行下一轮对话。

若对话机器人针对该会话内容返回的语义理解结果为“请假”或者“请取消病假”等,可以确定对话机器人的语义理解结果发生意图识别错误。

若对话机器人针对该会话内容返回的语义理解结果为“病假时长”,则可以确定对话机器人的语义理解结果发生槽位识别错误。

若对话机器人针对该会话内容返回的语义理解结果为调出病假接口,但在调用病假接口的过程中出现了函数执行错误,则可以确定对话机器人的语义理解结果发生函数执行错误。

对话过程中对话机器人在回复是可能需要引用一些变量,这些变量可以包括系统定义的全局变量、槽位变量、函数输出变量等,当引用的变量解析出现错误时,可以确定对话机器人的本轮对话发生变量解析错误。

在本公开实施例中,还可以有其他类型的错误,对此本公开不做限制。

需要说明的是,在一轮对话中若同时存在意图识别错误和槽位识别错误时,确定所述该轮对话的错误类型为意图识别错误。

在一种可能的实现方式中,所述方法还可以包括:记录所述业务状态、目标触发节点和当前意图。

在一种可能的实现方式中,所述方法还可以包括:基于已记录的业务状态、目标触发节点和当前意图,确定未被覆盖的状态、触发节点和意图;根据未被覆盖的状态、触发节点和意图,更改测试条件。

在智能诊断过程中,某些可能某些状态节点、触发节点和意图分支未被遍历到,从而影响测试的覆盖率。引起某些路径未被覆盖到的原因包括:全局变量导致某些分支无法到达、函数执行后某些分支无法到达、指定对话轮数的限制导致某些分支无法到达。智能诊断过程中,针对任意一轮对话,诊断设备可以记录本轮对话中确定的业务状态、目标触发节点和当前意图。并在进行一定轮数的对话后,诊断设备可以基于已记录的业务状态、目标触发节点和当前意图,确定对话业务的流程中未被覆盖的状态、触发节点和意图;根据未被覆盖的状态、触发节点和意图,更改测试条件,从而提高智能诊断过程中路径的覆盖率。

图7示出根据本公开一实施例的对话机器人的诊断方法的流程图。该方法可以应用于图1所示的诊断设备。如图7所示,该方法可以包括:

步骤s31,基于预期目标生成会话内容和当前意图。

步骤s32,将所述会话内容发送至对话机器人。

步骤s33,接收对话机器人响应于所述会话内容返回的语义理解结果,并与所述当前意图进行对比。

步骤s34,判断是否终止对话流程,若是,则执行步骤s35,否则,执行步骤s36。

步骤s35,基于各轮对比结果,生成所述对话机器人的诊断报告。

步骤s36,根据所述语义理解结果更新预期目标,并跳转至步骤s31。

在本公开实施例中,基于预期目标自动生成会话内容作为多轮对话的输入,针对每轮对话根据对话机器人针对会话内容返回的语义理解结果和基于预期目标生成的当前意图的对比结果,确定对话机器人的回复是否符合预期,统计多轮对话的对比结果,生成对话机器人的诊断报告,从而实现诊断设备对话机器人自动测试,完成对话机器人的智能诊断过程。

步骤s31可以参照步骤s11至步骤s14,这里不再赘述。步骤s33中语义理解结果和当前意图的对比过程可以参照步骤s24,这里不再赘述。

步骤s34中可以通过判断是否发生错误,以及是否满足会话终止条件判断是否终端对话流程。当发生错误或者满足会话终止条件时,可以确定终端对话流程。其中,会话终止条件包括达到指定对话轮数和/或出现重复对话内容。错误类型包括:意图识别错误、槽位识别错误、函数执行错误和变量解析错误中的一者或多者。

在步骤s35中,可以对话过程中,出现的错误类型进行统计,并分析错误产生的原因,对对话过程中未被访问到的状态、触发节点和意图进行统计,分析对话业务的流程中未被覆盖的路径,基于错误产生的原因给出改进建议,基于未被覆盖的路径给出更改测试条件的建议,最终根据出现的错误类型、错误产生的原因、改进建议、未被覆盖的路径和更改测试条件的建议,生成对话机器人的诊断报告。

在步骤s36中,诊断设备可以基于对话机器人的语义理解结果,更新预期目标,在一个示例中,对话机器人的语义理解结果为“请假”,诊断设备可以将预期目标更新为“确定是请病假还是事假”,在下一轮对话中对应的状态节点为图3所示的“请假回复”。在又一示例中,对话机器人的语义理解结果为“请病假”,诊断设备可以将预期目标更新为“确认是否请病假”,在下一轮对话中对应的状态节点为图3所示的“病假回复”。

图8示出根据本公开一实施例的会话内容生成装置的框图。如图8所示,该装置40可以包括:

状态获取模块41,用于获取对话业务当前所处业务状态;

节点确定模块42,用于在所述业务状态可达的一个或多个触发节点中,确定一个目标触发节点;

意图确定模块43,用于在所述目标触发节点指向的意图中,随机确定一个意图,作为当前意图;

内容生成模块44,用于基于所述当前意图,生成会话内容。

在本公开实施例中,基于对话业务当前所处状态确定用户的当前意图,进而生成会话内容,从而使得诊断系统可以自动生成大量的测试数据,以完成对对话流中各个业务分支的充分遍历。

在一种可能的实现方式中,一个触发节点被确定为目标触发节点的概率与该触发节点潜在路径的数量成正比。

在一种可能的实现方式中,所述内容生成模块44具体可以用于:

获取所述当前意图对应的会话列表,所述会话列表包括一个或多个会话模板;

从所述会话列表中随机确定一个会话模板,作为目标会话模板;

若所述目标会话模板中不包括槽位的占位信息,则将所述目标会话模板的内容作为所述会话内容。

在一种可能的实现方式中,所述内容生成模块44具体可以用于:

若所述目标会话模板中包括槽位的占位信息,则从所述槽位对应的实体中,随机确定一个实体,作为所述槽位的目标实体;

采用所述槽位的目标实体对所述会话模板中所述槽位的占位信息进行替换;

将进行内容替换后的会话模板的内容作为所述会话内容。

在一种可能的实现方式中,从所述会话列表中随机确定一个会话模板,作为目标会话模板可以包括:

基于会话列表包括的会话模板的数量、当前进行对话的轮数、当前对话的回合数,以及随机的种子数,确定第一偏移量;

将所述会话列表中所述第一偏移量指向的会话模板,确定为所述目标会话模板,所述会话列表中的会话模板按照各会话模板的md5值进行排序。

在一种可能的实现方式中,从所述槽位对应的实体中,随机确定一个实体,作为所述槽位的目标实体可以包括:

获取预先为所述槽位设置的采样表;

根据所述采样表包括的实体的数量,当前进行对话的轮数、当前对话的回合数,以及随机的种子数,确定第二偏移量;

将所述采样表中所述第二偏移量指向的实体,确定为所述目标实体。

图9示出根据本公开一实施例的会话内容处理装置的框图。如图9所示,该装置50可以包括:

目标获取模块51,用于获取本轮对话的预期目标;

内容生成模块52,用于根据所述预期目标生成本轮对话的会话内容和当前意图;

回复获取模块53,用于从对话机器人获取针对所述会话内容的语义理解结果;

内容对比模块54,用于对所述当前意图和所述语义理解结果进行对比;

结果评价模块55,用于根据对比结果,对所述对话机器人进行本轮对话的评价。

在本公开实施例中,针对任意一轮对话,根据本轮对话的预期目标生成本轮对话的会话内容和当前意图,从对话机器人获取针对本轮会话内容的语义理解结果,对语义理解结果和当前意图进行比对,实现对会话机器人本轮对话的评价,从而发现对话配置中的错误。

在一种可能的实现方式中,所述装置50还可以包括:

目标跟新模块,用于根据所述语义理解结果,更新预期目标;

对话启动模块,用于将更新后的预期目标确定为下一轮对话预期目标,并启动下一轮对话。

在一种可能的实现方式中,所述装置50还可以包括:

流程终止模块,用于在发生错误或者满足会话终止条件时,终止对话流程,其中所述会话终止条件包括达到指定对话轮数和/或出现重复对话内容。

在一种可能的实现方式中,错误类型包括:意图识别错误、槽位识别错误、函数执行错误和变量解析错误中的一者或多者。

在一种可能的实现方式中,所述装置50还可以包括:

在语义理解结果同时存在意图识别错误和槽位识别错误时,确定所述语义理解结果的错误类型为意图识别错误。

在一种可能的实现方式中,所述内容生成模块52具体可以用于:

根据所述预期目标,对话业务当前所处业务状态;

在所述业务状态可达的一个或多个触发节点中,确定一个目标触发节点;

在所述目标触发节点指向的意图中,随机确定一个意图,作为当前意图;基于所述当前意图,生成会话内容。

在一种可能的实现方式中,基于所述当前意图,生成会话内容可以包括:

获取所述当前意图对应的会话列表,所述会话列表包括一个或多个会话模板;

从所述会话列表中随机确定一个会话模板,作为目标会话模板;若所述目标会话模板中不包括槽位的占位信息,则将所述目标会话模板的内容作为所述会话内容。

在一种可能的实现方式中,基于所述当前意图,生成会话内容可以包括:

若所述目标会话模板中包括槽位的占位信息,则从所述槽位对应的实体中,随机确定一个实体,作为所述槽位的目标实体;

采用所述槽位的目标实体对所述会话模板中所述槽位的占位信息进行替换;

将进行内容替换后的会话模板的内容作为所述会话内容。

在一种可能的实现方式中,所述装置50还可以包括:

状态记录模块,用于记录所述业务状态、目标触发节点和当前意图。

在一种可能的实现方式中,,所述装置50还可以包括:

状态确定模块,用于基于已记录的业务状态、目标触发节点和当前意图,确定未被覆盖的状态、触发节点和意图;

条件更改模块,用于根据未被覆盖的状态、触发节点和意图,更改测试条件。

图10示出根据本公开一实施例的对话机器人的诊断装置的框图。如图10所示,该装置60可以包括:

内容生成模块61,用于基于预期目标生成会话内容和当前意图;

内容发送模块62,用于将所述会话内容发送至对话机器人;

回复接收模块63,用于接收对话机器人响应于所述会话内容返回的语义理解结果,并与所述当前意图进行对比;

目标更新模块64,用于根据所述语义理解结果更新预期目标;

结果诊断模块65,用于在对话结束时,基于各轮对比结果,生成所述对话机器人的诊断报告。

在本公开实施例中,基于预期目标自动生成会话内容作为多轮对话的输入,针对每轮对话根据对话机器人针对会话内容返回的语义理解结果和基于预期目标生成的当前意图的对比结果,确定对话机器人的回复是否符合预期,统计多轮对话的对比结果,生成对话机器人的诊断报告,从而实现诊断设备对话机器人自动测试,完成对话机器人的智能诊断过程。

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

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

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

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

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

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

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

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

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

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

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