一种问答对数据的挖掘方法、装置及电子设备
技术领域
本申请实施例涉及信息挖掘技术领域,尤其涉及一种问答对数据的挖掘方法、装置及电子设备。
背景技术
目前的问答平台都会配置机器人来回答提问者的问题。机器人识别用户的问题和给出答案的基础是要有个知识库。现有技术是人工筛选需要添加至知识库的问答对数据,由于人工效率较低,因此知识库的建设程度有限,需要投入较大的成本对知识库进行运营。
如何在人力不参与或较少参与的前提下建设问答平台的知识库,是本申请所要解决的技术问题。
发明内容
本申请实施例目的是提供一种问答对数据的挖掘方法、装置及电子设备,能够在人力不参与或较少参与的前提下建设问答平台的知识库。
为了实现上述目的,本申请实施例是这样实现的:
第一方面,提供一种问答对数据的挖掘方法,包括:
提供问答对评估模型,所述问答对评估模型包括问题编码器、答案编码器以及分类器;
基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
将候选问题数据集中的候选问题数据作为所述问题编码器的输入以得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入以得到答案特征向量;将问题特征向量和答案特征向量作为所述分类器的输入,以得到候选问题数据与候选答案数据之间的置信度;
基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
第二方面,提供了一种问答对数据的挖掘方法装置,包括:
提供模块,提供问答对评估模型,所述问答对评估模型包括问题编码器、答案编码器以及分类器;
获取模块,基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
评估模块,将候选问题数据集中的候选问题数据作为所述问题编码器的输入以得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入以得到答案特征向量;将问题特征向量和答案特征向量作为所述分类器的输入,以得到候选问题数据与候选答案数据之间的置信度;
匹配确定模块,基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
问答对组成模块,若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
第三方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
提供问答对评估模型,所述问答对评估模型包括问题编码器、答案编码器以及分类器;
基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
将候选问题数据集中的候选问题数据作为所述问题编码器的输入以得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入以得到答案特征向量;将问题特征向量和答案特征向量作为所述分类器的输入,以得到候选问题数据与候选答案数据之间的置信度;
基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
提供问答对评估模型,所述问答对评估模型包括问题编码器、答案编码器以及分类器;
基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
将候选问题数据集中的候选问题数据作为所述问题编码器的输入以得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入以得到答案特征向量;将问题特征向量和答案特征向量作为所述分类器的输入,以得到候选问题数据与候选答案数据之间的置信度;
基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
由以上本申请实施例提供的技术方案可见,本申请实施例基于问答对评估模型,从聊天记录中筛选生成问答对数据,减少了人力参与,提高了问答对的配对效率,从而能够大幅提升知识库的建设效率,降低知识库的运营成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的问答对数据的挖掘方法的流程示意图;
图2为本申请实施例提供的问答对数据的挖掘方法中的问答对评估模型的结构示意图;
图3为本申请实施例提供的问答对数据的挖掘方法中的问答对评估模型在实际应用中的结构示意图;
图4为本申请实施例提供的电子设备的硬件结构示意图;
图5为本申请实施例提供的问答对数据的挖掘装置的逻辑结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
如前所述,现有技术是人工为问答平台的知识库配置问答对数据,由于人工筛选问答对数据的效率较低,因此对知识库的指示建设十分有限。有鉴于此,本申请旨在人力不参与或者较少参与的前提下,提出一种基于机械学习,自动产生问答对数据,并将问答对数据扩充至知识库的技术方案。
图1是本申请的一个实施例问答对数据的挖掘方法的流程图。图1的方法可由问答对数据的挖掘装置执行。该方法可包括:
步骤S102,提供问答对评估模型,问答对评估模型包括问题编码器、答案编码器以及分类器。
应理解,本申请实施例的问答对评估模型中,问题编码器的输出和答案编码器的输出分别作为分类器的输入。问题编码器用于将问题数据编码成问题特征向量,答案编码器用于将答案数据编码成答案特征向量,分类器用于基于问题特征向量和答案特征向量,计算问题特征向量与答案特征向量之间置信度。
步骤S104,基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
应理解,本步骤可以获取提问者与回答者之间的聊天记录,并基于预设规则,将聊天记录中提问者的聊天数据作为候选问题数据,以及将聊天记录中回答者的聊天数据作为候选答案数据。
步骤S106,将候选问题数据集中的候选问题数据作为所述问题编码器输入,得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入,得到答案特征向量;以及将问题特征向量和答案特征向量作为所述分类器的输入,得到候选问题数据与候选答案数据之间的置信度;
应理解,本申请实施例的分类器用于基于输入的候选问题数据与候选答案数据输出候选问题数据与候选答案数据的置信度。本申请实施例并不对分类器采用任意模型函数进行限制,因此置信度的实现方式并不唯一。作为示例性介绍,置信度可以是用于评估候选问题数据与候选答案数据是否匹配的评分,或者置信度可以是直接指示候选问题数据与候选答案数据是否匹配的结果。
步骤S108,基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
应理解,置信度越高则表示候选问题数据与候选答案数据之间越匹配,当候选问题数据与候选答案数据之间的置信度达到预设阈值时,则表示候选问题数据与候选答案数据很大几率组成正确的“所问即所答”的问答对数据。
步骤S110,若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
当然,应理解,在组成问答对数据之后,还可将问答对数据添加至知识库。
此外,在问答对数据添加至知识库前,还可以进一步再由人工进行审核,在人工审核通过后,添加至知识库;
此外,在问答对数据添加至知识库前,还可以对问答对数据进行编辑(比如对问答对数据进行语言提炼、语言排序等),之后再添加至知识库。
本申请实施例中,基于问答对评估模型,从聊天记录中筛选生成问答对数据。由于本申请实施例的方案基于问答对评估模型自动从聊天记录中提取问答对进行配对,减少了人力参与,提高了问答对的配对效率,从而能够大幅提升知识库的建设效率,降低知识库的运营成本。
下面对申请实施例的挖掘方法进行详细介绍。
本申请实施例可以从问答系统(比如目前常见的百度知道、客服通信系统等)中获取提问者与回答者之间的聊天记录。
之后通过一定的预设规则,将聊天数据中提问者指定向回答者发送的聊天数据作为候选问题数据,并添加至候选问题数据集;同理,将聊天数据中回答者指定向提问者发送的聊天数据作为候选答案数据,并添加至候选答案数据集。
以客服通信系统为例,可以将用户@客服的聊天数据作为候选问题数据,并将客服@用户的聊天数据作为候选答案数据。
当然,绝大部分的聊天记录中提问者与回答者之间的对话,没有直接的指定关系。
比如用a_1,b_2,a_3,x_4,a_5,y_6,c_7,x_8表示一段对话记录,格式为:发送者id_消息id,假设a、b、c表示三个不同的提问者,x、y表示两个不同的回答者。要从中挖掘出问答对数据,可能是『a_1,x_4』也可能是『a_3,y_6』或者『b_2,x_8』等等。
且提问者发送的聊天数据不一定是问题,回答者发送的聊天数据也不一定是答案。即使提问者发送的聊天数据是问题,回答者发送的聊天数据是答案,也不一定意味着提问者和回答者的聊天数据就可以组成正确的问答对数据。
因此,需要基于问答对评估模型,对聊天记录中获取到的候选问题数据与候选答案数据进行匹配筛选。
其中,本申请本实施例提供一种问答对评估模型的构建方法,包括问答对评估模型的建设步骤和问答对评估模型的训练步骤。
针对问答对评估模型的建设步骤。
本申请实施例首先建立一个如图2所示的初始的问答对评估模型。
在图2所示的问答对评估模型中,问题编码器的输入和答案编码器的输入作为问答对评估模型的输入,分类器的输出作为问答对评估模型的输出。
需要说明的是,本申请实施例并不对答案编码器和问题编码器进行具体限定。问题编码器和答案编码器的作用是将问答对数据中的问题数据和答案数据以向量方式进行表达,因此但凡可以转换为特征向量的编译方法都可适用于本申请的问题编码器和答案编码器。
比如,本申请实施例中,问题编码器用于确定问题数据的平均词向量和最后一个词向量,并将问题数据的平均词向量与最后一个词向量进行拟合,得到问题特征向量;
拟合可以是指将平均词向量和最后一个词向量进行计算,得到问题特征向量;比如,对平均词向量W和最后一个词向量Wn进行加权求和或者相乘,得到问题特征向量。
或者,拟合也可以是指将平均词向量和最后一个词向量作为两个维度,得到问题特征向量;比如,将(W,Wn)作为问题特征向量。
同理,答案编码器也可以与问题编码器的原理一样,用于确定答案数据的平均词向量和最后一个词向量,并将答案数据的平均词向量与最后一个词向量进行拟合,得到答案特征向量。
此外,问题编码器和答案编码器也可以是任意数量。以多个为例,问题编码器和答案编码器均可以由至少两个相互串联且编码函数不同的子编码器组成,从而实现多级编译。
比如,问题编码器由子编码器1、子编辑器2和子编辑器3组成。则问题数据先输入子编码器1,由子编码器1基于其编码函数生成问题特征向量1,之后问题特征向量1输入至子编辑器2,由子编码器2基于其编码函数将问题特征向量1编译为问题特征向量2,问题特征向量2再进一步由子编辑器3编译为问题特征向量3,该问题特征向量3即输入分类器的最终问题特征向量。
在建立图2所示的问答对评估模型后,即可对问答对评估模型进行训练。
针对问答对评估模型的训练步骤。
本申请实施例可以从训练样本集中选取至少两个问答对数据,并对选取到的至少两个问答对数据进行拆分,得到至少两个问答对数据的问题数据和答案数据;
之后,将拆分得到的问题数据和答案数据进行置乱组合,得到置乱问答对数据;
在得到置乱问答对数据后,对置乱问答对数据标注标签;比如,置乱问答对数据中的问题数据与答案数据不匹配,则标签为0;置乱问答对数据中的问题数据与答案数据匹配,则标签为1。
之后,将置乱问答对数据中的问题数据作为所述问题编码器的输入,将置乱问答对数据中的答案数据作为所述答案编码器的输入,将置乱问答对数据的标签作为所述分类器的输出,对问答对评估模型进行训练。
作为示例介绍。本申请实施例在训练过程中,可以按一个个mini-batch的形式将训练样本集中的训练数据输入至问答对评估模型。
其中,一个mini-batch可以由128条正确的问答对数据组成。在一个mini-batch内部,每个候选问题数据均与128个候选答案数据组成一个待计算置信度的置乱问答对数据。
本申请实施例的问答对评估模型可以看成是一个分类模型,将mini-batch中每个候选问题数据都尝试找出正确的候选答案数据。通过训练以调整问题编码器、答案编码器以及分类器参数,从而达到问答对评估模型的训练目的。
该训练后的问答对评估模型即可确定候选问题数据与候选答案数据之间的置信度,以用于确定候选问题数据与候选答案数据是否能够组成问答对数据以添加至知识库。
下面对问答对评估模型的实际应用进行详细介绍。
图3所示的问答对评估模型在其中一个可行方案中的结构示意图。该问答对评估模型包括:
两个编码函数相同的编码器Encoder1,一个用于编译候选问题数据,得到问题特征向量u,另一个用于编译候选答案数据,得到答案特征向量v;
一个编码函数不同于Encoder1的编码器Encoder2,用于将问题特征向量v进行再次编码,得到问题特征向量v’;
一个用于计算问题特征向量u与问题特征向量v’之间余弦距离的分类器,该余弦距离作为问题特征向量u与答案特征向量v’之间的置信度。
本申请实施例在从聊天记录中收集候选问题数据集和候选答案数据集后,将候选问题数据集中的候选问题数据以及答案数据集中的候选答案数据分别输入至图3所示的问答对评估模型,即可获得问答对评估模型计算的候选问题数据和候选答案数据之间的余弦距离,并根据余弦距离的取值决定是否将候选问题数据与候选答案数据组成问答对数据,并添加至知识库。
经测试,采用图3所示的问答对评估模型的结构,问答对评估模型识别问答对数据的正确概率至少在60%以上,对于机械识别来讲属于较高的水准,因此方案具有实用价值,能可靠地代替人力为知识库配置问答对数据。
图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成问答对数据挖掘装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
提供问答对评估模型,所述问答对评估模型包括问题编码器、答案编码器以及分类器;
基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
将候选问题数据集中的候选问题数据作为所述问题编码器的输入以得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入以得到答案特征向量;将问题特征向量和答案特征向量作为所述分类器的输入,以得到候选问题数据与候选答案数据之间的置信度;
基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
上述如本申请图1所示实施例揭示的问答对数据挖掘装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现问答对数据挖掘装置在图1、图2、图5所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
提供问答对评估模型,所述问答对评估模型包括问题编码器、答案编码器以及分类器;
基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
将候选问题数据集中的候选问题数据作为所述问题编码器的输入以得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入以得到答案特征向量;将问题特征向量和答案特征向量作为所述分类器的输入,以得到候选问题数据与候选答案数据之间的置信度;
基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
图5是本申请的一个实施例问答对数据的挖掘装置500的结构示意图,包括:
提供模块510,提供问答对评估模型,所述问答对评估模型包括问题编码器、答案编码器以及分类器;
获取模块520,基于预设规则,获取聊天记录中的候选问题数据集和候选答案数据集;
评估模块530,将候选问题数据集中的候选问题数据作为所述问题编码器的输入以得到问题特征向量;将候选答案数据集的候选答案数据作为所述答案编码器的输入以得到答案特征向量;将问题特征向量和答案特征向量作为所述分类器的输入,以得到候选问题数据与候选答案数据之间的置信度;
匹配确定模块540,基于候选问题数据与候选答案数据之间的置信度,确定候选问题数据与候选答案数据是否匹配;
问答对组成模块550,若候选问题数据与候选答案数据匹配,则将候选问题数据与候选答案数据组成问答对数据。
本申请实施例中,基于问答对评估模型,从聊天记录中筛选生成问答对数据,减少了人力参与,提高了问答对的配对效率,从而能够大幅提升知识库的建设效率,降低知识库的运营成本。
可选地,作为一个实施例,匹配确定模块530具体用于:
若候选问题数据与候选答案数据之间的置信度大于预设阈值,则确定候选问题数据与候选答案数据匹配;否则,确定候选问题数据与候选答案数据不匹配。
可选地,作为一个实施例,获取模块510具体用于:
将聊天数据中提问者指定向回答者发送的聊天数据作为候选问题数据,并添加至候选问题数据集;
将聊天数据中回答者指定向提问者发送的聊天数据作为候选答案数据,并添加至候选答案数据集。
可选地,作为一个实施例,挖掘装置还包括:
训练模块,基于训练样本集中的问答对数据,对所述问题编码器、所述答案编码器以及所述分类器进行训练,得到包括所述问题编码器、所述答案编码器以及所述分类器的问答对评估模型;其中,训练样本集中的问答对数据包括问题数据和答案数据。
可选地,作为一个实施例,训练模块具体用于:
从训练样本集中选取至少两个问答对数据;
对选取到的所述至少两个问答对数据进行拆分,得到所述至少两个问答对数据的问题数据和答案数据;
将拆分得到的问题数据和答案数据进行置乱组合,得到置乱问答对数据;
对置乱问答对数据标注标签;
将置乱问答对数据中的问题数据作为所述问题编码器的输入,将置乱问答对数据中的答案数据作为所述答案编码器的输入,将置乱问答对数据的标签作为所述分类器的输出,对所述问答对评估模型进行训练;其中,所述问题编码器的输出和所述答案编码器的输出分别作为所述分类器的输入;
可选地,作为一个实施例:
所述问题编码器用于确定问题数据的平均词向量和最后一个词向量,并将问题数据的平均词向量与最后一个词向量进行拟合,得到问题特征向量;
和/或,
所述答案编码器用于确定答案数据的平均词向量和最后一个词向量,并将答案数据的平均词向量与最后一个词向量进行拟合,得到答案特征向量。
可选地,作为一个实施例,所述分类器用于计算问题特征向量与答案特征向量之间的余弦距离,所述余弦距离作为问题特征向量与答案特征向量之间的置信度。
可选地,作为一个实施例,所述问题编码器由至少两个相互串联且编码函数不同的子编码器组成,和/或,所述答案编码器由至少两个相互串联且编码函数不同的子编码器组成。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。