[发明专利]一种基于树状模型的复杂自然语言查询转SQL方法有效
申请号: | 202110183393.4 | 申请日: | 2021-02-08 |
公开(公告)号: | CN113032418B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 陈珂;陈刚;赵猛;寿黎但;胡天磊 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/245 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 树状 模型 复杂 自然语言 查询 sql 方法 | ||
1.一种基于树状模型的复杂自然语言查询转SQL方法,其特征在于,包括以下步骤:
(1)对于输入的自然语言口语查询进行预处理,所述预处理具体为对输入的自然语言口语查询按数据库存储的记录格式进行时间、日期、数值描述;
(2)对于输入的数据库中的所有表格通过筛选模型进行预筛选,得到与口语查询相关度最高的K个表格;
(3)对于输入的自然语言查询以及筛选后的表格,通过树状模型去预测复杂SQL语句各组成模块的结果;包括以下子步骤:
(3.1)对于复杂SQL语句核心的嵌套SQL问题进行划分,将嵌套SQL分为主SQL和副SQL部分,每个SQL层次再分解Select,Where子句层次,对于每个子句层次进行归纳划分,得到列名,操作符目标层次,至此形成多叉树并搭建树状模型;
(3.2)输入部分为自然语言查询Q和TOP K个数据表格,将各表格进行合并,每个表格中的列名信息c以“表名_列名”的形式来表示,拼接一起输入到树状模型中;
(3.3)经过预训练语言模型编码器获取(3.2)中自然语言q以及每个列名c的编码特征,对每个c进行降维处理,再拼接得到整个列名序列的编码C,降维形式为:
RfAttentionPooling(q,c)=scoreT·c
式中,D表示编码特征的维度,W1,表示训练的权重参数;
(3.4)对进入副SQL模块的问题查询编码q通过Transformer编码层进行再编码得到q’;
(3.5)将步骤(3.3)和(3.4)得到的各编码送入树状模型,以深度优先搜索(DFS)的形式获取SQL语句各组成部分的结果;
(4)对于树状模型预测出的SQL结果进行补全,首先识别需要补全条件值的条件列,接着通过值抽取模型分别获取每个条件列对应的条件值;
(5)构造出json形式的预测结果,通过SQL解析后得到SQL语句的表达形式。
2.如权利要求1所述复杂自然语言查询转SQL方法,其特征在于:所述步骤(2)包括以下子步骤:
(2.1)输入部分为自然语言查询Q和数据库模式,其中只关注数据库模式中的各数据表格的表名和字段信息,并定义各表格信息T的表示形式为“表名__列名1_列名2…”;
(2.2)将步骤(2.1)中的Q以及所有的T输入到筛选模型中,得到每个表格T与自然语言Q的相关度分数,并且保存相关度最高的K个表格。
3.如权利要求1所述复杂自然语言查询转SQL方法,其特征在于:所述步骤(4)包括以下子步骤:
(4.1)将步骤(3)获取到的SQL各模块预测结果进行处理,获取需要抽取值的各条件列信息,形式为“表名__列名”,和自然语言查询拼接作为抽取模型的输入;
(4.2)抽取模型能够同时预测出输入列名在不同SQL子句下的结果,并且共享权重,最终对各条件列补充完条件值信息;至此,已经得到目标SQL语句的各个组成部分预测结果。
4.如权利要求1所述复杂自然语言查询转SQL方法,所述步骤(5)包括以下子步骤:
(5.1)针对每个SQL层次下每个子句层次的预测结果,按标注格式转化为字符串形式,接着按照子句类型添加Select关键字;
(5.2)针对每个SQL层次下各子句的解析字符串(5.1),按照SQL语句各关键字顺序进行拼接得到简单SQL语句;
(5.3)针对嵌套形式的预测结果,将不同SQL层次解析后的简单SQL语句(5.2)进行组合,最终得到结果SQL语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110183393.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种三元吡啶配体及其制备方法
- 下一篇:一种工业炉渣综合利用的水泥制成工艺