一种基于深度学习的自然语言查询方法技术

技术编号:25223812 阅读:138 留言:0更新日期:2020-08-11 23:13
本发明专利技术公开了一种基于深度学习的自然语言查询方法,包括以下步骤:S1、将自然语言问题Q输入到预训练好的句向量模型中,得到对应的句向量;S2、从句向量模型所对应的句向量空间中检索出自然语言问题Q所对应的句向量的最近邻句向量及其自然语言问题,将所得最近邻句向量的自然语言问题的关系数据库表作为自然语言问题Q的目标关系数据库表;S3、将自然语言问题Q与其目标关系数据库表表头拼接到一起,输入到预训练好到的转换模型中,得到其对应的SQL查询语句;S4、采用所得SQL语句在自然语言问题Q的目标关系数据库表中进行查询,得到查询结果。本发明专利技术在给定自然语言问题后能够快速确定其目标关系数据库表,在现实场景中查询结果的准确率较高。

【技术实现步骤摘要】
一种基于深度学习的自然语言查询方法
本专利技术属于自然语言处理领域,更具体地,涉及一种基于深度学习的自然语言查询方法。
技术介绍
随着信息系统的普及和发展,数据的数量越来越多,也越来越重要,人们对数据的需求也随之增多。然而有时候数据过于庞大复杂,对于我们来说反而是一种困扰,要从其中找到需要的数据是一件不容易的事,因为数据大多存储在数据库中,就数据库的使用来说,需要使用特定的查询语言来从数据库中查询数据,而特定的查询语言的学习和使用是存在一定门槛的,对于普通使用者来说学习代价比较高,研究一种自然语言查询方法存在重要意义。许多学者相继提出了许多自然语言查询方法,从早期的基于语法句法分析的方法到最新的基于深度学习的方法,都在自然语言查询方向做出了很多尝试。其中,在早期的时候,学者们通常采用文法分析进行定制化数据库自然语言接口查询系统的研究,这种方法通常需要领域专家知识和定制化,并且泛化能力表现的也一般;随着深度学习的兴起和计算能力的快速提升,基于深度学习的方法进行自然语言查询的研究逐渐多了起来,学者们相继提出SEQ2SQL、SqlNet、Sqlova、TypeSQL、X-SQL、Coarse2Fine、Pointer-SQL、AnnotatedSeq2Seq、多任务问题应答网络(MultitaskQuestionAnswering_Network,MQAN)、Executionguideddecoding等等方法来处理NL2SQL任务,这种方法的泛化能力效果相对好一些,但是需要大量人工标注过的训练数据,采用人工标注来产生训练数据,本身的造价就比较昂贵;与此同时,有学者提出采用弱监督学习,如内存增强策略优化(MemoryAugmentedPolicyOptimization,MAPO)、元奖励学习(MetaRewardLearning,MeRL)的方法来产生训练数据,进而用产生的训练数据再进行深度学习训练。但是上述方法在进行研究的时候,大多数是给定了当前自然语言问题的目标关系型数据库表,只在给定表上研究如何生成SQL查询语句,未考虑根据自然语言问题定位自然语言问题的目标关系型数据库表的过程。而在现实中,由自然语言问题定位关系数据库表的过程是不可避免的,也直接关系到能否生成正确的SQL查询语句,故现有方法在现实场景中查询结果的准确率较低;且目前的研究大多是集中在英文wikisq1数据集领域,针对中文领域自然语言查询接口的研究比较少。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供一种基于深度学习的自然语言查询方法,用以解决现有技术由于未考虑根据自然语言问题定位自然语言问题的目标关系型数据库表的过程,而导致在现实场景中查询结果的准确率较低的技术问题。为了实现上述目的,第一方面,本专利技术提出了一种基于深度学习的自然语言查询方法,包括以下步骤:S1、将自然语言问题Q输入到预训练好的句向量模型中,得到对应的句向量;S2、从句向量模型所对应的句向量空间中检索出自然语言问题Q所对应的句向量的最近邻句向量及其自然语言问题,将所得最近邻句向量的自然语言问题的关系数据库表作为自然语言问题Q的目标关系数据库表;S3、将自然语言问题Q与其目标关系数据库表表头拼接到一起,输入到预训练好到的转换模型中,得到其对应的SQL查询语句;S4、采用所得SQL语句在自然语言问题Q的目标关系数据库表中进行查询,得到查询结果;其中,上述转换模型包括:BERT预训练模型、第一全连接层、第二全连接层、第三全连接层、第四全连接层、第五全连接层、第六全连接层和第七全连接层。进一步优选地,上述步骤S3中,将自然语言问题Q与其目标关系数据库表表头拼接到一起,得到转换模型的输入列表,具体为:[[CLS],Q,[SEP],目标关系数据库的第一列表头,特征1,特征2,特征3,特征4,[SEP],目标关系数据库的第二列表头,特征1特征2,特征3,特征4,[SEP],......,[SEP],目标关系数据库的第C列表头,特征1,特征2,特征3,特征4,[SEP]];其中,自然语言问题Q中的每个字符都是输入列表的一个元素,目标关系数据库的各列表头的各个特征所在的位置为保留位置,C为数据库表的列数。进一步优选地,BERT预训练模型(BidirectionalEncoderRepresentationfromTransformers)用于基于输入列表,得到[CLS]所对应的向量VCLS、自然语言问题Q中的各字符所对应的向量Vl、数据库各列表头所对应的向量Vc、以及各列表头的特征1、特征2、特征3、特征4所对应的向量,分别记为Vc1、Vc2、Vc3和Vc4;并将VCLS分别输入到第一全连接层、第二全连接层和第三全连接层中,将Vc1输入到第四全连接层中,将Vc2、Vc3和Vc4分别并行输入到第五全连接层和第六全连接层中,将Vc2、Vc3和Vc4与Vl整合后输入到第七全连接层中;其中,l=1,2,......L,L为自然语言问题Q中的字数,c=1,2,......C,C为数据库表的列数;第一全连接层用于基于[CLS]所对应的向量VCLS,预测SQL查询语句中WHERE子句的各条件之间的连接符;第二全连接层用于基于[CLS]所对应的向量VCLS,预测SQL查询语句中的SELECT子句中涉及到的列数目;第三全连接层用于基于[CLS]所对应的向量VCLS,预测SQL查询语句中的WHERE子句中涉及到的列数目;第四全连接层用于根据各列表头的特征1所对应的向量Vc1,预测SQL查询语句中各列是否是SELECT列和对应的聚合符号;第五全连接层用于根据各列表头的特征2、特征3、特征4所对应的向量Vc2、Vc3、Vc4,预测SQL查询语句中各列是否是WHERE子句中的条件列;第六全连接层用于根据各列表头的特征2、特征3、特征4所对应的向量Vc2、Vc3、Vc4,预测SQL查询语句中WHERE子句中涉及到的列的比较符号;第七全连接层用于根据自然语言问题Q中的各字符所对应的向量Vl以及各列表头的特征2、特征3、特征4所对应的向量Vc2、Vc3、Vc4,预测SQL查询语句中WHERE子句中各条件的值在自然语言问题Q中的开始位置和结束位置。进一步优选地,上述第一全连接层、第二全连接层、第三全连接层、第四全连接层、第五全连接层、第六全连接层和第七全连接层的大小分别为:hidden_size*3、hidden_size*4、hidden_size*4、hidden_size*7、hidden_size*1、hidden_size*4和hidden_size*2;其中,hidden_size为BERT预训练模型输出向量的维数。进一步优选地,上述句向量模型的训练方法,包括以下步骤:S011、采集查询数据训练集{(Qi,SQLi)},其中,Qi和SQLi分别为第i条自然语言问题及其对应的SQL查询语句;其中,各自然语言问题中均携带有对应的关系数据库表;1≤i≤N,N为查询数据训练集中数据的本文档来自技高网
...

