对话机器人的测试方法和装置与流程

文档序号:26007611发布日期:2021-07-23 21:26阅读:274来源:国知局
对话机器人的测试方法和装置与流程

本发明涉及对话机器人技术领域,尤其涉及一种对话机器人的测试方法、测试装置、计算机设备、存储介质和计算机程序产品。



背景技术:

智能对话机器人已经在在各个行业都有很多的应用,极大地便捷了人们的生活,例如应用于催收场景、精准营销场景、客户需求调查场景等等。在这些应用场景中都需要用到自然语言理解(naturallanguageunderstanding,nlu)模型和对话管理(dialogmanagement,dm)。针对各应用场景,需要通过不停增加预料分类,扩容nlu算法模型的意图识别准确率,并完善dm的丰富度。另外,对业务使用过程中遇见的问题,需要对nlu算法模型和dm话术配置进行优化迭代。针对每个迭代优化版本的nlu算法模型和dm话术配置,需要经过充分地测试才能投入生产使用。

目前,对话机器人的现有测试方案一般为使用脚本,从意图分类集中选取其中的一个或者多个意图词条,验证对话机器人的nlu算法模型的意图识别及dm话术配置,最终计算其准确率。

然而,现有的对话机器人测试方法存在如下问题:

1)针对nlu算法模型的测试,需要一批大量经过人工标注过的数据作为标准测试集来验证模型的准确率和误差,且测试集往往采用数据表的进行维护,维护成本较高;

2)只能根据选定的意图词条测试该意图词条下单个dm节点的意图语句,由此,无法和对话机器人进行完整轮次的互动问答。



技术实现要素:

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

为此,本发明的第一个目的在于提出一种对话机器人的测试方法,以实现在与对话机器人的模拟对话过程中完成对话机器人的nlu算法模型和dm话术管理的测试,解决现有技术中在测试对话机器人时无法和对话机器人进行完整轮次的互动问答以及测试集维护成本较高的问题。

本发明的第二个目的在于提出一种对话机器人的测试装置。

本发明的第三个目的在于提出计算机设备。

本发明的第四个目的在于提出一种非临时性计算机可读存储介质。

本发明的第五个目的在于提出一种计算机程序产品。

为达上述目的,本发明第一方面实施例提出了一种对话机器人的测试方法,包括:

获取对话机器人发送的触发文本;

从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据,并将所述返回文本发送至所述对话机器人,其中,所述标注文本集采用图形数据库进行维护;

获取所述对话机器人生成的识别意图数据,所述识别意图数据为所述对话机器人的自然语言理解nlu算法服务对所述返回文本进行处理后生成的意图;

将所述识别意图数据与所述标注意图数据进行对比,以得到测试结果。

在本公开的一个实施例之中,所述触发文本由所述对话机器人的对话管理dm话术管理服务模块提供,在所述获取对话机器人发送的触发文本之前,还包括:

根据用户选择的dm话术库版本号和nlu算法版本号,确定待测试的dm话术库版本和nlu算法版本,以生成至少一个测试任务;

其中,所述nlu算法服务为所述nlu算法版本号所对应的nlu算法模型,所述获取对话机器人发送的触发文本,包括:

根据所确定的dm话术库版本向所述对话机器人发送对话请求;

获取所述对话机器人返回的所述dm话术库版本所对应的dm话术库的预设对话文本,并将所述预设对话文本确定为所述触发文本。

在本公开的一个实施例之中,在所述获取对话机器人发送的触发文本之后,还包括:

判断所述触发文本是否为所述dm话术库的结束语;

如果所述触发文本为所述dm话术库的结束语,则结束当前轮次对话;

如果所述触发文本不为所述dm话术库的结束语,则进一步从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据。

在本公开的一个实施例之中,在将所述返回文本发送至所述对话机器人之后,还包括:

获取所述对话机器人发送的后续触发文本;

判断所述后续触发文本是否为所述dm话术库的结束语;

如果所述后续触发文本不为所述dm话术库的结束语,则将所述后续触发文本作为新的触发文本,进一步根据所述后续触发文本生成后续返回文本,并发送至所述对话机器人,直至所述对话机器人返回的后续触发文本为所述结束语。

