一种人机对话装置及其实现人机对话的方法与流程

文档序号:14685519发布日期:2018-06-13 00:09
一种人机对话装置及其实现人机对话的方法与流程

本申请涉及人机对话技术,尤指一种人机对话装置及其实现人机对话的方法。



背景技术:

智能人机对话系统,采用自然语言作为交互媒介,为用户提供服务。智能人机对话系统是一种全新的人和机器的交互方式,交互过程更自然、更高效。比如,六十年代就有著名的Eliza系统问世,能与用户进行简单的对话,使许多用户感觉到好像是在跟真人进行交流。苹果Siri之后,有许多对话产品出现,包括谷歌Now,微软小娜(Cortana)。国内有许多聊天机器人发布,如微软小冰,受到广泛瞩目。

现有的智能人机对话系统大多只做单轮对话,对于用户即业务的服务对象的询问,智能人机对话系统一般分两个阶段进行处理:第一阶段,识别用户意图,用户意图是指用户希望达到某种目的的打算,比如:希望解决某种问题、希望完成某个任务、希望达成某个目标等;第二阶段,AGENT即模拟客服提供客户服务的机器,针对用户意图进行相应的解答或操作。这里,准确地识别用户意图是决定整个智能人机对话系统服务效果的关键。在用户意图识别阶段,现有智能人机对话系统一般是直接根据用户的表述识别用户的意图。整个用户意图识别过程是被动的,也就是说,AGENT不会对用户的询问提出任何问题,只是被动地基于用户的一个询问来确定用户的意图。这样,如果用户的表述不清楚,那么,智能人机系统识别的用户意图也会不准确,而AGENT据此给出的解答或行为会无法达成用户的意图,甚至导致错误和风险。

从上述现有智能人机对话系统的实现来看,不能真正保证对用户意图识别的准确率,而且现有智能人机对话系统的实现大量依赖人工参与,无形中提高了成本,而且实现周期比较长。



技术实现要素:

为了解决上述技术问题,本申请提供了一种人机对话装置及其实现人机对话的方法,能够保证对用户意图识别的准确率,降低实现成本,缩短实现周期。

为了达到本申请目的,本申请提供一种人机对话装置,包括:获取单元、问答单元,以及存储问题的问题数据库;其中,

获取单元,用于在为用户提供服务的对话过程中,获取用户的询问;

问答单元,用于基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题,并根据用户的答复确定用户意图。

可选地,还包括:

学习单元,用于以对话语料样本为基础确定对话的问题,并存储在所述问题数据库中。

可选地,所述学习单元具体用于:

从所述对话语料样本中提取客服向用户提出的问题,通过文本聚类,对向用户提出的问题进行分类并存储在所述问题数据库中。

可选地,所述问答单元包括:意图预测模块、意图决策模块;其中,

意图预测模块,用于基于所述用户的询问预测所述问题数据库中与所述询问对应的每个问题回答肯定的概率,形成表示用户意图的表征信息;

意图决策模块,用于基于表征信息以所述多轮问答的方式,利用用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定的概率;以及用于根据多轮问答后得到的表征信息确定所述用户意图。

可选地,所述意图决策模块,包括:问题决策子模块,以及意图决策子模块,其中,

问题决策子模块,用于在所述多轮问答的每轮问答中,预测得到所述表征信息中每个问题的信息增益,将信息增益最大的问题作为向用户提出的问题,并向用户提出问题;

意图决策子模块,用于以用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定的概率;直到根据更新后的表征信息确定出用户意图。

可选地,所述意图预测模块具体用于:

基于所述用户的询问,从对话语料中学习到各个问题和用于表示达成用户意图的一个解答或行为的系统目标之间的关联;基于关联中的问答分布情况预测对所述问题数据库中与所述询问对应的每个问题回答肯定的概率,形成所述表示用户意图的表征信息。

可选地,所述意图决策子模块中存储有预先设置的表征信息与用户意图的映射关系;

意图决策子模块具体用于:根据所述映射关系,找出对应当前形成的所述表征信息的用户意图。

本申请还提供了一种实现人机对话的方法,包括:

在为用户提供服务的对话过程中,获取用户的询问;

基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题,并根据用户的答复确定用户意图。

可选地,该方法还包括:以对话语料样本为基础确定对话的问题,并存储在所述问题数据库中。

可选地,所述确定对话的问题包括:

