一种对话回复方法、装置、服务器及存储介质与流程

文档序号:22084129发布日期:2020-09-01 19:50阅读:130来源:国知局
一种对话回复方法、装置、服务器及存储介质与流程

本发明属于聊天机器人技术领域,具体涉及一种对话回复方法、装置、服务器及存储介质。



背景技术:

目前的智能客服系统,主要是基于知识点匹配的问答。首先通过人工挖掘或者借助算法形式的自动化挖掘,将用户的常见问题总结为几百个到几千个知识点。每个知识点包括一个标准问和标准答案。之后的在线客服端,根据用户输入的问题匹配已有的知识点,并将匹配到的知识点告诉用户。这种基于知识点匹配的问答存在几个明显的不足:首先,答案需要事先根据挖掘的知识点进行编写,知识点的挖掘以及答案的编写需要消耗很大的人力成本;其次,知识点的挖掘是根据用户历史问题来总结的,如果某个问题之前没有被或者很少被问过,就不会出现在知识点中,那么即使这个问题可以在知识文库中找到合适的答案,通过知识点匹配的方式也无法给出用户满意的答复。此外,所有的背景文本都是动态更新的,知识点的及时更新严重依赖于运营人员的响应效率,且更新知识点同样也需要消耗人力成本。



技术实现要素:

鉴于此,本发明实施例在于提供一种对话回复方法、装置、服务器及存储介质,以实现在无人工干预的情况下随知识图库的更新而自动更新答案,进而极大地节约了人力资源,提升了工作效率。

本发明的实施例是这样实现的:

第一方面,本发明实施例提供了一种对话回复方法,包括:获取用户输入的问题信息;通过预设网络模型从预设知识图库中确定出与所述问题信息匹配度最高的目标知识文本,并从所述目标知识文本中提取出与所述问题信息相对应的答案,其中,所述预设知识图库中包含有多个知识文本;向所述用户反馈所述答案。

本申请实施例中,先根据用户输入的问题信息从预设知识图库中确定出问题信息所在的答案的目标知识文本,然后再从目标知识文本中提取出与问题信息相对应的答案,最后向用户反馈提取出的答案,不再是采用现有的基于知识点匹配的问答方法,而是采用基于阅读理解的自然语言处理方法。这种对话回复方式使得可以在无人工干预的情况下随知识图库的更新而自动更新答案,在提高答案的准确性同时,还可以提高用户的体验感,最为重要的是,极大地节约了人力资源,提升了工作效率。

结合第一方面实施例的一种可能的实施方式,所述预设网络模型包括:卷积神经网络,通过预设网络模型从预设知识图库中确定出与所述问题信息匹配度最高的目标知识文本,包括:通过所述卷积神经网络和注意力机制获得所述问题信息的句子表示向量;通过所述卷积神经网络和所述注意力机制获得所述预设知识图库中各个知识文本的整体表示向量;计算所述句子表示向量与各个整体表示向量的相似度;将最大相似度对应的知识文本作为目标知识文本。本申请实施例中,首先通过卷积神经网络和注意力机制获得问题信息的句子表示向量以及获得预设知识图库中各个知识文本的整体表示向量,然后再计算句子表示向量与各个整体表示向量的相似度,最后将最大相似度对应的知识文本作为目标知识文本,保证了答案定位的准确性和可靠性。

结合第一方面实施例的一种可能的实施方式,通过预设网络模型从预设知识图库中确定出与所述问题信息匹配度最高的目标知识文本,包括:获取所述问题信息中的关键词;从所述预设知识图库中过滤掉不包含所述关键词的知识文本,得到剩余知识文本;通过预设网络模型从所述剩余知识文本中确定出与所述问题信息匹配度最高的目标知识文本。本申请实施例中,可以根据问题信息中的关键词对预设知识图库中的知识文本进行过滤,以将明显不匹配的知识文本筛选出来,然后再从剩余的知识文本中确定出与所述问题信息匹配度最高的目标知识文本,以此来减少计算量,节约计算成本,提高答案反馈的效率。

结合第一方面实施例的一种可能的实施方式,所述预设网络模型包括:卷积神经网络,通过预设网络模型从所述剩余知识文本中确定出与所述问题信息匹配度最高的目标知识文本,包括:通过所述卷积神经网络和注意力机制获得所述问题信息的句子表示向量;通过所述卷积神经网络和所述注意力机制获得所述剩余知识文本中各个知识文本的整体表示向量;计算所述句子表示向量与各个整体表示向量的相似度;将最大相似度对应的知识文本作为目标知识文本。

结合第一方面实施例的一种可能的实施方式,通过所述卷积神经网络和注意力机制获得所述问题信息的句子表示向量,包括:将所述问题信息中的每个字转换成字向量,得到字向量序列;通过所述卷积神经网络对所述字向量序列进行卷积处理,得到卷积特征;通过所述注意力机制对所述卷积特征进行线性加权求和,得到所述句子表示向量。本申请实施例中,先将问题信息中的每个字转换成字向量,得到字向量序列,然后再利用卷积神经网络对字向量序列进行特征提取,得到卷积特征,最后再使用注意力机制对卷积特征进行线性加权求和,即可得到句子表示向量,通过该方式对问题信息进行处理后,能显著提高计算问题信息与知识文本之间的匹配度的计算速率。

结合第一方面实施例的一种可能的实施方式,通过所述卷积神经网络和所述注意力机制获得所述预设知识图库中各个知识文本的整体表示向量,包括:将所述预设知识图库中第i个知识文本中的每句话中的每个词转换成词向量,得到表征所述第i个知识文本中的每句话的词向量序列;通过所述卷积神经网络对所述第i个知识文本中的每句话的词向量序列分别进行卷积处理,得到所述第i个知识文本中的每句话的卷积特征;通过所述注意力机制对所述第i个知识文本中的每句话的卷积特征分别进行线性加权求和,得到所述i个知识文本中的每句话的句子表示向量;通过所述注意力机制对所述i个知识文本的各句子表示向量进行线性加权求和,得到所述i个知识文本的整体表示向量,其中,i依次取1至n,n为所述预设知识图库中的知识文本数。

结合第一方面实施例的一种可能的实施方式,所述预设网络模型还包括:双向长短时记忆循环神经网络和序列标注模型,从所述目标知识文本中提取出与所述问题信息相对应的答案,包括:计算所述目标知识文本中每个词对应的词向量与所述问题信息对应的句子表示向量之间的相关性;基于相关性计算结果来扩充所述目标知识文本中每个词对应的词向量表示;使用所述双向长短时记忆循环神经网络对扩充后的词向量表示进行特征提取,得到包含时序特征的输出特征;将所述输出特征输入所述序列标注模型中,获得序列标注结果;从所述序列标注结果中提取出标注为答案的信息。本申请实施例中,在定位到答案所在的目标知识文本后,通过计算目标知识文本中每个词对应的词向量与问题信息对应的句子表示向量之间的相关性,并以此来扩充目标知识文本中每个词对应的词向量表示,并在此基础上使用双向长短时记忆循环神经网络来进行时序特征提取,最后再经过序列标注模型获取标注结果,并从标注结果中提取出对应的答案,以便答复用户,该方式使得可以在无人工干预的情况下随知识图库的更新而自动更新答案,同时可以提高答案的准确性,进而可以提高用户的体验感,最为重要的是,可以极大的节约人力资源,提升工作效率。

结合第一方面实施例的一种可能的实施方式,通过以下方法获得所述预设网络模型:使用相同的训练样本、使用相同的模型结构独立训练出多个不同的网络模型;利用所述多个不同的网络模型分别对同一个问题信息进行答案预测,并将各自的预测结果作为新的训练样本;使用所述新的训练样本对所述模型结构进行训练,得到所述预设网络模型。本申请实施例中,在训练网络模型时,采用了知识蒸馏技术,以此来提高预测结果的准确性,同时又不增加对计算资源的消耗。进一步地,首先使用相同的训练样本、使用相同的模型结构独立训练出多个不同的网络模型,然后,利用上述训练得到的多个不同的网络模型分别对同一个问题信息进行答案预测,并将各自的预测结果作为新的训练样本,最后,基于这些网络模型预测的结果来训练相同结构的初始模型,进而使得最终得到的网络模型可以在显著降低运算量的前提下,接近甚至达到集成模型(多个不同的网络模型)的效果。

第二方面,本申请实施例还提供了一种对话回复装置,包括:获取模块、确定模块以及反馈模块;获取模块,用于获取用户输入的问题信息;确定模块,用于通过预设网络模型从预设知识图库中确定出与所述问题信息匹配度最高的目标知识文本,并从所述目标知识文本中提取出与所述问题信息相对应的答案,其中,所述预设知识图库中包含有多个知识文本;反馈模块,用于向所述用户反馈所述答案。

