问题匹配方法、终端和计算机可读存储介质与流程

文档序号:14714449发布日期:2018-06-16 01:03阅读:101来源:国知局
问题匹配方法、终端和计算机可读存储介质与流程

本发明涉及人工智能领域,尤其涉及一种问题匹配方法、终端和计算机可读存储介质。



背景技术:

目前很多客服机器人系统都是基于知识库的问答系统进行问题和答案的匹配,而知识库中的问题和答案需要提前准备好,当用户与机器人之间进行交互时,提问的问题和知识库中的问题进行匹配,需要涉及到如何度量两个文本之间的相似性。

传统的问题匹配方法是通过短文本相似度的算法进行识别,由于短文本相似性算法有一定的局限性,存在一定的误差,导致无法准确的度量两个文本之间的相似性,相应的,导致问题匹配的准确性也有所降低。



技术实现要素:

本发明的主要目的在于提供一种问题匹配方法、终端和计算机可读存储介质,旨在解决现有的问题匹配方式,准确性较低的技术问题。

为实现上述目的,本发明提供一种问题匹配方法,所述问题匹配方法包括:

接收用户问题,并将接收的所述用户问题输入到知识库中;

在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题;

采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题;

在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。

可选地,所述在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题的步骤包括:

在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度;

在各个检索算法计算出的相似度中,确定与所述用户问题的相似度达到预设阈值的相似度;

将与所述用户问题的相似度达到预设阈值对应的多个问题作为与所述用户问题匹配的多个问题。

可选地,所述在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤包括:

在检索算法为卷积神经网络算法时,获取卷积神经网络算法关联的训练模型;

将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

可选地,所述在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤包括:

在检索算法为编辑距离短文本相似算法时,对所述用户问题与各个预存问题的字符进行划分;

计算各个预存问题转换为用户问题时,需要执行的编辑操作的次数;

根据各个预存问题转换为用户问题时需要执行的次数,确定所述用户问题与各个预存问题的相似度。

可选地,所述在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤包括:

在检索算法为词频逆向文件频率算法时,对所述用户问题和各个预存问题进行词语拆分,以将所述用户问题和各个预存问题拆成多个词语;

根据拆分后的多个词语分别计算用户问题及各个预存问题的词频和逆向文件频率;

根据用户问题的词频和逆向文件频率得到用户问题的词频-逆向文件频率向量,及根据各个预存问题的词频和逆向文件频率得到各个预存问题的词频-逆向文件频率向量;

计算用户问题的词频-逆向文件频率向量与各个预存问题的词频-逆向文件频率向量对应的余弦相似度,以得到用户问题与各个预存问题的相似度。

可选地,所述在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤包括:

在检索算法为词向量算法时,将所述用户问题和各个预存问题都转换词向量;

分别将所述用户问题的词向量与各个预存问题的词向量进行相乘,以计算所述用户问题与各个预存问题的相似度。

可选地,所述在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤包括:

在检索算法为循环神经网络算法时,获取循环神经网络算法关联的训练模型;

将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

可选地,所述采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题的步骤包括:

获取与所述用户问题匹配的多个问题;

采用第二预设个数的分类算法计算多个问题中各个问题与用户问题的匹配率;

获取各个分类算法预设的权值,对各个分类算法预设的权值以及各个问题与用户问题的匹配率进行加权平均,得到各个问题与用户问题的相似度值;

将相似度值最高的问题作为与所述用户问题匹配度最高的问题。

此外,为实现上述目的,本发明还提供一种终端,所述终端包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的问题匹配程序,所述问题匹配程序被所述处理器执行时实现如上文所述的问题匹配方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有问题匹配程序,所述问题匹配程序应用于终端,所述问题匹配程序被处理器执行时实现如上文所述的问题匹配方法的步骤。

本发明提出的问题匹配方法,先接收用户问题,并将接收的所述用户问题输入到知识库中,然后在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题,再采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题,最终在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。实现了问题的匹配是通过检索算法和分类算法两类算法确定,相对于传统单一的短文本相似性算法进行问题的匹配,本发明对问题的匹配更加全面,提高了问题匹配的准确性,从而提高了答案反馈的准确性。