【技术保护点】
1.一种基于深度学习的自然语言查询方法,其特征在于,包括以下步骤:/nS1、将自然语言问题Q输入到预训练好的句向量模型中,得到对应的句向量;/nS2、从句向量模型所对应的句向量空间中检索出自然语言问题Q所对应的句向量的最近邻句向量及其自然语言问题,将所得最近邻句向量的自然语言问题的关系数据库表作为自然语言问题Q的目标关系数据库表;/nS3、将自然语言问题Q与其目标关系数据库表表头拼接到一起,输入到预训练好到的转换模型中,得到其对应的SQL查询语句;/nS4、采用所得SQL语句在自然语言问题Q的目标关系数据库表中进行查询,得到查询结果;/n其中,所述转换模型包括:BERT预训练模型、第一全连接层、第二全连接层、第三全连接层、第四全连接层、第五全连接层、第六全连接层和第七全连接层。/n

【技术特征摘要】
1.一种基于深度学习的自然语言查询方法,其特征在于,包括以下步骤:
S1、将自然语言问题Q输入到预训练好的句向量模型中,得到对应的句向量;
S2、从句向量模型所对应的句向量空间中检索出自然语言问题Q所对应的句向量的最近邻句向量及其自然语言问题,将所得最近邻句向量的自然语言问题的关系数据库表作为自然语言问题Q的目标关系数据库表;
S3、将自然语言问题Q与其目标关系数据库表表头拼接到一起,输入到预训练好到的转换模型中,得到其对应的SQL查询语句;
S4、采用所得SQL语句在自然语言问题Q的目标关系数据库表中进行查询,得到查询结果;
其中,所述转换模型包括:BERT预训练模型、第一全连接层、第二全连接层、第三全连接层、第四全连接层、第五全连接层、第六全连接层和第七全连接层。


