智能问答方法、装置、计算机设备及存储介质与流程

文档序号:17548572发布日期:2019-04-30 18:03阅读:153来源:国知局
智能问答方法、装置、计算机设备及存储介质与流程

本发明涉及智能决策领域,尤其涉及一种智能问答方法、装置、计算机设备及存储介质。



背景技术:

目前,客户通过网络向问答系统提出问题,一部分是通过相关的业务人员或者其他客户进行回答,则获取到答案的速度较慢或者获取到的答案不全面,且造成人力浪费。而有些问答系统,则是在通用数据集的基础上进行训练所获取的问答系统,通过该问答系统对问题进行回答。在实际的业务场景和特定领域(如保险、理财和其他金融领域)中,存在有特定的专有名词。此时,通过通用数据集建立的问答系统,对这些专有名词的识别不够准确,使其不同不能发挥出最佳的效果,从而造成获取到的答案不精准的问题,而且只是反馈答案,无法引导客户进一步提问,应用场景太单一,不能起到很好的推广作用。



技术实现要素:

本发明实施例提供一种智能问答方法、装置、计算机设备及存储介质,以解决通过通用数据集建立的问答系统,输出结果不精准且无法引导客户进一步提问的问题。

一种智能问答方法,包括:

获取客户端发送的目标提问问题,所述目标提问问题中包含目标产品和目标领域;

将所述目标提问问题输入至预先训练好的与所述目标领域对应的专用问答模型中,获取到与所述目标提问问题对应的目标答案;

基于所述目标产品查询问题数据库,获取与所述目标产品相关联的至少一个推荐历史问题;

将所述目标答案和至少一个所述推荐历史问题发送给所述客户端;

获取所述客户端发送的基于任一所述推荐历史问题形成的询问请求,获取与所述历史推荐问题相对应的历史答案,并将所述历史答案发送给所述客户端。

一种智能问答装置,包括:

问题获取模块,用于获取客户端发送的目标提问问题,所述目标提问问题中包含目标产品和目标领域;

答案获取模块,用于将所述目标提问问题输入至预先训练好的与所述目标领域对应的专用问答模型中,获取到与所述目标提问问题对应的目标答案;

推荐问题获取模块,用于基于所述目标产品查询问题数据库,获取与所述目标产品相关联的至少一个推荐历史问题;

反馈模块,用于将所述目标答案和至少一个所述推荐历史问题发送给所述客户端;

历史答案发送模块,用于获取所述客户端发送的基于任一所述推荐历史问题形成的询问请求,获取与所述历史推荐问题相对应的历史答案,并将所述历史答案发送给所述客户端。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述智能问答方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述智能问答方法的步骤。

上述智能问答方法、装置、计算机设备和存储介质,采用与目标领域对应的专用问答模型对包含目标产品的目标提问问题进行处理,获取对应的目标答案,提高目标答案的准确率;根据目标产品查找问题数据库,获取与目标产品相关联的至少一个推荐历史问题,以使其确定的推荐历史问题为该目标产品中最吸引客户关注的提问问题,将该推荐历史问题发送给客户端,以提高推荐历史问题对客户的吸引力。基于任一推荐历史问题形成的询问请求,可快速获取与历史推荐问题相对应的历史答案,无需通过专用问答模型来对应询问请求进行识别,直接将历史答案反馈给客户,提高历史答案获取效率。

附图说明

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

图1是本发明一实施例中智能问答方法的应用环境示意图;

图2是本发明一实施例中智能问答方法的流程图;

图3是本发明一实施例中智能问答方法的流程图;

图4是本发明一实施例中智能问答方法的流程图;

图5是本发明一实施例中智能问答方法的流程图;

图6是本发明一实施例中智能问答方法的流程图;

图7是本发明一实施例中智能问答方法的流程图;

图8是本发明一实施例中智能问答装置的原理框图;

图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

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

本发明实施例提供的智能问答方法,可应用在如图1的应用环境中,客户端通过网络与服务端进行通信。该智能问答方法应用在服务端上,服务端通过预先训练好的与目标领域的专用问答模型对目标提问问题进行识别,提高识别准确率,并向客户端发送推荐历史问题,并可根据推荐历史问题查看到对应的历史答案,提高历史答案的获取速度,以下实施例中,均以应用在保险领域为例,目标领域为保险领域,目标产品为目标保险产品。其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务端或者是多个服务端组成的服务端集群来实现。

在一实施例中,如图2所示,提供一种智能问答方法,以该方法应用在图1中的服务端为例进行说明,具体包括如下步骤:

s10:获取客户端发送的目标提问问题,目标提问问题中包含目标产品和目标领域。

其中,目标提问问题是指客户端发送的与目标产品对应的问题。目标产品是指目标提问问题中提及的产品。