附图说明

图1是本发明终端的硬件架构图;

图2为本发明问题匹配方法第一实施例的流程示意图;

图3为图2中步骤S20的细化流程示意图;

图4为图3中步骤S21的第一细化流程示意图;

图5为图3中步骤S21的第二细化流程示意图;

图6为图3中步骤S21的第三细化流程示意图;

图7为图3中步骤S21的第四细化流程示意图;

图8为图3中步骤S21的第五细化流程示意图;

图9为图2中步骤S30的细化流程示意图;

图10为本发明问题匹配较佳实施场景的示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的解决方案主要是:先接收用户问题,并将接收的所述用户问题输入到知识库中,然后在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题,再采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题,最终在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面,以解决现有的问题匹配方式,准确性较低的问题。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端的结构示意图。

本发明实施例的终端可以是PC、智能手机、平板电脑、便携计算机,也可以是服务器、虚拟机设备等具有显示功能的设备。

如图1所示,该终端可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口(例如用于连接有线键盘、有线鼠标等)、无线接口(例如用于连接无线键盘、无线鼠标)。网络接口1004可选的可以包括标准的有线接口(用于连接有线网络)、无线接口(如WI-FI接口、蓝牙接口、红外线接口等,用于连接无线网络)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及问题匹配程序。其中,操作系统是管理和控制终端与软件资源的程序,支持网络通信模块、用户接口模块、问题匹配程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。

在图1所示的终端中,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现以下步骤:

接收用户问题,并将接收的所述用户问题输入到知识库中;

在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题;

采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题;

在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。

进一步地,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的各个问题的步骤:

在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度;

在各个检索算法计算出的相似度中,确定与所述用户问题的相似度达到预设阈值的相似度;

将与所述用户问题的相似度达到预设阈值对应的多个问题作为与所述用户问题匹配的多个问题。

进一步地,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为卷积神经网络算法时,获取卷积神经网络算法关联的训练模型;

将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

进一步地,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为编辑距离短文本相似算法时,对所述用户问题与各个预存问题的字符进行划分;

计算各个预存问题转换为用户问题时,需要执行的编辑操作的次数;

根据各个预存问题转换为用户问题时需要执行的次数,确定所述用户问题与各个预存问题的相似度。

进一步地,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为词频逆向文件频率算法时,对所述用户问题和各个预存问题进行词语拆分,以将所述用户问题和各个预存问题拆成多个词语;

根据拆分后的多个词语分别计算用户问题及各个预存问题的词频和逆向文件频率;

根据用户问题的词频和逆向文件频率得到用户问题的词频-逆向文件频率向量,及根据各个预存问题的词频和逆向文件频率得到各个预存问题的词频-逆向文件频率向量;

计算用户问题的词频-逆向文件频率向量与各个预存问题的词频-逆向文件频率向量对应的余弦相似度,以得到用户问题与各个预存问题的相似度。

进一步地,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为词向量算法时,将所述用户问题和各个预存问题都转换词向量;

分别将所述用户问题的词向量与各个预存问题的词向量进行相乘,以计算所述用户问题与各个预存问题的相似度。

进一步地,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为循环神经网络算法时,获取循环神经网络算法关联的训练模型;

将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

进一步地,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题的步骤:

获取与所述用户问题匹配的多个问题;

采用第二预设个数的分类算法计算多个问题中各个问题与用户问题的匹配率;

获取各个分类算法预设的权值,对各个分类算法预设的权值以及各个问题与用户问题的匹配率进行加权平均,得到各个问题与用户问题的相似度值;

将相似度值最高的问题作为与所述用户问题匹配度最高的问题。

本发明提出的技术方案,所述终端通过处理器1001调用存储器1005中存储的问题匹配程序,以实现步骤:先接收用户问题,并将接收的所述用户问题输入到知识库中,然后在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题,再采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题,最终在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。实现了问题的匹配是通过检索算法和分类算法两类算法确定,相对于传统单一的短文本相似性算法进行问题的匹配,本发明对问题的匹配更加全面,提高了问题匹配的准确性,从而提高了答案反馈的准确性。