结合第二方面实施例的一种可能的实施方式,所述预设网络模型包括:卷积神经网络,所述确定模块,还用于:通过所述卷积神经网络和注意力机制获得所述问题信息的句子表示向量;通过所述卷积神经网络和所述注意力机制获得所述预设知识图库中各个知识文本的整体表示向量;计算所述句子表示向量与各个整体表示向量的相似度;将最大相似度对应的知识文本作为目标知识文本。

结合第二方面实施例的一种可能的实施方式,所述确定模块,还用于:获取所述问题信息中的关键词;从所述预设知识图库中过滤掉不包含所述关键词的知识文本,得到剩余知识文本;通过预设网络模型从所述剩余知识文本中确定出与所述问题信息匹配度最高的目标知识文本。

结合第二方面实施例的一种可能的实施方式,所述预设网络模型包括:卷积神经网络,所述确定模块,还用于:通过所述卷积神经网络和注意力机制获得所述问题信息的句子表示向量;通过所述卷积神经网络和所述注意力机制获得所述剩余知识文本中各个知识文本的整体表示向量;计算所述句子表示向量与各个整体表示向量的相似度;将最大相似度对应的知识文本作为目标知识文本。

结合第二方面实施例的一种可能的实施方式,所述确定模块,还用于:将所述问题信息中的每个字转换成字向量,得到字向量序列;通过所述卷积神经网络对所述字向量序列进行卷积处理,得到卷积特征;通过所述注意力机制对所述卷积特征进行线性加权求和,得到所述句子表示向量。

结合第二方面实施例的一种可能的实施方式,所述确定模块,还用于:将所述预设知识图库中第i个知识文本中的每句话中的每个词转换成词向量,得到表征所述第i个知识文本中的每句话的词向量序列;通过所述卷积神经网络对所述第i个知识文本中的每句话的词向量序列分别进行卷积处理,得到所述第i个知识文本中的每句话的卷积特征;通过所述注意力机制对所述第i个知识文本中的每句话的卷积特征分别进行线性加权求和,得到所述i个知识文本中的每句话的句子表示向量;通过所述注意力机制对所述i个知识文本的各句子表示向量进行线性加权求和,得到所述i个知识文本的整体表示向量,其中,i依次取1至n,n为所述预设知识图库中的知识文本数。

结合第二方面实施例的一种可能的实施方式,所述预设网络模型还包括:双向长短时记忆循环神经网络和序列标注模型,所述确定模块,还用于:计算所述目标知识文本中每个词对应的词向量与所述问题信息对应的句子表示向量之间的相关性;基于相关性计算结果来扩充所述目标知识文本中每个词对应的词向量表示;使用所述双向长短时记忆循环神经网络对扩充后的词向量表示进行特征提取,得到包含时序特征的输出特征;将所述输出特征输入所述序列标注模型中,获得序列标注结果;从所述序列标注结果中提取出标注为答案的信息。

第三方面,本申请实施例还提供了一种服务器,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器用于存储程序;所述处理器用于调用存储于所述存储器中的程序以执行上述第一方面实施例和/或结合上述第一方面实施例的一种可能的实施方式提供的方法。

第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面实施例和/或结合上述第一方面实施例的一种可能的实施方式提供的方法。

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

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。

图1示出了本发明实施例提供的一种问答系统的结构示意图。

图2示出了本发明实施例提供的一种服务器的结构示意图。

图3示出了本发明实施例提供的一种对话回复方法的流程图。

图4示出了本发明实施例提供的一种确定目标知识文本的方法流程图。

图5示出了本发明实施例提供的一种从目标知识文本中提取答案的方法流程图。

图6示出了本发明实施例提供的一种对话回复装置的模块示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。

第一实施例

请参阅图1,图1为本发明实施例提供的一种问答系统100的交互示意图。该问答系统100包括:客户端120和服务器110,客户端120通过网络与服务器110进行数据交互。本实施例中,客户端120的数量为至少一个,其中,客户端120中安装有至少一个应用程序(application,app)与服务器110相对应,以便服务器110为用户提供服务。

其中,在本发明实施例中,所述服务器110可以是,但不限于网络服务器、数据库服务器、云端服务器等。所述客户端12可以是,但不限于个人电脑(personalcomputer,pc)、智能手机、平板电脑、移动上网设备(mobileinternetdevice,mid)、个人数字助理(personaldigitalassistant,pda)等电子设备。

