基于任务型的人机对话系统及其实现方法
文献发布时间:2023-06-19 11:19:16
技术领域
本发明属于信息处理技术领域,尤其涉及基于任务型的人机对话系统及其实现方法。
背景技术
人机对话是计算机的一种工作方式,即计算机操作员或用户与计算机之间通过控制台或终端显示屏幕,以对话方式进行工作的过程。操作人员通过输入装置(如键盘等)对计算机输入各种命令或数据,对计算机进行干预和控制;计算机则将运行情况及时地输出(显示或打印等),供操作人员观察和了解。
任务型人机对话系统是指针对特定任务开发的人机对话系统。任务型人机对话系统可以通过与用户进行多轮基于自然语言等的对话,来逐步收集与目标相关的信息,辅助用户成功获得某种服务。例如,天气信息查询系统是针对用户对天气信息的查询需求开发的人机对话系统,自动机票预订系统是针对用户对机票的自动预定需求而开发的人机对话系统,此外还有车载对话系统、电信服务系统等等。
现有的任务型人机对话系统开发平台,可以一定程度的通过配置的方式来实现特定任务的人机对话系统。但是,其配置过程较为复杂繁琐,通常需要对相应特定任务的各个相关槽值组合分别进行配置,以抽取出用户输入的与任务相关的重要信息,使系统可以明确用户查询的具体内容,这无疑会大大增加开发过程的研发成本和时间成本,不利于提高开发效率。
因此,本申请有必要提供基于任务型的人机对话系统及其实现方法,以解决上述现有技术存在的问题。
发明内容
基于以上现有技术的不足,本发明所解决的技术问题在于提供基于任务型的人机对话系统及其实现方法,基于多个不同领域中的任务型人人机对话系统应用背景,以任务型作为基础设计人机对话系统平台,通过构建完成的人机对话系统丰富目前对人机对话系统研究的理论体系。
为了解决上述技术问题,本发明通过以下技术方案来实现:
基于任务型的人机对话系统,包括前端服务模块、用户数据库、用户服务模块、网关、命令解析服务模块、对话管理服务模块、基础语言分析服务模块和模型训练服务模块;
所述用户数据库、用户服务模块、网关、命令解析服务模块和对话管理服务模块均通过HTTP网络传输协议分别与前端服务模块、基础语言分析服务模块和模型训练服务模块连接;
其中,前端服务模块是为开发者完成对话任务;命令解析服务模块为开发者提供意图、词表以及语义槽等功能定义,向模型训练服务模块提供必要的训练任务;对话管理服务模块是应用与多轮对话的管理工作;模型训练服务模块是运用异步消息模式完成训练任务的触发。
进一步地,所述模型训练服务模块具体包括以下步骤:
第一步、创建出任务型对话机器人;
第二步、添加实体词表中的词语;
第三步、定义语义槽;
第四步、开始训练模型;
第五步、具体操作示例。
本发明还提供了基于任务型的人机对话系统的实现方法,包括:
采用TF-IDF算法构建领域识别模块,为分析用户录入的句子或者是关键词序列,快速完成其所属领域归类;
采用LSTM模型构建槽填充模块,基于数据库基础解析用户问题,在收集用户问题要素信息的时候通过多轮对话实心,从而实心组合匹配FAQ知识库当中槽值,最终将结果作出反馈;
采用意图识别算法构建意图识别模块,对用户输入的目的展开分析,追踪对话管理模块的状态,为决策生成功能实现提供必要的支持。
由上,本发明提供的基于任务型的人机对话系统及其实现方法至少具有如下有益效果:
1、本发明以多个不同领域中的任务型人机对话系统应用为背景,以任务型作为基础设计人机对话原型系统平台;通过创新运用TF-IDF算法完成识别模块设计,并构建LSTM模型完成槽填充模块设计,运用意图识别算法完成意图识别模块设计,形成对不同算法在人机对话设计中的优势认知。
2、本发明采用TF-IDF算法与意图识别算法能够有效解决在人机对话系统中的设计问题,有效提升设计质量,对提升设计任务的效率与系统运行的精准度是有所助益。通过系统设计验证在人机对话系统中TF-IDF算法与意图识别算法所解决的设计问题,通过构建完成的人机对话系统,丰富目前对人机对话系统研究的理论体系。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下结合优选实施例,并配合附图,详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍。
图1为本发明的方框示意图;
图2为本发明中对话管理服务模块的对话状态的定义图;
图3为本实施例中火车票意图语义槽定义图;
图4为本实施例中火车票意图添加并标注语料示意图;
图5为本实施例中训练任务列表示意图;
图6为本实施例中具体操作示例图;
图7为本发明中领域识别模块的基本流程图;
图8为本发明中意图识别的算法流程图。
具体实施方式
下面结合附图详细说明本发明的具体实施方式,其作为本说明书的一部分,通过实施例来说明本发明的原理,本发明的其他方面、特征及其优点通过该详细说明将会变得一目了然。在所参照的附图中,不同的图中相同或相似的部件使用相同的附图标号来表示。
参照图1-图8,基于任务型的人机对话系统,包括前端服务模块、用户数据库、用户服务模块、网关、命令解析服务模块、对话管理服务模块、基础语言分析服务模块和模型训练服务模块;
所述用户数据库、用户服务模块、网关、命令解析服务模块和对话管理服务模块均通过HTTP网络传输协议分别与前端服务模块、基础语言分析服务模块和模型训练服务模块连接;
其中,命令解析服务模块为开发者提供意图、词表以及语义槽等功能定义,向模型训练服务模块提供必要的训练任务;通过对命令解析模型进行调用解析用户输入信息,并且将意图识别以及语义槽填充的语义结果作出反馈。
命令解析服务主要是语义槽、开发者意图以及词表等功能状态的定义,通过利用模型训练服务模块完成对训练任务的触发任务,通过对命令解析模型进行调用以实现解析用户输入的数据信息,并且将其意图作出反馈,将语义槽填充的语义表示结果作出反应。在命令解析模块之中,主要是实现三个阶段的工作内容,分别是开发阶段的任务、模拟训练阶段的任务以及识别阶段的任务。
参照图2,对话管理服务模块主要是应用与多轮对话的管理工作。通过运用对话管理系统完成对说话上文与下文的状态进行管理的任务,同时将结果作出回复。
在对话管理服务模块中,对话的状态是最为重要的元素。在对话管理环节中,所有的对话内容都具有唯一的id值,将其存储在以Redis为基础的服务器当中。其中,对话状态的定义如图2所示。
当用户完成语音输入以后,对话管理模块将会首先完成信息判断,对是否处于一个意图对话中的轮次形成判断,在判断的时候,其标准分为三步。
合并语义槽的主要任务是将识别目前录入的命令解析,从而获得语义槽,并且将其与上文和下文中所保存的意图语义槽集合实现合并。在上文和下文中存储的语义槽在大多数情况下是在此之前的会话轮次当中获得语义槽,但是因为当前意图并没有获得必要的语义槽,所以在存储的时候将会在对话的上文和下文中实现。
意图之间的对话控制主要分为两个部分,第一部分是意图之间的上文和下文共享,在开始所有的意图对话轮次之前,需要完成对话状态当中的上文与下文共享语义槽参数录入。在完成所有的意图对话之后,要完成生命周期更新,同时要生成上下文。第二部分是以上下文输入输出的对话控制作为基础,其集中体现在意图分类的环节中。
前端服务模块,在该在任务型人机对话系统当中,开发者主要是通过运用前端设备完成对话。系统设计与开发人员在前端的页面设计中,完成了交互方式的设计,为创建任务型对话系统定义提供必要的意图支持,增加系统中的词表,对语义槽参数进行定义,完成语料的标注和管理模型训练任务。
在本实施例中应用了React前端框架,这个框架的数据以及视图通过运用双向绑定机制,比较适合业务形态展示和实现服务数据交互。
模型训练服务模块,因为训练模型需要投入较多的时间,所以需要运用异步消息模式完成训练任务的触发。在训练的阶段中,命令解析服务第一步是要完成语料的训练工作,并且将训练任务初始化。第二步要将请求训练模型指令发送到模型训练服务模块中。模型训练的任务是其消息代理模块在接受到训练任务之后,将会在任务队列中予以存储。从消息列队中,模型训练服务取出训练的任务,将其提交给相关人员,完成训练之后放入数据库。
参照图3-图6,模型训练中模块设计是基于上述算法而实现的,模型训练服务的最终结果获得了满意的效果。在进行训练的时候,以火车票预定作为案例,其具体步骤如下所示:
第一步,创建出任务型对话机器人。
第二步,添加实体词表中的词语,如动车、慢车、高铁。
第三步,定义语义槽。
第四步,开始训练模型。
第五步,具体操作示例。
基于任务型的人机对话系统的实现方法,包括:
参照图7,采用TF-IDF算法构建领域识别模块,该领域识别模块所实现的功能是明确用户录入的内容归类于哪一领域。在明确信息所归属的领域以后,系统便会将用户的交互权限转移到与其相对应的领域所归属的模块当中。在任务型人机对话系统中,识别内容所归属的领域是最为基本的分类任务,这项任务可以认定为分析用户录入的句子或者是关键词序列,快速完成其所属领域归类。因此在分析的时候,可以将其输入与输出作出如下定义。
输入:句子或者是关键词序列
W(1:T)=(w
输出:录入内容所属领域
y(y∈Y)
输入与输出数据的定义。
领域识别模块归类于业务逻辑层的子模块,在分析的时候将会通过运用业务逻辑层得到用户的信息输入,对该输入信息完成所属类别划分,同时还需要将输入的信息以及信息归类的结果共同传输到与其相对应的槽填充模块以及意图识别模块当中,其数据输入与输出的定义如下。
输入:
{
"request_data":{
"input":"w1,w2,w3,……,wT"
}
}
输出:
{
"dr_result":{
"input":"w1,w2,w3,……,wT"
"domain":"xxxx"}}
同时,在该领域识别模块中采用的是TF-IDF算法,TF-IDF算法是一种用于统计的方法,通过运用这种方法能够很好的对字词作出评估,了解一个语料库或者是一个文件集中的某份文件的重要性程度。语句中字词的重要性程度将会伴随着其在文件当中所增加的次数而增加。
采用LSTM模型构建槽填充模块,该任务型人机对话系统的主要目的是基于数据库基础解析用户问题,在收集用户问题要素信息的时候要通过多轮对话实心,从而实心组合匹配FAQ知识库当中槽值,最终将结果作出反馈。
槽填充在任务判定的过程中,是字词作为基础的。将S={S_1,S_2,……,S_N}用以完成对槽名集合的表示,N所表示的含义为不同槽的数量。将V={V_1,V_2,……,V_N}用以完成对槽名值集合的表示,其中V_i={V_i1,V_i2,……,V_iN}表示弟i个槽值之中可能会出现的槽值。
输入:用户输入的字词序列
W(1:T)=(w
输出:槽位及对应的槽值
{s1=v1,s2=v2,……}
输入与输出数据的定义如下所示。
输入:
{
"dr_result":{
"input":"w1,w2,w3,……,wT"
"domain":"xxxx"
}}
输出:
{"nlu_result":
{"slot_name":{
"slot_value":"xxxx",
"confidence":xxxx.
},......,
"slot_name":{
"slot_value":"xxxx",
"confidence":xxxx.
}}}}
在槽填充中选择使用的是LSTM模型,模型输入是用户录入的语句通过wordembedding之后的词语编码,输出的槽值信息与若干槽相对应,槽值信息既可以是具体化的槽值,又可以使尚未识别完成的空槽值none。
LSTM模型层数是可选项,基于任务型人机对话系统开发,根据信息配置设置定义。通过运用句子信息完成多分类槽填充法,具体而言是针对于所有的槽S={S
参照图8,采用意图识别算法构建意图识别模块,任务型人机对话系统需要对用户输入的目的展开分析,在分析用户意图的时候主要是通过运用文本分类的方式实现。用户的意图主要包含有以下三种,分别是肯定回答、否定回答、提供要素信息。通过运用槽填和意图识别两个模块完成输出,共同追踪对话管理模块的状态,为决策生成功能实现提供必要的支持。
识别意图作为分类任务主要是以用户输入句子作为基础。在分析中设Y={Y_1,Y_2,……,Y_M}为意图类别集合,M所表示的含义为不同意图的个数。
输入:用户录入字词的顺序
W(1:T)=(w
输出:识别后的意图类别
y(y∈Y)
在识别意图的模块中,其接收领域识别模块的输出结果,是需要将其本身所具有的结果传输到对话管理模块中,输入与输出数据的定义如下所示:
输入:{"dr_result":{
"input":"w1,w2,w3,……,wT"
"domain":"xxxx"}}
输出:
{"nlu_result":
{"intent":"xxxx"}}
通过构建的领域识别模块和意图识别展开分析,得到实验结果。
以上所述是本发明的优选实施方式而已,当然不能以此来限定本发明之权利范围,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变动,这些改进和变动也视为本发明的保护范围。
- 基于任务型的人机对话系统及其实现方法
- 一种基于语音实现人机对话的空调器及其工作方法