在本公开的一个实施例之中,所述方法还包括:

将所述至少一个测试任务的任务关键字添加至远程字典服务器的消息队列,其中,所述任务关键字用于至少指示测试任务的测试对象和/或测试轮次;

采用分布式任务处理器对所述消息队列进行监听,其中,如果从所述消息队列中监听到新的任务关键字,则分配对应的执行单元完成所述新的任务关键字指示的测试任务。

在本公开的一个实施例之中,针对每个测试任务,所述测试对象为多个和/或所述测试轮次为多次,所述方法还包括:

在所述每个测试任务对应的执行单元中,所述分布式任务处理器根据所述多个测试对象和/或所述多个测试轮次启用相应数目的协程并行完成所述每个测试任务。

在本公开的一个实施例之中,所述方法还包括:

对执行所述测试任务时得到的至少一个测试结果进行汇总,以生成所述测试任务对应的总测试结果,其中,所述总测试结果包括所述测试任务对应的nlu意图识别准确率。

在本公开的一个实施例之中,所述分布式任务处理器采用dramatiq框架。

为达上述目的,本发明第二方面实施例提出了一种对话机器人的测试装置,包括:

第一获取模块,用于获取对话机器人发送的触发文本;

第二获取模块,用于从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据,并将所述返回文本发送至所述对话机器人,其中,所述标注文本集采用图形数据库进行维护;

第三获取模块,用于获取所述对话机器人生成的识别意图数据,所述识别意图数据为所述对话机器人的自然语言理解nlu算法服务对所述返回文本进行处理后生成的意图数据;

对比模块,用于将所述识别意图数据与所述标注意图数据进行对比,以得到测试结果。

在本公开的一个实施例之中,所述触发文本由所述对话机器人的对话管理dm话术管理服务模块提供,所述装置还包括:

版本确定模块,用于根据用户选择的dm话术库版本号和nlu算法版本号,确定待测试的dm话术库版本和nlu算法版本,以生成至少一个测试任务;

其中,所述第一获取模块,包括:

请求发送单元,用于根据所确定的dm话术库版本向所述对话机器人发送对话请求;

文本获取单元,获取所述对话机器人返回的所述dm话术库版本所对应的dm话术库的预设对话文本,并将所述预设对话文本确定为所述触发文本。

在本公开的一个实施例之中,所述装置还包括:

第一判断模块,用于判断所述触发文本是否为所述dm话术库的结束语;

对话结束模块,用于如果所述触发文本为所述dm话术库的结束语,则结束当前轮次对话;

第四获取模块,用于如果所述触发文本不为所述dm话术库的结束语,则进一步从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据。

在本公开的一个实施例之中,所述装置还包括:

第五获取模块,用于获取所述对话机器人发送的后续触发文本;

第二判断模块,用于判断所述后续触发文本是否为所述dm话术库的结束语;

文本更新模块,用于如果所述后续触发文本不为所述dm话术库的结束语,则将所述后续触发文本作为新的触发文本,进一步根据所述后续触发文本生成后续返回文本,并发送至所述对话机器人,直至所述对话机器人返回的后续触发文本为所述结束语。

在本公开的一个实施例之中,所述装置还包括:任务添加模块,用于将所述至少一个测试任务的任务关键字添加至远程字典服务器的消息队列,其中,所述任务关键字用于至少指示测试任务的测试对象和/或测试轮次;

任务监听模块,用于采用分布式任务处理器对所述消息队列进行监听,其中,如果从所述消息队列中监听到新的任务关键字,则分配对应的执行单元完成所述新的任务关键字指示的测试任务。

在本公开的一个实施例之中,针对每个测试任务,所述测试对象为多个和/或所述测试轮次为多次,所述装置还包括:

并行执行模块,用于在所述每个测试任务对应的执行单元中,所述分布式任务处理器根据所述多个测试对象和/或所述多个测试轮次启用相应数目的协程并行完成所述每个测试任务。

在本公开的一个实施例之中,所述装置还包括:

