基于表格数据的faq知识库自动构建方法和装置
技术领域:
:1.本发明涉及智能政务
技术领域:
:,尤其涉及一种基于表格数据的faq知识库自动构建方法和装置。
背景技术:
::2.自动问答系统的目的是解决用户提出的相关问题,对于重视用户体验的客服系统来说,在自动问答系统的构建过程的冷启动阶段,需要建立一个faq(frequentlyaskedquestions常见问题解答)知识库,来预先存储人们可能会关心的问题和对应的答案。从而提高自动问答系统的领域覆盖,提升冷启动阶段用户的使用体验。faq知识库的构建是非常严格的。它的内容需要非常完整和标准,一般的faq知识库构建流程是将积累的faq,或是将与场景相关的文档中的相应内容整理成faq,添加到faq知识库中。然而,这种构建方法不仅需要耗费大量的人力和时间成本,在自动问答系统冷启动阶段也难以生成有效覆盖的faq知识库。因此,利用已有的数据自动构建faq知识库是智能客服系统设计的核心内容。3.表格(table)是一种应用广泛的数据存储方式,被广泛用于存储和展示结构化数据。表格数据结构清晰、易于维护、时效性强,通常是搜索引擎和智能对话系统的重要答案来源。由于表格的这些性质,政务数据库中很多数据都是以表格的形式进行存储,此外,政务文档中也经常会出现表格数据的内容呈现。因此,利用表格数据生成问答对就成为了构建智能对话系统的重要组成部分。4.目前,学术界基于表格的问答任务(questionanswering)主要有两类,一类是把自然语言解析为sql语句然后去数据库检索答案的nl2sql任务,主要的中英文数据集有dusql、spider、wikisql;另一类是不提供显示的sql语句直接进行答案求解。而直接基于表格生成问答对的通用技术仍是空白。5.政务领域表格数据与现阶段应用的主要的中英文数据集dusql、spider、wikisql等存在如下不同:6.a.政务领域的表格不够规范,单元格数据中往往存在大段的非结构化文本;7.b.政务领域经常存在表格数据和非结构化文本数据混合出现的情况,表现为政策、公告文件中包含附件表格或者文本内表格;用户可能结合非结构化文本内容和表格的内容提出问题,并需要推理才能给出答案。8.因此,采用现有的基于表格的问答方法不适用于政务领域中faq知识库的构建。技术实现要素:9.为了解决现有技术中存在的问题,本发明提供了如下技术方案。10.本发明一方面提供了一种基于表格数据的faq知识库自动构建方法,包括:11.将表格数据区分为规范化表格和非规范化表格;12.利用预先训练得到的sql语句生成器和第一问题生成器,根据所述规范化表格生成第一问答对;13.利用预先训练得到的自然语句生成器和第二问题生成器,根据所述非规范化表格生成第二问答对;14.对生成的第一问答对和第二问答对进行筛选,根据筛选出的问答对构建faq知识库;15.其中,所述sql语句生成器和第一问题生成器是基于第一训练数据集训练得到的,所述第一训练数据集包括规范化表格、问题和sql语句;所述自然语句生成器和第二问题生成器是基于第二训练数据集训练得到的,所述第二训练数据集包括非规范化表格、问题和自然语句。16.优选地,所述利用预先训练得到的sql语句生成器和第一问题生成器,根据所述规范化表格生成第一问答对包括:17.利用所述sql语句生成器根据无标注的规范化表格生成sql语句;18.利用所述第一问题生成器根据生成的所述sql语句生成第一问题,所述第一问题与所述sql语句的查询答案构成第一问答对。19.优选地,所述利用预先训练得到的自然语句生成器和第二问题生成器,根据所述非规范化表格生成第二问答对包括:20.利用所述自然语句生成器根据非规范化表格的行数据生成自然语句;21.将所述自然语句和作为答案的所述非规范化表格的单元格信息输入所述第二问题生成器,生成第二问答对。22.优选地,所述sql语句生成器为改进的pointernet模型,其在pointernet模型的编码器中增加“列”通道、“值”通道、“sql”通道和转换门控,其中,“列”通道用于预测列名,“值”通道用于预测表格单元格,“sql”通道用于预测sql关键词,转换门控用于选择生成sql语句的通道。23.优选地,所述第一问题生成器为将引入复制机制的gru作为解码器的seq2seq模型。24.优选地,所述自然语句生成器包括编码器、引入注意力机制和table2seq++复制机制的解码器;25.在所述编码器中,单元格的词嵌入和表头的词嵌入拼接表示为:[0026][0027]hi组成的列向量{h1,h2,…,hn}作为所述自然语句生成器的输入,对所述列向量使用逐元素平均的结果作为所述解码器的初始隐藏状态;[0028]其中,为表格每个单元格的词嵌入,为所述单元格对应的表头ai的词嵌入,表示表格第i列第j行的内容,ai表示表格第i列的名称;[0029]所述自然语句生成器采用的损失函数为:[0030][0031]其中,d为第二训练数据集。[0032]优选地,所述第二问题生成器为包括引入注意力机制和pointer‑softmax解码器的seq2seq模型。[0033]本发明第二方面提供了一种基于表格数据的faq知识库自动构建装置,包括:[0034]数据区分模块,用于将表格数据区分为规范化表格和非规范化表格;[0035]第一问答对生成模块,用于利用预先训练得到的sql语句生成器和第一问题生成器,根据所述规范化表格生成第一问答对,所述sql语句生成器和第一问题生成器是基于第一训练数据集训练得到的,所述第一训练数据集包括规范化表格、问题和sql语句;[0036]第二问答对生成模块,用于利用预先训练得到的自然语句生成器和第二问题生成器,根据所述非规范化表格生成第二问答对,所述自然语句生成器和第二问题生成器是基于第二训练数据集训练得到的,所述第二训练数据集包括非规范化表格、问题和自然语句;[0037]质量控制模块,用于对生成的第一问答对和第二问答对进行筛选,根据筛选出的问答对构建faq知识库。[0038]本发明第三方面提供了一种存储器,存储有多条指令,所述指令用于实现上述的方法。[0039]本发明第四方面提供了一种电子设备,包括处理器和与所述处理器连接的存储器,所述存储器存储有多条指令,所述指令可被所述处理器加载并执行,以使所述处理器能够执行上述的方法。[0040]本发明的有益效果是:本发明提供的基于表格数据的faq知识库自动构建方法和装置,将表格数据区分为规范化表格和非规范化表格,利用规范化表格预先训练得到的sql语句生成器和第一问题生成器并生成第一问答对,利用非规范化表格预先训练得到的自然语句生成器和第二问题生成器,并生成第二问答对;将第一问答对和第二问答对筛选后添加到faq知识库中。不仅节省了大量的人力和时间成本,而且在自动问答系统冷启动阶段生成了有效覆盖的faq知识库。该方法不仅能够利用规范化的表格数据生成问答对,也能够利用含有大段非结构化文本的非规范化表格数据生成问答对,因此,适用于利用政务领域表格数据构建faq知识库的过程。附图说明[0041]图1为本发明所述基于表格数据的faq知识库自动构建方法流程示意图;[0042]图2为本发明实施例所述基于表格数据的faq知识库自动构建方法的分步实施过程示意图;[0043]图3为本发明所述基于表格数据的faq知识库自动构建装置结构示意图。具体实施方式[0044]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。[0045]本发明提供的方法可以在如下的终端环境中实施,该终端可以包括一个或多个如下部件:处理器、存储器和显示屏。其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以实现下述实施例所述的方法。[0046]处理器可以包括一个或者多个处理核心。处理器利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器内的指令、程序、代码集或指令集,以及调用存储在存储器内的数据,执行终端的各种功能和处理数据。[0047]存储器可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read‑onlymemory,rom)。存储器可用于存储指令、程序、代码、代码集或指令。[0048]显示屏用于显示各个应用程序的用户界面。[0049]除此之外,本领域技术人员可以理解,上述终端的结构并不构成对终端的限定,终端可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、输入单元、传感器、音频电路、电源等部件,在此不再赘述。[0050]实施例一[0051]如图1所示,本发明实施例提供了一种基于表格数据的faq知识库自动构建方法,包括:[0052]s101,将表格数据区分为规范化表格和非规范化表格;[0053]s102,利用预先训练得到的sql语句生成器和第一问题生成器,根据所述规范化表格生成第一问答对,所述sql语句生成器和第一问题生成器是基于第一训练数据集训练得到的,所述第一训练数据集包括规范化表格、问题和sql语句;[0054]s103,利用预先训练得到的自然语句生成器和第二问题生成器,根据所述非规范化表格生成第二问答对,所述自然语句生成器和第二问题生成器是基于第二训练数据集训练得到的,所述第二训练数据集包括非规范化表格、问题和自然语句;[0055]s104,对生成的第一问答对和第二问答对进行筛选,根据筛选出的问答对构建faq知识库。[0056]上述方法中,通过对表格数据进行格式分类,得到规范化表格和非规范化表格,并分别针对不同格式的表格数据采用不同的方式生成问答对,进而完成faq知识库自动构建。其中,针对规范化的表格数据,基于nl2sql技术预先训练得到第一问题生成器,生成第一问答对;针对非规范化的表格数据,基于table2text技术预先训练得到第二问题生成器,生成第一问答对。因此,该方法不仅适用于规范化的表格数据,也适用于含有大段非结构化文本的非规范化表格数据。[0057]本发明提供的方法的分步实施过程可如图2所示。[0058]执行步骤s101,可选地,表格数据可以从网站上爬取获得,每个表格至少包含3行和2列。可以采用表格类型识别器识别表格的类型。表格类型可以分为规范化表格和非规范化表格,其中,规范化表格是指仅包含数字,日期及可进行类别特征编码的字符型文本的表格,所述类别特征编码是指通过特征工程转化成数字形式以直接参与计算的编码方式。例如规范化表格的单元格由数字、日期和字符数小于预设阈值的文本组成。不属于规范化表格的则为非规范化表格,例如单元格包含有字符数不小于预设阈值的文本。[0059]步骤s102中的sql语句生成器和第一问题生成器是通过下述方式训练得到的:[0060]首先构建第一训练数据集,然后根据第一训练数据集训练得到的sql语句生成器和第一问题生成器,再根据所述规范化表格生成第一问答对。[0061]其中,第一训练数据集根据规范化表格数据构建。具体的,可以对规范化表格进行人工问题标注,并基于nl2sql技术将规范化表格转换为对应的sql语句。利用规范化表格(t)、问题(q)和sql语句组成第一训练数据集<t,q,sql>。[0062]根据第一训练数据集训练得到sql语句生成器。具体的,可以构建一个encoder‑decoder神经网络模型,输入规范化表格,输出sql语句。该模型采用改进的pointernet模型,其在pointernet模型的编码器中增加“列”通道、“值”通道、“sql”通道和转换门控,其中,“列”通道用于预测列名,“值”通道用于预测表格单元格,“sql”通道用于预测sql关键词,转换门控用于选择生成sql语句的通道。[0063]根据第一训练数据集训练得到第一问题生成器。具体的,可以训练一个基于seq2seq的问题生成器,该生成器将sql语句作为输入,输出的是问题。该问题生成器的具体信息如下:[0064]a)编码器[0065]编码器是一个bi‑gru。对于一个sql语句x=(x1,…,xt),前向gru获得隐状态反向gru获得隐状态然后获得sql语句每个单词的最终表示最后,获得sql语句的最终表示作为解码器的初始状态。[0066]b)解码器[0067]使用一个引入复制机制的gru作为解码器。[0068]c)复制机制[0069]由于问题中常常包含一些出现频率较低的特殊词汇,例如命名实体或者数字,通常情况下,这些词并不来源于目标词库而是来源于sql语句中,为了解决这个问题,在解码器中引入复制机制copynet,以从sql语句中复制关键词。[0070]经过训练得到sql语句生成器和第一问题生成器之后,可以利用训练得到的sql语句生成器和第一问题生成器,根据所述规范化表格生成第一问答对,具体的,可以包括:[0071]利用所述sql语句生成器根据无标注的规范化表格生成sql语句;[0072]利用所述第一问题生成器根据生成的所述sql语句生成第一问题,所述第一问题与所述sql语句的查询答案构成第一问答对。[0073]步骤s103中的自然语句生成器和第二问题生成器是通过下述方式训练得到的:[0074]首先构建第二训练数据集,然后根据第二训练数据集训练得到的自然语句生成器和第二问题生成器,再根据所述非规范化表格生成第二问答对。[0075]其中,第二训练数据集根据非规范化表格数据构建。具体的,可以对非规范化表格进行人工问题标注,并基于table2text技术对非规范化表格的每一行进行自然语言描述标注。利用非规范化表格(t)、问题(q)和自然语句(text)组成第二训练数据集<t,q,text>。[0076]根据第二训练数据集训练得到自然语句生成器。具体的,可以构建一个encoder‑decoder神经网络模型,将非规范化表格的一行作为输入,输出是一句可以描述这一行的自然语言语句。一个表格(t)可以表示为一个由表头(attribute),单元格(cell),和表名(caption)组成的三元组。[0077]t=<attribute,cell,caption>[0078]其中,表头attribute={a1,a2,…,an}包含了表格的n个列名,单元格包含了表格的n*m个单元格,n是表格的列数,m是表格的行数。表示表格的第i列、第j行的内容。表名通常是一句描述表格内容的自然语句。模型的具体信息如下所示:[0079]a)编码器[0080]每个单元格的词嵌入可以表示为该单元格对应的表头ai的词嵌入可以表示为单元格的词嵌入和表头的词嵌入可以用如下方式进行拼接,具体表示为:[0081][0082]最终输入模型的一行表格是由hi组成的列向量:{h1,h2,…,hn}。并且,为了保证任意交换两列的位置的输出不变,可以对列向量使用逐元素平均,并将结果作为解码器的初始隐藏状态s0。[0083]b)解码器[0084]解码器中引入了注意力机制,t时刻第i列的注意力权重为:[0085][0086]其中hi是第i列的向量表示,st是标准gru解码器的隐藏状态,z()是计算hi重要性的非线性函数,它将通过softmax函数进一步归一化。然后,注意力权重将用于计算上下文向量ct,它将在每个时间步t进一步影响隐藏状态st。[0087]st=gru(yt‑1,st‑1,ct)[0088]c)复制机制[0089]解码器中还引入了名为table2seq++的复制机制,该机制可以使模型在解码阶段从表格单元格和表头中复制单词。[0090]d)损失函数[0091][0092]其中d是训练集。在预测阶段,使用波束搜索生成前k个置信结果,其中k是波束大小。[0093]根据第二训练数据集训练得到第二问题生成器。具体的,可以训练一个有答案提示的问题生成模型,该模型的输入包括:[0094]a)描述表格一行的自然语句;[0095]b)将表格单元格中的信息作为答案输入模型;[0096]该模型的输出是基于表格中某一行产生的一个问题。[0097]第二问题生成器是一个引入了注意力机制和pointer‑softmax解码器的seq2seq模型。该模型的具体信息如下:[0098]a)词嵌入:通过bi‑lstm对输入语料<描述,答案>进行词嵌入,每一个单词由其词嵌入ei和字符级别的词嵌入拼接而成;[0099]b)为了利用政务文档中答案的提取特征,我们在答案单词的位置使用文档的注释向量对答案进行编码;[0100]c)rnn解码器采用pointer‑softmax模型。[0101]经过训练得到自然语句生成器和第二问题生成器之后,可以利用训练得到的自然语句生成器和第二问题生成器,根据所述非规范化表格生成第二问答对,具体的,可以包括:[0102]利用所述自然语句生成器根据非规范化表格的行数据生成自然语句;[0103]将所述自然语句和作为答案的所述非规范化表格的单元格信息输入所述第二问题生成器,生成第二问答对。[0104]执行步骤s104,对生成的第一问答对和第二问答对进行筛选,根据筛选出的问答对构建faq知识库。[0105]对于问答对的评测,可以采用的方法包括bleu,rouge,meteor,cider等。由于自动评测方法不如人工评测方法可靠,因此,本发明中,在模型训练阶段,采用人工评测和自动评测结合的方式对生成的政务领域问答对进行评测,从而增加问答对评测的可靠性,进而保障sql语句生成器、第一问题生成器、自然语句生成器和第二问题生成器的训练效果。具体评测方法可以如下:[0106]a)从预测生成的问答对中随机抽取30%,用人工评测的方法对模型生成的问答对与标注问答对进行对比评估;[0107]b)使用自动评测方法对余下的70%问答对进行评测;[0108]c)由于人工评测方法具有更高的可靠性,因此在计算总的召回和精度时,人工评测方法将会被分配更高的权重。[0109]采用本发明提供的上述方法自动构建基于表格数据的faq知识库,具有如下有益效果:[0110]相比于通过人工梳理构建faq知识库的方式,本发明在faq知识库构建的初始阶段更具有现实意义,一是可节约大量的人工和时间成本进行faq文档的建立,二是自动生成的问答对文档的覆盖率更高,可提升冷启动阶段用户的使用体验。[0111]该方法不仅能够利用规范化的表格数据生成问答对,也能够利用含有大段非结构化文本的非规范化表格数据生成问答对,因此,对于含有很多表格数据,且既包含规范化表格数据又包含非规范化表格数据的政务领域,非常适于采用本发明提供的方法构建faq知识库。[0112]实施例二[0113]如图3所示,本发明的另一方面还包括和前述方法流程完全对应一致的功能模块架构,即本发明实施例还提供了基于表格数据的faq知识库自动构建装置,包括:[0114]数据区分模块301,用于将表格数据区分为规范化表格和非规范化表格;[0115]第一问答对生成模块302,用于利用预先训练得到的sql语句生成器和第一问题生成器,根据所述规范化表格生成第一问答对,所述sql语句生成器和第一问题生成器是基于第一训练数据集训练得到的,所述第一训练数据集包括规范化表格、问题和sql语句;[0116]第二问答对生成模块303,用于利用预先训练得到的自然语句生成器和第二问题生成器,根据所述非规范化表格生成第二问答对,所述自然语句生成器和第二问题生成器是基于第二训练数据集训练得到的,所述第二训练数据集包括非规范化表格、问题和自然语句;[0117]质量控制模块304,用于对生成的第一问答对和第二问答对进行筛选,根据筛选出的问答对构建faq知识库。[0118]所述第一问答对生成模块具体的用于:[0119]利用所述sql语句生成器根据无标注的规范化表格生成sql语句;[0120]利用所述第一问题生成器根据生成的所述sql语句生成第一问题,所述第一问题与所述sql语句的查询答案构成第一问答对。[0121]所述第二问答对生成模块具体的用于:[0122]利用所述自然语句生成器根据非规范化表格的行数据生成自然语句;[0123]将所述自然语句和作为答案的所述非规范化表格的单元格信息输入所述第二问题生成器,生成第二问答对。[0124]进一步地,所述sql语句生成器为改进的pointernet模型,其在pointernet模型的编码器中增加“列”通道、“值”通道、“sql”通道和转换门控,其中,“列”通道用于预测列名,“值”通道用于预测表格单元格,“sql”通道用于预测sql关键词,转换门控用于选择生成sql语句的通道。[0125]进一步地,所述第一问题生成器为将引入复制机制的gru作为解码器的seq2seq模型。[0126]进一步地,所述自然语句生成器包括编码器、引入注意力机制和table2seq++复制机制的解码器;[0127]在所述编码器中,单元格的词嵌入和表头的词嵌入拼接表示为:[0128][0129]hi组成的列向量{h1,h2,…,hn}作为所述自然语句生成器的输入,对所述列向量使用逐元素平均的结果作为所述解码器的初始隐藏状态;[0130]其中,为表格每个单元格的词嵌入,为所述单元格对应的表头ai的词嵌入,表示表格第i列第j行的内容,ai表示表格第i列的名称;[0131]所述自然语句生成器采用的损失函数为:[0132][0133]其中,d为第二训练数据集。[0134]进一步地,所述第二问题生成器为包括引入注意力机制和pointer‑softmax解码器的seq2seq模型。[0135]该装置可实现上述实施例一提供的基于表格数据的faq知识库自动构建方法,具体方法可参见实施例一中的描述,在此不再赘述。[0136]本发明还提供了一种存储器,存储有多条指令,所述指令用于实现如实施例一所述的方法。[0137]本发明还提供了一种电子设备,包括处理器和与所述处理器连接的存储器,所述存储器存储有多条指令,所述指令可被所述处理器加载并执行,以使所述处理器能够执行如实施例一所述的方法。[0138]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3 当前第1页1 2 3