如图2所示,图2示出了本发明实施例提供的一种服务器110的结构框图。所述服务器110包括:对话回复装置111、存储器112、存储控制器113和处理器114。

所述存储器112、存储控制器113、处理器114各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述对话回复装置111包括至少一个可以软件或固件(firmware)的形式存储于所述存储器112中或固化在所述频谱检测仪100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器114用于执行存储器112中存储的可执行模块,例如所述对话回复装置111包括的软件功能模块或计算机程序。

其中,存储器112可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器112用于存储程序,所述处理器114在接收到执行指令后,执行所述程序,后述本发明实施例任一实施例揭示的流程定义的频谱检测仪100所执行的方法可以应用于处理器114中,或者由处理器114实现。

处理器114可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

请参阅图3,为本发明实施例提供的一种应用于上述服务器110的对话回复方法,下面将结合图3对其所包含的步骤进行说明。

步骤s101:获取用户输入的问题信息。

当用户想要咨询某个问题时,在客户端120上输入对应的问题信息,客户端120响应用户输入的问题信息,将其发送给服务器110。

步骤s102:通过预设网络模型从预设知识图库中确定出与所述问题信息匹配度最高的目标知识文本,并从所述目标知识文本中提取出与所述问题信息相对应的答案。

为了便于理解本申请,下面对本申请的应用场景进行说明,本申请实施例提供了对话回复方法是基于阅读理解的自然语言处理方法,通过是给定一段背景文本(可以是一句话、一段文字、一篇文章、甚至是一本书或者一个剧本),然后给出一个问题,要求基于给定的背景文本给出合适的答案。问题的答案可以有多种不同的形式,比如是非型问题,答案只有是和否;比如单选型问题,给出多个候选,答案是其中的一个;比如多选型问题,也是给出多个候选,其中一个或多个都是正确答案;再比如匹配型的问题,答案是背景文本中的一个字串。

基于阅读理解的自然语言处理方法可以很自然的被应用到问答系统100中,如客服问答系统,如移动/联通/电信的客服问答系统,网约车平台的客服问答系统等。如移动中的所有公开的策略、计费规则、积分奖励策略等文档均可以看成是背景文本;又例如,网约车平台中的所有公开的政策、计费规则、调度策略、司机奖励策略等文档均可以看成是背景文本。而用户在人工客服中或者电话客服中的很多问题都可以在这些文档中找到合适的答案,阅读理解任务的目标便是根据这些文档给出问题的答案。其中,需要说明的是,本申请实施例提供的对话回复方法可以应用于所有存在对话需求的问答系统中,并不限于上述示例的范围。

在介绍了本申请的应用背景后,下面将结合步骤s102的特征进行说明。服务器110在获取到用户输入的问题信息后,通过预设网络模型从预设知识图库中确定与所述问题信息匹配度最高的目标知识文本,并从所述目标知识文本中提取出与所述问题信息相对应的答案。其中,预设知识图库中包含有多个知识文本也即上述的背景文本。

也就是说,在获取到用户输入的问题信息后,将该问题信息与预设知识图库中各个知识文本进行相关性匹配,以确定出与问题信息匹配度最高的目标知识文本,以此来定位答案所在的目标知识文本,然后再从目标知识文本中提取出与所述问题信息相对应的答案。

作为一种可选的实施方式,通过预设网络模型从预设知识图库中确定出与所述问题信息匹配度最高的目标知识文本的过程可以参见图4所示的方法。

步骤s201:通过卷积神经网络和注意力机制获得所述问题信息的句子表示向量。

为了准确定位问题信息所在的答案的目标知识文本,首先要采用合适的方式来理解问题信息的语义表示,本实施例中,通过卷积神经网络和注意力机制来获得该问题信息的句子表示向量。

进一步地,一段文本可以看成是字的序列,也可以看成是词的序列,对于口语化的句子来说,采用字向量来表达句子的语义表示的效果要相较于采用词向量来表达句子的语义表示的效果更好,对于书面化(非口语化)的句子来说,采用词向量来表达句子的语义表示的效果要相较于采用字向量来表达句子的语义表示的效果更好。由于用户的问题信息相对知识文本中的话语来说,相对口语化,因此,可选地,本实施例中,采用字向量来表示问题信息,也即,先将问题信息中的每个字转换成字向量,这样便可得到问题信息对应的字向量序列,然后通过卷积神经网络对该字向量序列进行特征提取,也即进行卷积处理,得到卷积特征。由于用户输入的问题信息通常是一句话,而一个句子中不同的字(词)的重要性不同,因此,在得到句子的卷积特征后,再通过注意力机制对卷积特征进行线性加权求和,得到问题信息对应的句子表示向量,也即,对卷积特征中的不同特征赋予不同的权重,然后在计算这些特征的加权和。

