对话管理方法及系统、设备和存储介质与流程

文档序号:22929633发布日期:2020-11-13 16:27阅读:117来源:国知局
对话管理方法及系统、设备和存储介质与流程

本发明涉及人工智能技术领域,尤其涉及一种对话管理方法及系统、设备和存储介质。



背景技术:

目前,人工智能领域里基于自然语言理解(naturelanguageunderstanding,nlu)技术和对话管理(dialogmanagement)技术的交互型机器人已经广泛应用于信息查询、旅游票务、商业购物等领域;通过有限状态机(finitestatemachine,fsm)实现策略的优选和执行,帮助机器人自动回复以完成人机对话。旅游行业的订单、酒店、交通等业务大量涉及智能客服业务,很多业务相关信息的设定和操作都能通过智能客服平台进行,因此包括基于业务的集意图和词槽设定、配置、解析的智能客服应用在各类相关平台或项目中都有较广的应用前景。

智能客服机器人是一种使用自然语言与用户进行交流的人工智能信息系统,它采用包括自然语言理解、机器学习技术在内的多项智能人机交互技术,能够识别并理解用户以文字或语音形式提出的问题,通过语义分析理解用户意图,并以拟人化的方式与用户沟通,向用户提供信息咨询等相关服务,相关服务的实现方式通常包括单轮问答和和多轮对话,尤其以多轮对话的智能客服模式应用更广。

状态机是一组状态的集合,是协调相关信号动作,完成特定操作的控制中心。状态机根据因果关系可以归纳为四个要素,即当前状态,条件,动作,下个状态,即当前状态和条件是因,动作和下个状态是果,在多轮对话的应用中需要依赖于意图和槽值进行流程的跳转。对于相对复杂的逻辑,用状态机对这些常见情况进行抽象表达相比代码显得更为直观清晰,也更容易维护和调试。但是,当应用场景每次发生迁移时,都需要完成大量新的开发工作。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中对话管理方法在应用场景迁移的情况下开发量较大的缺陷,提供一种对话管理方法及系统、设备和存储介质。

本发明是通过下述技术方案来解决上述技术问题:

本发明提供了一种对话管理方法,所述对话管理方法包括:

构建可视化的状态机模型,所述状态机模型包括多个节点及任意两个所述节点之间的跳转关系;其中,所述节点包括:对话状态、触发事件、执行动作;所述跳转关系用于表示任意两个所述节点的先后顺序;

获取用户的对话数据,所述对话数据包括意图和槽,根据所述对话数据更新一对话状态数据库;

根据所述对话状态数据库解析所述状态机模型,获取对话策略。

较佳地,所述对话状态数据库中还包括对话轮次、情景先验信息、历史动作信息。

较佳地,利用可视化工具构建所述状态机模型,所述可视化工具包括processon、visualparadigm、draw.io。

较佳地,所述根据所述对话状态数据库解析所述状态机模型,获取所述对话策略的步骤包括:

根据所述对话状态数据库中的对话数据解析所述状态机模型,确定备选对话策略;

若所述备选对话策略的数量>1,根据策略评分规则对所有所述备选对话策略进行评分,将得分最高的备选对话策略作为所述对话策略;

当所述备选对话策略的数量=1,将所述备选对话策略作为所述对话策略;

当所述备选对话策略的数量=0,将一预设对话策略作为所述对话策略。

较佳地,所述根据所述对话状态数据库解析所述状态机模型,获取所述对话策略的步骤之后还包括:

根据所述对话策略确定话术信息,将所述话术信息发送至所述用户。

较佳地,所述根据所述对话状态数据库解析所述状态机模型,获取所述对话策略的步骤之后还包括:

根据所述对话策略更新所述对话状态数据库。

本发明提供了一种对话管理系统,所述对话管理系统包括:

状态机模型生成模块,用于构建可视化的状态机模型,所述状态机模型包括多个节点及任意两个所述节点之间的跳转关系;其中,所述节点包括:对话状态、触发事件、执行动作;所述跳转关系用于表示任意两个所述节点的先后顺序;