具体地,服务端提供获取提问问题的端口,使得客户端通过该端口发送目标提问问题。服务端获取客户端发送的目标提问问题,目标提问问题中包含目标保险产品。可理解地,该目标提问问题中包含有目标保险产品,可以是指该目标提问问题是针对目标保险产品所提出的问题,以使目标提问问题更具有针对性,使得能够更加精准的获取到目标答案。

s20:将目标提问问题输入至预先训练好的与目标领域对应的专用问答模型中,获取到与目标提问问题对应的目标答案。

其中,专用问答模型是指根据大量的与每一保险产品对应的真实提问问题和对应的答案,作为问题训练数据和答案训练数据进行训练所获得的模型。即该专用问答模型为保险领域对应的专用问答模型。其中,真实提问问题和对应的答案中包含有保险领域的专有名词,例如,保额、理赔和等待期等。其中,真实提问问题是指从标准保险合同中获取到答案的问题。对保险领域的真实提问问题和对应的答案进行训练,使得通过该专用问答模型可获取到精准的目标答案。

具体地,当服务端获取到客户端发送的目标提问问题时,将该目标提问问题输入至预先训练好的专用问答模型中,通过该专用问答模型获取到与目标提问问题对应的目标答案。更具体地,通过该专用问答模型,可获取到与目标提问问题对应的目标答案的回答范围起始点的概率和回答范围结束点的概率,将最大回答范围起始点的概率对应的分词作为目标答案的起始位置,将最大回答范围结束点的概率对应的分词作为目标答案的结束位置,根据起始位置和结束位置,确定目标答案。

s30:基于目标产品查询问题数据库,获取与目标产品相关联的至少一个推荐历史问题。

其中,推荐历史问题是指存储在问题数据库中,与目标产品相关联的提问问题。

具体地,服务端将与保险产品对应的每一历史提问问题和历史答案关联存储在问题数据库中,以便后续进行查找等操作。服务端获取到目标答案后,根据目标提问问题中包含的目标保险产品查询该问题数据库,获取与该目标保险产品对应的至少一个推荐历史问题,可以理解地,从与目标产品对应的历史提问问题中获取到的其他客户较为关注的历史提问问题,作为推荐历史问题。

进一步地,服务端还将该目标提问问题和目标答案与目标产品关联,并存储在数据库中,以更新数据库,以便后续该目标提问问题和目标答案作为与目标产品对应的新的历史提问问题和历史答案。

s40:将目标答案和至少一个推荐历史问题发送给客户端。

具体地,服务端获取到目标答案和至少一个推荐历史问题后,将目标答案和至少一个推荐历史问题反馈给客户端,客户端在显示页面显示该目标答案和至少一个推荐历史问题,客户可基于推荐历史问题直接获取到对应的历史答案。需要说明的是,获取目标答案和获取推荐历史问题的步骤可同时进行,可以理解地,通过专用问答模型对目标提问问题进行识别,以获取目标答案,同时,根据目标保险产品获取到对应的推荐历史问题,即目标答案的获取与推荐历史问题的获取可并行处理,以提高效率。进一步地,客户端可基于推荐历史问题直接获取到历史答案,无需通过专用问答模型进行识别,以更快获取到推荐历史问题对应的历史答案,提高历史答案的获取效率。

s50:获取客户端发送的基于任一推荐历史问题形成的询问请求,获取与历史推荐问题相对应的历史答案,并将历史答案发送给客户端。

其中,询问请求是指客户端查看任意一推荐历史问题对应的答案而发送给服务端的请求。

具体地,客户端可基于任一推荐历史问题查看对应的历史答案。服务端获取客户端发送的基于任一推荐历史向服务端发送询问请求,该询问请求中包含推荐历史问题,服务端根据推荐历史问题查找数据库,获取与推荐历史问题对应的历史答案,并将历史答案反馈给客户端,以使客户端显示与推荐历史问题对应的历史答案,可实现快速获取历史答案,提高历史答案获取效率和准确率。

步骤s10-s50中,采用与目标领域对应的专用问答模型对包含目标产品的目标提问问题进行处理,获取对应的目标答案,提高目标答案的准确率;根据目标产品查找问题数据库,获取与目标产品相关联的至少一个推荐历史问题,以使其确定的推荐历史问题为该目标产品中最吸引客户关注的提问问题,将该推荐历史问题发送给客户端,以提高推荐历史问题对客户的吸引力。基于任一推荐历史问题形成的询问请求,可快速获取与历史推荐问题相对应的历史答案,无需通过专用问答模型来对应询问请求进行识别,直接将历史答案反馈给客户,提高历史答案获取效率。

在一实施例中,如图3所示,步骤s20之前,即在将目标提问问题输入至预先训练好的与目标领域对应的专用问答模型中的步骤之前,智能问答方法还包括:

s21:获取与目标领域对应的问题训练数据和与问题训练数据相对应的答案训练数据。

