CN111368029B - 基于意图三元组的交互方法、装置、设备及存储介质 - Google Patents
基于意图三元组的交互方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111368029B CN111368029B CN202010129988.7A CN202010129988A CN111368029B CN 111368029 B CN111368029 B CN 111368029B CN 202010129988 A CN202010129988 A CN 202010129988A CN 111368029 B CN111368029 B CN 111368029B
- Authority
- CN
- China
- Prior art keywords
- information
- intention
- determining
- target
- current
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
Abstract
本发明实施例公开了一种基于意图三元组的交互方法、装置、设备及可读介质,其中,所述方法包括:在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;根据当前对话信息生成与当前对话信息对应的意图三元组;确定在当前语境单元下的当前状态信息;根据意图三元组和/或当前状态信息确定与当前对话信息对应的应对操作;应对操作包括:确定与意图三元组和/或当前状态信息对应的目标回答信息并返回,或,确定与意图三元组和/或当前状态信息对应的目标语境单元,激活目标语境单元并将目标语境单元作为当前语境单元继续进行交互。采用本发明,可提高人机对话过程中的意图分析准确性和回答信息确定的准确性,提升用户体验。
Description
技术领域
本发明涉及计算机技术领域和自然语言处理技术领域,尤其涉及一种基于意图三元组的交互方法、装置、计算机设备及计算机可读存储介质。
背景技术
人机对话系统,例如聊天机器人,可以用于网络沟通交流平台,例如即时通讯平台、网络客户服务平台以及以文字为主的信息服务平台。人机对话系统通过在对对话知识库(例如,对话数据库、语义知识网络、人工神经网络等)进行搜索,匹配和/或计算来实现人机对话。
在相关技术方案中,人机对话的实现主要是基于根据用户输入的对话信息进行语义语法分析确定关键词,然后在对话知识库中查找与关键词对应的回答,以实现人机对话。在上述方案中,没有对用户输入的对话信息的实际意图进行分析,仅考虑了对应的关键词,导致了对用户的意图分析不准确,给出的回答无法满足用户的实际需求,用户体验较差。
发明内容
基于此,有必要针对上述问题,提出了一种基于意图三元组的交互方法、装置、计算机设备及计算机可读存储介质。
一种基于意图三元组的交互方法,包括:
在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;
根据所述当前对话信息生成与所述当前对话信息对应的意图三元组;
确定在当前语境单元下的当前状态信息;
根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作;
所述应对操作包括:确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回,或,确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
一种基于意图三元组的交互装置,包括:
对话信息获取模块,用于在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;
意图提取模块,用于根据所述当前对话信息生成与所述当前对话信息对应的意图三元组;
状态信息确定模块,用于确定在当前语境单元下的当前状态信息;
应对操作确定模块,用于根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作;
其中,所述应对操作确定模块还包括回答信息确定单元,用于确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回;
所述应对操作确定模块还包括语境单元转换单元,用于确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;
根据所述当前对话信息生成与所述当前对话信息对应的意图三元组;
确定在当前语境单元下的当前状态信息;
根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作;
所述应对操作包括:确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回,或,确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;
根据所述当前对话信息生成与所述当前对话信息对应的意图三元组;
确定在当前语境单元下的当前状态信息;
根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作;
所述应对操作包括:确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回,或,确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
采用本发明实施例,具有如下有益效果:
采用了上述基于意图三元组的交互方法、装置、计算机设备及计算机可读存储介质之后,在通过对话系统进行人机对话的过程中,在用户输入对话信息之后,在当前语境单元下或者在全局监听的情况下,对当前对话信息进行监听,然后根据当前对话信息提取对应的意图三元组,并且确定当前语境单元下的当前状态信息;然后根据提取到的意图三元组和确定的当前状态信息确定与用户输入对话信息对应的应对操作,对应的应对操作可以是确定一回复信息并返回给用户,或者,确定下一个语境单元并激活然后转至该语境单元继续进行对话过程的交互。也就是说,在本实施例中,通过对用户输入进行标识用户意图的意图三元组的提取,并根据意图三元组确定对应的交互操作。其中,意图三元组能更好的标识用户意图,基于该意图三元组的交互操作的确定能更真实接近用户的真实意图,提高了用户意图标识的准确性,提升了人机对话的回答信息返回的有效性,提升了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中一种聊天机器人的开发系统的结构示意图;
图2为一个实施例中一种聊天机器人的开发系统的结构示意图;
图3为一个实施例中一种聊天机器人模块的结构示意图;
图4为一个实施例中交互单元的结构示意图;
图5为一个实施例中一种聊天机器人模块的结构示意图;
图6为一个实施例中一种基于意图三元组的交互方法的流程示意图;
图7为一个实施例中一种基于意图三元组的交互方法的流程示意图;
图8为一个实施例中目标回答信息确定过程的流程示意图;
图9为一个实施例中目标回答信息确定过程的流程示意图;
图10为一个实施例中目标回答信息确定过程的流程示意图;
图11为一个实施例中目标回答信息确定过程的流程示意图;
图12为一个实施例中目标回答信息确定过程的流程示意图;
图13为一个实施例中目标语境单元的确定过程的流程示意图;
图14为一个实施例中一种基于意图三元组的交互装置的结构框图;
图15为一个实施例中应对操作确定模块的结构框图;
图16为一个实施例中运行上述基于意图三元组的交互方法的计算机设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一个具体的实施例中,如图1所示,提供了一种聊天机器人的开发系统,用于开发聊天机器人模块,在聊天机器人模块被运行的情况下,可以实现基于该聊天机器人模块的人机对话。
例如,该聊天机器人的开发系统可以是一个用户开发聊天机器人的开发平台,开发人员可以通过该开发平台进行聊天机器人的开发。
如图1所示,该聊天机器人的开发系统10包括:
开发人员配置模块40,用于接收开发人员输入的相关指令,并对聊天机器人模块所对应的数据或模块进行配置和更改。
开发人员可以通过该开发系统,对聊天机器人模块的功能、数据等进行定义、更改或配置。
进一步的,为了实现聊天机器人模块的基本的自然语言处理的功能,在本实施例中,上述开发系统10还包括了:语义识别模型20和对话模型30,其中,语义识别模型20用于从对话信息中提取对应的语义信息;对话模型30基于问答知识库,用于根据对话信息和/或意图确定对应的回答信息。开发人员在进行聊天机器人模块的开发过程中,可以基于上述语义识别模型20和对话模型30对聊天机器人模块进行定义、更改和配置,并且,还可以通过开发人员配置模块40对语义识别模型20和对话模型30进行更改。
具体的,下面首先对语义识别模型20和对话模型30进行说明。
语义识别模型为开发系统对应的,在开发所得到的聊天机器人模块中所用到的语义识别模型也为该语义识别模型。并且,在该开发系统中,开发人员还可以对该语义识别模型进行自定义的配置和更改,以实现当前需要开发的聊天机器人模块所需要具备的功能或效果。
具体的,语义识别模型20从对话信息中提取的语义信息可以是标识对话信息对应的用户意图的意图信息,并且,在一个具体的实施例中,意图信息以三元组、三元组的组合、意图三元组或意图三元组的组合形式展示。
其中,三元组指的是(x,y,z)形式下的结构数据,用以标识x、y、z以及对应的关系。在本实施例中,三元组由一个句法/语义关系以及两个概念、实体、词或词组组成。意图三元组为以三元组的形式存储的用户意图,为标识完整意图中的一个小的单元,可以标识为(subject,relation,object),其中,subject为第一实体,object第二实体,relation表示subject和object之间的关系。其中,第一实体和第二实体可以分别为一个概念、实体、词或词组。
对话模型为开发系统对应的,在开发所得到的聊天机器人模块中所用到的对话模型也为该对话模型,用于确定与对话信息或用于意图对应的回答信息,该回答信息用于返回给使用者,以实现人机对话。其中,对话模型可以为以问答模型,用于确定与问答信息对应的回答信息。
对话模型在确定回答信息的过程中,是基于问答知识库进行确定的,问答知识库可以是对相应的对话模型进行训练的知识库。
开发人员配置模块为开发人员在开发系统中对已有的聊天机器人模块的相关数据以及模块进行配置和更改的模块。例如,在开发过程中,通过开发人员配置模块数据、或功能模块进行定义和配置。具体的,例如,开发人员可以通过开发人员配置模块对聊天机器人模块进行合并、或者对聊天机器人模块的对话实现的具体逻辑或者条件等进行自定义设置、对相关数据的提取逻辑或取值范围进行定义等等。在后面针对开发人员配置模块的具体功能的实现的说明中会进行详细的描述。
进一步的,为了实现开发系统10对于聊天机器人模块的完整的开发功能,开发系统不仅具备了聊天机器人模块的配置功能,还可以进行对应的编译和执行、以及调试,以提高开发人员可以基于一个系统完成聊天机器人模块的全部开发过程。
具体的,在一个实施例中,如图2所示,上述聊天机器人的开发系统10还包括编译模块50和执行模块60,其中:所述编译模块50用于将开发人员定义的聊天机器人模块编译成脚本文件或可执行代码;所述执行模块60用于执行所述编译模块编译成的脚本文件或可执行代码,以实现基于聊天机器人模块的多轮对话。
开发人员在开发系统中进行聊天机器人的开发时,可以直接通过开发平台的功能模块进行相对简单的定义和设置,但是,在开发所得到的聊天机器人模块在被运行之前,还需要将其转换成可执行代码,例如脚本文件或其它可执行代码。
具体的,编译模块50用于将开发人员通过开发系统10开发所得到的聊天机器人模块编译成对应的脚本文件或其它可执行代码,该脚本文件或其它可执行代码可以直接被执行以运行对应的聊天机器人模块。然后,执行模块60对该脚本文件或其它可执行代码进行执行,以实现聊天机器人模块的运行,从而实现基于聊天机器人模块的多轮对话。
需要说明的是,语义识别模型和对话模型为开发系统中的一部分,在聊天机器人模块被编译和执行的情况下,需要调用语义识别模型和对话模型以实现对应的功能。即,执行模块60在执行所述编译模块编译的脚本文件或可执行代码时,还调用语义识别模型和对话模型,以实现人机对话过程中的语义识别和回答信息的确定。
具体的,如图2所示,上述聊天机器人的开发系统10还包括系统调试模块90,用于在聊天机器人模块被执行的情况下,向开发人员展示调试日志。其中,向开发人员展示的调试日志可以包括聊天机器人模块被执行的过程的各个被调用的参数以及数据更新情况等等。
进一步的,开发人员还可以通过系统调试模块90对开发的聊天机器人模块进行调试和修改。具体的,系统调试模块90还可以获取开发人员输入的调试数据,并将开发人员输入的调试数据写入聊天机器人模块,以实现调试过程中的数据修改和调试,提高开发效率和实用体验。
在本实施例中,开发系统可以支持开发人员在一边对话的情况下,一边查看开发的聊天机器人模块在运行时的开发系统的调试日志。
在本实施例中,开发系统10还具备错误反馈的功能。具体的,如图2所示,开发系统10还包括错误反馈模块70,用于在开发系统运行或调试的过程中获取开发人员输入的错误反馈消息,并将获取到的错误反馈信息反馈给预设的平台管理人员。其中,错误反馈模块70包括了错误信息的编写、提交、撤销以及管理员意见反馈等功能。开发人员可以根据开发过程中发现的错误向开发系统提交错误反馈信息,然后开发系统将开发人员提交的错误反馈信息提交给预设的平台管理人员,以使平台管理人员可以根据反馈的错误信息进行回答、系统修改等,以提高开发系统功能的完善性。
下面对开发人员配置模块40可以实现的相关配置功能进行详细的描述。
开发人员可以通过开发人员配置模块对多个话题或功能的聊天机器人模块进行合并操作。
一般来讲,一个聊天机器人模块可以进行某一个话题或者功能的人机对话。在实际应用场景用,聊天机器人所需要实现的话题或功能往往不止一个,而不同的话题或功能的聊天机器人模块的开发是不同的开发人员进行开发的,从而可以提高开发效率。而为了得到具备多个话题或功能的聊天机器人模块的组合或聊天机器人系统,在本实施例中,开发系统还可以根据开发人员的配置,将多个聊天机器人模块进行合并。
具体的,在聊天机器人模块的开发过程中,开发人员还可以通过开发系统输入模型合并指令,从而使得开发人员配置模块40可以获取开发人员输入的模型合并指令,并执行对应的聊天机器人模块的合并操作。
具体的,确定与模型合并指令对应的至少2个聊天机器人模块;根据至少2个聊天机器人模块生成合并后的目标聊天机器人模块。其中,合并后的目标聊天机器人模块包括了与模型合并指令对应的至少2个聊天机器人模块对应的数据或模块,也能实现该至少2个聊天机器人模块对应的功能或话题对应的人机对话,从而大大的提高了聊天机器人模块的开发效率。
开发人员可以通过开发人员配置模块进行针对聊天机器人模块的数据导入和导出。
对于聊天机器人模块的开发,可以根据需要以及功能的完善,存在版本的迭代。在这种情况下,就需要对聊天机器人模块对应的数据进行备份或者数据导入和导出。
具体的,在一个实施例中,如图2所示,上述开发系统10还包括数据备份模块80,用于周期性地获取当前聊天机器人模块对应的数据,并存储至预设的备份存储区域,以用于故障情况下的数据恢复。例如,每隔一定时间(例如1min)对正在进行开发的当前聊天机器人模块对应的数据进行获取,并存储至预设的备份存储区域,在出现故障的情况下,可以通过备份存储区域中存储的当前聊天机器人模块对应的数据进行数据恢复,避免错误操作或者系统故障引起的数据丢失。
进一步的,除了自动周期性的对开发的聊天机器人模块的数据进行备份之外,还可以根据开发人员的指令,对开发的聊天机器人模块的数据导入和导出。
具体的,数据备份模块80还用于:接收开发人员输入的数据导入指令/数据导出指令;根据所述数据导入指令获取与所述数据导入指令对应的数据,并导入至当前聊天机器人模块;或,根据所述数据导出指令在当前聊天机器人模块中获取与所述数据导出指令对应的数据,并存储至与所述数据导出指令对应的存储区域。
例如,在进行聊天机器人模块的开发过程中,开发人员可以将通过数据导入指令,将其它聊天机器人模块对应的数据导入到当前进行开发的聊天机器人模块中。或者,开发人员可以在版本迭代或功能更新的情况下,通过数据导出指令对数据进行备份,以便于后续在需要进行版本回退的情况下,重新进行数据恢复。从而提高了聊天机器人模块的开发效率。
开发人员可以通过开发人员配置模块,对聊天机器人模块对应的相关数据或变量进行定义和修改,例如,状态数据、自定义变量等。
具体的,聊天机器人模块中还包括状态数据库,该状态数据库可以用来存储与聊天机器人模块对应的状态数据。需要说明的人,聊天机器人模块对应的状态数据的获取,可以是在聊天机器人模块被执行的过程中根据对话过程确定的,也可以是在开发阶段由开发人员进行定义或者更新的。
在一个具体的实施例中,开发人员配置模块40还用于接收开发人员输入的状态数据更新指令,并对状态数据库进行更新。例如,开发人员可以通过表单(状态数据表单)的形式向开发系统提交状态数据更新指令,以使得开发系统可以对状态数据库中的数据进行更新,例如,增加、修改、删除等。
进一步的,聊天机器人模块对应的状态数据库还包括变量数据库,用于存储环境变量、和/或、自定义变量。环境变量由开发人员进行定义,然后在聊天机器人模块被执行的过程中,按照预设的途径(例如,网络)获取对应的变量值。自定义变量为在开发人员在进行聊天机器人模块进行开发过程中进行定义的。并且,变量数据库中的环境变量和自定义变量也可根据开发人员的指令进行更新,具体的,开发人员配置模块40还用于接收变量更新指令,并根据变量更新指令对变量数据库中对应的变量进行增加、删除以及修改等更新操作。
进一步的,在一个实施例中,开发系统10开发得到的聊天机器人模块还可以包括自定义词组数据库,其中存储开发人员定义的至少一个自定义词组/宏,开发人员可以根据聊天机器人模块开发的具体需求,进行宏/词组的定义。其中,自定义词组/宏可以是与当前一个聊天机器人模块对应的,也可以是与多个聊天机器人模块是对应的(即在多个聊天机器人模块中通用)。在一个具体的实施例中,优选的,自定义词组可以对应多个聊天机器人模块,自定义宏仅对应当前的聊天机器人模块,并不是通用的。在具体的开发过程中,开发人员可以根据需求,对自定义词组/宏进行定义。具体的,开发人员配置模块40还用于接收词组自定义指令,根据所述词组自定义指令对自定义词组数据库进行更新。
为了实现聊天机器人模块的人机对话功能,开发人员还可以通过开发人员配置模块对基于聊天机器人模块实现的对话过程中的语义识别、回答信息的获取以及语境单元或交互模块的跳转的条件等进行设置。
具体的,开发人员可以通过开发人员配置模块对各种优先级进行设置。
首先,开发人员可以通过开发人员配置模块对对话信息进行识别获取的意图(例如意图三元组)对应的优先级进行设置,以确定根据对话信息确定的多个意图或意图三元组之间的意图优先级应该如何进行确定,以便于在回答信息的确定过程中以根据意图优先级确定对应的回答信息。
其次,开发人员还可以通过开发人员配置模块对语境单元的转换/跳转过程对应的分支优先级如何确定进行定义。其中,语境单元之间、以及二者之间的关系,可以确定一个分支。从一个语境单元跳转至另一个语境单元继续进行交互的过程为进入与对应的语境单元对应的分支的过程。确定进入哪一个分支的过程可以是根据每一个分支对应的分支优先级确定的。开发人员可以通过开发人员配置模块对分支优先级进行定义。
上述意图优先级或分支优先级可以分为条件优先级和辅助优先级。条件优先级是根据是否满足预设的条件来确定对应的条件优先级,并且,满足的条件数量多的优先级更高。辅助优先级为相应的对话系统的开发人员设置的优先级范围,在该优先级范围内则确定为优先级。并且,在某一个意图三元组既满足条件优先级、也满足辅助优先级的情况下,首先比较辅助优先级的级别,根据辅助优先级来确定;在辅助优先级相同的情况,比较条件优先级的级别。
需要说明的是,在本实施例中,开发人员可以通过开发人员配置模块对聊天机器人模块所实现的多轮人机对话的过程中的每个环节以及对应的逻辑、条件等进行定义。具体可参见后面对于聊天机器人模块的具体描述。
综上,在上述聊天机器人的开发系统中,开发人员可以通过开发人员配置模块对对话过程中的数据、功能以及逻辑进行定义,具体包括了如何构建对话对应的基于多个语境单元对应的有向图(多个语境单元以及对应的连接关系形成的有向图)、以及各个语境单元或者其他模块之间的跳转逻辑、回答数据的确定方法、以及回答信息对应的文本数据的写入、意图或意图三元组的取值范围等数据,连接各个语境单元,生成对应的可执行代码并执行对应的聊天机器人模块进行人机对话。
在本实施例中,还提供了一种基于如前所述的聊天机器人的开发系统进行开发所得到的聊天机器人模块。在聊天机器人模块被执行的情况下,使用人员可以通过该聊天机器人模块实现人机对话。或者,在开发人员通过开发系统进行试运行或调试的过程中,可以通过该聊天机器人模块实现人机对话。
下面对该聊天机器人模块所能实现的功能进行说明。
通过上述开发系统开发的聊天机器人模块可以基于自然语言识别将用户输入的对话信息对应的意图以及环境数据作为条件来连接各个语境单元,从而形成与对话过程对话的语境单元的连接关系,附加全局的监听在全局的语境单元限制的语境单元之间的跳转,从而实现多轮人机对话。
在开发系统中进行运行或调试、或者在其它平台或系统运行的情况下,聊天机器人模块得以被运行。运行的聊天机器人模块相当与一个对话系统,该对话系统可以实现多轮人机对话。
需要说明的是,在本实施例中,聊天机器人模块还可以调用语义识别模型和对话模型。且语义识别模型和对话模型可以是当前聊天机器人模块所包含的子模块,也可以是通过访问链接访问外部的语义识别模型和对话模型。
具体的,如图3所示,上述聊天机器人模块100包括交互模块200和全局监听模块300。
需要说明的是,在本实施例中,在聊天机器人模块被执行的情况下,还需要加在对应的配置文件,以实现对聊天机器人模块的配置。
具体的,如图5所示,聊天机器人模块100还包括配置文件加载模块400,获取与聊天机器人模块对应的基础配置文件和/或开发人员配置的自定义配置文件,然后对获取到的基础配置文件或自定义配置文件进行加载,以实现对机器人模块的记载,以实现聊天机器人模块的执行。
下面对聊天机器人模块实现人机对话的交互模块200和全局监听模块300进行详细描述。
交互模块200,用于接收和监听使用人员输入的对话信息、并调用语义识别模型和对话模型以实现对话操作;如图4所示,交互模块200包括至少一个语境单元2001,语境单元用于标识与对话过程对应的当前对话语境;交互模块实现的对话操作还包括根据语义识别模型提取的语义信息和/或与聊天机器人模块对应的历史信息,并根据当前语境单元,激活下一个语境单元。
其中,交互模块为针对当前对话进行处理并给出对应的回答信息或其它对话处理的模块。在本实施例中,交互模块为一个局部模块(相对于全局监听模块),用于对对话信息进行局部的监听和处理,具体可以调用语义识别模块对使用人员输入的对话信息进行语义和/或语法识别,然后根据语义和/或语法识别的结果,调用对话模型确定与使用人员输入的对话信息对应的对话操作。
在一个具体的实施例中,对话操作包括了调用对话模型确定与用户输入的对话信息对应的回答信息,并返回给使用人员。
在本实施例中,交互模块200还将对话过程构成成多个交互节点,其中每个交互节点为一个语境单元,也就是说,交互模块200包括了与对话过程对应的至少一个语境单元2001,每一个语境单元指的是对话过程中的一个交互节点,用以标识一个单轮对话过程、或数据更新过程、或节点的转换过程;且一个语境单元对应了对话过程中的一个对话语境或者一个状态,例如,当用户输入的对话信息包含了需要询问的信息或者其它信息的情况下,对话过程对应的对话语境和对话状态就发生了改变了,对应的语境单元也会发生改变。在对话过程中,一个对话过程对应了多个语境单元,每一个语境单元为整个对话过程中对应的多个交互节点中的一个。当前语境单元是指的是在当前的对话执行的语境单元。在本实施例中,语境单元可以调用对话系统的相关模型以及知识库,对用户输入的对话信息给出相应的回答。
在另一个具体的实施例中,交互模块实现的对话操作还包括根据语义识别模型提取的语义信息和/或与聊天机器人模块对应的历史信息,并根据当前语境单元,激活下一个语境单元。
针对用户输入的对话信息进行语义和/语法识别提取的语义信息,以及聊天机器人模块对应的历史信息(包括历史对话信息以及根据历史对话信息确定的状态数据)确定下一个进行交互的目标语境单元,然后激活目标语境单元并将目标语境单元作为当前语境单元继续进行交互,从而实现语境单元的转换。
全局监听模块300,用于对任何语境下对话信息进行监听,并确定在全局状态下的对话操作,所述全局监听模块确定的对话操作包括:通过语义识别模型和对话模型确定与监听到的对话信息对应的回答信息并返回给使用人员;或,通过语义识别模型从对话信息中提取对应的语义信息,在该语义信息满足预设的条件的情况下激活下一个语境单元、进行交互模块的转换或聊天机器人模块的转换。
不同于一般的聊天机器人或者人机对话系统,仅有针对当前对话信息进行监听和处理的功能,在本实施例中,除了进行局部的监听和处理的交互模块200之外,还包括了可以全局对对话过程进行监听和处理的全局监听模块300,也可以理解为全局监听模块300为一自由监听模块,可以对对话过程中的任意一个交互节点(语境单元)进行监听。
具体的,全局监听模块300可以在任何语境单元的情况下,对对话进行进行监听,并且,根据监听得到的对话信息,确定是否需要执行全局状态下的对话操作。其中,全局状态下的对话操作也包括了前述交互模块对应的确定回答信息以及语境单元的转换,并且还包含了聊天机器人模块的转换(例如,在监测到的对话信息对应的话题或功能发生改变时,当前聊天机器人模块无法实现对应的话题的人机对话,则需要转换至相应的聊天机器人模块继续进行对话)。
在上述交互模块以及全局监听模块中,在确定并激活下一个语境单元并转至该下一个语境单元继续进行交互的过程中,还需要确定下一个语境单元对应的定位标识。其中,定位标识用于标识每一个语境单元,以确定下一个语境单元并进行激活,然后将激活的下一个语境单元作为当前语境单元继续进行对话,以完成语境单元的跳转。
在上述交互模块以及全局监听模块根据使用人员输入的对话信息确定对应的对话操作的过程中,还需要考虑各种其他因素以确定与使用人员输入的对话信息匹配的对话操作,以提供较好的用户体验下的对话操作。
在一个具体的实施例中,在确定对话操作的过程中,还需要进行是否满足预设的条件的判断。具体的,如图5所示,聊天机器人模块100还包括条件判断模块500,用于对对话信息和/或语义识别模型提取的语义信息是否满足预设的条件进行判断,以确定与对话信息和/或语义识别模型提取的语义信息对应的对话操作。其中,对于满足预设的条件的情况下,直接返回预设的回答信息、或确定下一个语境单元并跳转至下一个语境单元继续进行对话过程的交互。
在一个具体的实施例中,在确定定对话操作的过程中,还需要考虑状态数据。具体的,状态数据是存储在聊天机器人模块中的状态数据库中的,用以表示与环境相关的状态数据或者与聊天机器人模块对应的状态数据。其中,与聊天机器人模块对应的状态数据提取自对话过程中的对话信息,用以表示当前对话过程的状态。
在聊天机器人模块被执行以实现对话的过程中,交互模块中还根据使用人员输入的对话信息,提取所述使用人员输入的对话信息中的状态数据,并根据提取到的状态数据对所述状态数据库进行更新。
在上述基于聊天机器人的开发系统所开发得到的聊天机器人模块中,可以实现人机对话的过程。其中,人机对话的交互过程可以是对用户输入的对话信息进行识别提取意图信息(例如,意图三元组),并且基于提取的意图信息进行交互的过程。在本实施例中,还提供了一种基于意图三元组的交互方法。该方法的实现基于计算机设备,可以为运行于计算机设备的人机交互程序、聊天机器人应用程序等。其中,该基于意图三元组的交互方法的运行可以是基于人机对话系统、或聊天机器人系统,或者也可以是基于聊天机器人的开发系统(开发所得到的聊天机器人系统),为其中的人机对话过程中的交互过程,以实现人机对话。在下述的描述中,以对话系统为例进行说明。
具体的,如图6所示,提供了一种基于意图三元组的交互方法。
如图6所示,上述基于意图三元组的交互方法具体包括如下步骤:
步骤S102:在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息。
如前所述,语境单元指的是对话过程中的一个交互节点,用以标识一个单轮对话过程、或数据更新过程、或节点的转换过程;且一个语境单元对应了对话过程中的一个对话语境或者一个状态,例如,当用户输入的对话信息包含了需要询问的信息或者其它信息的情况下,对话过程对应的对话语境和对话状态就发生了改变了,对应的语境单元也会发生改变。在对话过程中,一个对话过程对应了多个语境单元,每一个语境单元为整个对话过程中对应的多个交互节点中的一个。
当前语境单元是指的是在当前的对话执行的语境单元。
在本实施例中,语境单元可以调用对话系统的相关模型以及知识库,对用户输入的对话信息给出相应的回答。
当前对话信息为用户输入的对话信息,例如,在用户需要询问天气信息的情况下,对话信息可以用用户输入的“深圳今天的天气怎么样?”。在另一个实施例中,当前对话信息所指可以不限于用户当前输入的信息,还包括了在整个对话的过程中,用户输入的所有信息以及对话系统给出的对应的回答信息。
在对话运行过程中,对用户的输入进行监测(用户可以通过文字输入、也可以通过语音输入),以确定在用户输入了对话信息之后的交互步骤。
需要说明的是,在本实施例中,对对话信息进行监测并针对相应的对话信息给出对应的操作的方法的执行,可以是基于当前语境单元,由当前语境单元完成基于局部信息的交互;也可以是由全局的监听单元执行,该监听单元可以对整个对话过程进行监听,以确定是否需要由全局的监听单元进行交互。并且基于监听单元的交互,是忽略当前语境单元的情况下,对对话信息进行监测然后给出对应的操作。
步骤S104:根据所述当前对话信息生成与所述当前对话信息对应的意图三元组。
在本实施例中,为了针对用户意图给出与用户意图更为匹配的回答,还需要针对用户输入的当前对话信息进行用户意图的提取。在本实施例中,即为提取与当前对话信息对应的意图三元组。
在本实施例中,意图三元组的提取是通过对当前对话信息进行语义和/或语法分析获取的,然后生成意图三元组,该意图三元组用于标识当前对话信息对应的用户意图。
需要说明的是,根据当前对话信息提取出来的意图三元组的数量为1个或多个,也就是说,根据用户输入的对话信息以及对话过程中的对话信息可以提取多个意图三元组,用以表达用户对应的多个意图。多个意图三元组以并列的形式表达用户输入的用户信息对应的真实的用户意图。
在一个具体的实施例中,每个意图三元组为一个或多个三元组的组合。
其中,三元组指的是(x,y,z)形式下的结构数据,用以标识x、y、z以及对应的关系。在本实施例中,三元组由一个句法/语义关系以及两个概念、实体、词或词组组成。意图三元组为以三元组的形式存储的用户意图,为标识完整意图中的一个小的单元,可以标识为(subject,relation,object),其中,subject为第一实体,object表示第二实体,relation表示subject和object之间的关系。其中,第一实体和第二实体可以分别为一个概念、实体、词或词组。
需要说明的是,在本实施例中,提取出来的意图三元组的数量还可能是0个,也就是说,未提取到任何有效的意图三元组。
步骤S106:确定在当前语境单元下的当前状态信息。
在本实施例中,为了确定最佳的回答,还需要确定对应的状态信息。其中,状态信息为对话过过程中的环境数据和自定义变量数据,状态数据穿插在整个对话过程中的各个位置。并且,随着对话过程的继续,状态数据会随之发生改变。
在一个具体的实施例中,需要确定在当前语境单元下的状态信息,即为当前状态信息。需要说明的是,当前状态信息还包括了全局状态下的全局状态信息。
其中,当前状态信息还包括了从用户输入的对话信息中新提取到的状态信息。也即,在上述步骤S106中,还包括:提取所述当前对话信息中的状态信息,根据提取到的状态信息对所述当前状态信息进行更新。
步骤S108:根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作。
其中,所述应对操作包括:确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回,或,确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
在确定了标识用户意图的意图三元组以及状态信息之后,即可确定在当前对话过程中的应对操作。应对操作即为针对用户输入的对话信息对应的应对,该应对操作可以是针对对话信息对应的回答信息以及其他交互操作。
在一个具体的实施例中,如图7所示,步骤S108还包括步骤S1082:确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回。
根据意图三元组和/或当前状态信息,并给予预设的回答模型或对话知识库,可以确定与当前对话信息对应的回答信息(即目标回答信息),并将该回答信息作为当前语境单元下的应对信息并返回给用户。
因为标识用户意图的意图三元组的数量可以是多个,因此,根据意图三元组确定的回答信息的数量也可能存在多个,或者,根据一个意图三元组可以确定多个回答信息。因此,在回答信息的数量为多个的情况下,还需要进一步确定最终的目标回答信息。
具体的,在一个实施例中,上述步骤S1082中,如图8所示,确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回,还包括:
步骤S201:根据意图三元组和/或所述当前状态信息对应的至少一个回答信息;
步骤S202:在所述至少一个回答信息中,确定目标回答信息并返回;
其中,所述至少一个回答信息包括至少一个与所述当前语境单元对应的语境回答信息和至少一个全局回答信息。
也就是说,在从当前对话信息中提取到意图三元组之后,根据多个意图三元组以及当前状态信息,分别确定至少一个回答信息,该回答信息可以是当前语境单元确定的标识局部状态的语境回答信息,也可以是标识全局状态的全局回答信息,或者二者均包含在内。
然后,在多个回答信息中,确定目标回答信息。需要说明的是,如果意图三元组提取的过程中未提取到有效的意图三元组,则直接通过全局的监听模块确定全局回答信息,然后将全局回答信息作为目标回答信息并返回。或者,将当前语境单元下的兜底回答作为目标回答信息。
在一个具体的实施例中,目标回答信息的确认可以是根据意图三元组对应的分值来确定的。
具体的,如图9所示,上述步骤S202中,还包括:
步骤S2021:分别确定每一个意图三元组对应的意图分值;
步骤S2022:根据所述意图分值确定与意图三元组和/或所述当前状态信息对应的目标回答信息。
如前所述,意图三元组的数量可以是一个或多个,因为回答信息是根据意图三元组和当前状态信息确定的,也就是说,一个意图三元组即可确定与之对应的回答信息。因此,在上述至少一个回答信息中,包括了分别与一个或多个意图三元组对应的回答信息。
在确定目标回答信息的过程中,首先需要确定每一个意图三元组对应的意图分值。意图分值表示该意图分值与用户真实意图之间的匹配程度。
意图三元组提取于用户输入的对话信息中的每一句话,根据该句话在用户输入的对话信息中的位置,可以确定对应的意图三元组对应的意图分值。
意图三元组的意图分值还取决与该意图三元组是否与整个对话过程是匹配的,例如,对话过程中讨论的话题为天气,但是某一个意图三元组对应了与机票相关的话题,对应的意图分值较低。
需要说明的是,在本实施例中,意图分值的计算还可以设置其他因素,或者预先对神经网络模型进行训练,根据神经网络模型来计算与意图三元组对应的意图分值。
在确定了每个意图三元组对应的意图分值之后,即可根据意图分值确定对应的意图三元组,然后将与确定的意图三元组对应的回答信息作为目标回答信息。例如,在一个实施例中,根据意图分值进行排序,确定定意图分值最高的意图三元组对应的回答信息作为目标回答信息。
在本实施例中,不仅需要对每个意图三元组的意图分值是否为最高进行考虑,还需要考虑其意图分值是否高于预设值。也就是说,对于意图分值过小的意图三元组对应的回答信息不予考虑。
具体的,如图10所示,上述步骤S2022还包括:
步骤S2023:判断每一个意图三元组对应的意图分值是否大于或等于预设的分值阈值;
步骤S2024:将意图分值大于或等于预设的分值阈值的意图三元组所对应的回答信息作为目标回答信息;
步骤S2025:在所有意图三元组对应的意图分值均小于预设的分值阈值的情况下,获取当前语境单元下的兜底回答作为目标回答信息、或获取全局兜底回答作为目标回答信息。
预设的分值阈值可以为一预先设置的阈值,例如,在意图分值的取值范围为0-10的情况下,分值阈值可以为6分。
对于每一个意图三元组,对于对应的意图分值,分别确定其是否大于或等于预设的分值阈值(例如,6分)。如果意图分值大于或等于分值阈值,则将对应的意图三元组对应的回答信息作为目标回答信息或者作为目标回答信息的备选。如果意图分值小于分值阈值,则在目标回答信息的确定过程中,不再考虑对应的意图三元组对应的回答信息。
需要说明的是,在本实施例中,满足分值阈值的意图三元组的数量可能不止一个,在这种情况下,可以进一步的在满足分值阈值的意图三元组中根据意图分值在对应的回答信息中确定目标回答信息。
进一步的,如果所有的意图三元组对应的意图分值均小于分值阈值,则所有根据意图三元组得到的回答信息均不能作为目标回答信息,需要获取当前语境单元下的兜底回答作为目标回答信息、或者获取全局兜底回答作为目标回答信息,以作为对当前对话信息下的兜底,实现任意情况下的兜底回答。
进一步的,在本实施例中,在确定目标回答信息的过程中,不仅需要考虑每一个意图三元组对应的意图分值,还需要考虑对应的优先级。
在一个具体的实施例中,意图三元组存在对应的优先级。其中,优先级可以分为条件优先级和辅助优先级。条件优先级是根据是否满足预设的条件来确定对应的条件优先级,并且,满足的条件数量多的优先级更高。辅助优先级为相应的对话系统的开发人员设置的优先级范围,在该优先级范围内则确定为优先级。并且,在某一个意图三元组既满足条件优先级、也满足辅助优先级的情况下,首先比较辅助优先级的级别,根据辅助优先级来确定;在辅助优先级相同的情况,比较条件优先级的级别。
在一个具体的实施例中,如图11所示,上述步骤S202中确定目标回答信息的过程,还包括:
步骤S2026:分别确定每一个意图三元组对应的意图优先级;
步骤S2027:根据所述意图优先级确定与所述意图三元组和/或所述当前状态信息对应的目标回答信息。
在根据意图三元组确定了多个回答信息之后,分别确定每一个意图三元组对应的意图优先级,意图优先级是根据上述条件优先级以及辅助优先级来确定的。然后,根据每一个意图三元组的意图优先级,确定优先级级别最高的意图三元组,并据此确定该意图三元组以及当前状态信息对应的目标回答信息。
需要说明的是,如前所述,回答信息包括了与所述当前语境单元对应的语境回答信息和全局回答信息,在回答信息中确定目标回答信息的过程中,还需要考虑对应的回答信息对应的优先级;其中,语境回答信息的优先级高于全局回答信息,在当前语境单元对应有语境回答信息的情况下,优先将语境回答信息作为目标回答信息。
需要说明的是,在步骤S1082中,在确定目标回答信息的过程中,对应的目标回答信息中还可能包含变量。例如,在用户咨询天气的情况下,用户输入的对话信息为“这辆汽车的价格是多少钱?”,对话系统对该对话信息进行分析,并确定对应的回答信息为“这辆汽车的价格为$x元。”,其中,“$x”为一个变量,是动态更新的,在返回目标回答信息的过程中,需要根据相应的数据库确定对应的变量的具体值。例如,在上述实施例中,“$x”的具体值可以是查询汽车售价数据库或互联网得到的。
具体的,在一个实施例中,如图12所述,在上述步骤S1082中,还包括:
步骤S301:确定与意图三元组和/或所述当前状态信息对应的回答信息中的至少一个变量;
步骤S302:确定与所述至少一个变量对应的变量值,根据所述目标回答信息和所述与所述至少一个变量对应的变量值确定所述目标回答信息。
在一个具体的实施例中,上述步骤S108中的应对操作除了步骤S1082中的目标回答信息的确定和返回之外,还包括语境单元的转换。
具体的,如图2所示,步骤S108还包括步骤S1084:确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
在本实施例中,针对用户输入的对话信息,对话系统对应的应对操作不仅包括了确定对应的目标回答信息并返回,还可以包括语境单元的跳转,进入到下一个语境单元继续进行交互。
具体的,根据意图三元组和/或当前状态信息,根据对话系统,确定下一个进行交互的目标语境单元。然后激活目标语境单元并将目标语境单元作为当前语境单元继续进行交互,从而实现语境单元的转换。
其中,如图13所示,目标语境单元的确定过程,还包括:
步骤S401:根据所述意图三元组和/或所述当前状态信息确定目标分支;
步骤S402:根据所述目标分支确定所述目标语境单元的目标标识。
目标语境单元的确定过程中,需要根据意图三元组和/或当前状态信息,确定对应的分支,对应的分支的数量可以是一个也可以是多个,然后在确定的分支中确定对应的目标分支。每一个分支均对应了一个语境单元,因此,根据目标分支可以确定下一个需要进行对话的目标语境单元,也确定了目标语境单元对应的目标标识。
其中,当前语境单元与目标语境单元、以及二者之间的关系,可以确定一个分支。从当前语境单元跳转至目标语境单元继续进行交互的过程为进入与目标语境单元对应的分支的过程,其中,目标语境单元对应的目标标识为分支对应的指针。
在上述确定目标分支的过程中,还需要针对每一个分支进行考虑,最终确定目标分支。其中,确定目标分支的过程可以是根据每一个分支对应的分支优先级确定的。需要说明的是,分支优先级的确定可以类同上述意图三元组的意图优先级的确定,分为条件优先级和辅助优先级。
在本实施例中,多个语境单元以及对应的分支,即可构成与当前对话对应的有向图,有向图即表示整个对话过程。
在本实施例中,为了给用户在使用对话系统过程中的良好的使用体验,在本实施例中,还需要设置对应的衔接语,用于在用户输入对话信息之后的返回信息、或者语境单元转换之后的返回信息。在一个具体的实施例中,上述步骤S108中,根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作还包括,返回预设的衔接语,或,在步骤S1084中,在激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互之后,返回预设的衔接语。从而提供给用户良好的使用体验。
如图14所示,在本实施例中,还提出了一种基于意图三元组的交互装置。
如图14所示,上述基于意图三元组的交互装置包括对话信息获取模块102、意图提取模块104、状态信息确定模块106以及应对操作确定模块108,其中:
对话信息获取模块102,用于在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;
意图提取模块104,用于根据所述当前对话信息生成与所述当前对话信息对应的意图三元组;
状态信息确定模块106,用于确定在当前语境单元下的当前状态信息;
应对操作确定模块108,用于根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作;
其中,如图15所示,所述应对操作确定模块108还包括回答信息确定单元1082,用于确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回;
如图15所示,所述应对操作确定模块108还包括语境单元转换单元1084,用于确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
在一个实施例中,所述意图提取模块104还用于对所述当前对话信息进行语义和/或语法分析,并生成意图三元组,所述意图三元组的数量为1个或多个;其中,每个意图三元组为一个或多个三元组的组合。
在一个实施例中,所述回答信息确定单元1082还用于根据意图三元组和/或所述当前状态信息对应的至少一个回答信息;在所述至少一个回答信息中,确定目标回答信息并返回;其中,所述至少一个回答信息包括至少一个与所述当前语境单元对应的语境回答信息和至少一个全局回答信息。
在一个实施例中,所述至少一个回答信息包括分别与一个或多个意图三元组对应的回答信息;所述回答信息确定单元1082还用于分别确定每一个意图三元组对应的意图分值;根据所述意图分值确定与意图三元组和/或所述当前状态信息对应的目标回答信息。
在一个实施例中,所述回答信息确定单元1082还用于判断每一个意图三元组对应的意图分值是否大于或等于预设的分值阈值;将意图分值大于或等于预设的分值阈值的意图三元组所对应的回答信息作为目标回答信息;在所有意图三元组对应的意图分值均小于预设的分值阈值的情况下,获取当前语境单元下的兜底回答作为目标回答信息、或获取全局兜底回答作为目标回答信息。
在一个实施例中,所述回答信息确定单元1082还用于分别确定每一个意图三元组对应的意图优先级;根据所述意图优先级确定与所述意图三元组和/或所述当前状态信息对应的目标回答信息。
在一个实施例中,所述回答信息确定单元1082还用于在所述至少一个回答信息中,确定意图优先级最高的意图三元组对应的回答信息作为目标回答信息。
在一个实施例中,所述状态信息确定模块106还用于提取所述当前对话信息中的状态信息,根据提取到的状态信息对所述当前状态信息进行更新。
在一个实施例中,所述语境单元转换单元1084还用于根据所述意图三元组和/或所述当前状态信息确定目标分支;根据所述目标分支确定所述目标语境单元的目标标识。
在一个实施例中,所述语境单元转换单元1084还用于确定与意图三元组和/或所述当前状态信息对应的多个分支;分别确定与多个分支对应的分支优先级;根据所述分支优先级确定所述目标分支。
在一个实施例中,所述回答信息确定单元1082还用于返回预设的衔接语;所述语境单元转换单元1084还用于在激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互之后,返回预设的衔接语。
在一个实施例中,所述回答信息确定单元1082还用于确定与意图三元组和/或所述当前状态信息对应的回答信息中的至少一个变量;确定与所述至少一个变量对应的变量值,根据所述目标回答信息和所述与所述至少一个变量对应的变量值确定所述目标回答信息。
图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图16所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现基于意图三元组的交互方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行年龄识别方法。本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;
根据所述当前对话信息生成与所述当前对话信息对应的意图三元组;
确定在当前语境单元下的当前状态信息;
根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作;
所述应对操作包括:确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回,或,确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
在当前语境单元下或在忽略当前语境单元的情况下,获取当前对话信息;
根据所述当前对话信息生成与所述当前对话信息对应的意图三元组;
确定在当前语境单元下的当前状态信息;
根据意图三元组和/或所述当前状态信息确定与所述当前对话信息对应的应对操作;
所述应对操作包括:确定与意图三元组和/或所述当前状态信息对应的目标回答信息并返回,或,确定与所述意图三元组和/或所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
采用了上述基于意图三元组的交互方法、装置、计算机设备及计算机可读存储介质之后,在通过对话系统进行人机对话的过程中,在用户输入对话信息之后,在当前语境单元下或者在全局监听的情况下,对当前对话信息进行监听,然后根据当前对话信息提取对应的意图三元组,并且确定当前语境单元下的当前状态信息;然后根据提取到的意图三元组和确定的当前状态信息确定与用户输入对话信息对应的应对操作,对应的应对操作可以是确定一回复信息并返回给用户,或者,确定下一个语境单元并激活然后转至该语境单元继续进行对话过程的交互。也就是说,在本实施例中,通过对用户输入进行标识用户意图的意图三元组的提取,并根据意图三元组确定对应的交互操作。其中,意图三元组能更好的标识用户意图,基于该意图三元组的交互操作的确定能更真实接近用户的真实意图,提高了用户意图标识的准确性,提升了人机对话的回答信息返回的有效性,提升了用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (24)
1.一种基于意图三元组的交互方法,其特征在于,包括:
在当前语境单元下,获取当前对话信息,所述语境单元是对话过程中的一个交互节点,用以标识是单轮对话过程、是数据更新过程还是节点的转换过程;且一个所述语境单元对应对话过程中的一个对话语境和对话状态;
对所述当前对话信息进行语义和/或语法分析,生成与所述当前对话信息对应的意图三元组,所述意图三元组的数量为一个或多个,所述意图三元组为以三元组的形式存储的用户意图,每个所述意图三元组为一个所述三元组或多个所述三元组的组合,所述三元组由一个句法/语义关系以及两个概念、实体、词或词组组成;
确定在当前语境单元下的当前状态信息,所述状态信息为对话过程中的环境数据和自定义变量数据,所述当前状态信息还包括全局状态下的全局状态信息;
根据意图三元组和所述当前状态信息确定与所述当前对话信息对应的应对操作;
所述应对操作包括:
确定与意图三元组和所述当前状态信息对应的目标回答信息并返回,
或,
确定与所述意图三元组和所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
2.根据权利要求1所述的方法,其特征在于,所述确定与意图三元组和所述当前状态信息对应的目标回答信息并返回,还包括:
根据意图三元组和所述当前状态信息对应的至少一个回答信息;
在所述至少一个回答信息中,确定目标回答信息并返回;
其中,所述至少一个回答信息包括至少一个与所述当前语境单元对应的语境回答信息和至少一个全局回答信息。
3.根据权利要求2所述的方法,其特征在于,所述至少一个回答信息包括分别与一个或多个意图三元组对应的回答信息;
所述在所述至少一个回答信息中,确定目标回答信息并返回的步骤,还包括:
分别确定每一个意图三元组对应的意图分值;
根据所述意图分值确定与意图三元组和所述当前状态信息对应的目标回答信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述意图分值确定与意图三元组和所述当前状态信息对应的目标回答信息的步骤,还包括:
判断每一个意图三元组对应的意图分值是否大于或等于预设的分值阈值;
将意图分值大于或等于预设的分值阈值的意图三元组所对应的回答信息作为目标回答信息;
在所有意图三元组对应的意图分值均小于预设的分值阈值的情况下,获取当前语境单元下的兜底回答作为目标回答信息、或获取全局兜底回答作为目标回答信息。
5.根据权利要求2所述的方法,其特征在于,所述在所述至少一个回答信息中,确定目标回答信息并返回的步骤,还包括:
分别确定每一个意图三元组对应的意图优先级;
根据所述意图优先级确定与所述意图三元组和所述当前状态信息对应的目标回答信息。
6.根据权利要求5所述的方法,其特征在于,所述根据所述意图优先级确定与所述意图三元组和所述当前状态信息对应的目标回答信息的步骤,还包括:
在所述至少一个回答信息中,确定意图优先级最高的意图三元组对应的回答信息作为目标回答信息。
7.根据权利要求1所述的方法,其特征在于,所述确定在当前语境单元下的当前状态信息的步骤,还包括:
提取所述当前对话信息中的状态信息,根据提取到的状态信息对所述当前状态信息进行更新。
8.根据权利要求1所述的方法,其特征在于,所述确定与所述意图三元组和所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互,还包括:
根据所述意图三元组和所述当前状态信息确定目标分支;
根据所述目标分支确定所述目标语境单元的目标标识。
9.根据权利要求8所述的方法,其特征在于,所述确定与所述意图三元组和所述当前状态信息对应的目标语境单元,还包括:
确定与所述意图三元组和所述当前状态信息对应的多个分支;
分别确定与多个分支对应的分支优先级;
根据所述分支优先级确定所述目标分支。
10.根据权利要求1所述的方法,其特征在于,所述应对操作还包括:
返回预设的衔接语,
或,
在激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互之后,返回预设的衔接语。
11.根据权利要求1所述的方法,其特征在于,所述确定与意图三元组和所述当前状态信息对应的目标回答信息并返回的步骤,还包括:
确定与意图三元组和所述当前状态信息对应的回答信息中的至少一个变量;
确定与所述至少一个变量对应的变量值,根据所述目标回答信息和所述与所述至少一个变量对应的变量值确定所述目标回答信息。
12.一种基于意图三元组的交互装置,其特征在于,包括:
对话信息获取模块,用于在当前语境单元下,获取当前对话信息,所述语境单元是对话过程中的一个交互节点,用以标识是单轮对话过程、是数据更新过程、还是节点的转换过程;且一个所述语境单元对应对话过程中的一个对话语境和对话状态;
意图提取模块,用于对所述当前对话信息进行语义和/或语法分析,生成与所述当前对话信息对应的意图三元组,所述意图三元组的数量为一个或多个,所述意图三元组为以三元组的形式存储的用户意图,每个所述意图三元组为一个所述三元组或多个所述三元组的组合,所述三元组由一个句法/语义关系以及两个概念、实体、词或词组组成;
状态信息确定模块,用于确定在当前语境单元下的当前状态信息,所述状态信息为对话过程中的环境数据和自定义变量数据,所述当前状态信息还包括全局状态下的全局状态信息;
应对操作确定模块,用于根据意图三元组和所述当前状态信息确定与所述当前对话信息对应的应对操作;
其中,所述应对操作确定模块还包括回答信息确定单元,用于确定与意图三元组和所述当前状态信息对应的目标回答信息并返回;
所述应对操作确定模块还包括语境单元转换单元,用于确定与所述意图三元组和所述当前状态信息对应的目标语境单元,激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互。
13.根据权利要求12所述的装置,其特征在于,所述回答信息确定单元还用于根据意图三元组和所述当前状态信息对应的至少一个回答信息;在所述至少一个回答信息中,确定目标回答信息并返回;其中,所述至少一个回答信息包括至少一个与所述当前语境单元对应的语境回答信息和至少一个全局回答信息。
14.根据权利要求13所述的装置,其特征在于,所述至少一个回答信息包括分别与一个或多个意图三元组对应的回答信息;
所述回答信息确定单元还用于分别确定每一个意图三元组对应的意图分值;根据所述意图分值确定与意图三元组和所述当前状态信息对应的目标回答信息。
15.根据权利要求14所述的装置,其特征在于,所述回答信息确定单元还用于判断每一个意图三元组对应的意图分值是否大于或等于预设的分值阈值;将意图分值大于或等于预设的分值阈值的意图三元组所对应的回答信息作为目标回答信息;在所有意图三元组对应的意图分值均小于预设的分值阈值的情况下,获取当前语境单元下的兜底回答作为目标回答信息、或获取全局兜底回答作为目标回答信息。
16.根据权利要求13所述的装置,其特征在于,所述回答信息确定单元还用于分别确定每一个意图三元组对应的意图优先级;根据所述意图优先级确定与所述意图三元组和所述当前状态信息对应的目标回答信息。
17.根据权利要求16所述的装置,其特征在于,所述回答信息确定单元还用于在所述至少一个回答信息中,确定意图优先级最高的意图三元组对应的回答信息作为目标回答信息。
18.根据权利要求12所述的装置,其特征在于,所述状态信息确定模块还用于提取所述当前对话信息中的状态信息,根据提取到的状态信息对所述当前状态信息进行更新。
19.根据权利要求12所述的装置,其特征在于,所述语境单元转换单元还用于根据所述意图三元组和所述当前状态信息确定目标分支;根据所述目标分支确定所述目标语境单元的目标标识。
20.根据权利要求19所述的装置,其特征在于,所述语境单元转换单元还用于确定与所述意图三元组和所述当前状态信息对应的多个分支;分别确定与多个分支对应的分支优先级;根据所述分支优先级确定所述目标分支。
21.根据权利要求12所述的装置,其特征在于,所述回答信息确定单元还用于返回预设的衔接语;
所述语境单元转换单元还用于在激活所述目标语境单元并将所述目标语境单元作为当前语境单元继续进行交互之后,返回预设的衔接语。
22.根据权利要求12所述的装置,其特征在于,所述回答信息确定单元还用于确定与意图三元组和所述当前状态信息对应的回答信息中的至少一个变量;确定与所述至少一个变量对应的变量值,根据所述目标回答信息和所述与所述至少一个变量对应的变量值确定所述目标回答信息。
23.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至11中任一项所述方法的步骤。
24.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至11中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129988.7A CN111368029B (zh) | 2020-02-28 | 2020-02-28 | 基于意图三元组的交互方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010129988.7A CN111368029B (zh) | 2020-02-28 | 2020-02-28 | 基于意图三元组的交互方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111368029A CN111368029A (zh) | 2020-07-03 |
CN111368029B true CN111368029B (zh) | 2021-06-25 |
Family
ID=71208332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010129988.7A Active CN111368029B (zh) | 2020-02-28 | 2020-02-28 | 基于意图三元组的交互方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111368029B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966805B (zh) * | 2020-08-13 | 2021-11-09 | 贝壳找房(北京)科技有限公司 | 用于辅助实现会话的方法、装置、介质以及电子设备 |
CN112069830B (zh) * | 2020-08-13 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 一种智能会话方法及装置 |
CN115934920B (zh) * | 2023-02-24 | 2023-06-16 | 深圳市人马互动科技有限公司 | 针对人机对话的模型训练方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688460A (zh) * | 2016-06-28 | 2018-02-13 | 江苏华扬信息科技有限公司 | 一种面向法语法的句群级语境形式化方法 |
US20180260854A1 (en) * | 2017-03-11 | 2018-09-13 | International Business Machines Corporation | Managing a set of offers using a dialogue |
CN110427461A (zh) * | 2019-08-06 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 智能问答信息处理方法、电子设备及计算机可读存储介质 |
-
2020
- 2020-02-28 CN CN202010129988.7A patent/CN111368029B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688460A (zh) * | 2016-06-28 | 2018-02-13 | 江苏华扬信息科技有限公司 | 一种面向法语法的句群级语境形式化方法 |
US20180260854A1 (en) * | 2017-03-11 | 2018-09-13 | International Business Machines Corporation | Managing a set of offers using a dialogue |
CN110427461A (zh) * | 2019-08-06 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 智能问答信息处理方法、电子设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
HNC语境框架及其语境歧义消解;缪建明 等;《计算机工程》;20070805;第33卷(第15期);第10-12页 * |
HNC问答处理系统关键算法研究;吴晨 等;《计算机科学》;20060625;第33卷(第6期);第200-202、217页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111368029A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111368029B (zh) | 基于意图三元组的交互方法、装置、设备及存储介质 | |
US5682539A (en) | Anticipated meaning natural language interface | |
US8117022B2 (en) | Method and system for machine understanding, knowledge, and conversation | |
CN111339266A (zh) | 聊天机器人的开发系统和聊天机器人模块 | |
CN110347810B (zh) | 对话式检索回答方法、装置、计算机设备及存储介质 | |
CN110019753B (zh) | 针对用户问句输出反问问句的方法和装置 | |
Teixeira et al. | The interplay of a conversational ontology and AI planning for health dialogue management | |
CN110413753B (zh) | 问答样本的扩展方法及装置 | |
CN113722457B (zh) | 意图识别方法以及装置、存储介质、电子装置 | |
CN110060674A (zh) | 表格管理方法、装置、终端和存储介质 | |
CN116521893A (zh) | 智能对话系统的控制方法、控制装置和电子设备 | |
CN112287080A (zh) | 问题语句的改写方法、装置、计算机设备和存储介质 | |
CN111930912A (zh) | 对话管理方法及系统、设备和存储介质 | |
CN111400340A (zh) | 一种自然语言处理方法、装置、计算机设备和存储介质 | |
CN117709357A (zh) | 一种基于大语言模型的ai智能机器人交互处理方法和装置 | |
Allen et al. | Conversational agents for complex collaborative tasks | |
CN118035401A (zh) | 答案生成方法、装置、电子设备及存储介质 | |
CN111552785A (zh) | 人机交互系统数据库更新方法、装置、计算机设备和介质 | |
CN109344385B (zh) | 自然语言处理方法、装置、计算机设备和存储介质 | |
CN115935943A (zh) | 一种支持自然语言结构计算的分析框架 | |
Weigelt et al. | Integrating a dialog component into a framework for spoken language understanding | |
Mazuel et al. | Generic command interpretation algorithms for conversational agents | |
CN114239602A (zh) | 会话方法、装置和计算机程序产品 | |
Lee et al. | Customizing the capture of software architectural design decisions | |
CN113806230A (zh) | 基于用例语音的软件测试方法、装置、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |