CN114238066A - 基于人机对话的任务测试方法、相关设备及存储介质 - Google Patents

基于人机对话的任务测试方法、相关设备及存储介质 Download PDF

Info

Publication number
CN114238066A
CN114238066A CN202010943632.7A CN202010943632A CN114238066A CN 114238066 A CN114238066 A CN 114238066A CN 202010943632 A CN202010943632 A CN 202010943632A CN 114238066 A CN114238066 A CN 114238066A
Authority
CN
China
Prior art keywords
state
edge
corpus
edges
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010943632.7A
Other languages
English (en)
Inventor
展钰
周立君
王丰奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010943632.7A priority Critical patent/CN114238066A/zh
Publication of CN114238066A publication Critical patent/CN114238066A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种基于人机对话的任务测试方法,包括:获取针对目标任务的状态机图;加载状态机图;对状态机图的节点Si对应的所有边以及节点S(i+x)进行遍历;若节点Si对应的所有边以及节点S(i+x)均遍历完成,且Si不是初始节点S0,确定第一边;从语料库中选取符合语义表示的第一语料;将第一语料发送至被测设备;根据被测设备的响应信息,确定第一系统状态;根据第一系统状态,更新状态机图的所有节点和所有边的状态;根据所有节点和所有边的状态与预设状态,对被测设备在目标任务上的成功率进行评估,获得第一测评结果。本申请还提供一种相关设备及存储介质。本申请能将海量的语料映射到测试系统的每一轮输入中进行端到端的成功率测试。

Description