从所述对话语料样本中提取客服向用户提出的问题,通过文本聚类,对向用户提出的问题进行分类并存储在所述问题数据库中。

可选地,所述基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题包括:

基于所述用户的询问预测所述问题数据库中与所述询问对应的每个问题回答肯定的概率,形成表示用户意图的表征信息;

基于表征信息以所述多轮问答的方式,利用用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定的概率;以及根据多轮问答后得到的表征信息确定所述用户意图。

可选地,所述利用用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定的概率,根据多轮问答后得到的表征信息确定所述用户意图包括:

在所述多轮问答的每轮问答中,预测得到所述表征信息中每个问题的信息增益,将信息增益最大的问题作为所述多轮问答中下一轮向用户提出的问题,并向用户提出问题;

以用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定的概率;直到根据更新后的表征信息确定出用户意图。

可选地,所述基于所述用户的询问预测所述问题数据库中与所述询问对应的每个问题回答肯定的概率,形成表示用户意图的表征信息包括:

基于所述用户的询问,从对话语料中学习到各个问题和用于表示达成用户意图的一个解答或行为的系统目标之间的关联;基于关联中的问答分布情况预测对所述问题数据库中与所述询问对应的每个问题回答肯定的概率,形成表示用户意图的表征信息。

可选地,根据形成的表示用户意图的表征信息,确定所述用户意图包括:

根据预先设置的表征信息与用户意图的映射关系,找出对应当前形成的所述表征信息的用户意图。

本申请再提供了一种用于实现人机对话的装置,至少包括存储器和处理器,其中,

存储器中存储有以下可执行指令:在为用户提供服务的对话过程中,获取用户的询问;基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题,并根据用户的答复确定用户意图。

本申请提供的方案包括:在为用户提供服务的对话过程中,获取用户的询问;基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题,并根据用户的答复确定用户意图。本申请提供的实现人机对话的技术方案,在系统的工作方式上,在不确定用户意图时,通过主动向用户提问来澄清用户意图,智能地实现了人机对话过程,提高了对用户意图识别的准确率。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本申请人机对话装置的组成结构示意图;

图2(a)为本申请针对提问的答复的分布第一实施例的示意图;

图2(b)为本申请针对提问的答复的分布第二实施例的示意图;

图2(c)为本申请针对提问的答复的分布第三实施例的示意图;

图2(d)为本申请针对提问的答复的分布第四实施例的示意图;

图3为本申请人机对话装置实现人机对话的方法的流程图;

图4为本申请实现人机对话的方法的实施例的流程示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1为本申请人机对话装置的组成结构示意图,如图1所示,包括获取单元、问答单元,以及存储问题的问题数据库;其中,

获取单元,用于在为用户提供服务的对话过程中,获取用户的询问;

问答单元,用于基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题,并根据用户的答复确定用户意图。

其中,多轮问答的方式就是经过一次或一次以上的一问一答的过程。具体的,本实施例中一轮问答,具体可以是指人机对话装置向用户提出问题,用户基于提出的问题作出答复。

问题数据库中存储的问题是:以对话语料样本为基础,通过人工学习、聚类分析、或者机器学习的方法学习出的针对用户的询问提出的问题。对话语料样本可以是如:真实用户和客服的关于达成用户意图的自然语言的对话语料,或者人机对话的历史对话数据等等。且该问题数据库中的问题,可以实时进行更新,具体的,可以根据一段时间搜集到的对话数据,通过机器学习或其他方式来确定针对用户的询问提出的问题。这样,问题数据库中的问题是可以实时更新,通过在为用户提供服务过程中累积的问答语料,形成自动的反馈,持续改进人机对话装置的性能。问题数据库中的问题包括但不限于:是非问题、特指问题,选择问题等。

可选地,本申请人机对话装置还可包括学习单元,用于以对话语料样本为基础确定对话的问题,比如学习出所述针对用户的询问提出的问题,并存储在所述问题数据库中。通过学习单元,可以基于历史的语料来得到问题数据库中问题。