结果汇总模块,用于对执行所述测试任务时得到的至少一个测试结果进行汇总,以生成所述测试任务对应的总测试结果,其中,所述总测试结果包括所述测试任务对应的nlu意图识别准确率。

在本公开的一个实施例之中,所述分布式任务处理器采用dramatiq框架。

为达上述目的,本发明第三方面实施例提出了一种计算机设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:

获取对话机器人发送的触发文本;

从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据,并将所述返回文本发送至所述对话机器人,其中,所述标注文本集采用图形数据库进行维护;

获取所述对话机器人生成的识别意图数据,所述识别意图数据为所述对话机器人的自然语言理解nlu算法服务对所述返回文本进行处理后生成的意图;

将所述识别意图数据与所述标注意图数据进行对比,以得到测试结果。

为了实现上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器被执行时,使得能够执行一种方法,所述方法包括:

获取对话机器人发送的触发文本;

从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据,并将所述返回文本发送至所述对话机器人,其中,所述标注文本集采用图形数据库进行维护;

获取所述对话机器人生成的识别意图数据,所述识别意图数据为所述对话机器人的自然语言理解nlu算法服务对所述返回文本进行处理后生成的意图数据;

将所述识别意图数据与所述标注意图数据进行对比,以得到测试结果。

为了实现上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行一种对话机器人的测试方法,所述方法包括:

获取对话机器人发送的触发文本;

从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据,并将所述返回文本发送至所述对话机器人,其中,所述标注文本集采用图形数据库进行维护;

获取所述对话机器人生成的识别意图数据,所述识别意图数据为所述对话机器人的自然语言理解nlu算法服务对所述返回文本进行处理后生成的意图数据;

将所述识别意图数据与所述标注意图数据进行对比,以得到测试结果。

本发明实施例,通过获取对话机器人发送的触发文本,从标注文本集中获取用于答复所述触发文本的返回文本及所述返回文本的标注意图数据,并将所述返回文本发送至所述对话机器人,获取所述对话机器人生成的识别意图数据,将所述识别意图数据与所述标注意图数据进行对比,以得到测试结果。由此实现了在与对话机器人的模拟对话过程中完成对话机器人的nlu算法模型和dm话术管理的测试,提高了对nlu算法模型和dm话术管理的测试效率,并采用图形数据库对标注文本集进行维护,降低了标注文本集的维护成本。

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

附图说明

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

图1为本发明实施例所提供的一种对话机器人的测试方法的流程示意图;

图2为本发明实施例所提供的另一种对话机器人的测试方法的流程示意图;

图3为本发明实施例所提供的一种对话机器人的测试方法的交互流转示例图;

图4为本发明实施例提供的一种对话机器人的测试装置的结构示意图;以及

图5为本发明计算机设备一个实施例的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

需要说明的是,本发明实施例的执行主体可以是包含前端人机交互设备与后端服务设备的测试系统。其中,前端人机交互设备可用于为用户提供人机交互界面,以便于根据用户需求触发生成测试任务,以及在测试结束后向用户展示测试结果,而后端服务设备可用于提供测试所需的标注文本,对于对话机器人返回语句文本的解析服务既可以集成在前端设备,也可以集成在后端服务设备,此处不做限定。

下面参考附图描述本发明实施例的对话机器人的测试方法和装置。

图1为本发明实施例所提供的一种对话机器人的测试方法的流程示意图。

可以理解的是,现有的对话机器人测试方案一般为从意图分类集中选定一个或多个意图词条,然后对该选定的意图词条下的dm节点逐个进行测试,由此,无法和对话机器人进行完整轮次的互动问答,其中,一个dm节点可以理解为是该dm节点对应的意图词条下的一条意图语句,例如意图词条为“确认”,对应的意图语句可以为“是的,我是”、“嗯,是这样”等,一个意图词条可以对应多条意图语句。此外,现有的对话机器人测试方案需要一批大量经过人工标注过的数据作为标准测试集来验证nlu算法模型的准确率和误差,且测试集一般采用数据表(如excel表)进行维护,而数据表无法对测试集中的深度复杂的数据关系进行结构化地呈现,在需要对测试集中的标注数据进行修改、补充、完善时,往往比较耗时耗力,由此导致测试集的维护成本较高。

针对上述问题,本发明实施例提供了一种对话机器人的测试方法,以实现在与对话机器人的模拟对话过程中完成对话机器人的nlu算法模型和dm话术管理的测试,从而如图1所示,该对话机器人的测试方法包括以下步骤:

步骤101,获取对话机器人发送的触发文本。

其中,触发文本是指在建立与对话机器人的对话后,对话机器人输出的语句文本,可选地,触发文本可以是对话机器人的对话开场白或对话结束语,还可以是开场白与结束语之间的中间语句。

可以理解的是,本发明实施例与对话机器人进行对话的目的在于在与对话机器人的模拟对话中完成对对话机器人的测试。因此,在测试之前,首先要建立与对话机器人的对话。

在本公开的一个实施例中,可以通过在生成测试任务后向对话机器人发送对话请求的方式,建立与对话机器人的对话,此时获取的对话机器人返回的触发文本即为对话开场白。而获取的后续触发文本则可以理解为是对话过程中对话机器人的回复文本。

在本公开的一个实施例中,触发文本由对话机器人的dm话术管理服务模块提供。dm话术管理服务模块可以提供对话机器人对话所需的dm话术库,可以理解的是,通过的应用场景对应不同的dm话术库。对话机器人利用自身的nlu算法服务识别对话另一方的对话意图,并根据识别出的对话意图从相应的dm话术库中调取作为回复的触发文本。

步骤102,从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,其中,标注文本集采用图形数据库进行维护。

其中,标注文本集是指被标注的意图词条和意图语句的集合,返回文本为针对触发文本的回复文本。

具体地,通过预先生成标注文本集,并在识别对话机器人的发送的触发文本的意图后,从标注文本集中获取作为答复的返回文本发送至对话机器人,由此实现与对话机器人的模拟对话。

在本公开的一个实施例中,通过抓取线上真实用户的对话语句及意图数据生成标注文本集。

可以理解的是,由于线上许多对话语句已进行过意图标注,所以可以直接抓取到标注文本集中,剩余少量未进行意图标注的对话语句可由专业人员标注加工后添加到标注文本集,由此大大降低了人工标注成本。

在本公开的一个实施例中,采用图形数据库对标注文本集进行维护,可选地,图形数据库采用neo4j图形数据库。

其中,图形数据库是一种应用图形理论存储实体之间的关系信息的非关系型数据库,图形数据库由结点集与连接结点的关系组成。neo4j图形数据库是一种开源的图形数据库。

在本公开的一个实施例中,使用python语言的py2neo将抓取和标注的测试数据导入到neo4j图形数据库。

可以理解的是,关系型数据库用于存储“关系型”数据(例如本发明实施例中的标注文本集)的效果并不好,其查询复杂、缓慢、超出预期,不利于数据维护,而图形数据库恰恰弥补了这个缺陷。相对于关系数据库中的各种关联表,图形数据库中可以提供更为丰富的关系展现方式,并且图形数据库对于数据关系的查询更简单、快捷。因此,利用图形数据库,可以大大降低测试数据的维护成本。

步骤103,获取对话机器人生成的识别意图数据,识别意图数据为对话机器人的nlu算法服务对返回文本进行处理后生成的意图数据。

具体地,对话机器人接收到返回文本后,会调用自身的nlu算法服务对返回文本进行意图识别,并生成识别意图数据。当对话机器人生成识别意图数据后,向对话机器人获取识别意图数据。

需要说明的是,与对话机器人的正常对话过程中,对话机器人只根据识别意图数据返回相应的答复文本(即触发文本),并不会主动返回对话机器人生成的识别意图数据,因此,若要获取对话机器人生成的识别意图数据,需要在对话机器人生成识别意图数据后主动向对话机器人获取,或者提前约定由对话机器人在生成识别意图数据后,自动返回该识别意图数据或与对话机器人的答复文本一起返回。

在本公开的一个实施例中,在向对话机器人发送返回文本后,还向对话机器人发送识别意图数据获取请求,以由对话机器人返回识别意图数据。

在本公开的一个实施例中,在向对话机器人发送返回文本时,将识别意图数据获取请求与返回文本绑定一起发送给对话机器人,以向对话机器人获取识别意图数据。

在本公开的一个实施例中,在向对话机器人发送返回文本后,采用轮询方式从对话机器人读取识别意图数据,直至获取到识别意图数据。

步骤104,将识别意图数据与标注意图数据进行对比,以得到测试结果。

其中,测试结果是指单个识别意图数据与单个标注意图数据进行对比后的结果,用于判断意图识别是否正确。

在本公开的一个实施例中,将识别意图数据与标注意图数据进行对比,若两者为同义词,则判定测试结果为意图识别准确。

本实施例中,通过获取对话机器人发送的触发文本,从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,获取对话机器人生成的识别意图数据,将识别意图数据与标注意图数据进行对比,以得到测试结果。由此实现了在与对话机器人的模拟对话过程中完成对话机器人的nlu算法模型和dm话术管理的测试,提高了对nlu算法模型和dm话术管理的测试效率,并采用图形数据库对标注文本集进行维护,降低了标注文本集的维护成本。

为了清楚说明上一实施例,本实施例提供了另一种对话机器人的测试方法,图2为本发明实施例所提供的另一种对话机器人的测试方法的流程示意图。

如图2所示,该对话机器人的测试方法可以包括以下步骤:

步骤201,根据用户选择的dm话术库版本号和nlu算法版本号,确定待测试的dm话术库版本和nlu算法版本,以生成至少一个测试任务。

具体地,通过在前端人机交互设备的界面展示包含多个dm话术库版本号和nlu算法版本号的列表,以供用户选择,从而确定待测试dm话术库和nlu算法的版本。每确定一组待测试的dm话术库版本和nlu算法版本,即生成一个测试任务。

步骤202,根据所确定的dm话术库版本向对话机器人发送对话请求。

其中,对话请求为用于请求对话机器人应用对应该所确定版本的dm话术库进行对话。

步骤203,获取对话机器人返回的dm话术库版本所对应的dm话术库的预设对话文本,并将预设对话文本确定为触发文本。

其中,预设对话文本可以理解为对话建立之初,对话机器人发送的对话开场白。

可以理解的是,一个dm话术库对应一个应用场景,例如催收场景或营销场景等,每个应用场景中的对话都有相应的开场白,通过获取该对话开场白,可以开启该应用场景下的对话。

步骤204,判断触发文本是否为dm话术库的结束语,如果触发文本为dm话术库的结束语,则执行步骤205;否则,执行步骤206。

可以理解的是,实际应用场景中,在触发文本为预设对话文本(即对话开场白)的情况下,触发文本不会同时为结束语,因此,只有当触发文本为除预设对话文本(即对话开场白)之外的其他语句文本时,才需要执行上述判断,以判别本对话是否结束。

步骤205,结束当前轮次对话。

步骤206,从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人。

步骤207,获取对话机器人生成的识别意图数据。

其中,识别意图数据为对话机器人的nlu算法服务对返回文本进行处理后生成的意图数据,nlu算法服务为nlu算法版本号所对应的nlu算法模型。

步骤208,将识别意图数据与标注意图数据进行对比,以得到测试结果。

步骤209,获取对话机器人发送的后续触发文本。

其中,后续触发文本为对话机器人生成针对返回文本的识别意图数据后,根据识别意图数据从dm话术库中调取的用于回复返回文本的语句文本。

步骤210,判断后续触发文本是否为dm话术库的结束语,如果后续触发文本不为dm话术库的结束语,则执行步骤211,否则,执行步骤205。

步骤211,将后续触发文本作为新的触发文本,并返回执行步骤206。

可以理解的是,当后续触发文本不为dm话术库的结束语时,说明本轮对话尚未结束,通过将后续触发文本作为新的触发文本,执行与上一触发文本相同的操作,如此循环,直至对话机器人返回的后续触发文本为结束语,则结束本轮对话。