基于人机对话的任务测试方法、相关设备及存储介质
技术领域
本申请涉及终端技术领域,尤其涉及一种基于人机对话的任务测试方法、相关设备及存储介质。
背景技术
随着人工智能和自然语言处理技术的发展,人机对话系统在金融服务、家居生活、个人助理中将逐步得到应用。在人机对话系统中,每一次人机交互,系统都会把对话的上下文记录下来并进入不同的状态,因此,一般从任务的初始状态到最终完成任务会有多条路径,评价该任务的成功率需要综合参考每一条路径和边的成功率以及上下文处理逻辑的正确性。
目前,在评价人机对话系统在此任务上的成功率上,现有的测试技术一般分为如下三种:一、按照分析出的状态图进行固定路径的功能测试,二、有限的状态节点下的NLU(Natural Language Understanding,自然语言理解)识别率测试,三、固定顺序的多轮对话语料测试。然而,上述三种测试技术,都无法将海量的语料映射到人机对话系统的每一轮输入中进行端到端的成功率测试。
发明内容
本申请实施例公开了一种基于人机对话的任务测试方法、相关设备及存储介质,能够解决现有技术中存在的无法将海量的语料映射到人机对话系统的每一轮输入中进行端到端的成功率测试的问题。
本申请第一方面公开了一种基于人机对话的任务测试方法,所述基于人机对话的任务测试方法包括:获取针对目标任务的状态机图,其中,所述状态机图的每个节点表示对话的状态,所述状态机图的每条边表示用户操作和对话上下文;加载所述状态机图;根据预设遍历算法,对所述状态机图的节点Si对应的所有边以及所述所有边对应的节点S(i+x)进行遍历,其中,i、x均为非负整数;若所述状态机图的节点Si对应的所有边以及所述所有边对应的节点S(i+x)均遍历完成,且Si不是初始节点S0,根据预设的边排序算法,从所述所有边中确定第一边;根据所述第一边的用户操作以及对话上下文的语义表示,从语料库中选取符合所述语义表示的第一语料;将所述第一语料发送至被测设备;根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态;根据所述第一系统状态,更新所述状态机图的所有节点的第一节点参数值和所有边的第一边参数值;根据所述第一系统状态、所述第一节点参数值、所述第一边参数值、第一预期状态以及第一预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第一测评结果。
本申请中,能够保证状态机图加载海量数据,快速收敛完成状态机图和所有语料的遍历,将所有的语料映射到不同的状态路径上进行测试,确保所有的语料在正确的路径上被覆盖执行,最终能得到端到端的任务成功率,同时,能够动态的实时判断被测设备的系统状态,能够动态的进行多轮对话准确率的测试,得到不同上下文的NLU识别率的准确结果。此外,还能够根据状态机图的配置,动态地生成测试路径和用例,不需要手工编写大量的测试用例,并且能够保证状态路径的全覆盖。
在一些可选的实施方式中,所述基于人机对话的任务测试方法还包括:若所述状态机图的节点Si对应的所有边未遍历完成,根据所述边排序算法,从未遍历完成的边中确定第二边;从所述语料库中选取所述第二边对应的第二语料;将所述第二语料发送至所述被测设备;根据所述被测设备针对所述第二语料的响应信息,确定所述被测设备的第二系统状态;根据所述第二系统状态,更新所述状态机图的所有节点的第二节点参数值和所有边的第二边参数值;根据所述第二系统状态、所述第二节点参数值、所述第二边参数值、第二预期状态以及第二预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第二测评结果。
本申请中,通过不断的循环遍历,能够将所有的语料隐射到不同的状态路径上进行测试,确保测试的全面性,能够动态的进行多轮对话准确率的测试,得到不同上下文的NLU识别率的准确结果。
在一些可选的实施方式中,所述基于人机对话的任务测试方法还包括:若所述所有边对应的节点S(i+x)未遍历完成,根据所述边排序算法,从未遍历完成的节点S(i+x)对应的边中确定第三边;从所述语料库中选取所述第三边对应的第三语料;将所述第三语料发送至所述被测设备;根据所述被测设备针对所述第三语料的响应信息,确定所述被测设备的第三系统状态;根据所述第三系统状态,更新所述状态机图的所有节点的第三节点参数值和所有边的第三边参数值;根据所述第三系统状态、所述第三节点参数值、所述第三边参数值、第三预期状态以及第三预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第三测评结果。
本申请中,通过不断的循环遍历,能够将所有的语料隐射到不同的状态路径上进行测试,确保测试的全面性,能够动态的进行多轮对话准确率的测试,得到不同上下文的NLU识别率的准确结果。
在一些可选的实施方式中,所述根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态之后,所述基于人机对话的任务测试方法还包括:判断所述第一系统状态是否为预设状态,所述预设状态包括成功状态或失败状态;若所述第一系统状态为所述预设状态,执行所述的根据所述第一系统状态,更新所述状态机图的所有节点的第一节点参数值和所有边的第一边参数值。
在一些可选的实施方式中,所述基于人机对话的任务测试方法还包括:若所述第一系统状态不为所述预设状态,根据所述预设遍历算法,对所述状态机图的节点Si对应的所有边以及所述所有边对应的节点S(i+x)进行遍历。
在一些可选的实施方式中,所述根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态包括:根据所述被测设备针对所述第一语料的响应信息,生成状态表达式;解析所述状态表达式,获得所述被测设备的第一系统状态。
在一些可选的实施方式中,所述获取针对目标任务的状态机图之前,所述基于人机对话的任务测试方法还包括:根据所述目标任务的槽位和上下文的不同状态组合,确定所述目标任务包括的多个节点;分析所述多个节点之间存在的多条边;获取每条所述边对应的用户操作的语义表示;根据所述多个节点、所述多条边以及每条所述边对应的用户操作的语义表示,生成所述目标任务的状态机图。
本申请第二方面公开了一种测试设备,包括处理器和存储器;所述存储器,用于存储指令;所述处理器,用于调用所述存储器中的指令,使得所述测试设备执行所述的基于人机对话的任务测试方法。
本申请第三方面公开了一种测试系统,所述测试系统包括测试设备和被测设备,其中,所述测试设备用于执行所述的基于人机对话的任务测试方法。
本申请第四方面公开了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现所述的基于人机对话的任务测试方法。
在一些可选的实施方式中,本申请第五方面公开了一种任务测试装置,所述任务测试装置运行于测试设备中,所述任务测试装置包括多个功能模块,所述多个功能模块用于执行所述的基于人机对话的任务测试方法。
附图说明
图1是本申请实施例公开的一种测试系统的框架示意图。
图2是本申请实施例公开的一种基于人机对话的任务测试方法的流程示意图。
图3是本申请实施例公开的一种状态机图的示意图。
图4是本申请实施例公开的一种三层结构的语义表示方法的示意图。
图5是本申请实施例公开的一种测试设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
为了更好的理解本申请实施例公开的一种基于人机对话的任务测试方法、相关设备及存储介质,下面首先对本申请实施例适用的网络架构进行描述。
请参见图1,图1是本申请实施例公开的一种测试系统的框架示意图。如图1所示,所述测试系统包括测试设备和被测设备,其中,所述测试设备内部包括多个模块,比如服务数据模块、对话策略学习模块、模拟模块、响应解析模块、对话状态追踪模块、语料库模块以及评估模块,其中,模拟模块又可以包括音频生成模块、语义表示模块、文本生成模块以及指令生成模块,被测设备包括语音识别模块、自然语言理解模块、对话管理器模块以及系统响应模块。
其中,所述测试设备又可以称为用户模拟器(user simulator),所述测试设备用来模拟用户与被测设备进行对话,同时,所述测试设备也可以是一个对话系统。所述被测设备即基于人机对话的任务测试的对象,需要测试所述被测设备在某个任务上的表现好坏以及成功率大小。
其中,测试设备需要先加载业务状态机图相关的服务数据(service data),即状态数据,主要包括以下几个方面:1)用户输入的和系统响应的关键参数定义;2)每个业务的各个状态定义;3)状态之间的转移路径和路径对应的对话行为(dialogue act)的定义。
对话政策学习(dialogue policy learning,DPL)模块可以加载业务状态机,并基于系统响应以及当前对话状态,产生系统行为,决定下一步要做什么。
模拟模块(simulation module,SLM)也即用户对话模拟器,可以根据DPL决策产生的Dialog act,并根据其语义表示关联到语料库(corpus)中相应的语料,该语料支持多模态,并生成相应的语料消息发送给被测设备。
响应解析(Response Parse,RP)可以从系统的响应中,提取并转换成需要的上下文信息,为系统决策提供依据。
对话状态追踪(dialogue status tracking,DST)模块可以根据系统响应的信息,通过表达式引擎解析得到当前系统状态,并根据每一轮交互记录和刷新用户和系统的上下文信息。
评估模块(evaluation module,EVM)用于根据每轮系统状态转移和系统响应,与预期进行比较,进而得出每个业务场景的测评结果。
其中,所述被测设备可以根据接收到的语料输出对应的系统响应。
语音识别(Automatic Speech Recognition,ASR)模块用于将用户语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。
自然语言理解模块(Natural Language Understanding,NLU):主要作用是对用户输入的句子或者语音识别的结果进行处理,提取用户的对话意图以及用户所传递的信息。
对话管理器(Dialogue Manager,DM)模块分为两个子模块,对话状态追踪(dialogue status tracking,DST)和对话策略学习(dialogue policy learning,DPL),其主要作用是根据NLU的结果来更新系统的状态,并生成相应的系统动作。
系统响应(System Response)模块用于根据接收到的语料作出相应的回答。
在图1所描述的测试系统中,测试设备可以通过模拟用户的行为来与被测设备进行多轮对话交互,在每个对话交互中,根据每一步用户行为的语义表示信息来获取相应的语料,并根据状态机图的遍历算法,确保所有的语料在正确的路径(状态机图的边)上被覆盖执行,同时,根据被测设备的系统响应来判断系统状态,进而更新状态机图的节点以及边的状态,最终将这些状态与预期的状态进行比较,从而得到每个业务场景的测评结果。
基于前述实施例,下面阐述本申请实施例涉及的基于人机对话的任务测试方法。
参见图2,是本申请实施例公开的一种基于人机对话的任务测试方法的流程示意图。如图2所示的基于人机对话的任务测试方法应用于如上图1所示的测试设备中,所述方法包括如下步骤:
S21、测试设备获取针对目标任务的状态机图。
其中,目标任务可以是预先根据业务的需求制定的任务,比如订票任务,导航任务等。每个业务都有不同的状态定义和逻辑,可以采用人工规则的方法来设计状态机图,其中,所述状态机图的每个节点表示对话的状态,所述状态机图的每条边表示用户操作和对话上下文。即,整个状态机图可以反映出该目标任务在各个节点的执行状态。
作为一种可选的实施例,步骤S21之前,所述方法还包括:
根据所述目标任务的槽位和上下文的不同状态组合,确定所述目标任务包括的多个节点;
分析所述多个节点之间存在的多条边;
获取每条所述边对应的用户操作的语义表示;
根据所述多个节点、所述多条边以及每条所述边对应的用户操作的语义表示,生成所述目标任务的状态机图。
在该可选的实施方式中,对于状态机图的建模,首先需要根据所述目标任务的槽位和上下文的不同状态组合,确定所述目标任务包括的多个节点,比如目标任务为买票任务,可以根据买票的实际特点,确定买票任务可以包括如下几个节点:出发点、目的地、时间等。
其次,还需要分析多个节点之间可能存在的转移路径(例如:边),就可以得到一个完整的状态转移图。其中,存在一条从节点Sm到节点Sn的有向边的条件是:Sn所包含的信息量不小于Sm,同时Sn的不确定性不大于Sm。举例来说,以S0为起点,Ss为终点,如果一个状态到达终点Ss所需要的信息量越少,交互轮次越少,则说明这个状态的信息量越大,不确定性越小。即,每一次状态转移,整个对话状态是“流向”Ss,也即离Ss更近。
最后,还需要通过状态转移的两个节点的信息差异分析对比,以得到这条边对应的用户操作的语义表示。假设某个意图下所有状态包含的信息的集合为Itotal={i1,i2,...in},某个状态Sa包含的信息量集合为Ia={i1,i2,...ia},某个状态Sb包含的信息量集合为Ib={i1,i2,...ib},则Sa到Sb路径的操作应该包括三部分信息{I,I’,I”}:1.必选信息为Sb比Sa多出的信息量集合I={ia+1,ia+2,...ib};2.规格内的可选信息集合I'∈{i1,i2,...ia};3.规格外的可选信息集合
Figure BDA0002674502980000051
根据信息的集合映射到语义表示的组合,I’的信息进行两两组合覆盖,I”的信息进行单条遍历覆盖即可。
请参见图3,是本申请实施例公开的一种状态机图的示意图。如图3所示,Intent A表示对话系统中的每个意图任务,其中,S0~Sn是Intent A下面的所有可能状态,所有任务会默认保护S0,Ss,Sf。其中,节点S0表示进入Intent A之前的状态,S1~Sn表示进入IntentA之后且在任务完成之前所产生的各种中间状态,Ss表示Intent A所有必选槽位的填充取值完全确定,最终走到fulfillment(完成)返回的状态,即成功状态,Sf表示Intent A所有必选槽位对的填充取值并未完全确定,用户主动取消或对话系统为避免无限循环而主动退出的失败状态。其中,可以定义源节点(状态)到目标节点(状态)的转移为边(edge),比如从节点S0到节点S1的边。一条边对应1个或多个对话行为(dialog act),对话系统业务场景下的边全部为有向边。其中,可以定义从起点到终点的多条有向边组成一条路径(path),比如从节点S0到节点Ss的路径为:S0-S1-Sm-Ss,S0-S2-Sm-Ss,S0-S1-S2-Sm-Ss。
其中,基于语义特征(feature)三层结构的语义表示方法通常包括三层描述结构。第一层是句子到论元成分的组合的拆解,通过领域(domain)和全量事件(event)的匹配分析得到用户行为模式,即intent,同时对该event对应的事件角色(event role)分析得到论元成分(argument)。Feature一层描述结构:{核心谓语:<event>,arg,arg,arg……};第二层是论元成分到语义单元(semantic unit)的实例化映射,包括描述论元成分内各语义单元之间的结构关系。Feature二层描述结构:{核心谓语:<event>,arg:<su>,arg:<su>,arg:<[construction:<su><su><su>]su>……};第三层是将语义单元拆解成业务相关的最小语义单元(domain-related minimal semantic unit)。Feature三层描述结构:{核心谓语:<event>,arg:<(msu)(msu)>,arg:<(msu)(msu)>,arg:<[construction:<(msu)(msu)><(msu)><(msu)(msu)>](msu)>……}。
结合图4进行说明,图4是本申请实施例公开的一种三层结构的语义表示方法的示意图。图4中,以“从华为南门去新街口地铁站出口向左200米的肯德基”为例,三层结构拆解如下:
一层:{核心谓语:<前往>,原处所,终处所}。
二层:{核心谓语:<前往>,原处所:<处所>,终处所:<[位置范围:<处所><方向><距离>]处所>}。
三层:{核心谓语:<前往>,原处所:<(企业)(位置)>,终处所:<[位置范围:<(街道)(场所)(位置)><(方向)><距离>](企业)>}。
其中,图3的每条有向边上可以存储三层结构中第三层上的信息,即存储:{核心谓语:<前往>,原处所:<(企业)(位置)>,终处所:<[位置范围:<(街道)(场所)(位置)><(方向)><距离>](企业)>}。通过这样的结构描述,可以分析得到状态机图中每条边表示的用户操作以及上文下对应的语义表示。
S22、测试设备加载所述状态机图,并根据预设遍历算法,对所述状态机图的节点Si对应的所有边进行遍历。
其中,节点Si为状态机图中的任一个节点,i、x均为非负整数。
S23、测试设备判断所述状态机图的节点Si对应的所有边是否遍历完成,若所有边均遍历完成,执行步骤S24,若仍有边未遍历完成,执行步骤S211。
其中,节点遍历完成的条件是节点指向的所有边都遍历完成;边遍历完成的条件是边自身完成遍历,并且边指向的节点完成遍历。
S24、测试设备判断所述节点Si是否为初始节点S0,若不是初始节点S0,执行步骤S25,若是初始节点S0,结束本流程。
本申请中,如果测试设备判断所述状态机图的节点Si对应的所有边遍历完成,则表明该节点Si被遍历完成,而节点Si有可能是初始节点S0,状态机图中的所有节点的遍历均需要依赖于初始节点S0,只要有任一个其他节点未遍历完成,则初始节点S0就不可能被遍历完成,因此,如果测试设备判断所述节点Si为初始节点S0,则表明整个状态机图中的所有节点均遍历完成了,反之,如果测试设备判断所述节点Si不为初始节点S0,则还需要进一步执行步骤S25,对所述节点Si的所有边对应的节点S(i+x)的遍历情况进行分析判断。
S25、测试设备判断所述节点Si的所有边对应的节点S(i+x)是否遍历完成,若遍历完成,执行步骤S26,若未遍历完成,执行步骤S214。
S26、测试设备根据预设的边排序算法,从所述所有边中确定第一边,根据所述第一边的用户操作以及对话上下文的语义表示,从语料库中选取符合所述语义表示的第一语料,将所述第一语料发送至被测设备。
本申请中,如果测试设备判断所述节点Si的所有边对应的节点S(i+x)遍历完成,测试设备可以直接按照预设的边排序算法,从所述所有边中确定第一边,其中,预设的边排序算法为:计算每一条边对应的节点到终点的最短距离,最短距离越小则排序越高。最短距离的计算可以参考Dijkstra(迪杰斯特拉算法)算法。Dijkstra's算法是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。以节点Ss为中心向外层层扩展,直到扩展到边对应的节点为止。其中,根据预设的边排序算法,对所有边进行排序的目的是在下层节点都遍历完成时,从该节点能够快速走到终点。
本申请中,在确定第一边之后,即可根据所述第一边的用户操作以及对话上下文的语义表示,从语料库中选取符合所述语义表示的第一语料,将所述第一语料发送至被测设备,确保该第一语料在正确的路径(边)上被覆盖执行。
S27、测试设备根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态。
本申请中,当测试设备将所述第一语料发送给被测设备后,被测设备会根据所述第一语料输出相应的响应信息,比如,测试设备发的第一语料是“订机票”,被测设备输出的响应信息是“请输入出发地”,测试设备可以根据该响应信息,确定所述被测设备的第一系统状态,其中,该第一系统状态即当前处于对话的某个节点状态,比如当前处于讨论出发地的状态。
具体地,所述根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态包括:
根据所述被测设备针对所述第一语料的响应信息,生成状态表达式;
解析所述状态表达式,获得所述被测设备的第一系统状态。
其中,在对状态机图进行遍历时,需要实时的动态判断所述被测设备的系统状态。
其中,状态表达式的解析可以通过开源的表达式引擎Aviator Evaluator实现,表达式的配置可以引用任意的系统响应参数,并支持常见的逻辑判断和自定义函数,如果某个状态表达式的解析结果为真,则代表当前系统处于对应的某个状态。表达式示例:
(phoneNumber!=nil&&isEmergNumber=='false')||(yellowPages!=nil&&isEmergContact=='fal se')||(CountItem(realcontact)==1&&isFuzzyMatch=='false')
PhoneNumber!=nil表示phoneNumber参数值不为空,CountItem(realcontact)表示参数所表示的列表元素的个数。
S28、测试设备判断所述第一系统状态是否为预设状态,若是预设状态,执行步骤S29,若非预设状态,执行步骤S23。
其中,预设状态可以包括成功状态或失败状态,其中,该预设状态可以反映出当前被测设备处于一个终止的状态(成功或失败的状态),表明整个状态机图被遍历结束。
本申请中,如果测试设备判断所述第一系统状态为预设状态,表明当前整个状态机图被遍历结束了,测试设备可以根据所述第一系统状态,更新所述状态机图的所有节点的第一节点参数值和所有边的第一边参数值,反之,如果测试设备判断所述第一系统状态不为预设状态,也即表明当前所述被测设备处于一个中间的状态,整个状态机图未遍历完成,需要重新按照上文的遍历算法进行循环遍历。
S29、测试设备根据所述第一系统状态,更新所述状态机图的所有节点的第一节点参数值和所有边的第一边参数值。
其中,测试设备可以使用Dijkstra(迪杰斯特拉算法)算法来根据所述第一系统状态,更新所述状态机图的所有节点的第一节点参数值和所有边的第一边参数值,即更新状态机图中节点和边的状态。
具体更新过程如下:
假设存在两个集合,S集合为已扫描节点,U集合为未扫描节点,节点Ss和节点Sf在S集合中,其它节点都在U集合中。可以定义被扫描过的节点/边的状态为S,未被扫描过的节点/边的状态为U,节点或边遍历完成的状态为TC,边自身的语料遍历完成的状态为TSC。
1)扫描S集合中的节点,如果该节点下的所有边状态都为TC,则标识该节点状态为TC,如果S0在S集合中,则结束迭代;
2)扫描指向S集合中的节点的所有的边,更新这条边的扫描状态为S,更新这条边的遍历状态,某条边状态更新为TC的条件是该条边自身的状态为TSC且该条边指向的节点状态为TC;
3)扫描U集合中的节点,如果该节点下的所有边的扫描状态都为S,则将该节点移入S集合。
按照上述步骤1)-3)进行迭代重复更新每个节点的状态。
S210、测试设备根据所述第一系统状态、所述第一节点参数值、所述第一边参数值、第一预期状态以及第一预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第一测评结果,并结束本流程。
本申请中,可以预先针对目标任务的每个状态设置一个预期状态,针对每个节点/每条边设置一个预期参数值。在更新状态机图的状态后,即可将更新后的状态与预先设置的预期状态进行比较,统计符合预期的有多少,不符合预期的有多少,进而可以对所述被测设备在所述目标任务上的成功率进行评估,获得第一测评结果。
S211、测试设备根据所述边排序算法,从未遍历完成的边中确定第二边,从所述语料库中选取所述第二边对应的第二语料,将所述第二语料发送至所述被测设备。
本申请中,当测试设备判断所述状态机图的节点Si对应的所有边未遍历完成时,需要根据所述边排序算法,从未遍历完成的边中确定第二边,并从所述语料库中选取所述第二边对应的第二语料,以确保所有的语料能在正确的路径上被覆盖执行。
S212、测试设备根据所述被测设备针对所述第二语料的响应信息,确定所述被测设备的第二系统状态;根据所述第二系统状态,更新所述状态机图的所有节点的第二节点参数值和所有边的第二边参数值。
其中,测试设备根据所述被测设备针对所述第二语料的响应信息,确定所述被测设备的第二系统状态的具体实施方式可以参考上文中关于第一系统状态的相关描述,在此不再赘述。
可选的,在测试设备根据所述被测设备针对所述第二语料的响应信息,确定所述被测设备的第二系统状态之后,所述方法还包括:
判断所述第二系统状态是否为预设状态,所述预设状态包括成功状态或失败状态;
若所述第二系统状态为所述预设状态,执行所述的根据所述第二系统状态,更新所述状态机图的所有节点的第二节点参数值和所有边的第二边参数值。
可选的,若所述第二系统状态不为所述预设状态,执行步骤S23。
其中,该可选的实施方式在图2中未示出,具体可以参考上文中相关的类似描述。
S213、测试设备根据所述第二系统状态、所述第二节点参数值、所述第二边参数值、第二预期状态以及第二预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第二测评结果,并结束本流程。
S214、测试设备根据所述边排序算法,从未遍历完成的节点S(i+x)对应的边中确定第三边;从所述语料库中选取所述第三边对应的第三语料;将所述第三语料发送至所述被测设备。
本申请中,当测试设备判断所述节点Si的所有边对应的节点S(i+x)未遍历完成时,需要从未遍历完成的节点S(i+x)对应的边中确定第三边;从所述语料库中选取所述第三边对应的第三语料,确保所有的语料都能在正确的路径上被覆盖执行。
S215、测试设备根据所述被测设备针对所述第三语料的响应信息,确定所述被测设备的第三系统状态;根据所述第三系统状态,更新所述状态机图的所有节点的第三节点参数值和所有边的第三边参数值。
其中,测试设备根据所述被测设备针对所述第三语料的响应信息,确定所述被测设备的第三系统状态的具体实施方式可以参考上文中关于第一系统状态的相关描述,在此不再赘述。
可选的,在测试设备根据所述被测设备针对所述第三语料的响应信息,确定所述被测设备的第三系统状态之后,所述方法还包括:
判断所述第三系统状态是否为预设状态,所述预设状态包括成功状态或失败状态;
若所述第三系统状态为所述预设状态,执行所述的根据所述第三系统状态,更新所述状态机图的所有节点的第三节点参数值和所有边的第三边参数值。
可选的,若所述第三系统状态不为所述预设状态,执行步骤S23。
其中,该可选的实施方式在图2中未示出,具体可以参考上文中相关的类似描述。
S216、测试设备根据所述第三系统状态、所述第三节点参数值、所述第三边参数值、第三预期状态以及第三预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第三测评结果。
在图2所描述的方法中,能够保证状态机图加载海量数据,快速收敛完成状态机图和所有语料的遍历,将所有的语料映射到不同的状态路径上进行测试,确保所有的语料在正确的路径上被覆盖执行,最终能得到端到端的任务成功率,同时,能够动态的实时判断被测设备的系统状态,动态的进行多轮对话准确率的测试,得到不同上下文的NLU识别率的准确结果。此外,还能够根据状态机图的配置,动态地生成测试路径和用例,不需要手工编写大量的测试用例,并且能够保证状态路径的全覆盖。
以上所述,仅是本申请的具体实施方式,但本申请的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本申请创造构思的前提下,还可以做出改进,但这些均属于本申请的保护范围。
请参见图5,图5是本申请实施例公开的一种测试设备的结构示意图。如图5所示,所述测试设备包括存储器51、一个或多个处理器52以及通信接口53。其中,存储器51、处理器52、通信接口53通过总线54或者其它方式连接,本申请实施例以通过总线54连接为例。通信总线可以是外设部件互连标准(peripheral component interconnect,PCI))总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述至少一个处理器52可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器52可以是微处理器或者该处理器52也可以是任何常规的处理器等,所述处理器52是所述测试设备5的控制中心,利用各种接口和线路连接整个测试设备5的各个部分。
所述存储器51可用于存储计算机程序和/或模块/单元,所述处理器52通过运行或执行存储在所述存储器51内的计算机程序和/或模块/单元,以及调用存储在存储器51内的数据,实现所述测试设备5的各种功能。所述存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据测试设备5的使用所创建的数据(比如音频数据)等。此外,存储器51可以包括非易失性和易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他存储器件。
需要说明的,图5仅仅是本申请实施例的一种可能的实现方式,图5所示的示意图仅仅是测试设备5的示例,并不构成对测试设备5的限定,实际应用中,测试设备还可以包括更多或更少的部件,例如测试设备5还可以包括输入输出设备、网络接入设备等。图5中描述的测试设备可以用于实施本申请图2中介绍的方法实施例中的部分或全部流程,可参见前述图2所述实施例中的相关阐述,这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现图2所示的方法流程。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现图2所示的方法流程。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于测试设备中。当然,处理器和存储介质也可以作为分立组件存在于测试设备中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (10)

