一种对话管理方法及相关装置与流程

文档序号:17790566发布日期:2019-05-31 20:08阅读:189来源:国知局
一种对话管理方法及相关装置与流程

本申请涉及自然语言处理技术领域,特别涉及一种对话管理方法、对话管理系统、对话管理设备以及计算机可读存储介质。



背景技术:

随着信息技术的不断发展,人机对话技术仍然是人工智能中重点发展的技术。其中,多轮对话技术是实现智能人机交互系统的核心技术之一,具有广泛的应用场景,并且可以直接使用在具体的业务处理中,例如,酒店预定,火车票预定等。

目前,现有技术提供了多种技术对多轮对话进行驱动,包括基于知识库搜索的方式进行驱动,基于深度学习模型的方式进行驱动。但是,现有技术在如何高效简洁并且有逻辑的与具体业务快速结合实现多轮对话管理,均存在明显不足。基于知识库搜索的方式可以实现大范围的常用语句回答问题,但是在有逻辑的业务问题上无法得到很好的解决。而基于深度学习模型的方式,当训练数据数量不足时会严重影响多轮对话的准确率,而且对数据标注具有极高的要求,不利于快速应用在具体的业务领域中,前期构建效率较低。

因此,如何提高多轮对话系统解决多轮对话问题的效率是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种对话管理方法、对话管理系统、对话管理设备以及计算机可读存储介质,通过配置得到的节点逻辑树实现了对话管理,提高了对话管理中的逻辑性,还提高了对话管理的上线速度。

为解决上述技术问题,本申请提供一种对话管理方法,包括:

对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据;

根据所述意图解析数据在节点逻辑树中查找对应的意图根节点,根据词语识别数据对所述意图根节点的意图槽位进行填槽处理,得到初步意图解析数据;其中,所述节点逻辑树是根据配置信息进行配置处理得到的;

根据所述节点逻辑树判断所述初步意图解析数据是否为完整意图解析数据;

若是,则根据所述完整意图解析数据按照预设路径输出答案数据。

可选的,还包括:

在根据所述意图解析数据在所述节点逻辑树中查找对应的意图根节点之前,根据所述意图解析数据判断所述自然语言文本是否满足准入条件;

若是,则执行所述根据所述意图解析数据在节点逻辑树中查找对应的意图根节点的步骤。

可选的,对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据,包括:

对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据;

判断获取的对话上下文数据的话题与所述意图解析数据的话题是否不相同;

若是,则根据所述对话上下文数据更新所述意图解析数据。

可选的,对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据,包括:

根据意图识别规则对接收到的所述自然语言文本进行自然语言理解处理,得到所述意图解析数据。

可选的,对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据,包括:

根据意图相似度算法对接收到的所述自然语言文本进行自然语言理解处理,得到所述意图解析数据。

可选的,还包括:

当所述初步意图解析数据不为所述完整意图解析数据时,根据所述节点逻辑树确定下一个节点;

根据所述下一个节点的配置信息对所述初步意图解析数据进行槽位补充,直至所述初步意图解析数据为完整意图解析数据,以便根据所述完整意图解析数据输出答案数据。

本申请还提供一种对话管理系统,包括:

意图理解处理模块,用于对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据;

填槽处理模块,用于根据所述意图解析数据在节点逻辑树中查找对应的意图根节点,根据词语识别数据对所述意图根节点的意图槽位进行填槽处理,得到初步意图解析数据;

完整意图判断模块,用于根据所述节点逻辑树判断所述初步意图解析数据是否为完整意图解析数据;

答案输出模块,用于当所述初步意图解析数据为完整意图解析数据时,根据所述完整意图解析数据按照预设路径输出答案数据。

可选的,还包括:

下一节点确定模块,用于当所述初步意图解析数据不为所述完整意图解析数据时,根据所述节点逻辑树确定下一个节点;

槽位补充模块,用于根据所述下一个节点的配置信息对所述初步意图解析数据进行槽位补充,直至所述初步意图解析数据为完整意图解析数据,以便根据所述完整意图解析数据输出答案数据。

本申请还提供一种对话管理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的对话管理方法的步骤。

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

