本发明专利技术涉及自然语言处理技术领域,具体涉及一种Text2Sql方法、系统、电子设备及存储介质,步骤如下:获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,编码内部为基于注意力机制的双向LSTM;基于问题编码的上下文向量,计算问题编码中所有列、运算符以及子查询的概率分布,基于预测结果对SQL草图语句内缺失信息进行补充;采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句。本方法在提高了数据查询准确性的同时,可在多种类型的数据库模式上运行,通用性和普适性更强;且通过子查询递归,可以进行嵌套查询的预测。
【技术实现步骤摘要】
本专利技术涉及自然语言处理,具体而言,涉及一种text2sql方法、系统、电子设备及存储介质。
技术介绍
1、在信息数字化时代的今天,大量信息存储在结构化和半结构化知识库中,如数据库。对这类数据的分析和获取需要通过sql等编程语言与数据库进行交互操作,sql的使用难度限制了非技术用户,给数据分析和使用带来了较高的门槛。人们迫切需要技术或工具完成自然语言与数据库的交互,因此诞生了text2sql技术。
2、text2sql是一种将用户的自然语句转换为可执行sql语句的技术,打破人与结构化数据之间的壁垒,其本质是将用户的自然语言描述语句转化为计算机可以理解并执行的规范语义表示(formal meaning representation),是自然语言处理-语义分析(semanticparsing)领域的一个子任务。
3、tex2sql技术的关键是构建一个将自然语言描述输入转为sql查询语言的模型。因为text2sql模型通常针对一个数据库进行训练,而不同的数据库模式(表名、列名和类型、主外键等)也不尽相同,所以典型的预测模型(如神经网络等)在第一个数据库中训练完成后,将无法在第二个数据库中正常工作,除非数据库模式完全相同。
技术实现思路
1、本专利技术的目的在于解决现有技术所提供的text2sql通用性和普适性较差的问题,提供一种text2sql方法、系统、电子设备及存储介质,本方法可在多种类型的数据库模式上运行,且通过子查询递归,可以进行嵌套查询的预测。
2、本专利技术的实施例通过以下技术方案实现:一种text2sql方法,包括以下步骤:
3、获取问题编码以及数据库模式编码,编码器内部各lstm分别执行对应子句类型的预测任务,获取sql草图语句,所述编码器内部为基于注意力机制的双向lstm;
4、基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,基于预测结果对sql草图语句内的缺失信息进行补充;
5、采用启发式规则生成from子句,以及基于子查询的预测结果生成内部查询的from子句,得到sql语句;
6、基于sql的语法关系对所述sql语句进行sql语句校验。
7、根据一种优选实施方式,所述数据库模式编码的获取方式如下:
8、采用基于lstm的数据库模式编码器分别对数据库中每一列的单词序列进行预测,得到每一列的单词序列预测结果,所述单词序列由数据库中各列内的表名和列名构成;
9、基于所述单词序列预测结果,按照如下计算过程获取数据库模式编码:
10、
11、
12、上式中,表示第列的lstm输出,表示的加权表示,表示可训练的权重矩阵,表示编码器内部lsmt数量,表示单词序列编码矩阵,表示倒置,表示列token个数,表示第列的单词序列编码;
13、获取每一列单词序列的加权表示作为数据库模式编码表示。
14、根据一种优选实施方式,所述sql草图语句的获取方式如下:
15、取问题编码作为各lstm的输入,表示问题的tokens向量表示,按照如下计算过程获取sql草图语句:
16、
17、
18、
19、上式中,表示的加权表示,表示可训练权重参数,表示序列表述,表示第一可训练参数,表示第二可训练参数,表示草图个数,表示中所有子句类型的概率分布;
20、基于各子预测模块的概率分布输出结果确定sql草图语句。
21、根据一种优选实施方式,所述列预测采用基于lstm的解码器,所述列预测的解码步骤如下:
22、
23、
24、
25、
26、上式中,表示解码器在第个解码步骤的加权总和,表示解码器在第个列预测解码步骤的隐藏状态,表示上下文向量,表示解码器在第个列预测解码步骤注意力的输出,、表示可训练权重参数,表示解码器在第个列预测解码步骤中列的概率分布,表示单词序列编码。
27、根据一种优选实施方式,所述运算符预测采用与列预测相同的解码架构,基于列预测得到的列名进行各列名中运算符的预测,所述运算符预测的解码步骤如下:
28、
29、
30、
31、上式中,表示解码器在第个运算符预测解码步骤的输入,表示解码器在第个列预测解码步骤的输入,表示解码器在第个运算符预测解码步骤注意力的输出,表示解码器在第个运算符预测解码步骤中运算符的概率分布,表示第一可训练参数,表示第二可训练参数,表示可能的操作符个数。
32、根据一种优选实施方式,子查询预测采用与运算符预测相同的解码架构,基于列预测得到的列名进行各列名中子查询的预测;
33、在子查询预测的解码步骤中,判断每一列是否与子查询进行比较,若否,则不存在子查询;
34、若是,则在sql输出的对应位置添加子查询标记,以供生成内部查询的from子句。
35、根据一种优选实施方式,所述sql语句校验的步骤如下:
36、分别对sql语句进行词法分析、语法分析和语义分析,其中在语法分析中,获取sql语句中所有单词,针对sql语句中的每一个单词,依次判断当前单词与下一单词之间是否满足sql的语法关系,若满足,则得到sql输出。
37、本专利技术还提供一种text2sql系统,包括:
38、sql草图预测模块,用于获取问题编码以及数据库模式编码,编码器内部各lstm分别执行对应子句类型的预测任务,获取sql草图语句,所述编码器内部为基于注意力机制的双向lstm;
39、子预测模块,用于基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,基于预测结果对内的缺失信息进行补充;
40、from子句预测模块,用于采用启发式规则生成from子句,以及基于子查询的预测结果生成内部查询的from子句,得到sql语句;
41、sql语句校验模块,用于基于sql的语法关系对所述sql语句进行sql语句校验。
42、本专利技术还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的text2sql方法。
43、本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述所述的text2sql方法。
44、本专利技术实施例一种text2sql方法、系统、电子设备及存储介质的技术方案至少具有如下优点和有益效果:本方法在提高了数据查询准确性的同时,可在多种类型的数据库模式上运行,通用性和普适性更强;且本文档来自技高网
...
【技术保护点】
1.一种Text2Sql方法,其特征在于,包括以下步骤:
2.如权利要求1所述的Text2Sql方法,其特征在于,所述数据库模式编码的获取方式如下:
3.如权利要求2所述的Text2Sql方法,其特征在于,所述SQL草图语句的获取方式如下:
4.如权利要求1所述的Text2Sql方法,其特征在于,列预测采用基于LSTM的解码器,所述列预测的解码步骤如下:
5.如权利要求1所述的Text2Sql方法,其特征在于,运算符预测采用与列预测相同的解码架构,基于列预测得到的列名进行各列名中运算符的预测,所述运算符预测的解码步骤如下:
6.如权利要求1所述的Text2Sql方法,其特征在于,子查询预测采用与运算符预测相同的解码架构,基于列预测得到的列名进行各列名中子查询的预测;
7.如权利要求1所述的Text2Sql方法,其特征在于,所述SQL语句校验的步骤如下:
8.一种Text2Sql系统,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的Text2Sql方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的Text2Sql方法。
...
【技术特征摘要】
1.一种text2sql方法,其特征在于,包括以下步骤:
2.如权利要求1所述的text2sql方法,其特征在于,所述数据库模式编码的获取方式如下:
3.如权利要求2所述的text2sql方法,其特征在于,所述sql草图语句的获取方式如下:
4.如权利要求1所述的text2sql方法,其特征在于,列预测采用基于lstm的解码器,所述列预测的解码步骤如下:
5.如权利要求1所述的text2sql方法,其特征在于,运算符预测采用与列预测相同的解码架构,基于列预测得到的列名进行各列名中运算符的预测,所述运算符预测的解码步骤如下:
6.如权利要求1所述的text2sql方法,其特征...
【专利技术属性】
技术研发人员:韩威宏,尹寿长,顾美营,胥果,王树超,蒋杰,张登辉,李青,
申请(专利权)人:成都四方伟业软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。