其中,问题训练数据是指基于保险领域的每一保险产品对应的的真实问题形成的用于进行训练的数据。答案训练数据是基于预先采用标准保险合同对真实问题进行回复的答案形成的用于进行训练的数据。每一答案训练数据和每一问题训练数据相对应。例如,“xx产品的保额是多少”为问题训练数据,“xx产品的保额为10万”为答案训练数据。

具体地,服务端预先获取问题训练数据和答案训练数据,而问题训练数据是对原始问题进行筛选,所形成的问题训练数据,而答案训练数据是从标准保险合同中标注答案,所形成的答案训练数据。其中,原始问题的来源包括两种方式,一种是客户端提出的真实问题;另一种是业务人员提供的真实问题。批量导入各大网站或者是业务员统计的关于保险产品对应的原始问题,对原始问题进行筛选,以获取到能够从标准保险合同中获取到答案的真实问题,以形成问题训练数据。其中,对原始问题进行筛选,可包括如下步骤:获取文本筛选请求,该文本筛选请求包括保险产品和原始问题;基于保险产品获取相应的筛选规则;依据筛选规则对原始问题进行筛选,获取真实问题,基于真实问题以形成问题训练数据。其中,筛选规则指用于筛选能够从标准保险合同中获取到标准答案的规则。其中,不同保险产品对应的标准保险合同不同,通过真实问题查找标准保险合同,可通过人工介入,确定与真实问题对应的答案,并将与真实问题对应的答案进行标注,以将与每一真实问题对应的答案作为答案训练数据。

s22:将问题训练数据和答案训练数据输入至glove模型中,获取对应的问题词向量和答案词向量。

其中,glove模型是jeffrey和richard在2014年提出的,相比潜在语义分析(latentsemanticanalysis,las)和word2vec,glove模型在充分利用了语料库的全局统计信息的同时,也提高了词向量在大语料上的训练速度(一个共现矩阵的遍历要比整个语料库的遍历容易的多)。同时,glove模型把句子的信息和全局的信息结合,并将句子进行词的向量化,使得向量之间尽可能多地蕴含语义特征,每一词向量代表一个词。问题词向量是指将问题训练数据通过glove模型进行训练,所获得的词向量。答案词向量是指将答案训练数据通过glove模型进行训练,所获得的词向量。

具体地,将问题训练数据和答案训练数据输入至glove模型中,通过glove模型对问题训练数据和答案训练数据进行训练,以获取到问题词向量和答案词向量,此时,问题词向量和答案词向量之间包含尽可能多地语义特征。

s23:采用qanet模型对问题词向量和答案词向量进行问答学习训练,得到与目标领域对应的专用问答模型。

其中,qanet模型包括输入向量层(embeddinglayer)、向量编码器层(embeddingencoderlayer)、上下文-问题注意力层(context-queryattentionlayer),解码器层(modelencoderlayer)和输出层(outputlayer)。embeddinglayer层用于获取需要进行学习训练的向量。向量编码器层(embeddingencoderlayer)是用于提取上下文信息和问题中的主义信息,包括位置编码、卷积层、自注意力机制层和前馈网络层。其中,位置编码用于计算位置向量;卷积能够捕获上下文局部结构;自注意力机制层(self-attention)则可以捕捉文本之间全局的相互作用;前馈网络层用于计算注意力,并拼接结果。上下文-问题注意力层(context-queryattentionlayer)是用于计算答案到问题的注意力矩阵和计算问题到答案的注意力矩阵。解码器层(modelencoderlayer)是用于从全局的层面来考虑上下文与问题之间的关系。输出层(outputlayer)是预测每个位置是回答范围起始点和结束点的概率。

具体地,将问题词向量和答案词向量输入到qanet模型中,通过qanet模型中向量编码器层的卷积捕获文本的局部结构,而自注意力机制层则学习分词之间的全局交互,向量编码层中的编码器对输入向量层获取到的问题词向量和答案词向量进行位置编码,并通过上下文-问题注意力层为答案训练数据中的每个位置构造查询感知的语境向量,再通过解码器层对每个作为答案范围的开始或结束位置的概率进行解码,前馈特性极大地提高了模型的效率。通过qanet模型对问题词向量和答案词向量进行问答学习训练,得到与目标领域对应的专用问答模型。

步骤s21-s23中,获取与目标领域对应的问题训练数据和与问题训练数据相对应的答案训练数据,以便后续对问题训练数据和答案训练数据进行训练,以获取到保险领域的专用问答模型。将问题训练数据和答案训练数据输入至glove模型中,获取对应的问题词向量和答案词向量,以实现通过问题词向量和答案词向量表征更多的语义信息。采用qanet模型对问题词向量和答案词向量进行问答学习训练,以获取到保险领域的专用问答模型,使得通过保险领域的专用问答模型对目标提问问题进行识别,提高识别准确率。

在一实施例中,如图4所示,步骤s22中,即将问题训练数据和答案训练数据输入至glove模型中,获取对应的问题词向量和答案词向量,具体包括如下步骤:

s221:对问题训练数据和答案训练数据进行去停用词处理和分词处理,获取与问题训练数据对应的第一分词表和与答案训练数据对应的第二分词表。

其中,第一分词表是指存储问题训练数据对应的分词。第二分词表是指存储答案训练数据对应的分词。

具体地,服务端预先对问题训练数据和答案训练数据进行去停用词处理,剔除问题训练数据和答案训练数据中无实际含义的字或符号,如的、地、了和符号等,再对去停用词处理后的问题训练数据和答案训练数据进行分词处理,获取与问题训练数据对应的第一分词表和与答案训练数据对应的第二分词表。

s222:采用固定窗口遍历第一分词表和第二分词表,获取与第一分词表对应的第一共现矩阵和与第二分词表对应的第二共现矩阵。

具体地,服务端获取第一分词表和第二分词表,采用固定窗口遍历第一分词表和第二分词表,获取与第一分词表对应的共现矩阵和与第二分词表对应的第二共现矩阵。本实施例中,共现矩阵x的元素为xi,j,xi,j是指在分词表中,分词i和分词j共同出现在一个窗口中的次数,并根据每一共现次数获取到v*v的共现矩阵,v是分词表的大小。其中,通过共现矩阵可体现每一个分词的含义,例如,分词“保额”,“保险金额”,“保险金”等具有共现关系,通过共现矩阵确定每个分词对应的共现分词。

s223:采用代价函数,对第一共现矩阵和第二共现矩阵进行训练,获取与问题训练数据对应的问题词向量和与答案训练数据对应的答案词向量,代价函数为f(xij)为权重函数,v为分词表的大小,wi和wj是分词i和分词j的词向量,bi和bj是分词i和分词j的偏移向量。

具体地,采用代价函数对第一共现矩阵和第二共现矩阵进行训练,具体是通过对第一共现矩阵和第二共现矩阵进行训练,通过使该代价函数最小,获取与问题训练数据对应的问题词向量和与答案训练数据对应的答案词向量。其中,在计算误差时只考虑共现矩阵中非0的项,不同频次的分词贡献不同,因此设定了一个权重函数f(x),权重函数具有以下特点:当x<xmax时,f(x)是增函数,则低频词对应的权重不会过分减小;当x>=xmax时,f(x)为1,则高频词对应的权重不会过分增大。其中,代价函数主要由以下步骤进行推导,先求出其中,i和j任意两个分词,pij为分词j出现在分词i上下文的概率,xij为分词j和分词i的在训练数据中的词频,xi为分词i在训练样本数据中的词频;再求出pik为分词i出现在分词k上下文的概率,pjk为分词j出现在分词k上下文概率,wi和wj为分词的向量,wk为上下文分词向量,f(wi,wj,wk)为分词i、j和k出现的共现概率;通过对进行简化,可得witwk+bi+bk=log(xik),再对witwk+bi+bk=log(xik)进行推导,可获取代价函数,具体推导过程属于现有技术,不做具体概述。通过对共现矩阵进行训练,使得向量之间包含有更多的语义信息,以便后续输入相同含义的不同表达方式的问题,可获取到对应的答案。

步骤s221-s223中,对问题训练数据和答案训练数据进行去停用词处理,使得后续获取到的共现矩阵不会因过大而造成的模型训练困难;对去停用词后的问题训练数据和答案训练数据进行分词处理,以获取与问题训练数据对应的第一分词表和与答案训练数据对应的第二分词,使得后续通过一个向量表示一个分词。采用固定窗口遍历第一分词表和第二分词表,获取与第一分词表对应的第一共现矩阵和与第二分词表对应的第二共现矩阵,为后续专用问答模型训练提供技术支持。采用代价函数,对第一共现矩阵和第二共现矩阵进行训练,获取与问题训练数据对应的问题词向量和与答案训练数据对应的答案词向量,实现将问题训练数据和答案训练数据中的句子进行词的向量化,使得向量之间尽可能多地蕴含语义特征。

在一实施中,如图5所示,步骤s23中,采用qanet模型对问题词向量和答案词向量进行问答学习训练,得到与目标领域对应的专用问答模型,具体包括如下步骤:

s231:将问题词向量和答案词向量输入至qanet模型的编码器层中,对问题词向量和答案词向量进行位置编码,获取与问题词向量对应的第一编码和与答案词向量对应的第二编码。

具体地,qanet模型中包含嵌入层,主要用于获取问题词向量和答案词向量,并将问题词向量和答案词向量发送至编码层,编码层起始处存在位置编码,并将位置编码后放入深度可分离卷积、自注意力机制和前馈网络的每个子层封装在残差模块内,即具体包括如下处理过程:

(1)位置编码:基于问题词向量和问题词向量,通过位置向量公式计算出问题词向量和问题词向量对应的位置向量,其中,位置向量公式为pe(pos,2i)=sin(pos/100002i/d),pe(pos,2i+1)=cos(pos/100002i/d),其中,pos和i是指分词的位置和维度,d为词向量的维度,通过结合位置向量和词向量,以便后续分辨出不同位置的词。

(2)深度可分离卷积先通过depthwiseconvolution的卷积方式对输入的每个通道问题词向量、问题词向量对应的位置向量、答案词向量和答案词向量对应的位置向量进行独立卷积,再采用pointwiseconvolution的卷积方式通过1层1维卷积核进行处理,获取输出结果。其中,depthwiseconvolution的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。其中,pointwiseconvolution的卷积核的尺寸为1×1×m,m为上一层的通道数,通过卷积运算会将上一步的所获得的结果在深度方向上进行加权组合,获取输出结果。

(3)通过self-attention机制对上一步所获得的输出结果进行处理,提取全局信息,输出结果为

(4)通过前馈网路,对每一位置进共享。对于一个输入x和一个给定的操作f,输出为output=f(layernorn(x))+x,也就是从每个块的输入到输出都有一个完整的标识路径。其中,layernorm是指提出的层正规化,深度可分离卷积捕捉文本的局部结构信息,自注意力机制捕捉全局关系,通过深度可分离卷积和自注意力机智构建一个编码器,对问题词向量和答案词向量进行位置编码,获取与问题词向量对应的第一编码和与答案词向量对应的第二编码,以提高泛化能力与巻积效率,避免参数冗余。

s232:基于第一编码和第二编码,计算问题词向量到答案词向量的第一自注意力矩阵和答案词向量到问题词向量的第二自注意力矩阵。

具体地,根据上一层得到的第一编码和第二编码,来计算问题到答案以及答案到问题两个方向的自注意力矩阵。先分别用c和q来表示答案词向量编码后对应的第一编码和问题词向量编码后对应的第二编码,c∈rd*n,q∈rd*m,n表示答案词向量的长度,m表示问题词向量的长度。采用相似度函数计算答案词向量对应的答案分词和问题词向量对应的问题分词之间的相似度,相似度函数为q为第一编码,c为第二编码,w是一个可训练的参数,表示逐元素(element-wise)相乘,结果矩阵记为s,s∈rn*m。(2)采用激活函数(softmax)对结果矩阵s的行和列分别做归一化处理,获取最后获取问题词向量到答案词向量,即第一自注意力矩阵为答案词向量到问题词向量,即第二自注意力矩阵为

s233:将第一自注意力矩阵、第二自注意力矩阵和第二编码输入到解码器层,获取输出值m0、m1和m2。

具体地,获取到第一自注意力矩阵和第二自注意力矩阵后,通过[c,a,c⊙a,c⊙b]方式输入到解码器层,其中,a和b分别为第一自注意力矩阵和第二自注意力矩阵的行,c为对答案词向量进行编码后的第二编码,解码器层采用stackedblocksx3(权值共享),stackblocks=encoderblockx7,通过三个stackedblocks分别输出m0,m1和m2,通过本步骤,从全局的层面来考虑答案与问题之间的关系。

s234:采用损失函数对问题词向量和答案词向量进行训练,得到与目标领域对应的专用问答模型,损失函数为其中,n为问题训练数据的总数,i为第i个问题训练数据,yi1表示第i个问题训练数据在答案训练数据中真实起始位置,yi2第i个问题训练数据在答案训练数据中真实结束位置,p1为预测每个编码是回答范围起始点的概率,p1=softmax[w1(m0;m1)],p2为预测每个编码是回答范围结束点的概率,p2=softmax[w2(m0;m2)],wstart、wend是两个可训练变量,m0、m1和m2是解码器层的输出。

具体地,问题训练数据在答案训练数据中有对应的答案,因此只需要计算在答案训练数据中每个分词作为答案的概率。进一步地,只需通过p1=softmax[w1(m0;m1)]计算答案训练数据中相应分词属于答案起始点的概率,通过p2=softmax[w2(m0;m2)]计算答案训练数据中相应分词属于答案结束点的概率,通过真实起始位置、结束位置和预测的回答范围的起始点概率和结束点概率,来确定问答模型是否训练完成。其中,对问题训练数据进行预测时,在答案训练数据中选取答案的规则是,起始点概率和结束点概率为最大,且起始点的位置在结束点的位置之前,当最大起始点概率对应的分词为问题训练数据在答案训练数据的真实起始位置,最大结束点概率对应的分词为问题训练数据在答案训练数据的真实结束位置时,以得到与目标领域对应的专用问答模型。

步骤s231-s234中,将问题词向量和答案词向量输入至qanet模型的编码器层中,对问题词向量和答案词向量进行位置编码,获取与问题词向量对应的第一编码和与答案词向量对应的第二编码,以实现确定每个分词对应的位置。基于第一编码和第二编码,计算问题词向量到答案词向量的第一自注意力矩阵和答案词向量到问题词向量的第二自注意力矩阵,以实现确定答案与问题之间的联系,并在词的层面上,解析出答案和问题中关键的词语。将第一自注意力矩阵、第二自注意力矩阵和第二编码输入到解码器层,获取输出值m0、m1和m2,以实现进行解码操作。采用损失函数对问题词向量和答案词向量进行训练,以快速得到与目标领域对应的专用问答模型,以便后续通过该专用问答模型对目标提问问题进行识别,提高识别准确率。

在一实施例中,如图6所示,步骤s30,即基于目标产品查询问题数据库,获取与目标产品相关联的至少一个推荐历史问题,具体包括如下步骤:

s31:基于目标产品查询问题数据库,获取与目标产品关联的至少一个历史提问问题和与每一历史提问问题相对应的历史答案。

具体地,问题数据库中存储有与每一目标产品对应的历史提问问题和与历史提问问题对应的历史答案。服务端根据目标产品查找对应的问题数据库,获取与目标产品相关连的至少一个历史提问问题和与历史提问问题对应历史答案。可以理解地,历史提问问题时其他客户基于问答系统所提出的问题,历史答案是问答系统对历史提问问题输出的答案。

s32:统计每一历史答案对应的所有历史提问问题的问题总数,依据问题总数对历史答案进行排序,选取排前m位的历史答案。

其中,问题总数是指与历史答案对应的所有历史提问问题的数量。

具体地,每一个历史提问问题表述不相同,但其表达的语义特征相同,则对应的答案为同一历史答案。具体地,同一历史答案对应多个历史提问问题。例如,同一语义特征,不同人来表达,获取到的句型不同,将不同的句型输入到专用问答模型中,获取到的历史答案相同。例如“xx产品能赔多少”,“xx产品的保额是多少”等对应的答案为同一历史答案。服务端统计每一历史答案对应的所有历史提问问题的数量,即获取每一历史答案对应的问题总数,根据问题总数进行降序排序,获取排前m位的历史答案。通过获取降序处理后排前m位的历史答案,该历史答案为保险产品最受关注的答案,后续将该m位历史答案和对应的历史提问问题进行推荐,提高推荐效率。

s33:统计排前m位的每一历史答案对应的每一历史提问问题对应的点击量,将最大点击量对应的历史提问问题作为历史答案对应的标准提问问题。

其中,点击量是指与历史提问问题对应的客户点击的数量。

具体地,服务端获取到排前m位的历史答案,并统计排前m位的每一历史答案对应的每一历史提问问题对应的点击量,获取与排前m位的每一历史答案对应的最大点击量对应的历史提问问题,将每一最大点击量对应的历史提问问题作为历史答案对应的标准提问问题,以避免推荐给客户的推荐历史问题对应的历史答案为同一历史答案。例如,统计前4个问题总数对应的历史答案为a1、a2、a3和a4,若a1中包含至少两个历史提问问题q1、q2和q3,统计q1、q2和q3对应的点击量,若q1、q2和q3对应的点击量分别为10次、7次和3次,则将最大点击量对应的q1作为标准提问问题,并依次确定a2、a3和a4对应的标准提问问题。

s34:将排前m位的历史答案对应的标准提问问题作为推荐历史问题。

具体地,服务端根据问题总数对每一历史答案进行排序,选取前m位问题总数对应的历史答案,并获取m位历史答案对应的标准提问问题,将m位标准提问问题作为推荐历史问题。

步骤s31-s34中,基于目标产品查询问题数据库,获取与目标产品关联的至少一个历史提问问题和与每一历史提问问题相对应的历史答案,以实现后续推荐的推荐历史问题与目标产品相对应,提高推荐问题的准确率。统计每一历史答案对应的所有历史提问问题的问题总数,依据问题总数对历史答案进行排序,选取排前m位的历史答案,以实现获取目标产品最受关注的答案和对应的问题。统计每一排前m位的历史答案对应的每一历史提问问题对应的点击量,将最大点击量对应的历史提问问题作为历史答案对应的标准提问问题,以便后续只对标准提问问题进行显示,避免推荐历史问题均为同一语义特征的历史提问问题。将排前m位的历史答案对应的标准提问问题作为推荐历史问题,实现对历史提问问题的推荐,以便客户基于任一推荐历史问题形成的询问请求,可快速获取与历史推荐问题相对应的历史答案,无需通过专用问答模型来对应询问请求进行识别,直接将历史答案反馈给客户,提高历史答案获取效率。

在一实施例中,每一目标提问问题对应一客户标识。其中,每一客户端发送目标提问问题之前,智能问答方法还包括;获取客户端发送的登录请求,登录请求中包含客户登录账号;根据客户登录账号进行登录操作;获取客户端发送的目标提问问题,通过客户登录账号获取客户标识,将目标提问问题与客户标识进行对应,以便通过客户标识确定唯一的客户。

如图7所示,在步骤s40之前,即在将目标答案和推荐历史问题发送给客户端的步骤之前,智能问答方法还包括如下步骤:

s41:基于客户标识查找数据库,获取与客户标识对应的身份类型,身份类型包括已购买客户和未购买客户。

具体地,数据库中存储有历史投保信息和与该历史投保信息相对应的客户标识。服务端根据客户标识查找数据库,若从数据库中查找到与客户标识对应的历史投保信息,则该客户标识对应的身份类型为已购买客户;若从数据库中未查找到与该客户标识对应的历史投保信息,则该客户标识对应的身份类型为未购买客户。

s42:若身份类型为已购买客户,获取与客户标识对应的已购买产品,将已购买产品与目标产品进行匹配,根据匹配结果获取产品链接信息,将产品链接信息、目标答案和推荐历史问题发送给客户端。

具体地,若服务端判断出客户标识对应的身份类型为已购买客户,则将与客户标识对应的已购买保险产品与目标保险产品进行匹配,获取匹配结果。根据匹配结果获取对应的产品链接信息,并将产品链接信息、目标答案和推荐历史问题发送给客户端。其中,匹配结果可为已购买保险产品和目标保险产品匹配成功,已购买保险产品和目标保险产品匹配不成功两种,不同匹配结果对应的产品链接信息不同。其中,产品链接信息包括售后链接信息和投保链接信息,已购买保险产品和目标保险产品匹配成功时,产品链接信息为售后链接信息,已购买保险产品和目标保险产品匹配不成功时,产品链接信息为投保链接信息,客户端可基于产品链接信息进行投保和售后操作,提高目标产品投保效率和售后效率。

s43:若身份类型为未购买客户,则执行将目标答案和推荐历史问题发送给客户端的步骤。

具体地,若服务端判断出客户标识对应的身份类型为已购买客户,则执行步骤s40。

步骤s41-s43中,基于客户标识查找数据库,获取与客户标识对应的身份类型,以便根据身份类型进行问题推荐。若身份类型为已购买客户,获取与客户标识对应的已购买产品,将已购买产品与目标产品进行匹配,根据匹配结果获取产品链接信息,将产品链接信息、目标答案和推荐历史问题发送给客户端,以便客户端可基于产品链接信息进行投保和售后操作,提高目标产品投保效率和售后效率。若身份类型为未购买客户,则执行步骤s40,实现历史提问问题的推荐,以便客户端基于推荐历史问题形成的询问请求,可快速获取与历史推荐问题相对应的历史答案,无需通过专用问答模型来对应询问请求进行识别,直接将历史答案反馈给客户,提高历史答案获取效率。

在一实施例中,产品链接信息包括售后链接信息和投保链接信息。其中,售后链接信息是指与已购买保险产品对应的售后的链接信息。投保链接信息是指与目标保险产品对应的可进行投保的链接信息。

步骤s52中,根据匹配结果获取产品链接信息,具体包括如下步骤:

(1)若已购买产品与目标产品匹配成功,则获取与目标产品对应的售后链接信息。

具体地,若已购买保险产品与目标保险产品匹配成功,则客户基于客户端发送的目标提问问题是已购买保险产品的提问问题,服务端获取与已购买保险产品对应的售后链接信息,以便后续将该售后链接信息反馈给客户端,客户端可基于该售后链接信息进入售后服务页面。

(2)若已购买产品与目标产品匹配不成功,则获取与目标产品对应的投保链接信息。

具体地,若已购买保险产品与目标保险产品匹配不成功,则客户基于客户端询问的不是已购买保险产品,判断数据库中是否包含与目标保险产品对应的投保链接信息,若包含与目标保险产品对应的投保链接信息,则获取与目标保险产品对应的投保链接信息,以便后续将该投保链接信息发送给客户端,以便客户端基于该投保链接信息进行投保操作。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种智能问答装置,该智能问答装置与上述实施例中智能问答方法一一对应。如图8所示,该智能问答装置包括问题获取模块10、答案获取模块20、推荐问题获取模块30、反馈模块40和历史答案发送模块50。各功能模块详细说明如下:

问题获取模块10,用于获取客户端发送的目标提问问题,目标提问问题中包含目标产品和目标领域。

答案获取模块20,用于将目标提问问题输入至预先训练好的与目标领域对应的专用问答模型中,获取到与目标提问问题对应的目标答案。

推荐问题获取模块30,用于基于目标产品查询问题数据库,获取与目标产品相关联的至少一个推荐历史问题。

反馈模块40,用于将目标答案和至少一个推荐历史问题发送给客户端。

历史答案发送模块50,用于获取客户端发送的基于任一推荐历史问题形成的询问请求,获取与历史推荐问题相对应的历史答案,并将历史答案发送给客户端。

在一实施例中,在问题获取模块10之前,智能问答装置还包括训练数据获取单元、词向量获取单元和问答模型获取单元。

训练数据获取单元,用于获取与目标领域对应的问题训练数据和与问题训练数据相对应的答案训练数据。

词向量获取单元,用于将问题训练数据和答案训练数据输入至glove模型中,获取对应的问题词向量和答案词向量。