其中,需要说明的是,上述的卷积神经网络也可以采用类循环神经网络替代。

步骤s202:通过所述卷积神经网络和所述注意力机制获得所述预设知识图库中各个知识文本的整体表示向量。

同理,为了准确定位问题信息所在的答案的目标知识文本,首先要采用合适的方式来理解预设知识库中的各个知识文本的整体语义表示,本申请实施例中,通过卷积神经网络和注意力机制获得预设知识图库中各个知识文本的整体表示向量。

进一步地,预设知识图库中的各个知识文本可以看成是字的序列,也可以看成是词的序列,由于预设知识图库中的各个知识文本的语言都非常规范精炼,因此,可选地,本实施例中,采用词向量来表示知识文本,也即,将预设知识图库中第i个知识文本中的每句话中的每个词转换成词向量,得到表征第i个知识文本中的每句话的词向量序列,该过程可以参见上述的问题信息转换为字向量的过程,不同的是,该第i个知识文本包含多句话,在转换时,是针对该知识文本中的每句话进行的,例如,该知识文本包含4句话,则在转换时,将4句话中的每句话中的每次词转换成词向量,这样便得到各个话的词向量序列,也即可以得到4个词向量序列。

在得到表征第i个知识文本中的每句话的词向量序列后,通过卷积神经网络对第i个知识文本中的每句话的词向量序列分别进行特征提取,也即进行卷积处理,便可得到每句话对应的卷积特征。由于一个句子中不同的字(词)的重要性不同,因此,在得到句子的卷积特征后,再通过注意力机制对每句话对应的卷积特征分别进行线性加权求和,得到每句话对应的句子表示向量。这样便可以得到第i个知识文本中的每句话的句子表示向量。由于一个文本中不同的句子的重要性也是不同的,因此,在得到第i个知识文本中的每句话的句子表示向量后,再通过注意力机制对i个知识文本的各句子表示向量进行线性加权求和,得到i个知识文本的整体表示向量。

其中,i依次取1至n,n为所述预设知识图库中的知识文本数,如,假设预设知识图库包括100个知识文本,则n为100。采用上述的方式便可以获得预设知识图库中各个知识文本的整体表示向量。其中,各个知识文本的整体表示向量的获取原理相同,一个知识文本的整体表示向量的获取原理与上述问题信息的句子表示向量的获取原理类似,不同的是,一个问题信息通常为一个句子,而一个知识文本通常包括多个句子,而针对知识文本中的各个句子的句子表示向量的获取原理是一样的。

其中,需要说明的是,通过卷积神经网络和注意力机制获得预设知识图库中各个知识文本的整体表示向量这一过程也可以是事先获得的,也即在获取用户输入的问题信息之前获得,例如在设置预设知识图库中各个知识文本的时候,就获得各个知识文本的整体表示向量。在知识文本存在更新时,也会对应更新该更新的知识文本的整体表示向量。若在获取用户输入的问题信息之后再来获得各个知识文本的整体表示向量,不利于提高问题的答复效率,特别是在知识文本的数量非常多的情况下。

步骤s203:计算所述句子表示向量与各个整体表示向量的相似度。

在得到问题信息对应的句子表示向量以及各个知识文本对应的整体表示向量后,计算所述句子表示向量与各个整体表示向量的相似度。为了便于理解,以预设知识图库包含3个知识文本为例(现实中远不止三个),分别为文本1、文本2和文本3,此时,分别计算句子表示向量与文本1、文本2和文本3,得到三个计算结果。

步骤s204:将最大相似度对应的知识文本作为目标知识文本。

在得到句子表示向量与各个整体表示向量的相似度后,将最大相似度对应的知识文本作为目标知识文本。为了便于理解,还是以预设知识图库包含3个知识文本为例(现实中远不止三个),分别为文本1、文本2和文本3,此时,假设句子表示向量为文本1的整体表示向量的相似度最大,则文本1即为目标知识文本。