1.一种基于人机对话的任务测试方法,其特征在于,所述基于人机对话的任务测试方法包括:
获取针对目标任务的状态机图,其中,所述状态机图的每个节点表示对话的状态,所述状态机图的每条边表示用户操作和对话上下文;
加载所述状态机图;
根据预设遍历算法,对所述状态机图的节点Si对应的所有边以及所述所有边对应的节点S(i+x)进行遍历,其中,i、x均为非负整数;
若所述状态机图的节点Si对应的所有边以及所述所有边对应的节点S(i+x)均遍历完成,且Si不是初始节点S0,根据预设的边排序算法,从所述所有边中确定第一边;
根据所述第一边的用户操作以及对话上下文的语义表示,从语料库中选取符合所述语义表示的第一语料;
将所述第一语料发送至被测设备;
根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态;
根据所述第一系统状态,更新所述状态机图的所有节点的第一节点参数值和所有边的第一边参数值;
根据所述第一系统状态、所述第一节点参数值、所述第一边参数值、第一预期状态以及第一预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第一测评结果。
2.根据权利要求1所述的基于人机对话的任务测试方法,其特征在于,所述基于人机对话的任务测试方法还包括:
若所述状态机图的节点Si对应的所有边未遍历完成,根据所述边排序算法,从未遍历完成的边中确定第二边;
从所述语料库中选取所述第二边对应的第二语料;
将所述第二语料发送至所述被测设备;
根据所述被测设备针对所述第二语料的响应信息,确定所述被测设备的第二系统状态;
根据所述第二系统状态,更新所述状态机图的所有节点的第二节点参数值和所有边的第二边参数值;
根据所述第二系统状态、所述第二节点参数值、所述第二边参数值、第二预期状态以及第二预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第二测评结果。
3.根据权利要求1所述的基于人机对话的任务测试方法,其特征在于,所述基于人机对话的任务测试方法还包括:
若所述所有边对应的节点S(i+x)未遍历完成,根据所述边排序算法,从未遍历完成的节点S(i+x)对应的边中确定第三边;
从所述语料库中选取所述第三边对应的第三语料;
将所述第三语料发送至所述被测设备;
根据所述被测设备针对所述第三语料的响应信息,确定所述被测设备的第三系统状态;
根据所述第三系统状态,更新所述状态机图的所有节点的第三节点参数值和所有边的第三边参数值;
根据所述第三系统状态、所述第三节点参数值、所述第三边参数值、第三预期状态以及第三预期参数值,对所述被测设备在所述目标任务上的成功率进行评估,获得第三测评结果。
4.根据权利要求1至3中任意一项所述的基于人机对话的任务测试方法,其特征在于,所述根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态之后,所述基于人机对话的任务测试方法还包括:
判断所述第一系统状态是否为预设状态,所述预设状态包括成功状态或失败状态;
若所述第一系统状态为所述预设状态,执行所述的根据所述第一系统状态,更新所述状态机图的所有节点的第一节点参数值和所有边的第一边参数值。
5.根据权利要求4所述的基于人机对话的任务测试方法,其特征在于,所述基于人机对话的任务测试方法还包括:
若所述第一系统状态不为所述预设状态,根据所述预设遍历算法,对所述状态机图的节点Si对应的所有边以及所述所有边对应的节点S(i+x)进行遍历。
6.根据权利要求1所述的基于人机对话的任务测试方法,其特征在于,所述根据所述被测设备针对所述第一语料的响应信息,确定所述被测设备的第一系统状态包括:
根据所述被测设备针对所述第一语料的响应信息,生成状态表达式;
解析所述状态表达式,获得所述被测设备的第一系统状态。
7.根据权利要求1至6中任意一项所述的基于人机对话的任务测试方法,其特征在于,所述获取针对目标任务的状态机图之前,所述基于人机对话的任务测试方法还包括:
根据所述目标任务的槽位和上下文的不同状态组合,确定所述目标任务包括的多个节点;
分析所述多个节点之间存在的多条边;
获取每条所述边对应的用户操作的语义表示;
根据所述多个节点、所述多条边以及每条所述边对应的用户操作的语义表示,生成所述目标任务的状态机图。
8.一种测试设备,其特征在于,包括处理器和存储器;所述存储器,用于存储指令;所述处理器,用于调用所述存储器中的指令,使得所述测试设备执行如权利要求1至7中任一项所述的基于人机对话的任务测试方法。
9.一种测试系统,其特征在于,所述测试系统包括测试设备和被测设备,其中,所述测试设备用于执行如权利要求1至7中任一项所述的基于人机对话的任务测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至7中任一项所述的基于人机对话的任务测试方法。
CN202010943632.7A 2020-09-09 2020-09-09 基于人机对话的任务测试方法、相关设备及存储介质 Pending CN114238066A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010943632.7A CN114238066A (zh) 2020-09-09 2020-09-09 基于人机对话的任务测试方法、相关设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010943632.7A CN114238066A (zh) 2020-09-09 2020-09-09 基于人机对话的任务测试方法、相关设备及存储介质