对于通过人工学习的过程,学习出针对用户的询问提出的问题可包括:假设用户询问:“请问我的xx业务怎么用不了?”,通过人工学习,客服可能会提出的问题有:“您开通xx业务了吗?”、“开通不了是吗?”“您缴纳相关费用了吗?”、“怎么开通xx业务是吗?”等等,这些问题会归到同一类别,形成问题数据库中的针对询问xx业务的一系列提出的问题。对于这些问题的提出会有相应的提问的顺序,比如,当客服提问“您开通xx业务了吗?”,用户回答“没有”,那么,客服会接着问“开通不了是吗?”,用户回答“不是”,那么客户会再问“怎么开通xx业务是吗?”,用户回答“是”,至此,客服的问题也就结束了。再如,当客服提问“您开通xx业务了吗?”,用户回答“开通了”,那么客服会接着问“您缴纳相关费用了吗?”,用户回答“没有”,至此,客服的问题也就结束了。

可选地,对于通过机器学习的过程,学习出针对用户的询问的提出的问题可包括:

从对话语料样本中提取客服向用户提出的问题,通过文本聚类,对向用户提出的问题进行分类并存储在所述问题数据库中。比如:将同义的问句归到同一类别,每类别形成问题数据库中针对用户的某种业务的询问的一个问题集。其中,如何提取客服询问用户的问句,如何通过文本聚类方式进行处理并分类的具体实现可以通过现有多种方式实现,具体实现也是本领域技术人员在本申请提供的技术方案基础上容易想到的,并不用于限定本申请的保护范围,这里强调的是:利用对话语料样本针对用户的询问,如对某种业务或某种使用的询问,获得对应该询问的一系列问题。

问题数据库中的问题可以是针对不同业务的一类问题,也可以是针对同一类业务的不同方面的一类问题,等等,只要能称为一类即可。

可选地,问答单元可以包括:意图预测模块、意图决策模块;其中,

意图预测模块,用于基于所述用户的询问预测所述问题数据库中与所述询问对应的每个问题回答肯定或否定的概率,形成表示用户意图的表征信息;其中,用户意图的表征信息的每条信息对应一个问题,以及针对该问题的肯定或否定的概率。

意图决策模块,用于基于表征信息以所述多轮问答的方式,利用用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定(或否定)的概率;以及用于根据多轮问答后得到的表征信息确定所述用户意图。在意图预测模块基于用户的询问获得问题数据库中的每个问题的回答肯定的概率,得到用户意图的表征信息后,在多轮问答过程中,基于每轮问答得到用户针对提出的问题的答复,会实时的更新上述得到的表征信息中对应问题的回答肯定(或否定)的概率,从而可基于更新后的表征信息来确定用户的意图。

可选地,意图决策模块可包括:问题决策子模块,以及意图决策子模块,其中,

问题决策子模块,用于在所述多轮问答的每轮问答中,预测得到所述表征信息中每个问题的信息增益,将信息增益最大的问题作为向用户提出的问题,并向用户提出问题;

意图决策子模块,用于以用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定(或否定)的概率;直到根据更新后的表征信息确定出用户意图。具体实现中,也可以限定多轮问答的次数,即提问达到预设的提问次数时,即使无法确定出用户意图,也可停止进行提问,并可基于表征信息确定出最接近的用户意图,或者,停止该次询问并告诉用户无法确定用户的意图,请用户重新提出询问,等等。

意图决策模块在为用户提供服务的对话过程中,具体可根据用户询问和答复的信息从问题数据库中提出相应的问题(Q1,Q2,…,Qn),并预测每个问题的回答是肯定或否定的概率,以形成向量(p1,p2,…,pn)作为用户意图的表征信息。

假如对于某个用户的询问,如果获知了用户关于问题数据库中每个问题的回答(比如:对于是非问题,知道其答案是肯定还是否定),那么,就清楚地知道了此用户需要解决什么问题或是要达成什么目标。也就是说,通过提取出的问题数据库中的一系列问题及其对应的答案构成了用户意图的一个表征信息。

当针对用户的询问提出一个问题,假设用户给出一个肯定回答,根据这个问答,会更新对应的问答预测为肯定,如图2(c)所示;之后,按照问题数据库中的提问的策略再提出一个问题,假设用户给出一个否定的回答,根据这个问答,会更新对应的问答预测为否定,如图2(d)所示。如此,直到用户意图足够清晰如达到预先设置的概率阈值或者提问达到预先设置的提问次数阈值,结束提问。并最终形成表示用户意图的表征信息即用户意图的分布式表征向量(p1,p2,…,pn)。