由于预设知识库中的知识文本的数量是非常巨大的,对所有的知识文本都通过卷积神经网络加注意力机制来计算其语义向量,计算量非常大。为了减少计算量,可以使用一些方法将明显不匹配的文本先过滤掉。例如,使用搜索中常用的倒排索引技术来进行答案初选。知识文库的不同文章有各自的业务线、角色以及主题。因此可以根据业务线、角色以及主题来对文库构建倒排索引。之后在进行问题信息匹配的时候,仅仅需要对倒排索引中检索出来的文本通过卷积神经网络加注意力机制来计算其语义向量,这样可以大大降低计算资源的消耗。

作为一种可选的实施方式,也可以通过如下的方式来将明显不匹配的文本先过滤掉,例如,首先获取问题信息中的关键词,然后基于获取到的关键词从所预设知识图库中过滤掉不包含关键词的知识文本,得到剩余知识文本,然后再通过预设网络模型从所述剩余知识文本中确定出与问题信息匹配度最高的目标知识文本。其中,通过预设网络模型从所述剩余知识文本中确定出与问题信息匹配度最高的目标知识文本的过程与上述通过预设网络模型从预设知识图库中确定出与问题信息匹配度最高的目标知识文本的过程一致,在此不再叙述。

在定位到答案所在的目标知识文本后,从目标知识文本中提取出与问题信息相对应的答案。由于该目标知识文本往往比较常,且包含很多方面的信息,若直接将匹配到的目标知识文本作为答案返回给用户是不合适的,因此,还需要一个答案生成的步骤。当上述的预设网络模型还包括:双向长短时记忆循环神经网络和序列标注模型时,作为一种可选的实施方式,可以通过图5所示的方法对从目标知识文本中提取出与问题信息相对应的答案这一过程进行说明。

步骤s301:计算所述目标知识文本中每个词对应的词向量与所述问题信息对应的句子表示向量之间的相关性。

在定位到答案所在的目标知识文本后,计算所述目标知识文本中每个词对应的词向量与所述问题信息对应的句子表示向量之间的相关性,以此来进行扩充词向量表示。例如,假设目标知识文本包含有“我叫张三”的句子,则对应的词向量为x1,x2,x3,x4,而问题信息假设为“我叫啥”,则对应的词向量为y1,y2,y3,则计算“我叫张三”中的每个词对应的词向量与问题信息对应的句子表示向量之间的相关性的过程,可以用下面的例子来说明,下面以“我”对应的词向量x1为例进行说明,其余的词向量x2,x3,x4的原理与之类似,则x1与y1,y2,y3之间的相关性假设为z1,作为一种实施方式,则z1=0.5y1+0.3y2+0.2y3,同理,可以求得x2与y1,y2,y3之间的相关性为z2,可以求得x3与y1,y2,y3之间的相关性为z3,以及可以求得x4与y1,y2,y3之间的相关性为z4。这样便可以求得目标知识文本中每个词对应的词向量与所述问题信息对应的句子表示向量之间的相关性。

步骤s302:基于相关性计算结果来扩充所述目标知识文本中每个词对应的词向量表示。

在计算得到目标知识文本中每个词对应的词向量与问题信息对应的句子表示向量之间的相关性之后,基于相关性计算结果来扩充目标知识文本中每个词对应的词向量表示,还是以上述的例子为例,则基于相关性计算结构对x1进行词向量扩充后,可以得到x1的词向量表示为x2,z1;同理,基于相关性计算结构对x2进行词向量扩充后,可以得到x2的词向量表示为x2,z2;x3进行词向量扩充后,可以得到的x3的词向量表示为x3,z3;x4进行词向量扩充后,可以得到的x4的词向量表示为x4,z4。

步骤s303:使用所述双向长短时记忆循环神经网络对扩充后的词向量表示进行特征提取,得到包含时序特征的输出特征。

在完成基于相关性计算结果扩充目标知识文本中每个词对应的词向量表示后,使用双向长短时记忆循环神经网络(bidirectionallongshort-termmemory,bi-lstm)对扩充后的词向量表示进行特征提取,即可得到包含时序特征的输出特征。也即,将扩充后的词向量表示输入到双向长短时记忆循环神经网络中,在双向长短时记忆循环神经网络的作用下,便可得到包含时序特征的输出特征。

其中,双向长短时记忆循环神经网络在对各个词向量表示进行特征提取时,会结合上下文信息加入对应的时序特征,以便在进行标签预测时,提高预测的准确性。以上述的问题信息为“我叫啥”为例,假设目标知识文本除了包含有“我叫张三”的句子外,还包括有,如“我的家在东北”、“我喜欢滑雪”之类的句子,作为一种实施方式,针对上述三句话的预测标签如下:“我a的a家a在a东a北a”,“我b叫i张i三i”,“我c喜欢c滑c雪c”,由于目标知识文本中的“我”出现在三个句子中,若不会结合上下文信息,则在预测标签时,就不知道该标注为a、b还是c。