对话数据获取模块,用于获取用户的对话数据,所述对话数据包括意图和槽,根据所述对话数据更新一对话状态数据库;

对话策略获取模块,用于根据所述对话状态数据库解析所述状态机模型,获取对话策略。

较佳地,所述对话状态数据库中还包括对话轮次、情景先验信息、历史动作信息。

较佳地,所述状态机模型生成模块利用可视化工具构建所述状态机模型,所述可视化工具包括processon、visualparadigm、draw.io。

较佳地,所述对话策略获取模块根据所述对话状态数据库中的对话意图数据解析所述状态机模型,确定备选对话策略;

若所述备选对话策略的数量>1,根据策略评分规则对所有所述备选对话策略进行评分,将得分最高的备选对话策略作为所述对话策略;

当所述备选对话策略的数量=1,将所述备选对话策略作为所述对话策略;

当所述备选对话策略的数量=0,将一预设对话策略作为所述对话策略。

较佳地,所述对话管理系统还包括:

话术信息确定模块,用于根据所述对话策略确定话术信息,

话术信息发送模块,用于将所述话术信息发送至所述用户。

较佳地,所述对话管理系统还包括数据库更新模块,用于根据所述对话策略更新所述对话状态数据库。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的对话管理方法。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的对话管理方法的步骤。

本发明的积极进步效果在于:与现有技术相比,本发明提供了一种对话管理方法及系统、设备及存储介质,通过可视化工具进行状态机建模并解析,实现在应用场景迁移的情况下不必重新进行大量的开发工作,大幅节省了开发需要投入的人力,同时也能方便业务人员直接参与对话系统的设计。

附图说明

图1为本发明实施例1的对话管理方法的流程图。

图2为本发明实施例2的对话管理系统的模块示意图。

图3为本发明实施例3的电子设备的结构框图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例涉及一种对话管理方法,通过对话流程中槽、意图、对话条件、执行动作、以及相关对话数据在内的配置,实现了人机会话等功能。具体实现的技术构思为:将用户的对话数据通过nlu(naturelanguageunderstanding,自然语言识别)将对话数据抽象化为意图及槽值并输入dm(dialogmanegement,对话管理)引擎后,结合解析对话状态数据库得到对话策略,并匹配输出语义返回给用户。

对话状态是一种包含前一时刻到后一时刻的对话历史、目标状态、触发条件的数据结构,按功能可划分为闲聊型、任务型、问答型和推荐型。在不同类型的聊天系统中,dm(dialogmanegement,对话管理)系统的模式不尽相同。本实施例中,涉及一种任务型对话的情况,即在nlu的基础上,通过对意图和槽位的识别和对于对话状态数据库的更新,实现对用户需求的识别,进行引导、询问、澄清、确认对话,直至输出合适的语义(输出话术)。需要指出的是,本实施例涉及的方法也可用于问答型对话,即在判断问句的类型识别与分类的基础上进行文本检索及知识库的匹配,从而生成用户想要的文本片段或知识库实体;也可以用于推荐型对话系统,即对用户感兴趣并且匹配的内容进行评分排序和筛选等操作,以便生成合适的推荐内容。用户侧的意图、槽值,以及历史会话信息等,都会影响某一轮对话的走向,进而影响机器人侧的动作执行。

对话状态数据库根据所有对话历史信息推断当前对话状态和用户目标,具体实现包括基于规则的方法、生成式模型、判别式模型等。这里所有对话历史信息包括了对话场景、意图、槽值、前序状态、前序动作等;目前主流的是基于有限状态机的方法,即按照设计的对话流程推进多轮对话,通过状态的转换实现对话的进行。本实施例在此基础上将对话逻辑进行建模,即将对话逻辑写入状态机模型,利用dm引擎对其进行加载解析。

如图1所示,本实施例提供了一种对话管理方法,其特征在于,所述对话管理方法包括以下步骤:

s1.构建可视化的状态机模型,所述状态机模型包括多个节点及任意两个所述节点之间的跳转关系;其中,所述节点包括:对话状态、触发事件、执行动作;所述跳转关系用于表示任意两个所述节点的先后顺序;

状态机表述一种对象行为,从对象的初始状态开始响应事件并执行某些动作直至引起状态转换,在新状态下又继续响应事件并执行动作,如此循环直到对象的终结状态。状态机模型显示了对象如何根据当前状态对不同事件做出反应的动态行为,主要由对话状态、触发事件和执行动作等元素组成。

本实施例中,通过可视化工具绘制状态机图,从而实现对话状态机建模。建模遵循一定的规则,例如以不同形状的组件代表各类元素:如单箭头直线表示状态跳转,用于连接不同的框图;椭圆表示对话状态,其中存放着包括意图,槽值;圆角矩形代表机器人的执行动作;状态机模型中支持迭代替换,即某个变量可以依赖其他变量。

s2.获取用户的对话数据,所述对话数据包括意图和槽,根据所述对话数据更新一对话状态数据库;

在多轮对话中意图和槽值共同推动对话进行,对于智能客服机器人而言,即通过获取最新用户交互得到的数据,根据口语理解的结果判断用户的表达企图,获取最新用户意图及槽位信息。从而更新对话状态数据库。

从对话数据中判断意图一般通过如下方式:基于模板的匹配,即查询非常符合规则的类别,通过规则解析的方式来获取查询的意图;基于搜索规则词库,通常采用自然语言处理的工具包抽取候选关键词,根据黑名单词典进行清洗,然后得到关键词并在词库中进行匹配得到对应的意图,对于复杂的对话可以采用词频统计筛选关键词;基于机器学习;基于神经网络。本实施例主要采用前两种方式从对话数据中获取意图和槽值,并由dm引擎将获取的意图输入对话状态数据库。对话状态数据库存储了到当前时刻为止全部的对话信息,包括当前意图识别的解析结果,槽的填充状况,对话状态,以及历史对话信息等,此步骤即更新对话状态数据库,并根据现有的对话数据解析对话状态机模型,获得对话系统下一步的回复。

s3.根据所述对话状态数据库解析所述状态机模型,获取对话策略。

对状态机模型进行解析即对某个业务专用类中的状态、转换过程及事件响应的描述。本实施例中通过对酒店咨询类的实例化,实现解析对应的酒店咨询状态机模型;其中涉及的相关数据存储在对话状态数据库中,本实施例中用了redis(remotedictionaryserver,远程字典服务)数据库。

具体地,定义一酒店咨询类:

publicvoidinittrackr(strincallid){

this.callid=callid;

this.id=“”;

this.resetallslot();

this.resetallchangedslot();

this.paused=0;

this.latestactionname=“greet”;

this.latestmessage=“”;

this.context=newarraylist();

this.dialogstateflag=“init”;

this.nothearrepeattime=0;

this.notrecognizerepeattime=0;

this.nlgresult=“”;

this.greetrepeattime=0;

this.asknamerepeattime=0;

this.checknotconfirmrepeattime=0;

this.inconformityrepeattime=0;

this.doublechecknotforwardtime=0;

this.text=“”;

this.orderid=“”;

this.extensions=“”;

this.ttsurlresult=“”;

this.supportoralreservation=0;}

将其实例化得到:

本实施例中,对话状态数据库中还包括对话轮次、情景先验信息、历史动作信息。其中,情景先验信息可以为重复次数、无法识别的次数、用户要求重复的次数等,从而在某些需要次数的限定的场景中当到达上限后输出特定的回复。

本实施例中,利用可视化工具构建所述状态机模型,可视化工具可以是processon、visualparadigm、draw.io等,本实施例采用了draw.io在线可视化工具对状态机建模。