更具体地,对话开始时,没有任何用户意图的信息,对于针对用户发起的询问的可能的所有问题,其答案有一个先验的分布,如图2(a)所示。在用户针对提出的问题陈述了其问题或目标(即给出答复)后,可以通过问答预测模型预测各个问题的答案,形成用户意图的一个分布式表达,如图2(b)所示。使用用户意图的分布式表达,从对话语料中可以学习到各个问题(Q1,Q2,…,Qn)和系统目标T(可以是达成用户意图的一个解答或行为)之间的关联pt=F(p1,p2,…,pn)。基于问答预测分布(p1,p2,…,pn)可以预测每个问题Qi(i=1,2,…n)在得到肯定回答(即pi=1)或否定解答(即pi=0)后,可能会带来的针对目标的信息增益InfoGain(Qi)如公式(1)所示,即在确定了问题Qi后,对目标T的预测从不确定到确定。

InfoGain(Qi)=Entropy(pt)–pi×Entropy(pt|pi=1)–(1-pi)×Entropy(pt|pi=0)) (1)

每次提问时,取预测信息增益最大的问题向用户提问。当用户根据提出的一个问题给出一个回答后,根据这个问答,更新对应的问答预测分布(p1,p2,…,pn);根据更新后的分布,重新预测每个问题的信息增益即重新计算InfoGain(Qi),再次选取信息增益最大的问题向用户继续提问;直到用户意图足够清晰,比如预测的pt值>预先设置的概率阈值如0.9,即能够做出准确的解答或行为,结束提问,或者,当针对用户的询问发起的提问达到预先设置的提问次数阈值,认为用户意图已足够清晰,结束提问。

其中,所述的问答预测模型具体可以是根据对话预料样本,通过机器学习来训练得到的,基于该问答预测模型,将用户的询问作为输入,即可以得到问题数据库中每个问题回答肯定或否定的概率。

可选地,意图预测模块具体用于:

基于所述用户的询问,从对话语料中学习到各个问题和用于表示达成用户意图的一个解答或行为的系统目标之间的关联;基于关联中的问答分布情况预测对所述问题数据库中与所述询问对应的每个问题回答肯定(或否定)的概率,形成表示用户意图的表征信息。

可选地,意图决策子模块中存储有预先存储有表征信息与用户意图的映射关系,意图决策模块只需要根据所述映射关系,找出对应当前形成的表征信息的用户意图即可。

用户意图的分布式表征向量,表达了对话过程中所有和用户意图相关的信息,根据这个表征向量对应用户意图,最终选取出针对该用户意图的解决方案推给用户。

上述的问题数据库,可以是基于一类业务的问题的集合形成的数据库,或者,也可以是基于多个不同类别的业务的问题的集合形成的数据库,且每类业务对应的问题,与业务类别相对应。这样,若是基于多个不同类别的业务的问题的集合形成的数据库,那么获得一个用户的询问时,可先基于该用户的询问确定业务类别,并找出该业务类别对应的所有问题,并根据对这些问题的答复组成表示用户意图的表征信息。

图2为本申请人机对话装置实现人机对话的方法的流程图,如图2所示,包括:

步骤200:在为用户提供服务的对话过程中,获取用户的询问。

步骤201:基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题,并根据用户的答复确定用户意图。

本步骤中的基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题包括:

基于所述用户的询问预测所述问题数据库中与所述询问对应的每个问题回答肯定或否定的概率,形成表示用户意图的表征信息;

基于表征信息以所述多轮问答的方式,利用用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定(或否定)的概率;以及根据多轮问答后得到的表征信息确定所述用户意图。

其中,

基于所述用户的询问预测对所述问题数据库中与所述询问对应的每个问题回答肯定(或否定)的概率,形成表示用户意图的表征信息包括:

基于所述用户的询问,从对话语料中学习到各个问题和用于表示达成用户意图的一个解答或行为的系统目标之间的关联;基于关联中的问答分布情况预测对所述问题数据库中与所述询问对应的每个问题回答肯定(或否定)的概率,形成表示用户意图的表征信息。

假如对于某个用户的询问,如果获知了用户关于问题数据库中每个问题的回答(比如:对于是非问题,知道其答案是肯定还是否定),那么,就清楚地知道了此用户需要解决什么问题或是要达成什么目标。也就是说,通过提取出的问题数据库中的一系列问题及其对应的答案构成了用户意图的一个表征信息。