其中,上述的bi-lstm也可以采用长短时记忆循环神经网络(longshort-termmemory,lstm)或者rnn(循环神经网络)来代替。

步骤s304:将所述输出特征输入所述序列标注模型中,获得序列标注结果;

在得到包含时序特征的输出特后,将输出特征输入序列标注模型中,便可获得序列标注结果。例如,用b表示答案的第一个词,用i表示答案的后续词,用a表示答案之前的词,用c表示答案之后的词,序列标注的目的就是对目标知识文本中的每一个词都预测一个a/b/i/c之一的标签。这样输出特征经过序列标注模型后,每个特征都携带有一个a/b/i/c之一的标签。

其中,可选地,上述的序列标注模型可以为条件随机场(conditionalrandomfield,crf)模型。该crf模型需要事先进行训练,使其能够准确对目标知识文本中的每一个词都预测一个类似于a/b/i/c之一的标签。步骤s305:从所述序列标注结果中提取出标注为答案的信息。

在得到序列标注结果后,从序列标注结果中提取出标注为答案的信息。例如,最后提取出标签为b的词和其它标签为i的词所组成的句子,即为终的答案。

其中,答案生成包括生成式和提取式,生成式方式通过汇总文本信息从新组织语句生成一段新的话术作为答案,提取式方式直接截取文本中的一部分或者全部内容作为答案。作为一种实施方式,本申请实施例中,采用提取式的方法生成答案,并使用序列标注技术来抽取答案。例如,用b表示答案的第一个词,用i表示答案的后续词,用a表示答案之前的词,用c表示答案之后的词,序列标注的目的就是对目标知识文本中的每一个词都预测一个a/b/i/c之一的标签,最后提取出标签为b的词和其它标签为i的词所组成的句子,即为终的答案。

步骤s103:向所述用户反馈所述答案。

通过序列标注的方式从目标知识文本中提取出与问题信息相对应的答案后,将该答案反馈给用户。

其中,需要说明的是,上述的预设网络模型为事先训练好的单一模型,作为一种可选的实施方式,该预设网络模型包括:卷积神经网络、双向长短时记忆循环神经网络和序列标注模型。由于使用深度学习方式得到的模型往往存在部分随机误差。为了减少这类随机误差,可以采用集成模型来减少误差,其中,一个集成模型包括多个相同结果或者不同结果的单一模型。例如,可以使用相同的训练数据,使用相同的模型结构,独立训练出多个不同的模型(单一模型),例如,独立训练出20个不同的模型,使用的时候,通过这20个模型对于同一个问题样本进行答案预测,可以得到20个预测结果,然后通过投票的方式确定最终的预测结果。其中,每个预测结果均代表1票,最后将得票数最多预测结果作为最终的预测结果。假设这20个预测结果中,存在5种预测结果,如有13个一样的预测结果(假设为答案1),2个一样的预测结果(假设为答案2),2个一样的预测结果(假设为答案3),剩余3个预测结果各不相同,假设分别为答案4、答案5以及答案6。这样各个预测结果的得票数如下,答案1的票数为13,答案2的票数为2,答案3的票数为2,答案4、答案5以及答案6的票数均为1,由于答案1的得票数最多,有13票,因此,最终的预测结果即为答案1。

虽然这种方式可以减少随机误差,但是会增加对计算资源的消耗,每一条用户请求,都需要在20个模型上预测一遍,相当于比单模型运算量扩大了20倍。而目前的在线客服系统,每天会有数十万次甚至超过一百万次的用户进线量,如果对每一次请求都需要在20个模型上预测一遍,对机器资源的消耗是非常巨大的。

为了减少随机误差,同时又不希望显著增加对计算资源的消耗。本申请实施例中,通过知识蒸馏技术对集成模型进行蒸馏得到一个单一模型。使得这样既可减少计算资源,又达到集成模型的效果。