问答模型获取单元,用于采用qanet模型对问题词向量和答案词向量进行问答学习训练,得到与目标领域对应的专用问答模型。

在一实施例中,词向量获取单元包括预处理子单元、共现矩阵获取子单元和词向量获取子单元。

预处理子单元,用于对问题训练数据和答案训练数据进行去停用词处理和分词处理,获取与问题训练数据对应的第一分词表和与答案训练数据对应的第二分词表。

共现矩阵获取子单元,用于采用固定窗口遍历第一分词表和第二分词表,获取与第一分词表对应的第一共现矩阵和与第二分词表对应的第二共现矩阵。

词向量获取子单元,用于采用代价函数,对第一共现矩阵和第二共现矩阵进行训练,获取与问题训练数据对应的问题词向量和与答案训练数据对应的答案词向量,代价函数为f(xij)为权重函数,v为分词表的大小,wi和wj为分词i和分词j的词向量,bi和bj为分词i和分词j的偏移向量。

在一实施例中,问答模型获取单元包括编码子单元、自注意力矩阵获取子单元、解码子单元和预测子单元。

编码子单元,用于将问题词向量和答案词向量输入至qanet模型的编码器层中,对问题词向量和答案词向量进行位置编码,获取与问题词向量对应的第一编码和与答案词向量对应的第二编码。

自注意力矩阵获取子单元,用于基于第一编码和第二编码,计算问题词向量到答案词向量的第一自注意力矩阵和答案词向量到问题词向量的第二自注意力矩阵。

解码子单元,用于将第一自注意力矩阵、第二自注意力矩阵和第二编码输入到解码器层,获取输出值m0、m1和m2。

预测子单元,用于采用损失函数对问题词向量和答案词向量进行训练,得到与目标领域对应的专用问答模型,损失函数为其中,n为问题训练数据的总数,i为第i个问题训练数据,yi1表示第i个问题训练数据在答案训练数据中真实起始位置,yi2第i个问题训练数据在答案训练数据中真实结束位置,p1为预测每个编码是回答范围起始点的概率,p1=softmax[w1(m0;m1)],p2为预测每个编码是回答范围结束点的概率,p2=softmax[w2(m0;m2)],wstart、wend是两个可训练变量,m0、m1和m2是解码器层的输出。

在一实施例中,推荐问题获取模块30包括关联信息获取单元、历史答案获取单元、标准提问问题获取单元和推荐历史问题获取单元。

关联信息获取单元,用于基于目标产品查询问题数据库,获取与目标产品关联的至少一个历史提问问题和与每一历史提问问题相对应的历史答案;

历史答案获取单元,用于统计每一历史答案对应的所有历史提问问题的问题总数,依据问题总数对历史答案进行排序,选取排前m位的历史答案。

标准提问问题获取单元,用于统计排前m位的每一历史答案对应的每一历史提问问题对应的点击量,将最大点击量对应的历史提问问题作为历史答案对应的标准提问问题。

推荐历史问题获取单元,用于将排前m位的历史答案对应的标准提问问题作为推荐历史问题。

在一实施例中,每一目标提问问题对应一客户标识。

在反馈模块40之前,智能问答装置还包括身份类型确定单元、第一处理单元和第二处理单元。

身份类型确定单元,用于基于客户标识查找数据库,获取与客户标识对应的身份类型,身份类型包括已购买客户和未购买客户。

第一处理单元,用于若身份类型为已购买客户,获取与客户标识对应的已购买产品,将已购买产品与目标产品进行匹配,根据匹配结果获取产品链接信息,将产品链接信息、目标答案和推荐历史问题发送给客户端。

第二处理单元,用于若身份类型为未购买客户,则执行将目标答案和推荐历史问题发送给客户端的步骤。

在一实施例中,产品链接信息包括售后链接信息和投保链接信息。

第一处理单元还包括:若已购买产品与目标产品匹配成功,则获取与目标产品对应的售后链接信息;若已购买产品与目标产品匹配不成功,则获取与目标产品对应的投保链接信息。

关于智能问答装置的具体限定可以参见上文中对于智能问答方法的限定,在此不再赘述。上述智能问答装置中的各个模块可全部或部分通过软件、硬件及其组和来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线链接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于历史提问问题、历史答案和专用问答模型等。该计算机设备的网络接口用于与外部的终端通过网络链接通信。该计算机程序被处理器执行时以实现一种智能问答方法。

在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中智能问答方法的步骤,例如,图2所示的步骤s10至步骤s50。或者,处理器执行计算机程序时实现上述实施例中智能问答装置中的各模块的功能,例如,图8所示模块10至模块50的功能。为避免重复,此处不再赘述。

在一实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中智能问答方法,例如,图2所示的步骤s10至步骤s50。或者,该计算机程序被处理器执行时实现上述实施例中智能问答装置中各模块的功能,例如,图8所示模块10至模块50的功能。为避免重复,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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