基于RASA聊天机器人的任务型多轮对话测试方法及系统与流程

文档序号:31869002发布日期:2022-10-21 18:01阅读:488来源:国知局
基于RASA聊天机器人的任务型多轮对话测试方法及系统与流程
基于rasa聊天机器人的任务型多轮对话测试方法及系统
技术领域
1.本发明涉及计算机程序测试技术领域,更具体地说,涉及一种基于rasa 聊天机器人的任务型多轮对话测试方法及系统。


背景技术:

2.用户模拟器是用于在多轮对话中,模拟用户的自然语言回复的一种方法。对话系统一般可以分成三个大类:任务型对话系统、闲聊型对话系统、问答型对话系统,本发明主要的研究对象是任务型对话系统。任务型对话通常情况下是为了满足带有明确目的的用户,例如查天气、打电话、订票、订餐等等。由于用户的需求较为复杂,通常情况下需分多轮互动,用户也可能在对话过程中不断修改与完善自己的需求,任务型机器人需要通过询问、澄清和确认来帮助用户明确目的。
3.多轮对话功能指标是用于评价多轮对话完成能力和完成效果的一些具体指标。常见的指标分为自然语言理解能力评价指标、自然语言回复能力评价指标和对话管理能力评价指标三大类。三大类的细分指标见下表:
4.表1、任务型多轮对话评价指标一览表
5.[0006][0007]
由于多轮对话的过程是多变和复杂的,面向任务的多轮对话任务收集和注释人机对话数据,需要大量的人力投入,因此基于这种方法来构建适当的数据集,非常昂贵、耗时。
[0008]
目前传统的多轮对话测试方法主要有测试集测试、日志抽样分析和人工评测三种,这些方法都有较大弊端:
[0009]
(1)传统测试集测试方法,无法批量生成包含一个多轮对话任务所需的完整对话上下文的测试数据,为了得到较为完善的测试集,需要大量人工来进行标注,成本较高。
[0010]
(2)传统测试集方法,无法根据机器人的请求来自动生成测试数据,因此测试集难以覆盖多轮对话所有可能组合,测试的有效性较低。
[0011]
(3)日志抽样、人工评测都需要大量的人工标注,成本较高。


技术实现要素:

[0012]
本发明要解决的技术问题在于,针对上述传统多轮对话测试方法中存在的测试集
难以获取、测试集无法覆盖所有对话场景、测试成本较高等问题,提出一种基于rasa聊天机器人的任务型多轮对话测试方法及系统。
[0013]
本发明实施例解决上述技术问题的技术方案是,提供一种基于rasa聊天机器人的任务型多轮对话测试方法,所述方法包括以下步骤:
[0014]
构建用户目标库,并从所述用户目标库中随机采样获取模拟用户目标,根据所述模拟用户目标生成模拟用户动作;
[0015]
生成所述模拟用户动作对应的模拟用户自然语言回复;
[0016]
根据所述模拟用户自然语言回复生成模拟用户回复;
[0017]
根据所述模拟用户回复进行rasa聊天机器人的任务型多轮对话的功能测试。
[0018]
在上述基于rasa聊天机器人的任务型多轮对话测试方法中,所述构建用户目标库,并从所述用户目标库中随机采样获取用户目标包括:
[0019]
采用人工标注的方法生成用户目标库;所述模拟用户目标包括用户提供槽值及用户请求槽值;
[0020]
预设目标测试次数,其中,所述测试次数不小于所述目标测试次数。
[0021]
在上述基于rasa聊天机器人的任务型多轮对话测试方法中,所述生成所述模拟用户动作对应的模拟用户自然语言回复还包括:
[0022]
根据所述用户动作从用户话术模板库中检索对应的模拟用户自然语言回复;所述用户话术模板库由随机采样的模拟用户自然语言回复构成。
[0023]
在上述基于rasa聊天机器人的任务型多轮对话测试方法中,根据所述模拟用户回复进行rasa聊天机器人的任务型多轮对话的功能测试包括:
[0024]
解析所述模拟用户回复,获取用户语义解析结果及测试用户目标;
[0025]
根据测试用户目标生成测试用户动作;
[0026]
根据测试用户动作生成rasa聊天机器人动作,获取自然语言回复结果及多轮对话轮数;
[0027]
根据所述用户语义解析结果、自然语言回复结果及对话轮次评估rasa聊天机器人的任务型多轮对话的功能。
[0028]
在上述基于rasa聊天机器人的任务型多轮对话测试方法中,所述根据测试用户动作生成rasa聊天机器人动作,获取自然语言回复结果及测试次数包括:
[0029]
在所述rasa聊天机器人动作包含请求词槽时,根据第二请求词槽生成模拟用户动作,并继续进行对话测试;
[0030]
在所述rasa聊天机器人动作不包含请求词槽时,且在所述测试次数小于目标测试次数时,继续从所述用户目标库中随机采样获取模拟用户目标,并继续进行对话测试。
[0031]
本发明实施例还提供了一种基于rasa聊天机器人的任务型多轮对话测试系统,用户模拟器及测试评估模块,所述用户模拟器包括用户目标库、模拟用户动作生成模块、模拟自然语言生成模块、模拟用户回复生成模块;其中,
[0032]
所述用户目标库,用于通过随机采样获取模拟用户目标;
[0033]
所述模拟用户动作生成模块,用于根据所述模拟用户目标生成模拟用户动作;
[0034]
所述模拟自然语言生成模块,用于生成所述模拟用户动作对应的模拟用户自然语言回复;
[0035]
所述模拟用户回复生成模块,根据所述模拟用户自然语言回复生成模拟用户回复;
[0036]
所述测试评估模块,用于评估所述rasa聊天机器人根据所述模拟用户回复进行任务型多轮对话的功能测试结果。
[0037]
在上述基于rasa聊天机器人的任务型多轮对话测试系统中,所述用户目标库采用人工标注的方法生成,所述模拟用户目标包括用户提供槽值及用户请求槽值;
[0038]
所述用户模拟器还包括测试条件设置模块,所述测试条件设置模块用于预设目标测试次数,其中,所述测试次数不小于所述目标测试次数。
[0039]
在上述基于rasa聊天机器人的任务型多轮对话测试系统中,所述用户模拟器话包括用户话术模板库,所述用户话术模板库用于根据所述用户动作从用户话术模板库中检索对应的模拟用户自然语言回复;其中,所述用户话术模板库由随机采样的模拟用户自然语言回复构成。
[0040]
在上述基于rasa聊天机器人的任务型多轮对话测试系统中,所述rasa 聊天机器人,用于
[0041]
解析所述模拟用户回复,获取用户语义解析结果及测试用户目标;
[0042]
根据测试用户目标生成测试用户动作;
[0043]
根据测试用户动作生成rasa聊天机器人动作,获取自然语言回复结果及多轮对话轮数。
[0044]
在上述基于rasa聊天机器人的任务型多轮对话测试系统中,所述测试系统还包括判断模板,所述判断模板用于
[0045]
在所述rasa聊天机器人动作包含请求词槽时,根据第二请求词槽生成模拟用户动作,并继续进行对话测试;
[0046]
在所述rasa聊天机器人动作不包含请求词槽时,且在所述测试次数小于目标测试次数时,继续从所述用户目标库中随机采样获取模拟用户目标,并继续进行对话测试。
[0047]
本发明实施例的基于rasa聊天机器人的任务型多轮对话测试方法及系统,采用用户模拟器生成用户数据,可根据rasa聊天机器人的回复实时生成和上下文相匹配的测试数据,实现对rasa聊天机器人的任务型多轮对话的自然语言理解能力评价指标、自然语言回复能力评价指标和对话管理能力进行测试评估,提高测试集的覆盖率,同时极大的降低测试集标注成本。
附图说明
[0048]
图1是本发明第一实施例基于rasa聊天机器人的任务型多轮对话测试方法的流程示意图;
[0049]
图2是本发明第二实施例基于rasa聊天机器人的任务型多轮对话测试方法的流程示意图;
[0050]
图3是本发明第三实施例基于rasa聊天机器人的任务型多轮对话测试方法的流程示意图;
[0051]
图4是本发明第四实施例基于rasa聊天机器人的任务型多轮对话测试设备的示意图。
具体实施方式
[0052]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0053]
需要说明的是,本发明的说明书和权利要求书及上述附图中使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
[0054]
如图1所示,为本发明第一实施例基于rasa聊天机器人的任务型多轮对话测试方法的流程示意图。该基于rasa聊天机器人的任务型多轮对话测试方法包括以下步骤:
[0055]
s11、构建用户目标库,并从所述用户目标库中随机采样获取模拟用户目标,根据所述模拟用户目标生成模拟用户动作。
[0056]
在步骤s11中,采用人工标注的方法生成用户目标库;所述模拟用户目标包括用户提供槽值及用户请求槽值;预设目标测试次数,其中,所述测试次数不小于所述目标测试次数。
[0057]
具体地,首先需要生成用户目标(user goal)。对话管理系统(agent)对用户目标是未知的,需要在对话过程中帮助用户实现这个目标。也就是整个对话过程中,用户模拟器和对话管理系统,隐式的围绕完成这个目标而进行。用户目标一般由两部分组成:
[0058]
(1)informslot:用户提供槽值,一组给定的slot-value对,可以认为是用户的对整个会话进程的约束。
[0059]
(2)requestslot:用户需要请求槽值,槽的值,用户是不知道的,需要与 agent交互中获得答案。
[0060]
为了与实际情况相符,inform slot和requestslot中的会制定一些规则,以电影订票为例:
[0061]
inform slot中必须存在movie_name,theater,start_time,date, number_of_people这些槽位,如果没有这些槽位就无法订票。
[0062]
request slot中必须存在ticket槽位,这个槽位表示用户的订票请求,这本身是电影订票任务的目标。
[0063]
用户目标数据集构造方法采用人工标注的方法生成用户目标。例如,会议室预订多轮对话任务的用户目标设置如下,
[0064][0065]
用户目标包括”diaact”(表示该对话任务的名称)以及上文中提到的 "request_slots"和"inform_slots"。
[0066]
inform_slots中,设定了用户需要提供的槽位,如"title"、"locate"、 "conferenceroomid"、"starttime"、"endtime"等。这些槽位不用显式提供槽值,它的槽值是在用户动作生成时完成取值的。
[0067]
其次,根据所述模拟用户目标生成模拟用户动作,生成用户动作的构造方法如下:
[0068]
第一个用户动作,会议室预定对话任务中,用户往往是说第一句话的那一方,所以要根据用户目标,随机生成用户的第一轮对话内容。
[0069]
通常来讲,用户的第一轮内容中包含一部分,甚至所有的用户要求(informslots)。
[0070]
在整个对话过程中,用户模拟器维护一个类似于栈的user agenda。用户状态[公式]分为agenda(a)和用户目标(g)(约束(c)和请求(r))。
[0071]
在语义层面上,人机对话过程认为是一系列的对话状态states和对话动作 dialogue acts的update。在任意时刻t,用户在状态su执行动作au后状态转化为s'u,在接受到系统动作am后状态转化为s”u,继续选择用户动作a'u并执行,如此循环下去。
[0072]
如果agent action是inform(task_complete),说明agent已经收集了所有信息,并且准备预订会议室了。用户模拟器将会检测当前栈是否为空,并且检测是否满足约束条件来确保agent是预定了正确的会议室。
[0073]
最后,对话次数或轮数判断,对话状态有三种情况:
[0074]
(1)no_outcome_yet:是指agent没有inform(task_comlete),并且轮数还没有达到最大。
[0075]
(2)success:agent在最大轮数内,必须回答了所有的user的request,并且订了一个会议室。
[0076]
(3)failure:其他的情况都为失败。
[0077]
s12、生成所述模拟用户动作对应的模拟用户自然语言回复。
[0078]
在上述s12步骤中,还包括:根据所述用户动作从用户话术模板库中检索对应的模拟用户自然语言回复;所述用户话术模板库由随机采样的模拟用户自然语言回复构成。
[0079]
s13、根据所述模拟用户自然语言回复生成模拟用户回复。
[0080]
s14、根据所述模拟用户回复进行rasa聊天机器人的任务型多轮对话的功能测试。
[0081]
上述第一实施例提供的基于rasa聊天机器人的任务型多轮对话测试方法,
[0082]
进一步地,如图2所示,在上述s14步骤中,还包括:
[0083]
s21、解析所述模拟用户回复,获取用户语义解析结果及测试用户目标。
[0084]
解析用户自然语言得到用户意图和实体,并将语义解析结果作为评估意图识别准确率的依据。
[0085]
s22、根据测试用户目标生成测试用户动作。
[0086]
s23、根据测试用户动作生成rasa聊天机器人动作,获取自然语言回复结果及多轮对话轮数。
[0087]
s24、根据所述用户语义解析结果、自然语言回复结果及对话轮次评估 rasa聊天机器人的任务型多轮对话的功能。
[0088]
如图3所示,其中,步骤s23中,还包括:
[0089]
s31、在所述rasa聊天机器人动作包含请求词槽时,根据第二请求词槽生成模拟用户动作,并继续进行对话测试。
[0090]
s32、在所述rasa聊天机器人动作不包含请求词槽时,且在所述测试次数小于目标测试次数时,继续从所述用户目标库中随机采样获取模拟用户目标,并继续进行对话测试。
[0091]
如图4所示,本发明第四实施例还提供了一种基于rasa聊天机器人的任务型多轮对话测试系统,包括用户模拟器41和测试评估模块42,该用户模拟器 41包括用户目标库411、模拟用户动作生成模块412、模拟自然语言生成模块 413、模拟用户回复生成模块414;其中,
[0092]
所述用户目标库411,用于通过随机采样获取模拟用户目标;
[0093]
所述模拟用户动作生成模块412,用于根据所述模拟用户目标生成模拟用户动作;
[0094]
所述模拟自然语言生成模块413,用于生成所述模拟用户动作对应的模拟用户自然语言回复;
[0095]
所述模拟用户回复生成模块414,根据所述模拟用户自然语言回复生成模拟用户回复;
[0096]
所述测试评估模块43,用于评估所述rasa聊天机器人42根据所述模拟用户回复进行任务型多轮对话的功能测试结果,具体为根据用户语义解析结果、机器人动作以及对话轮次等对话关键信息,分别评估自然语言理解能力、自然语言回复能力和对话管理能力。
[0097]
所述用户目标库411采用人工标注的方法生成,所述模拟用户目标包括用户提供槽值及用户请求槽值;
[0098]
所述用户模拟器41还包括测试条件设置模块415,所述测试条件设置模块 415用于预设目标测试次数,其中,所述测试次数不小于所述目标测试次数。
[0099]
所述用户模拟器话41包括用户话术模板库416,所述用户话术模板库416 用于根据所述用户动作从用户话术模板库416中检索对应的模拟用户自然语言回复;其中,所述用户话术模板库416由随机采样的模拟用户自然语言回复构成。
[0100]
用户模拟器41是用于在多轮对话中,模拟用户的自然语言回复的一种方式。由于多轮对话的过程是多变和复杂的,为面向任务的多轮对话任务收集和注释人机对话数据,需要大量的人力投入,因此基于此方式构建适当的数据集,非常昂贵、耗时。为此,本发明基于示例对话库构建用户模拟器,来模拟多轮对话中的用户自然语言回复,实现对rasa聊天机器人的任务型多轮对话的自然语言理解能力评价指标、自然语言回复能力评价指标和对话管理能力进行测试评估,提高测试集的覆盖率,同时,极大的降低测试集标注成本。
[0101]
所述rasa聊天机器人42,用于通过nlu模块解析所述模拟用户回复,获取用户语义解析结果及测试用户目标,用户语义解析结果包括用户意图和实体;根据测试用户目标生成测试用户动作;通过对话管理模块根据测试用户动作生成rasa聊天机器人动作,或者调用第二自然语言生成模块生成机器人自然语言回复,或者从机器人话术模板库中随机采集机器人回复模板,从而获取自然语言回复结果及多轮对话轮数。
[0102]
其中,rasa是一个用于构建对话系统的开源机器学习框架。它主要包含以下两个模块:
[0103]
(1)rasa nlu:自然语言理解模块,用于解析用户消息中包含的语义,如消息的意图、消息中包含的实体等,解析的结果是机器人理解用户的基础。
[0104]
(2)rasa core:对话管理模块,它根据用户语义和词槽的填充情况,生成机器人动作,在此基础上,通过自然语言生成模块,为机器人生成自然语言回复。
[0105]
nlu(natural language understanding)一般指自然语言理解。在对话系统中,运用到的nlu技术主要包括意图识别和实体抽取(也叫词槽抽取),例如用户询问“今天天气怎么样”,这个属于询问天气的意图,要完成这个意图需要的两个实体分别是时间和地点,而对话系统的nlu模块的任务就是将这个意图和这两个实体抽取出来。
[0106]
对话管理(dialog management),实际上就是一个决策过程,它控制着人机对话的过程,它会根据对话的历史信息,决定该对用户做出什么样的反应。
[0107]
优选地,所述测试系统还包括判断模板44,所述判断模板44用于,在所述 rasa聊天机器人动作包含请求词槽时,根据第二请求词槽生成模拟用户动作,并继续进行对话测试;在所述rasa聊天机器人动作不包含请求词槽时,且在所述测试次数小于目标测试次数时,继续从所述用户目标库中随机采样获取模拟用户目标,并继续进行对话测试。在所述rasa聊天机器人动作不包含请求词槽时,且在所述测试次数大于或等于目标测试次数时,则结束本次测试。
[0108]
本发明实施例的基于rasa聊天机器人的任务型多轮对话测试方法及系统,采用用户模拟器生成用户数据,可根据rasa聊天机器人的回复实时生成和上下文相匹配的测试数据,实现对rasa聊天机器人的任务型多轮对话的自然语言理解能力评价指标、自然语言回复能力评价指标和对话管理能力进行测试评估,提高测试集的覆盖率,同时,极大的降低测试集标注成本。
[0109]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服
务器,或者网络设备等)执行本发明的实施例。
[0110]
因此,以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1