鉴于此,本申请实施例通过以下方法获得上述的预设网络模型:使用相同的训练样本、使用相同的模型结构独立训练出多个不同的网络模型;利用上述训练得到的多个不同的网络模型分别对同一个问题信息进行答案预测,并将各自的预测结果作为新的训练样本;使用所述新的训练样本对所述模型结构进行训练,得到所述预设网络模型。也即,实用相同的训练样本对同一个模型结构进行训练,得到多个不同的网络模型,如得到20个单一的网络模型;然后再利用这些网络模型分别对同一个用户问题信息进行答案预测,这样便可以得到多个预测结果,并将这些预测结果作为新的训练样本,并以此来训练对相同的模型结构进行训练,即可得到上述的预设网络模型。

综上所述,本申请实施例提供的对话回复方法,不再是采用现有的基于知识点匹配的问答,而是采用基于阅读理解的自然语言处理方法,也即,先根据用户输入的问题信息从预设知识图库中确定出问题信息所在的答案的目标知识文本,然后再从目标知识文本中提取出与问题信息相对应的答案,最后向用户反馈提取出的答案。这种对话回复方式使得可以在无人工干预的情况下随知识图库的更新而自动更新答案,在提高答案的准确性的同时,还可以提高用户的体验感,最为重要的是,极大地节约了人力资源,提升了工作效率。

其中,需要说明的是,基于现有的知识点匹配的问答方式所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。

本申请实施例还提供了一种对话回复装置111,如图6所示。该对话回复装置111包括:获取模块1111、确定模块1112以及反馈模块1113。

获取模块1111,用于获取用户输入的问题信息。

确定模块1112,用于通过预设网络模型从预设知识图库中确定出与所述问题信息匹配度最高的目标知识文本,并从所述目标知识文本中提取出与所述问题信息相对应的答案,其中,所述预设知识图库中包含有多个知识文本。所述预设网络模型包括:卷积神经网络,所述确定模块1112,还用于:通过所述卷积神经网络和注意力机制获得所述问题信息的句子表示向量;通过所述卷积神经网络和所述注意力机制获得所述预设知识图库中各个知识文本的整体表示向量;计算所述句子表示向量与各个整体表示向量的相似度;将最大相似度对应的知识文本作为目标知识文本。可选地,所述确定模块1112,还用于:获取所述问题信息中的关键词;从所述预设知识图库中过滤掉不包含所述关键词的知识文本,得到剩余知识文本;通过预设网络模型从所述剩余知识文本中确定出与所述问题信息匹配度最高的目标知识文本。所述预设网络模型包括:卷积神经网络,所述确定模块112,还用于:通过所述卷积神经网络和注意力机制获得所述问题信息的句子表示向量;通过所述卷积神经网络和所述注意力机制获得所述剩余知识文本中各个知识文本的整体表示向量;计算所述句子表示向量与各个整体表示向量的相似度;将最大相似度对应的知识文本作为目标知识文本。

所述确定模块1112,还用于:将所述问题信息中的每个字转换成字向量,得到字向量序列;通过所述卷积神经网络对所述字向量序列进行卷积处理,得到卷积特征;通过所述注意力机制对所述卷积特征进行线性加权求和,得到所述句子表示向量。

所述确定模块1112,还用于:将所述预设知识图库中第i个知识文本中的每句话中的每个词转换成词向量,得到表征所述第i个知识文本中的每句话的词向量序列;通过所述卷积神经网络对所述第i个知识文本中的每句话的词向量序列分别进行卷积处理,得到所述第i个知识文本中的每句话的卷积特征;通过所述注意力机制对所述第i个知识文本中的每句话的卷积特征分别进行线性加权求和,得到所述i个知识文本中的每句话的句子表示向量;通过所述注意力机制对所述i个知识文本的各句子表示向量进行线性加权求和,得到所述i个知识文本的整体表示向量,其中,i依次取1至n,n为所述预设知识图库中的知识文本数。

所述预设网络模型还包括:双向长短时记忆循环神经网络和序列标注模型,所述确定模块1112,还用于:计算所述目标知识文本中每个词对应的词向量与所述问题信息对应的句子表示向量之间的相关性;基于相关性计算结果来扩充所述目标知识文本中每个词对应的词向量表示;使用所述双向长短时记忆循环神经网络对扩充后的词向量表示进行特征提取,得到包含时序特征的输出特征;将所述输出特征输入所述序列标注模型中,获得序列标注结果;从所述序列标注结果中提取出标注为答案的信息。

反馈模块1113,用于向所述用户反馈所述答案。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明实施例所提供的对话回复装置111,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法实施例所述的对话回复方法的步骤。具体实现可参见方法实施例,在此不再赘述。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的程序代码被运行时,能够执行上述实施例示出的对话回复方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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