本申请所提供的一种对话管理方法,包括:对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据;根据所述意图解析数据在节点逻辑树中查找对应的意图根节点,根据词语识别数据对所述意图根节点的意图槽位进行填槽处理,得到初步意图解析数据;其中,所述节点逻辑树是根据配置信息进行配置处理得到的;根据所述节点逻辑树判断所述初步意图解析数据是否为完整意图解析数据;若是,则根据所述完整意图解析数据按照预设路径输出答案数据。

通过在配置得到的节点逻辑树上进行对话管理,也就是通过节点逻辑树查找到对应的意图根节点的意图槽位,实现槽位填充,并且再通过节点逻辑树确定下一个执行的节点,实现了节点之间的逻辑连接,并且通过配置得到的节点逻辑树具有较强的逻辑性,可以提高对话管理过程的逻辑性,提高用户体验,并且可以适用于较为特定的业务领域中,同样节点逻辑树配置速度较快,可以以较高的效率实现对话管理。

本申请还提供一种对话管理系统、对话管理设备以及计算机可读存储介质,具有以上有益效果,在此不做赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种对话管理方法的流程图;

图2为本申请实施例所提供的一种对话管理系统的结构示意图。

具体实施方式

本申请的核心是提供一种对话管理方法、对话管理系统、对话管理设备以及计算机可读存储介质,通过配置得到的节点逻辑树实现了对话管理,提高了对话管理中的逻辑性,还提高了对话管理的上线速度。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

现有技术提供了多种技术对多轮对话进行驱动,包括基于知识库搜索的方式进行驱动,基于深度学习模型的方式进行驱动。但是,现有技术在如何高效简洁并且有逻辑的与具体业务快速结合实现多轮对话管理,均存在明显不足。基于知识库搜索的方式可以实现大范围的常用语句回答问题,但是在有逻辑的业务问题上无法得到很好的解决。而基于深度学习模型的方式,当训练数据数量不足时会严重影响多轮对话的准确率,而且对数据标注具有极高的要求,不利于快速应用在具体的业务领域中,前期构建效率较低,不利于对话管理系统在简单的逻辑业务中进行快速搭建。

因此,本申请提供一种对话管理方法,通过在配置得到的节点逻辑树上进行对话管理,也就是通过节点逻辑树查找到对应的意图根节点的意图槽位,实现槽位填充,并且再通过节点逻辑树确定下一个执行的节点,实现了节点之间的逻辑连接,并且通过配置得到的节点逻辑树具有较强的逻辑性,可以提高对话管理过程的逻辑性,提高用户体验,并且可以适用于较为特定的业务领域中,同样节点逻辑树配置速度较快,可以以较高的效率实现对话管理。

请参考图1,图1为本申请实施例所提供的一种对话管理方法的流程图。

本实施例中,该方法可以包括:

s101,对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据;

本步骤旨在对接收到的自然语言文本进行自然语言理解处理,进行理解得到对应的意图解析数据。

其中,接收到的自然语言文本是通过自然语言识别对一段语音进行识别得到的。也就是将语音信息转换成文本信息以便本步骤中可以对其进行自然语言理解处理,也就是对该段自然语言文本进行意图识别,得到对应的意图解析数据。

本步骤中可以选用现有技术提供的任意一种自然语言理解处理方法,在此不做具体限定。

需要说明的是,本步骤中进行自然语言理解处理,可以得到意图解析数据和词语识别数据。

s102,根据意图解析数据在节点逻辑树中查找对应的意图根节点,根据词语识别数据对意图根节点的意图槽位进行填槽处理,得到初步意图解析数据;其中,节点逻辑树是根据配置信息进行配置处理得到的;

在s101的基础上,本步骤旨在根据意图解析数据查找到为了完成对话对应的意图根节点的意图槽位,也就是还需要进行补充的问题内容。一般的某一个意图对应了多个意图槽位,例如,如果意图是查询天气,那么意图槽位则根据配置好的内容可能包括地点、时间等槽位,此时就需要从自然语言文本中获取到填充这些意图槽位的信息,也就是填槽处理。