Publications (1)

Publication Number Publication Date
CN114238066A true CN114238066A (zh) 2022-03-25

Family

ID=80742792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010943632.7A Pending CN114238066A (zh) 2020-09-09 2020-09-09 基于人机对话的任务测试方法、相关设备及存储介质

Country Status (1)

Country Link
CN (1) CN114238066A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1435781A (zh) * 2003-02-24 2003-08-13 杨炳儒 一种基于信息挖掘的智能决策支持构造方法
US8325880B1 (en) * 2010-07-20 2012-12-04 Convergys Customer Management Delaware Llc Automated application testing
CN111611357A (zh) * 2019-02-25 2020-09-01 北京嘀嘀无限科技发展有限公司 人机对话系统的配置方法、多轮对话配置平台及电子设备
US20200279002A1 (en) * 2019-02-28 2020-09-03 Naver Corporation Method and system for processing unclear intent query in conversation system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1435781A (zh) * 2003-02-24 2003-08-13 杨炳儒 一种基于信息挖掘的智能决策支持构造方法
US8325880B1 (en) * 2010-07-20 2012-12-04 Convergys Customer Management Delaware Llc Automated application testing
CN111611357A (zh) * 2019-02-25 2020-09-01 北京嘀嘀无限科技发展有限公司 人机对话系统的配置方法、多轮对话配置平台及电子设备
US20200279002A1 (en) * 2019-02-28 2020-09-03 Naver Corporation Method and system for processing unclear intent query in conversation system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘继明;孟亚磊;万晓榆;: "基于小样本机器学习的跨任务对话系统", 重庆邮电大学学报(自然科学版), no. 03, 15 June 2019 (2019-06-15) *
廖锋;陈墩金;罗家锋;: "Web回归测试系统的设计与实现", 数据通信, no. 06, 28 December 2009 (2009-12-28) *