基于上述终端的硬件结构,提出本发明问题匹配方法各个实施例。

参照图2,图2为本发明问题匹配方法第一实施例的流程示意图。

在本实施例中,所述问题匹配方法应用于终端,所述问题匹配方法包括:

步骤S10,接收用户问题,并将接收的所述用户问题输入到知识库中;

步骤S20,在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题;

步骤S30,采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题;

步骤S40,在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。

本发明实施例所述的问题匹配方法应用于终端,所述终端可选为图1所述的终端,该终端集成知识库,所述知识库中存储大量的预存问题,以及各个预存问题对应的答案。

此外,所述知识库中还存储有第一预设个数检索算法和第二预设个数分类算法,所述检索算法和分类算法的具体个数不做限定,可根据实际需要设置,本实施例中,可选所述检索算法的个数为5个,分类算法的个数为2个,下文中均以此为例。其中,所述检索算法包括:CNN(Convolutional Neural Network,卷积神经网络)算法、编辑距离短文本相似算法、tf-idf(其中,tf全称是Term Frequency,表示词频;idf全称是Inverse Document Frequency,表示逆向文件频率)算法、word2vec(词向量)算法、RNN(Recurrent Neural Network,循环神经网络)算法;所述分类算法包括:gbdt(Gradient Boosting Decision Tree,迭代决策树)算法、softmax(分类器)算法。本实施例中,各个检索算法用于在知识库中检索出相应个与用户问题匹配的问题,各个分类算法用于在与用户问题匹配的多个问题中,计算出与用户问题最匹配的预问题,最终,终端可反馈该最匹配的问题对应的答案给用户,提高了答案反馈的准确性。

以下详细介绍本实施例中逐步实现问题匹配的各个步骤:

其中,步骤S10,接收用户问题,并将接收的所述用户问题输入到知识库中;

在本实施例中,所述问题匹配方法应用于终端,所述终端可选设置有显示界面,该显示界面设有信息输入窗口,以便用户在所述信息输入窗口中输入问题。当终端在显示界面的信息输入窗口中接收到输入的用户问题时,将接收到的用户问题输入到知识库中。此处的知识库即上文所述的知识库,该知识库中存储有预设个数的预存问题以及各个预存问题对应的答案,以及第一预设个数检索算法和第二预设个数分类算法。

步骤S20,在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题;

当终端将接收到的用户问题输入到知识库之后,在所述知识库中,采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题,具体地,参照图3,所述步骤S20包括:

步骤S21,在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度;

步骤S22,在各个检索算法计算出的相似度中,确定与所述用户问题的相似度达到预设阈值的相似度;

步骤S23,将与所述用户问题的相似度达到预设阈值对应的多个问题作为与所述用户问题匹配的多个问题。

即,终端将接收到的用户问题输入到知识库之后,先在所述知识库中提取出第一预设个数检索算法,所述检索算法即:CNN算法、编辑距离的检索算法、tf-idf算法、word2vec算法、RNN算法,在提取出各个检索算法之后,通过每个检索算法分别计算所述用户问题与各个预存问题的相似度,其中,在检索算法不同的情况下,用户问题与各个预存问题的相似度对应的计算结果可能不同,具体地,所述步骤S21的实施方式包括:

1)方式一、参照图4,所述步骤S21包括:

步骤S21A,在检索算法为卷积神经网络算法时,获取卷积神经网络算法关联的训练模型;

步骤S21B,将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

在本实施方式中,当检索算法为卷积神经网络算法(CNN算法)时,终端先获取卷积神经网络算法关联的训练模型,该训练模型事先根据大量数据训练得到,在获取到训练模型之后,将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,最终输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

2)方式二、参照图5,所述步骤S21包括:

步骤S21C,在检索算法为编辑距离短文本相似算法时,对所述用户问题与各个预存问题的字符进行划分;

步骤S21D,计算各个预存问题转换为用户问题时,需要执行的编辑操作的次数;

步骤S21E,根据各个预存问题转换为用户问题时需要执行的次数,确定所述用户问题与各个预存问题的相似度。