本实施例中,通过获取对话机器人发送的触发文本,从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,获取对话机器人生成的识别意图数据,将识别意图数据与标注意图数据进行对比,以得到测试结果。通过判断触发文本是否为结束语,形成循环,由此实现与对话机器人的完整轮次的对话,解决了现有技术中在测试对话机器人时无法和对话机器人进行完整轮次的互动问答的问题。通过在与对话机器人的模拟对话过程中完成对话机器人的的nlu算法模型和dm话术管理的测试,提高了对nlu算法模型和dm话术管理的测试效率。此外,采用图形数据库对标注文本集进行维护,解决了测试集维护成本较高的技术问题。

进一步地,在本发明实施例的一种可能的实现方式中,在上述实施例的基础上,方法还包括:将至少一个测试任务的任务关键字添加至远程字典服务器的消息队列,其中,任务关键字用于至少指示测试任务的测试对象和/或测试轮次;采用分布式任务处理器对消息队列进行监听,其中,如果从消息队列中监听到新的任务关键字,则分配对应的执行单元完成新的任务关键字指示的测试任务。

其中,远程字典服务器的消息队列即redis消息队列,redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。测试对象可以是指待测试的dm话术库版本和nlu算法版本。测试轮次可以指对同一测试对象的测试次数。分布式任务处理器用于将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在控制系统的统一管理控制下,协调地完成大规模信息处理任务。

在本公开的一个实施例中,分布式任务处理器采用dramatiq框架。

其中,dramatiq框架是python3实现的一个快速的、可信赖的分布式任务处理库,可用于实现对redis消息队列的监听。

可以理解的是,现有技术的测试方案,针对多个测试任务,只能逐个串行执行,即一个测试任务完成后再执行下一个,由此增加了用户的等待时间,测试效率低下。而通过采用redis消息队列,为多任务异步并行处理创造了条件。

进一步地,针对每个测试任务,在测试对象为多个和/或测试轮次为多次的情况下,方法还包括:在每个测试任务对应的执行单元中,分布式任务处理器根据多个测试对象和/或多个测试轮次启用相应数目的协程并行完成每个测试任务。

其中,执行单元为具体执行测试任务的模块。协程是用户态的轻量级线程,协程的调度完全由用户控制。线程是进程的一个执行单元,是中央处理器(centralprocessingunit,cpu)调度和分派的基本单位,一个线程可以包含多个协程。

本实施例中,通过为每个测试任务分配一个执行单元,配合redis消息队列的使用,并使用dramatiq框架对redis消息队列进行监听,当监听到消息队列中有新的测试任务时,分配对应的执行单元执行该测试任务,由此实现了多任务并发异步执行,减少了用户的等待时间,提高了测试效率。此外,当一个测试任务包含多个测试对象和/或多个测试轮次时,可以在执行该测试任务大执行单元内启用相应数目的协程并行完成该测试任务,由此解决了现有技术中对于一个意图词条下的多个dm节点(即多个意图语句),只能串行单个执行的问题,进一步提高了测试效率。

进一步地,对执行测试任务时得到的至少一个测试结果进行汇总,以生成测试任务对应的总测试结果,其中,总测试结果包括测试任务对应的nlu意图识别准确率。

可以理解的是,对话机器人对测试装置的每个返回文本都生成一个识别意图数据,一个识别意图数据和一个标注意图数据对比得到一个测试结果,在一个测试任务形成的一轮对话中,对话机器人可能会对多个返回文本生成多个识别意图数据,由此一个测试任务就会有多个测试结果。通过在一个测试任务执行完后,对多个测试结果汇总得到一个总测试结果。

在本公开的一个实施例中,可以将测试结果为意图识别准确的识别意图数据的个数比上总的识别意图数据个数,即可得到该测试任务对应的nlu意图识别准确率。

在本公开的一个实施例中,对同一应用场景下不同版本的nlu算法模型和dm话术库生成相应数目的测试任务进行测试时,每个测试任务的总测试结果中还可以包含与历史版本的nlu算法模型和dm话术库的测试结果的横向比较结果,由此可以得到当前版本的nlu算法模型和dm话术库相对与历史版本的nlu算法模型和dm话术库的提升度。

在本公开的一个实施例中,将每个测试任务的总测试结果展示在前端人机交互设备的界面上,具体的展示形式,此处不做限定。