具体地,基于业务需求进行可视化任务场景搭建,将整个对话交互过程抽象为信息收集(对话数据)、条件判断(触发条件)、响应回复(执行动作)等要素,如ellipse对应椭圆符号,表示状态;edge对应箭头符号,表示含有起始点的连接关系;rhombus对应菱形符号,表示判断条件;rounded对应圆角矩形符号,对应执行动作;圆角矩形也可表示参数处理。

这些要素通过状态机模型生成后,可以由draw.io工具导出为文本格式配置文件如xml(extensiblemarkuplanguage,可扩展标记语言)文件。该xml文件中包含状态机模型中的每个元素且都有唯一的标识号。通过应用软件如python对文本配置文件进行脚本处理,将上述xml文件转为json配置文件,在dm引擎中加载该配置文件后进行解析以获取对话策略。业务人员可以利用工具直接进行建模省却了需求转达——技术人员绘制流程图——利用代码实现的过程。

本实施例中,根据所述对话状态数据库解析所述状态机模型,获取所述对话策略的步骤包括:

根据所述对话状态数据库中的对话数据解析所述状态机模型,确定备选对话策略;

若所述备选对话策略的数量>1,根据策略评分规则对所有所述备选对话策略进行评分,将得分最高的备选对话策略作为所述对话策略;

当所述备选对话策略的数量=1,将所述备选对话策略作为所述对话策略;

当所述备选对话策略的数量=0,将一预设对话策略作为所述对话策略。

具体地,即把当前意图作为键,对应的对话策略作为值。一个意图对应着多个对话策略,每个对话策略代表整个对话状态中的一个子流程,该子流程的输出值即作为对话的回复。可以设置一对话策略的打分项,根据当前状态结合意图、槽对每个对话策略的打分项进行累加,选择分数最高的打分项对应的对话策略作为回复。需要根据业务需求预设合理的打分规则,从而在一个意图满足多个对话策略的触发条件时,按前述打分的结果选择最高分数的对话策略,即为状态最匹配的对话策略。

本实施例中,当获取所述对话策略之后,根据所述对话策略确定话术信息,将所述话术信息发送至所述用户。

具体地,话术信息可以是根据业务需求制定的一组语言集合,每个对话策略对应一条或一组话术信息,用于作为输出给用户的对话回复,回复可以是文本形式,即智能在线客服的模式,也可以通过语音输出,即电话机器人客服的模式。例如:

当意图定义:没听清,要求复述;

输出话术定义为:重复上一条语音播报。

本实施例中,获取对话策略后,需要及时对所述对话状态数据库进行更新,以准备下一轮次的对话过程。

具体地,在对话回复中即包含了对话状态数据库更新的表达式,dm引擎通过解析表达式进行对话状态更新,例如,用户请求重复次数累加。

本实施例通过可视化工具进行状态机建模并解析,实现在应用场景迁移的情况下不必重新进行大量的开发工作,大幅节省了开发需要投入的人力,同时也能方便业务人员直接参与对话系统的设计。

实施例2

如图2所示,本实施例提供了一种对话管理系统,包括:

状态机模型生成模块11,用于构建可视化的状态机模型,所述状态机模型包括多个节点及任意两个所述节点之间的跳转关系;其中,所述节点包括:对话状态、触发事件、执行动作;所述跳转关系用于表示任意两个所述节点的先后顺序;

具体地,状态机模型生成模块11通过可视化工具绘制状态机图,从而实现对话状态机建模。建模遵循一定的规则,例如以不同形状的组件代表各类元素:如单箭头直线表示状态跳转,用于连接不同的框图;椭圆表示对话状态,其中存放着包括意图,槽值;圆角矩形代表机器人的执行动作;状态机模型中支持迭代替换,即某个变量可以依赖其他变量。

对话数据获取模块12,用于获取用户的对话数据,所述对话数据包括意图和槽,根据所述对话数据更新一对话状态数据库;

具体地,对话数据获取模块12主要采用前两种方式从对话数据中获取意图和槽值,并由dm引擎将获取的意图输入对话状态数据库。对话状态数据库存储了到当前时刻为止全部的对话信息,包括当前意图识别的解析结果,槽的填充状况,对话状态,以及历史对话信息等,此步骤即更新对话状态数据库,并根据现有的对话数据解析对话状态机模型,获得对话系统下一步的回复。

对话策略获取模块13,用于根据所述对话状态数据库解析所述状态机模型,获取对话策略;

具体地,对话策略获取模块13对状态机模型进行解析,本实施例中通过对酒店咨询类的实例化,实现解析对应的酒店咨询状态机模型;其中涉及的相关数据存储在对话状态数据库中,本实施例中用了redis(remotedictionaryserver,远程字典服务)数据库。本实施例中,对话状态数据库中还包括对话轮次、情景先验信息、历史动作信息。

本实施例中,所述状态机模型生成模块11利用可视化工具构建所述状态机模型,所述可视化工具包括processon、visualparadigm、draw.io。

具体地,状态机模型生成模块11基于业务需求进行可视化任务场景搭建,将整个对话交互过程抽象为信息收集(对话数据)、条件判断(触发条件)、响应回复(执行动作)等要素,如ellipse对应椭圆符号,表示状态;edge对应箭头符号,表示含有起始点的连接关系;rhombus对应菱形符号,表示判断条件;rounded对应圆角矩形符号,对应执行动作;圆角矩形也可表示参数处理。这些要素通过状态机模型生成后,可以由draw.io工具导出为文本格式配置文件如xml(extensiblemarkuplanguage,可扩展标记语言)文件。该xml文件中包含状态机模型中的每个元素且都有唯一的标识号。通过应用软件如python对文本配置文件进行脚本处理,将上述xml文件转为json配置文件,在dm引擎中加载该配置文件后进行解析以获取对话策略。

本实施例中,对话策略获取模块13根据所述对话状态数据库中的对话意图数据解析所述状态机模型,确定备选对话策略;

具体地,若所述备选对话策略的数量>1,根据策略评分规则对所有所述备选对话策略进行评分,将得分最高的备选对话策略作为所述对话策略;

当所述备选对话策略的数量=1,将所述备选对话策略作为所述对话策略;

当所述备选对话策略的数量=0,将一预设对话策略作为所述对话策略。

具体地,即把当前意图作为键,对应的对话策略作为值。一个意图对应着多个对话策略,每个对话策略代表整个对话状态中的一个子流程,该子流程的输出值即作为对话的回复。可以设置一对话策略的打分项,根据当前状态结合意图、槽对每个对话策略的打分项进行累加,选择分数最高的打分项对应的对话策略作为回复。需要根据业务需求预设合理的打分规则,从而在一个意图满足多个对话策略的触发条件时,按前述打分的结果选择最高分数的对话策略,即为状态最匹配的对话策略。

本实施例中,对话管理系统还包括:

话术信息确定模块14,用于根据所述对话策略确定话术信息,

话术信息发送模块15,用于将所述话术信息发送至所述用户。

具体地,话术信息可以是根据业务需求制定的一组语言集合,每个对话策略对应一条或一组话术信息,用于作为输出给用户的对话回复,回复可以是文本形式,即智能在线客服的模式,也可以通过语音输出,即电话机器人客服的模式。例如当意图定义为:没听清,要求复述;则输出话术定义为:重复上一条语音播报。

本实施例中还包括数据库更新模块16,用于根据所述对话策略更新所述对话状态数据库。

具体地,获取对话策略后,需要及时对所述对话状态数据库进行更新,以准备下一轮次的对话过程。在对话回复中即包含了对话状态数据库更新的表达式,dm引擎通过解析表达式进行对话状态更新,例如,用户请求重复次数累加。

本实施例通过可视化工具进行状态机建模并解析,实现在应用场景迁移的情况下不必重新进行大量的开发工作,大幅节省了开发需要投入的人力,同时也能方便业务人员直接参与对话系统的设计。

实施例3

图3为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1中的对话管理方法。图3显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图3所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。

总线33包括数据总线、地址总线和控制总线。

存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。

存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的对话管理方法。

电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图3所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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