当针对用户的询问提出一个问题,假设用户给出一个肯定回答,根据这个问答,会更新对应的问答预测为肯定,如图2(c)所示;之后,按照问题数据库中的提问的策略再提出一个问题,假设用户给出一个否定的回答,根据这个问答,会更新对应的问答预测为否定,如图2(d)所示。如此,按照提问的策略直到用户意图足够清晰,或者提问达到预先设置的提问次数阈值,结束提问。并最终形成表示用户意图的表征信息即用户意图的分布式表征向量(p1,p2,…,pn)。

更具体地,

其中,

利用用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定(或否定)的概率,根据多轮问答后得到的表征信息确定所述用户意图包括:

在所述多轮问答的每轮问答中,预测得到所述表征信息中每个问题的信息增益,将信息增益最大的问题作为所述多轮问答中下一轮向用户提出的问题,并向用户提出问题;

以用户对所述向用户提出的问题的答复更新所述表征信息中预测得到的用户回答肯定(或否定)的概率;直到根据更新后的表征信息确定出用户意图。

更具体地,对话开始时,没有任何用户意图的信息,对于针对用户发起的询问的可能的所有问题,其答案有一个先验的分布,如图2(a)所示。在用户针对提出的问题陈述了其问题或目标(即给出答复)后,可以通过问答预测模型预测各个问题的答案,形成用户意图的一个分布式表达,如图2(b)所示。使用用户意图的分布式表达,从对话语料中可以学习到各个问题(Q1,Q2,…,Qn)和系统目标T(可以是达成用户意图的一个解答或行为)之间的关联pt=F(p1,p2,…,pn)。基于问答预测分布(p1,p2,…,pn)可以预测每个问题Qi(i=1,2,…n)在得到肯定回答(即pi=1)或否定解答(即pi=0)后,可能会带来的针对目标的信息增益InfoGain(Qi)如公式(1)所示,即在确定了问题Qi后,对目标T的预测从不确定到确定。

每次提问时,取预测信息增益最大的问题向用户提问。当用户根据提出的一个问题给出一个回答后,根据这个问答,更新对应的问答预测分布(p1,p2,…,pn);根据更新后的分布,重新预测每个问题的信息增益即重新计算InfoGain(Qi),再次选取信息增益最大的问题向用户继续提问;直到用户意图足够清晰,比如预测的pt值>预先设置的概率阈值如0.9,即能够做出准确的解答或行为,结束提问,或者,当针对用户的询问发起的提问达到预先设置的提问次数阈值,认为用户意图已足够清晰,结束提问。

更具体地,

其中,根据形成的表示用户意图的表征信息,确定所述用户意图包括:

根据预先设置的表征信息与用户意图的映射关系,找出对应当前形成的所述表征信息的用户意图。用户意图的分布式表征向量,表达了对话过程中所有和用户意图相关的信息,根据这个表征向量对应用户意图,最终选取出针对该用户意图的解决方案推给用户。

本申请提供的实现人机对话的技术方案,在工作方式上,在不确定用户意图时,通过主动向用户提问来澄清用户意图,智能地实现了人机对话过程,提高了对用户意图识别的准确率。

本申请方法还包括:

以对话语料样本为基础确定对话的问题,比如学习出所述针对用户的询问的提出的问题,并存储在所述问题数据库中。

其中,问题数据库中的问题包括但不限于:是非问题外,还问其他类型的问题,如特指问,选择问等。

可选地,对于通过人工学习的过程,学习出针对用户的询问的提出的问题包括:假设用户询问:“请问我的xx业务怎么用不了?”,通过人工学习,客服可能会提出的问题有:“您开通xx业务了吗?”、“开通不了是吗?”“您缴纳相关费用了吗?”、“怎么开通xx业务是吗?”等等,这些问题会归到同一类别,形成问题数据库中的针对询问xx业务的一系列提出的问题。对于这些问题的提出会有相应的提问的顺序,比如,当客服提问“您开通xx业务了吗?”,用户回答“没有”,那么,客服会接着问“开通不了是吗?”,用户回答“不是”,那么客户会再问“怎么开通xx业务是吗?”,用户回答“是”,至此,客服的问题也就结束了。再如,当客服提问“您开通xx业务了吗?”,用户回答“开通了”,那么客服会接着问“您缴纳相关费用了吗?”,用户回答“没有”,至此,客服的问题也就结束了。

可选地,对于通过机器学习的过程,学习出针对用户的询问的提出的问题包括:

