一种注入最优模式项和历史交互信息的SQL生成方法技术

技术编号:39416407 阅读:11 留言:0更新日期:2023-11-19 16:07
本发明专利技术公开一种注入最优模式项和历史交互信息的SQL生成方法,应用于自然语言处理的语义解析领域,针对现有技术难以解决跨领域的复杂中文自然语言生成结构化语言SQL的实际商业智能场景应用的问题;本发明专利技术通过预筛选的交叉编码器将与中文自然语言查询相关性较大的最优模式项注入到模型中;然后,使用用户的历史查询简化分步用户的复杂查询;最后,提出了完整的SQL结构预测模型,从根节点root开始以深度优先顺序生成结点序列,融合上一时刻的特征、父结点特征、上下文特征、结点类型特征,最大化自然语言问题所对应正确SQL语句的概率值,生成SQL抽象语法树,再按深度遍历SQL语法树,生成最终的SQL语句。生成最终的SQL语句。生成最终的SQL语句。

【技术实现步骤摘要】
一种注入最优模式项和历史交互信息的SQL生成方法


[0001]本专利技术属于自然语言处理的语义解析领域,特别涉及一种将自然语言转换为结构化的SQL语句的技术。

技术介绍

[0002]语义解析是一项将自然语言查询映射为相应的机器可执行逻辑形式的任务,将复杂的自然语言转化为SQL(Structured Query Language,结构化查询语言)语句,是语义解析的一个分支,旨在打破非技术人员和数据库之间的壁垒,缩短用户和数据库之间的距离。随着大型的跨域的数据集Spider以及WikiSQL的提出,大大的推动了自然语言转SQL的研究,以上推出的数据集都是基于英文的,通过竞赛发布中文特色数据集TableQA,DuSQL以及翻译英文数据集CSpider大力推动SQL生成技术在中文场景下的发展以及落地。
[0003]但目前的研究成果和工作并不能使这项技术真正的用于实际的落地场景中,面临的问题有:(1)中文自然语言的口语形式的复杂查询使机器很难理解用户真实的查询意图。(2)实际落地的应用场景中设计的数据库规模可能很大,导致无法将信息完全输入到模型中。(3)数据库结构的变化导致性能下降。
[0004]早期的研究大多为了全面的掌握数据库包含的信息将数据库包含的所有信息都输入到模型中,并且没有考虑到实际应用场景中,用户难以以一句话表达出正确的查询意图,这使得生成复杂的SQL语句生成困难。

技术实现思路

[0005]为解决跨领域的复杂中文自然语言生成结构化语言SQL的实际商业智能场景应用的问题;本专利技术提出一种注入最优模式项和历史交互信息的SQL生成方法,通过设计一种预筛选的交叉编码器提取最优模式项并且注入用户历史的交互信息简化复杂查询的生成,通过一种SQL语法树的形式深度优先的生成最终正确SQL语句。
[0006]本专利技术采用的技术方案为:一种注入最优模式项和历史交互信息的SQL生成方法,包括:
[0007]S1、预筛选交叉编码器,根据输入的自然语言查询和相应的数据库模式项,计算出与自然语言查询最相关的模式项;
[0008]S2、融入历史交互信息的SQL编码模块,根据预筛选交叉编码器输出的最优模式项和用户的历史交互信息,构建自然语言与历史查询的交互图,并对得到的交互图进行编码;
[0009]S3、基于SQL结构预测模型对步骤S2的编码结果进行解码。
[0010]本专利技术的有益效果:通过本专利技术提出的一种注入最优模式项和历史交互信息的SQL生成技术,能够取得以下有益效果:
[0011]1、本专利技术在在针对实际应用落地场景中中文自然语言查询转为SQL任务中,可能遇到数据库规模过大,而无法完全输入到模型中,所提出的一种预筛选的交叉编码器优先计算与自然语言查询最为相关的数据库模式项(包括表和列),将最优的模式项包括前k1个
数据库表前k2个数据列注入到模型中,保证高召回率的同时防止过多的噪声注入;
[0012]2、复杂的SQL语句的生成相对应的自然语言语句也会很复杂,因此本专利技术提出用户在输入中文自然语言查询语句之前,优先通过在历史交互信息的基础上输入多条的简单相互依赖的查询语句,以生成最后复杂的查询;
[0013]3、在基于Transformer结构计算时,添加输入序列分词间的关系,使模型在处理时更加偏向这些预先定义的关系,包括数据库模式项包括数据库表和列之间的关系;中文自然语言查询的分词与数据库模式中的数据表和数据列的链接关系;自然语言查询分词之间的依赖关系;本次自然语言查询分词和历史查询分词之间的关系;
[0014]4、本专利技术所提供的中文自然语言的SQL语句生成模型的构建方法,通过语法树的解码方法,按照深度优先顺序生成SQL语句,将解码过程分为生成语法关键字和生成数据库模式两类,根据当前结点类型、父结点类型来决定可能出现的候选项,再经过LSTM计算概率分布,选取概率值最高的候选项。这种解码方式符合SQL语句结构和结构化数据的特点,能规避语法错误,支持生成包括表连接、嵌套查询在内的复杂结构的SQL语句,模型的准确度较高。
附图说明
[0015]图1为本专利技术具体执行实施的技术步骤;
[0016]图2为预筛选交叉编码器的多语言编码模块流程示意图;
[0017]图3为预筛选交叉编码器计算数据库模式项概率的步骤示例图;
[0018]图4为k1和k2的取值示例;
[0019]图5为自然语言查询和数据库模式项链接示意图;
[0020]图6为自然语言查询轮次之间的共指关系示意图;
[0021]图7为最优模式项进行编码得到关系感知的编码向量的流程示意图;
[0022]图8为基于SQL语法树的SQL解码过程示意图。
具体实施方式
[0023]为便于本领域技术人员理解本专利技术的
技术实现思路
,下面结合附图对本
技术实现思路
进一步阐释。
[0024]如图1所示,本专利技术的方法包括以下具体步骤:
[0025]S1、预筛选交叉编译模型:筛选出符合自然语言所描述的相关性较强的前k1个数据库表和k2个数据库列,k1、k2是两个重要的超参数,需要人为设定,设置的太大可能会包含很多不必要的模式项,太小可能会排除掉一些重要的模式项。避免实际应用场景中大规模的数据库无法完全输入到模型中的问题,设计一个交叉编码器将自然语言查询和数据库模式信息作为序列输入。所述预筛选交叉编译模型包括:数据预处理模块、编码模块、列增强表嵌入模块、损失计算模块。
[0026]具体包含以下分步骤:
[0027]S11、数据预处理模块包括对自然语言和数据库模式进行预处理。用户输入的中文自然语言可能存在口语化和不规范化的表述,比如2022年可能被表示为“去年”、“22年”、

二零二二年”。金额100000可能被表述为“十万”,但自然语言对应的数值在数据库中表示为规范化的确切的值,因此需要对数值类型的数据如时间、货币、百分数进行统一的处理,表示为一个确切的值。所述对数据库模式进行预处理则是使用语义名称将数据库表和列进行统一处理,如airports数据库表中的id列表示机场的唯一标识符,但对于模型来说无法识别出其真实的含义以及是否是与自然语言查询相关联的列,因此数据库模式均使用语义名称(airport id)使其更接近真实的语义,便于进行后续的筛选的过程。
[0028]具体地、对数据库模式项采用语义名称进行替换,在筛选匹配时更能识别数据库项的真实含义,计算中文自然语言与语义表示的数据库项相似度,对模式项进行分类。具体做法是遍历数据库中的数据表以及表中具体的列名,对于数据表使用注释还原数据表的真实语义名称,对于数据列使用数据表的信息和列注释还原真实的语义名称。
[0029]S12、编码模块:将数据预处理后的自然语言查询和数据库模式项编码为向量,向量中包含中文的自然语言查询以及历史的查询和英文的数据库模式表示,使用XLM

R(Cross

lingual Language M本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,包括:S1、预筛选交叉编码器,根据输入的自然语言查询和相应的数据库模式项,计算出与自然语言查询最相关的模式项;S2、融入历史交互信息的SQL编码模块,根据预筛选交叉编码器输出的最优模式项和用户的历史交互信息,构建自然语言与历史查询的交互图,并对得到的交互图进行编码;S3、基于SQL结构预测模型对步骤S2的编码结果进行解码。2.根据权利要求1所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S1具体包括:S11、对输入的自然语言查询中的数值项进行规范化处理,对数据库模式项采用语义名称进行替换;S12、将经步骤S11处理后的自然语言查询和数据库模式项进行拼接后输入跨语言预训练模型,得到被分词的模式项的隐藏状态的编码表示;将被分词的模式项的隐藏状态的编码表示采用BiLSTM进行池化,将每个模式项表示为一个整体嵌入,池化处理后的结果输入一层非线性的全连接层,得到表嵌入,列嵌入;S13、通过堆叠多头缩放点积注意层将列嵌入信息注入到表嵌入中,并增加一个特征融合层得到列嵌入信息增强的表嵌入;S14、采用两个不同的多层感知机模块对列嵌入和增强的表嵌入分别进行分类任务,计算出自然语言对不同的列和表的相关概率;根据自然语言对不同的列和表的相关概率筛选概率最高的k1个表以及k2个概率最相关的列,得到最优的模式项。3.根据权利要求2所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S11所述对数据库模式项采用语义名称进行替换,具体为:遍历数据库中的数据表以及表中具体的列名,对于数据表使用注释还原数据表的真实语义名称,对于数据列使用数据表的信息和列注释还原真实的语义名称。4.根据权利要求3所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S2具体包括:S21、根据优模式项和历史查询得到自然语言和数据库模式项的初始编码向量;S22、将自然语言和数据库模式被处理为节点,自然语言查询和数据库模式项之间的链接或关系处理为边,构建的初步交互图;S23、通过拼接交互图中所有边的特征,设置键关系和值关系S24、将经步骤S23处理的异构图按照关系图注意力变换器进行编码,得到最终的关系编码X
encode
。5.根据权利要求4所述...

【专利技术属性】
技术研发人员:雷思情桑楠李贞昊唐思佳
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1