进行填槽处理的过程中,还会判断利用自然语言文本中的数据是否可以将所有意图槽位全部进行填槽处理,也就是判断填槽处理后是否还存在空的意图槽位,即未填槽的意图槽位。如果还存在空的意图槽位,那么就发出相应的询问,以便获取到对应的补充数据,对剩余的意图槽位进行填槽处理。

需要说明的是,本步骤中根据意图解析数据查找到的意图槽位是在节点逻辑树中进行查找的。而本申请中的节点逻辑树是通过技术人员输入的配置文件进行配置处理生成的,区别于现有技术中通过知识库或深度学习得到的模型,技术人员对其进行配置,配置速度更快,节点逻辑树中节点之间的逻辑性更强,更加适用于具体的业务处理中。

s103,根据节点逻辑树判断初步意图解析数据是否为完整意图解析数据;若是,则执行s104;若否,则执行s105;

在本步骤旨在判断其是否为完整意图解析数据,如果是完整的意图解析数据,则表示此时对话的内容是完整的可以进行回答的,直接输出对应的答案。如果不是完整意图解析数据,则表示存在下一个节点,继续根据下一个节点的内容对初步意图解析数据进行补充,以便根据最后得到的完整意图解析数据输出对应的答案数据。

本步骤中具体的判断方式可以是判断是否还存在下一个节点,如果是则表示目前的对话还可以根据下一节点进行下去,还需要对初步意图解析数据进行补充,如果不存在下一个节点,则表示此时初步意图解析数据为完整意图解析数据,可以进行回答。

s104,根据完整意图解析数据按照预设路径输出答案数据。

在s103的基础上,本步骤旨在根据完整意图解析数据输出答案数据。其中,本实施例中获取答案数据的源头可以是节点逻辑树,也可以是知识库,还可以通过外部的接口进行答案数据的请求,例如,如果此时请求北京的天气,那么就通过查询天气的接口进行天气答案的请求,得到对应的答案数据。

s105,当初步意图解析数据不为完整意图解析数据时,根据节点逻辑树确定下一个节点;

s106,根据下一个节点的配置信息对初步意图解析数据进行槽位补充,直至初步意图解析数据为完整意图解析数据,以便根据完整意图解析数据输出答案数据。

在s103的基础上,s105和s106旨在根据下一个节点进行槽位补充,得到补充后的意图解析数据,循环进行是否为完整意图解析数据的判断,直至得到完整意图解析数据,再根据该完整意图解析数据输出答案数据。

可选的,实施例中,还可以包括:

步骤1,在根据意图解析数据在节点逻辑树中查找对应的意图根节点之前,根据意图解析数据判断自然语言文本是否满足准入条件;若是,则执行步骤2;

步骤2,执行根据意图解析数据在节点逻辑树中查找对应的意图根节点的步骤。

本可选方案主要是在查找意图槽位之前对自然语言文本是否满足准入条件,也就是此时接收到的语音信息是否可以满足准入条件进行相应的处理,若是,则执行查找对应意图槽位的步骤。

其中,本可选方案的准入条件也是记录在节点逻辑树中,也就是技术人员前期通过进行配置,接收到对应的配置信息,再对配置信息进行处理得到对应的节点逻辑树。

可选的,本实施例中的s101可以包括:

步骤1,对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据;

步骤2,判断获取的对话上下文数据的话题与意图解析数据的话题是否不相同;若是,则执行步骤3;

步骤3,根据对话上下文数据更新意图解析数据。

本可选方案主要是进行话题切换,当话题不相同时,进行话题切换处理,也就是根据对话上下文数据对意图解析数据进行更新。

可选的,本实施例中的s101还可以包括:

根据意图识别规则对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据。

其中,基于规则的意图识别,主要是通过配置意图特征词、意图句式模板的方式进行,具有快速可运营的特性。

可选的,本实施例中的s101也可以包括:

根据意图相似度算法对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据。

其中,基于相似度计算的意图识别,主要是通过计算用户话述与标准意图之间的相似度进行,目前采用了业界常用的句子相似句算法,基于深度模型算法cnn的cosine相似句计算。