从对话语料样本中提取客服向用户提出的问题,通过文本聚类,对向用户提出的问题进行分类并存储在所述问题数据库中。比如:将同义的问句归到同一类别,每类别形成问题数据库中针对用户的某种业务的询问的一个问题集。其中,如何提取客服询问用户的问句,如何通过文本聚类方式进行处理并分类的具体实现可以通过现有多种方式实现,具体实现也是本领域技术人员在本申请提供的技术方案基础上容易想到的,并不用于限定本申请的保护范围,这里强调的是:利用对话语料样本针对用户的询问,如对某种业务或某种使用的询问,获得对应该询问的一系列问题。

进一步地,在人机对话装置的演化方式上,将人机对话过程中的对话记录放入对话语料样本,以便修正或补充学习的提问问题,持续改进了人机对话装置的性能,从而降低了人机对话装置更新成本,提高了更新速度。

下面结合一个具体实施例对本申请实现人机对话的方法进行详细描述。图4为本申请实现人机对话的方法的实施例的流程示意图,如图4所示,包括以下几部分:

首先,对用户的询问进行单轮问题识别,单轮交互问题识别模型的输入是用户的询问的一句话的描述文本,比如“我的账号被盗了”,输出是该描述所对应的业务分类如“如何解限”。举例来看,以用户的询问即初始问题描述为“我的支付宝账号登录不上去了”为输入为例,在执行分类任务后得到分类目标是1000个业务问题,那么,认为单论问题识别是成功的,输出对应的解决问题的结果即可;如果不能得到分类结果,则认为单论问题识别失败,会进入多轮交互流程,即进一步向用户提问并获得回答以帮助确定用户发出询问的意图;

然后,对需要进一步提出的问题进行预测,并根据用户对预测问题的答复来做进一步识别。问题预测的目标是挑选一个问题,这个问题如果获得肯定的回答对分类到某个业务帮助最大。假设问题数据库中的问题个数为N,业务类别总数为K,假设Pi=第i(i=1~N)个问题是肯定回答的概率,Tj=P(业务分类为j|P1P2…PN)为业务类型为j的条件概率(j=1~K),按照公式(1),当问题i变为肯定回答时的信息增益为:InfoGain(i)=Entropy(T)–Pi×Entropy(T|Pi=1)–(1-Pi)×Entropy(T|Pi=0)),要挑选出来的问题就是i=argmax(InfoGain(i))。其中,可以利用一个多层神经网络FFNN来建模从N个问题的回答的分布到业务类型的分布的映射,这个模型的训练数据也是来源于样本数据,比如每一通电话为一个训练数据,与之前建立问题数据库类似,可以从电话录音文本中提取客服问的问题与用户的回答,转化成(P1P2…PN)向量,加上该通电话的业务类型标注形成了data-label的有监督训练语料。

多轮流程的交互过程就是模型预测并提出一个问题,用户给出一个回答;根据这个问答,更新对应的问答分布(P1P2…PN)。根据更新后的输入,重新计算每个问题回答改变后的信息增益,选取信息增益最大的问题,向用户继续提问,直到用户意图足够清晰即多轮问题识别成功。多轮交互的LSTM网络能够给出高于阀值的分类目标。多轮问题识别可以通过训练的多轮交互问题识别模型来实现,多轮交互问题识别模型以与用户的全部对话数据,以用户提出问题如“我花呗开通不了啊”为例,AGENT进一步地提问:“您是卖家吗”,用户答复:“是的”等为输入执行分类任务,分类目标与单轮交互问题识别模型相同,也是1000个业务问题。

其中,问题预测模型的输入是用户的全部对话内容,输出是预先定义的问题库中的某一个问题。当问题识别结果的置信分不高于设定的阈值时,会认为用户描述信息量不足,问题预测模型就会从问题库中挑选出对分类最有帮助的问题向用户询问,并收集用户的回答用多轮交互问题识别模型来再次判别。

上述提到的单轮交互问题识别模型、多轮交互问题识别模型和问题预测模型可以是预先训练好的如深度神经网络(DNN)模型。

本申请还提供一种用于实现人机对话的装置,至少包括存储器和处理器,其中,存储器中存储有以下可执行指令:在为用户提供服务的对话过程中,获取用户的询问;基于用户询问和问题数据库中的问题,采用多轮问答的方式向用户提出问题,并根据用户的答复确定用户意图。

虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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