进一步地,图3为本发明实施例所提供的一种对话机器人的测试方法的交互流转示例图。在该应用示例中,前端页面、路由网关、测试引擎和标注文本可以理解为本发明上述实施例中的执行主体,而dm话术管理服务和nlu算法服务是由对话机器人提供的。

如图3所示,对话机器人的测试方法的交互流转过程包括如下步骤:

步骤301,用户通过前端页面向路由网关请求获取dm话术库和nlu模型的版本列表。

步骤302,路由网关向前端页面返回dm话术库和nlu模型的版本列表。

步骤303,前端页面将用户选择的dm话术库版本和nlu模型版本发送到路由网关。

步骤304,路由网关将dm话术库版本和nlu模型版本告知测试引擎。

可以理解的是,步骤301~步骤304在于通过前端的人机交互界面为用户提供dm话术库和nlu模型的版本列表,以供用户进行选择,并根据用户的选择生成相应的测试任务。

步骤305,测试引擎向对话机器人的dm话术管理服务请求对应版本的dm话术库。

本步骤在于根据用户选择生成的测试任务,对选定版本的dm话术库进行测试,以及使对话机器人采用该选定版本的dm话术库完成与测试装置的对话。

步骤306,对话机器人的dm话术管理服务向测试引擎返回对应版本dm话术库的开场白。

步骤307,测试引擎向标注文本库请求回答开场白的节点。

本步骤中回答开场白的节点即标注文本库中可以作为该开场白的回复的回复文本。

步骤308,标注文本库返回回答文本及对应的标注意图数据。

步骤309,测试引擎基于回答文本调用对话机器人的nlu算法服务。

本步骤中,采用主动调用对话机器人的nlu算法服务的方式,以获取对话对话机器人的nlu算法服务生成的识别意图数据。

步骤310,对话机器人的nlu算法服务向测试引擎返回对应的识别意图数据。

步骤311,对话机器人的dm话术管理服务返回对应的答复文本。

步骤312,测试引擎将测试结果汇总分析后展示于前端页面。

可以理解的是,上述步骤中,当对话机器人返回的答复文本包含除开场白和结束语之外的多条语句时,对每条语句均需要执行步骤308~步骤311,即完成一个循环对话过程。由此可以在测试装置和对话机器人之间建立完整轮次的对话。而当生成的测试任务有多个时,例如用户选择了多个版本的dm话术库和nlu模型,此时,测试装置与对话机器人之间必然产生多轮对话,此时,针对每个测试任务,均分配一个对应的线程去执行,即步骤305~步骤311可以是多线程循环执行的方式。通过多线程循环执行,可以大大减少用户的等待时间,提高对dm话术管理和nlu算法服务的测试效率,改变了现有技术中采用手工及脚本小批量测试方式测试对话机器人的现状。

为了实现上述实施例,本发明还提出一种对话机器人的测试装置。

图4为本发明实施例提供的一种对话机器人的测试装置的结构示意图。

如图4所示,该对话机器人的测试装置包括:第一获取模块401,用于获取对话机器人发送的触发文本;

第二获取模块402,用于从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,其中,标注文本集采用图形数据库进行维护;

第三获取模块403,用于获取对话机器人生成的识别意图数据,识别意图数据为对话机器人的自然语言理解nlu算法服务对返回文本进行处理后生成的意图数据;

对比模块404,用于将识别意图数据与标注意图数据进行对比,以得到测试结果。

本发明实施例的装置,通过获取对话机器人发送的触发文本,从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,获取对话机器人生成的识别意图数据,将识别意图数据与标注意图数据进行对比,以得到测试结果。由于采用了在与对话机器人的模拟对话过程中完成对话机器人的的nlu算法模型和dm话术管理的测试,并采用图形数据库对标注文本集进行维护,从而解决了现有技术中在测试对话机器人时无法和对话机器人进行完整轮次的互动问答以及测试集维护成本较高的技术问题。

进一步地,在本发明实施例的一种可能的实现方式中,触发文本由对话机器人的对话管理dm话术管理服务模块提供,装置还包括:

版本确定模块,用于根据用户选择的dm话术库版本号和nlu算法版本号,确定待测试的dm话术库版本和nlu算法版本,以生成至少一个测试任务;