综上,本实施例通过在配置得到的节点逻辑树上进行对话管理,也就是通过节点逻辑树查找到对应的意图根节点的意图槽位,实现槽位填充,并且再通过节点逻辑树确定下一个执行的节点,实现了节点之间的逻辑连接,并且通过配置得到的节点逻辑树具有较强的逻辑性,可以提高对话管理过程的逻辑性,提高用户体验,并且可以适用于较为特定的业务领域中,同样节点逻辑树配置速度较快,可以以较高的效率实现对话管理。

基于上一实施例,本申请实施例还提供一种更加具体的对话管理方法。

本实施例中,该方法可以包括:

1、意图识别的实现,就是识别出用户话述的真实意图。由于同一个意图的表述形式有很多,例如查天气,用户可以说“帮我查询下天气”、“今天下雨吗”、“北京明天热不”等等。怎么准确识别意图成了解决用户问题的关键所在。目前,我们主要采用了两种并行的手段进行:基于规则的意图识别和基于相似计算的意图识别。基于规则的意图识别,主要是通过配置意图特征词、意图句式模板的方式进行,具有快速可运营的特性。基于相似度计算的意图识别,主要是通过计算用户话述与标准意图之间的相似度进行,目前采用了业界常用的句子相似句计算,基于深度模型算法cnn(convolutionalneuralnetwork)的cosine(相似度算法)相似句计算。

2、槽位的识别,就是识别出用户话述中的槽位信息,例如“今天天气怎么样”中的[时间]“今天”,“帮我看看北京下雨不”的[地点]“北京”。在我们的系统中,我们主要通过词语匹配的方式进行槽位的识别。此外,也进行了一般型的数字、时间词语的通用识别模块,例如:我想买入工商银行以3.45元100手,3.45元、100手这样的数字。

3、对话管理,系统基于多轮逻辑树,用上下文信息结构进行存储当前对话状态,对于用户输入通过上面的意图识别、槽位识别,确定用户意图切换或槽位更新回答等逻辑,进行不同分枝处理。

其中,意图是指系统为了明确用户目的而抽象提炼出来的标识符号,是在一个对话任务中要理解的用户目的(例如用户说”换到中央台”,那对应电视控制场景下的对话意图就是”换台”;”北京天气”,对话意图是“查天气”)。

槽位是指完成对话意图时所需要确定的要素点,例如:查天气,需要知道:地方、时间等基本信息,“买车票”意图需要知道出发站、达到站、出发时间等要素信息。一个槽位具有什么样的属性要求,跟什么样的词语进行关联,需要设置对话意图关联的词槽。当用户没有提供这些信息,系统需要追问,因此往往在配置槽位的时候,需要配置槽位的追问话述。例如:在查询天气的时候,用户没有说地点,系统则需要按照地点槽位进行追问。槽位是实现意图的必要项。槽位的填充方式是具有多种的。一般常见的是向用户询问,即:用户没有说就问。这类从用户话述中进行槽位抽取的方式,叫做词类填槽。另一类,比较常见的是接口填槽,例如用户找回密码,用户没有说他具体什么密码忘记了。可以通过统计用户登录失败的情况,以api(applicationprogramminginterface应用程序编程接口)接口请求的方式获取失败密码信息进行填槽,这类叫做api填槽。在对话系统中,主要是这两类方式。

依赖槽,上述列举的槽位都是平行槽,没有相互依赖关系的,例如:查天气中,地点和时间,是没有谁决定谁的关系,这类槽叫做平行槽。与之对应的是依赖槽,即槽位往往有决定/依赖关系,例如:在密码找回中,密码类型(银行密码、证券密码),决定了具体密码账户(银行密码下,就会问具体哪个银行卡或账号忘记了,而证券密码下则会问具体哪个券商的)。

条件是对话系统非常关键的一部分内容。为了让对话满足一定的业务逻辑,系统的回复具有逻辑性,就需要让前后对话满足一定的条件约束。例如:查询天气时,只有当时间、地点都确定好了,才可以给出答案;找回密码,密码类型是银行密码时,才能进行诸如“你是哪个银行的密码忘记了,工商银行、农业银行?”这样的询问;语音下单,只有当用户终端支持下单页面,才有必要进行继续追问,买入什么股票、买入多少数量等。对于不支持的系统,例如塞班系统、低版本的软件系统,就不必要继续询问。只有具有了逻辑完备的条件,保证了对话业务的逻辑完备性,才能让对话管理系统更加智能。在系统中,条件可以定义为诸如:xx槽位取值状态成功/失败;xx槽位包含xx值;xx数字型槽位大于/小于/等于xx数值等等。正是由于多轮条件的组件模块化抽象,才使得系统能够有力支持广范围的各类复杂业务场景逻辑,使得系统具有很强的普适特性。

答案是在获取必要信息之后,对话管理系统应该完成什么样的动作或给出什么样的回应给用户,然后达到用户的目的。在实际业务,有些答案是一段文本展示,有些答案是一段语音播报或视频,有些答案是让电梯自动开门或点亮去9楼的面板数字键这样的动态指令。答案,是对话系统实现的目的所在,是真实解决用户需求关键。本实施例中对答案部分进行组件模块化抽象,使得系统能够满足广范围的业务答案需求,例如:交互指令、产品页面跳转、文本展现、语音播报等。

多轮节点逻辑树是在我们多轮系统中的重要内容,基本对话要素点是通过多轮节点逻辑树联系起来的。一个节点,是完成一个用户意图所需要的基本处理节点,其包含了准入条件的判断,进入节点后输出什么样的答案,以及输出答案之后还需要继续进行什么样的槽位询问。节点和节点,按照树状图的组织方式,就形成了多轮节点树。一个父节点可以含有多个子节点,父节点槽位询问完毕之后,就向子节点进行转移。如果存在某个子节点的条件能够被满足,则就进入子节点,进入该子节点后,则做类似于父节点的事情:给答案、询问槽位、向子节点触发。节点与节点之间的上下层级关系、准入条件组合关系、节点优先级顺序关系,让本文多轮系统具有强大的复杂业务逻辑刻画和支持能力。

需要说明的是,现有技术中连接多轮节点逻辑树的方式是通过神经网络模型进行连接的,逻辑性较弱。本实施例中通过配置信息生成多轮节点逻辑树,也就是节点逻辑树。

本申请实施例提供了一种对话管理方法,可以通过在配置得到的节点逻辑树上进行对话管理,也就是通过节点逻辑树查找到对应的意图根节点的意图槽位,实现槽位填充,并且再通过节点逻辑树确定下一个执行的节点,实现了节点之间的逻辑连接,并且通过配置得到的节点逻辑树具有较强的逻辑性,可以提高对话管理过程的逻辑性,提高用户体验,并且可以适用于较为特定的业务领域中,同样节点逻辑树配置速度较快,可以以较高的效率实现对话管理。

下面对本申请实施例提供的一种对话管理系统进行介绍,下文描述的一种对话管理系统与上文描述的一种对话管理方法可相互对应参照。

请参考图2,图2为本申请实施例所提供的一种对话管理系统的结构示意图。

本实施例中,该系统可以包括:

意图理解处理模块100,用于对接收到的自然语言文本进行自然语言理解处理,得到意图解析数据;

填槽处理模块200,用于根据意图解析数据在节点逻辑树中查找对应的意图根节点,根据词语识别数据对意图根节点的意图槽位进行填槽处理,得到初步意图解析数据;

完整意图判断模块300,用于根据节点逻辑树判断初步意图解析数据是否为完整意图解析数据;

答案输出模块400,用于当初步意图解析数据为完整意图解析数据时,根据完整意图解析数据按照预设路径输出答案数据。

可选的,该系统还可以包括:

下一节点确定模块,用于当初步意图解析数据不为完整意图解析数据时,根据节点逻辑树确定下一个节点;

槽位补充模块,用于根据下一个节点的配置信息对初步意图解析数据进行槽位补充,直至初步意图解析数据为完整意图解析数据,以便根据完整意图解析数据输出答案数据。

本申请实施例还提供一种对话管理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上实施例所述的对话管理方法的步骤。

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

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种对话管理方法、对话管理系统、对话管理设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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