2.根据权利要求1所述的基于深度学习的自然语言查询方法,其特征在于,所述步骤S3中,将自然语言问题Q与其目标关系数据库表表头拼接到一起,得到转换模型的输入列表,具体为:[[CLS],Q,[SEP],目标关系数据库的第一列表头,特征1,特征2,特征3,特征4,[SEP],目标关系数据库的第二列表头,特征1特征2,特征3,特征4,[SEP],......,[SEP],目标关系数据库的第C列表头,特征1,特征2,特征3,特征4,[SEP]];其中,自然语言问题Q中的每个字符都是输入列表的一个元素,目标关系数据库的各列表头的各个特征所在的位置为保留位置,C为数据库表的列数。


3.根据权利要求2所述的基于深度学习的自然语言查询方法,其特征在于,所述BERT预训练模型用于基于输入列表,得到[CLS]所对应的向量VCLS、自然语言问题Q中的各字符所对应的向量Vl、数据库各列表头所对应的向量Vc以及各列表头的特征1、特征2、特征3、特征4所对应的向量,分别记为Vc1、Vc2、Vc3和Vc4;并将VCLS分别输入到第一全连接层、第二全连接层和第三全连接层中,将Vc1输入到第四全连接层中,将Vc2、Vc3和Vc4分别并行输入到第五全连接层和第六全连接层中,将Vc2、Vc3和Vc4与Vl整合后输入到第七全连接层中;其中,l=1,2,......L,L为自然语言问题Q中的字数,c=1,2,......C,C为数据库表的列数;
所述第一全连接层用于基于[CLS]所对应的向量VCLS,预测SQL查询语句中WHERE子句的各条件之间的连接符;
所述第二全连接层用于基于[CLS]所对应的向量VCLS,预测SQL查询语句中的SELECT子句中涉及到的列数目;
所述第三全连接层用于基于[CLS]所对应的向量VCLS,预测SQL查询语句中的WHERE子句中涉及到的列数目;
所述第四全连接层用于根据各列表头的特征1所对应的向量Vc1,预测SQL查询语句中各列是否是SELECT列和对应的聚合符号;
所述第五全连接层用于根据各列表头的特征2、特征3、特征4所对应的向量Vc2、Vc3、Vc4,预测SQL查询语句中各列是否是WHERE子句中的条件列;
所述第六全连接层用于根据各列表头的特征2、特征3、特征4所对应的向量Vc2、Vc3、Vc4,预测SQL查询语句中WHERE子句中涉及到的列的比较符号;
所述第七全连接层用于根据自然语言问题Q中的各字符所对应的向量Vl以及各列表头的特征2、特征3、特征4所对应的向量Vc2、Vc3、Vc4,预测SQL查询语句中WHERE子句中各条件的值在自然语言问题Q中的开始位置和结束位置。


4.根据权利要求1或3所述的基于深度学习的自然语言查询方法,其特征在于,所述第一全连接层、第二全连...

【专利技术属性】
技术研发人员:李玉华李相臣李瑞轩辜希武
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1