其中,第一获取模块401,包括:

请求发送单元,用于根据所确定的dm话术库版本向对话机器人发送对话请求;

文本获取单元,获取对话机器人返回的dm话术库版本所对应的dm话术库的预设对话文本,并将预设对话文本确定为触发文本。

进一步地,在本发明实施例的一种可能的实现方式中,装置还包括:

第一判断模块,用于判断触发文本是否为dm话术库的结束语;

对话结束模块,用于如果触发文本为dm话术库的结束语,则结束当前轮次对话;

第四获取模块,用于如果触发文本不为dm话术库的结束语,则进一步从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据。

进一步地,在本发明实施例的一种可能的实现方式中,装置还包括:

第五获取模块,用于获取对话机器人发送的后续触发文本;

第二判断模块,用于判断后续触发文本是否为dm话术库的结束语;

文本更新模块,用于如果后续触发文本不为dm话术库的结束语,则将后续触发文本作为新的触发文本,进一步根据后续触发文本生成后续返回文本,并发送至对话机器人,直至对话机器人返回的后续触发文本为结束语。

进一步地,在本发明实施例的一种可能的实现方式中,装置还包括:任务添加模块,用于将至少一个测试任务的任务关键字添加至远程字典服务器的消息队列,其中,任务关键字用于至少指示测试任务的测试对象和/或测试轮次;

任务监听模块,用于采用分布式任务处理器对消息队列进行监听,其中,如果从消息队列中监听到新的任务关键字,则分配对应的执行单元完成新的任务关键字指示的测试任务。

进一步地,在本发明实施例的一种可能的实现方式中,针对每个测试任务,测试对象为多个和/或测试轮次为多次,装置还包括:

并行执行模块,用于在每个测试任务对应的执行单元中,分布式任务处理器根据多个测试对象和/或多个测试轮次启用相应数目的协程并行完成每个测试任务。

进一步地,在本发明实施例的一种可能的实现方式中,装置还包括:

结果汇总模块,用于对执行测试任务时得到的至少一个测试结果进行汇总,以生成测试任务对应的总测试结果,其中,总测试结果包括测试任务对应的nlu意图识别准确率。

进一步地,在本发明实施例的一种可能的实现方式中,分布式任务处理器采用dramatiq框架。

需要说明的是,前述对对话机器人的测试方法实施例的解释说明也适用于该实施例的对话机器人的测试装置,此处不再赘述。

为了实现上述实施例,本发明还提出一种计算机设备,包括:处理器,以及用于存储处理器可执行指令的存储器。

其中,处理器被配置为:

获取对话机器人发送的触发文本;

从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,其中,标注文本集采用图形数据库进行维护;

获取对话机器人生成的识别意图数据,识别意图数据为对话机器人的自然语言理解nlu算法服务对返回文本进行处理后生成的意图数据;

将识别意图数据与标注意图数据进行对比,以得到测试结果。

为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,当存储介质中的指令由处理器被执行时,使得能够执行一种对话机器人的测试方法,方法包括:

获取对话机器人发送的触发文本;

从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,其中,标注文本集采用图形数据库进行维护;

获取对话机器人生成的识别意图数据,识别意图数据为对话机器人的自然语言理解nlu算法服务对返回文本进行处理后生成的意图数据;

将识别意图数据与标注意图数据进行对比,以得到测试结果。

为了实现上述实施例,本发明还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时,执行一种对话机器人的测试方法,方法包括:

获取对话机器人发送的触发文本;

从标注文本集中获取用于答复触发文本的返回文本及返回文本的标注意图数据,并将返回文本发送至对话机器人,其中,标注文本集采用图形数据库进行维护;

获取对话机器人生成的识别意图数据,识别意图数据为对话机器人的自然语言理解nlu算法服务对返回文本进行处理后生成的意图数据;

将识别意图数据与标注意图数据进行对比,以得到测试结果。

图5示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图5显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork;以下简称:lan),广域网(wideareanetwork;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

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

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(readonlymemory,rom),可擦除可编辑只读存储器(可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

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

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

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

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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