在本实施方式中,当检索算法为编辑距离短文本相似算法时,先对用户问题与各个预存问题进行字符的划分,然后,计算各个预存问题转换为用户问题时,需要执行的编辑操作的次数,以根据各个预存问题转换为用户问题时需要执行的次数,确定所述用户问题与各个预存问题的相似度。需要理解,编辑距离指两个字符之间,由一个字符转成另一个字符所需的最少编辑操作次数,执行的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符,其中编辑操作的次数越少,认为两个问题越相似。因此,本实施例通过编辑距离短文本相似算法,确定出用户问题与各个预存问题的相似度。

3)方式三、参照图6,所述步骤S21包括:

步骤S21F,在检索算法为词频逆向文件频率算法时,对所述用户问题和各个预存问题进行词语拆分,以将所述用户问题和各个预存问题拆成多个词语;

步骤S21G,根据拆分后的多个词语分别计算用户问题及各个预存问题的词频和逆向文件频率;

步骤S21H,根据用户问题的词频和逆向文件频率得到用户问题的词频-逆向文件频率向量,及根据各个预存问题的词频和逆向文件频率得到各个预存问题的词频-逆向文件频率向量;

步骤S21I,计算用户问题的词频-逆向文件频率向量与各个预存问题的词频-逆向文件频率向量对应的余弦相似度,以得到用户问题与各个预存问题的相似度。

在本实施方式中,当检索算法为词频-逆向文件频率算法(tf-idf算法)时,先对用户问题和各个预存问题进行词语的拆分,以将用户问题和各个预存问题拆成多个词语,然后根据拆分后的多个词语分别计算用户问题及各个预存问题的词频和逆向文件频率,再根据用户问题的词频和逆向文件频率得到用户问题的词频-逆向文件频率向量,及根据各个预存问题的词频和逆向文件频率得到各个预存问题的词频-逆向文件频率向量,最终计算用户问题的词频-逆向文件频率向量与各个预存问题的词频-逆向文件频率向量对应的余弦相似度,以得到用户问题与各个预存问题的相似度。

具体地:计算各个词语在语句(包括用户问题和预存问题)中的频率—词频:词语在语句出现的次数/语句中所有词语的个数;语料中出现某个词语的文档数并取对数—逆向文件频率:log(语料库的文档总数/语料库中出现某单词的不同文档个数),其中,语料库是事先准备的。为更好理解,举例如下:

提取主干词,去除停用词,把相近的词转换成标准形式,比如:你好、您好、hello统一成“你好”。

统计计算词频和逆向文件频率得到词频-逆向文件频率向量,通过余弦公式计算向量相似度。例如:

语句1:你好我想借款,微粒贷怎么借款。

分词:你好、我想、借款、微粒贷、怎么

语句2:微粒贷怎么借款。

分词:微粒贷、怎么、借款

语句1中的每个词都可以得到一个词频-逆向文件频率值,从而可以得到句子的词频-逆向文件频率向量:v1=(x1,x2,x3,x4,...,xn)

语句2中的每个词都可以得到一个词频-逆向文件频率值,从而可以得到句子的词频-逆向文件频率向量:v2=(y1,y2,y3,y4,...,yn)

计算v1、v2的相似度便可得到两个语句的相似度。

可以理解,一句话中有多个词语,计算多个词语的词频-逆向文件频率值组成句子的词频-逆向文件频率向量,根据此方法得到用户问题和各个预存问题的词频-逆向文件频率向量,最终根据词频-逆向文件频率向量之间的相似度(比如欧拉距离,余弦相似度,Jaccard系数等方法)求出用户问题和各个预存问题的相似度。

4)方式四、参照图7,所述步骤S21包括:

步骤S21J,在检索算法为词向量算法时,将所述用户问题和各个预存问题都转换词向量;

步骤S21K,分别将所述用户问题的词向量与各个预存问题的词向量进行相乘,以计算所述用户问题与各个预存问题的相似度。

在本实施方式中,当检索算法为词向量算法(word2vec算法)时,将所述用户问题和各个预存问题都转换为词向量,然后分别将所述用户问题的词向量与各个预存问题的词向量进行相乘,以计算所述用户问题与各个预存问题的相似度。为更好理解,举例如下:

例如原语句是“计算机软件”,备查句子有:“计算机软件”、“新型编程工具”、“软件维护工具”、“组装计算机”。利用cbow模型获取用户问题和各个预存问题的词向量,再利用word2vec模型计算相似度,得到结果如下:

Source:计算机软件

Result:

向量:82183相似度:1.000000分词:计算机软件

向量:102563相似度:0.987453分词:新型编程工具

向量:222835相似度:0.813425分词:软件维护工具

向量:4435246相似度:0.725321分词:组装计算机。

5)方式五、参照图8,所述步骤S21包括:

步骤S21L,在检索算法为循环神经网络算法时,获取循环神经网络算法关联的训练模型;

步骤S21M,将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

在本实施方式中,当检索算法为循环神经网络算法(RNN算法)时,终端先获取循环神经网络算法关联的训练模型,该训练模型事先根据大量数据训练得到,在获取到训练模型之后,将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

通过上述各个检索算法,即可计算出用户问题与各个预存问题的相似度,然后在各个检索算法计算出的相似度中,确定与所述用户问题的相似度大于预设阈值的多个问题,最终将与所述用户问题的相似度大于预设阈值的多个问题作为与所述用户问题匹配的多个问题。也就是说,在输入一个用户问题之后,通过各个检索算法,可得到多个与用户问题匹配的问题。

步骤S30,采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题;

在根据各个检索算法得到多个与用户问题匹配的问题之后,采用第二预设个数的分类算法在匹配的各个问题中确定与所述用户问题匹配度最高的问题,具体地,参照图9,所述步骤S30包括:

步骤S31,获取与所述用户问题匹配的多个问题;

步骤S32,采用第二预设个数的分类算法计算多个问题中各个问题与用户问题的匹配率;

步骤S33,获取各个分类算法预设的权值,对各个分类算法预设的权值以及各个问题与用户问题的匹配率进行加权平均,得到各个问题与用户问题的相似度值;

步骤S34,将相似度值最高的问题作为与所述用户问题匹配度最高的问题。

即,先获取与所述用户问题匹配的多个问题,然后采用第二预设个数的分类算法计算多个问题中各个问题与用户问题的匹配率,本实施例中,分类算法为gbdt算法和softmax算法,其中,gbdt是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终结果;softmax算法是回归分类函数。通过两个分类函数计算各个问题与用户问题的匹配率之后,获取各个分类算法预设的权值,然后根据各个分类算法预设的权值以及各个问题与用户问题的匹配率进行加权平均,得到各个问题与用户问题的相似度值。

为更好理解本实施例,举例如下:当前有一个问题通过两个分类算法计算后,得到的匹配率分别为0.9和0.8,获取两个分类算法预设的权值,本实施例中,各个分类算法预设的权值对应的具体数值是事先根据实际情况设置,本实施例中可选gbdt算法的权值为0.7,softmax算法的权值为0.8。那么,将各个分类算法预设的权值以及各个问题与用户问题的匹配率进行加权平均,加权结果为(0.7*0.9+0.8*0.8)/2=0.635,最终得到该问题与用户问题的相似度值为0.635,通过这种算法依次计算出各个问题与用户问题的相似度值。最终,将相似度值最高的问题作为与所述用户问题匹配度最高的问题。

步骤S40,在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。

在知识库中找到与所述用户问题匹配度最高的问题之后,再从所述知识库中查找所述匹配度最高的问题关联的答案,再将查找的答案反馈至显示界面。

本实施例提出的问题匹配方法,先接收用户问题,并将接收的所述用户问题输入到知识库中,然后在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题,再采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题,最终在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。实现了问题的匹配是通过检索算法和分类算法两类算法确定,相对于传统单一的短文本相似性算法进行问题的匹配,本发明对问题的匹配更加全面,提高了问题匹配的准确性,从而提高了答案反馈的准确性。

为更好理解本方案,参照图10,以具体场景描述本方案。

将用户问题输入到知识库之后,采用图10中五个检索算法分别在知识库中确定出多个与用户问题相似度达到预设阈值的问题,然后将多个相似度达到预设阈值的问题再输入到两个分类算法中,以通过两个分类算法计算多个问题中各个问题与用户问题的匹配率,接着根据两个分类算法之前设定的权值,计算各个问题与用户问题的相似度值,最终将相似度值最高的问题作为所述用户问题在知识库中匹配后得到的问题,并在该知识库中查找该问题对应的答案,并反馈该答案给用户。

本发明进一步提供一种计算机可读存储介质。

所述计算机可读存储介质上存储有问题匹配程序,所述问题匹配程序被处理器执行时实现以下步骤:

接收用户问题,并将接收的所述用户问题输入到知识库中;

在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题;

采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题;

在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。

进一步地,所述问题匹配程序被处理器执行时,还实现在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题的步骤:

在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度;

在各个检索算法计算出的相似度中,确定与所述用户问题的相似度达到预设阈值的相似度;

将与所述用户问题的相似度达到预设阈值对应的多个问题作为与所述用户问题匹配的多个问题。

进一步地,所述问题匹配程序被处理器执行时,还实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为卷积神经网络算法时,获取卷积神经网络算法关联的训练模型;

将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

进一步地,所述问题匹配程序被处理器执行时,还实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为编辑距离短文本相似算法时,对所述用户问题与各个预存问题的字符进行划分;

计算各个预存问题转换为用户问题时,需要执行的编辑操作的次数;

根据各个预存问题转换为用户问题时需要执行的次数,确定所述用户问题与各个预存问题的相似度。

进一步地,所述问题匹配程序被处理器执行时,还实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为词频逆向文件频率算法时,对所述用户问题和各个预存问题进行词语拆分,以将所述用户问题和各个预存问题拆成多个词语;

根据拆分后的多个词语分别计算用户问题及各个预存问题的词频和逆向文件频率;

根据用户问题的词频和逆向文件频率得到用户问题的词频-逆向文件频率向量,及根据各个预存问题的词频和逆向文件频率得到各个预存问题的词频-逆向文件频率向量;

计算用户问题的词频-逆向文件频率向量与各个预存问题的词频-逆向文件频率向量对应的余弦相似度,以得到用户问题与各个预存问题的相似度。

进一步地,所述问题匹配程序被处理器执行时,还实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为词向量算法时,将所述用户问题和各个预存问题都转换词向量;

分别将所述用户问题的词向量与各个预存问题的词向量进行相乘,以计算所述用户问题与各个预存问题的相似度。

进一步地,所述问题匹配程序被处理器执行时,还实现在所述知识库中,采用第一预设个数检索算法分别计算所述用户问题与各个预存问题的相似度的步骤:

在检索算法为循环神经网络算法时,获取循环神经网络算法关联的训练模型;

将用户问题以及各个预存问题输入到所述训练模型,以通过所述训练模型计算所述用户问题与各个预存问题的相似度,并输出相似度达到所述预设阈值的多个预存问题和对应的相似度。

进一步地,所述问题匹配程序被处理器执行时,还实现采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题的步骤:

获取与所述用户问题匹配的多个问题;

采用第二预设个数的分类算法计算多个问题中各个问题与用户问题的匹配率;

获取各个分类算法预设的权值,对各个分类算法预设的权值以及各个问题与用户问题的匹配率进行加权平均,得到各个问题与用户问题的相似度值;

将相似度值最高的问题作为与所述用户问题匹配度最高的问题。

本发明提出的技术方案,所述问题匹配程序被处理器执行时,实现以下步骤:先接收用户问题,并将接收的所述用户问题输入到知识库中,然后在所述知识库中采用检索算法对各个预存问题进行检索,以检索出与所述用户问题匹配的多个问题,再采用分类算法在匹配的多个问题中确定与所述用户问题匹配度最高的问题,最终在所述知识库中查找所述匹配度最高的问题关联的答案,并将查找的答案反馈至显示界面。实现了问题的匹配是通过检索算法和分类算法两类算法确定,相对于传统单一的短文本相似性算法进行问题的匹配,本发明对问题的匹配更加全面,提高了问题匹配的准确性,从而提高了答案反馈的准确性。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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