Similar Documents

Publication Publication Date Title
US11113475B2 (en) Chatbot generator platform
KR102302609B1 (ko) 신경망 아키텍처 최적화
US6505162B1 (en) Apparatus and method for portable dialogue management using a hierarchial task description table
US20180261205A1 (en) Flexible and expandable dialogue system
US20200233624A1 (en) Method, device and computer program product for updating user interface
CN113849162B (zh) 一种利用模型驱动和深度神经网络相结合的代码生成方法
CN111177307A (zh) 一种基于语义理解相似度阀值配置的测试方案及系统
Freed Conversational ai
CN116629338B (zh) 一种模型数据的处理方法、相关装置、设备以及存储介质
CN111368029B (zh) 基于意图三元组的交互方法、装置、设备及存储介质
CN115836304A (zh) 利用基于示例的语音机器人开发技术更新受训练语音机器人
CN113778864A (zh) 一种测试用例的生成方法和装置、电子设备和存储介质
CN110489730A (zh) 文本处理方法、装置、终端及存储介质
CN112784024B (zh) 一种人机对话的方法、装置、设备以及存储介质
US11449726B1 (en) Tailored artificial intelligence
US11604928B2 (en) Efficiently managing predictive changes for a conversational agent
CN112783513A (zh) 一种代码风险检查方法、装置及设备
CN114238066A (zh) 基于人机对话的任务测试方法、相关设备及存储介质
CN116186219A (zh) 一种人机对话交互方法方法、系统及存储介质
CN118132687A (zh) 语句处理和类目模型的训练方法、装置、设备及介质
CN114595318A (zh) 一种客服回复质量评价方法及系统
McTear et al. Dialog management
CN111310847A (zh) 训练要素分类模型的方法和装置
Mahmood et al. Dynamic Natural Language User Interfaces Using Microservices.
US12087287B1 (en) Induction of dialog flow within a conversational natural language system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination