CN117609281B - 一种Text2Sql方法、系统、电子设备及存储介质 - Google Patents
一种Text2Sql方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117609281B CN117609281B CN202410070981.0A CN202410070981A CN117609281B CN 117609281 B CN117609281 B CN 117609281B CN 202410070981 A CN202410070981 A CN 202410070981A CN 117609281 B CN117609281 B CN 117609281B
- Authority
- CN
- China
- Prior art keywords
- column
- prediction
- sql
- representing
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000009826 distribution Methods 0.000 claims abstract description 21
- 239000013598 vector Substances 0.000 claims abstract description 20
- 230000007246 mechanism Effects 0.000 claims abstract description 13
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 6
- 230000001502 supplementing effect Effects 0.000 claims abstract description 3
- 238000004458 analytical method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000003058 natural language processing Methods 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000012549 training Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2438—Embedded query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24526—Internal representations for queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24566—Recursive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及自然语言处理技术领域,具体涉及一种Text2Sql方法、系统、电子设备及存储介质,步骤如下:获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,编码内部为基于注意力机制的双向LSTM;基于问题编码的上下文向量,计算问题编码中所有列、运算符以及子查询的概率分布,基于预测结果对SQL草图语句内缺失信息进行补充;采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句。本方法在提高了数据查询准确性的同时,可在多种类型的数据库模式上运行,通用性和普适性更强;且通过子查询递归,可以进行嵌套查询的预测。
Description
技术领域
本发明涉及自然语言处理技术领域,具体而言,涉及一种Text2Sql方法、系统、电子设备及存储介质。
背景技术
在信息数字化时代的今天,大量信息存储在结构化和半结构化知识库中,如数据库。对这类数据的分析和获取需要通过SQL等编程语言与数据库进行交互操作,SQL的使用难度限制了非技术用户,给数据分析和使用带来了较高的门槛。人们迫切需要技术或工具完成自然语言与数据库的交互,因此诞生了Text2SQL技术。
Text2SQL是一种将用户的自然语句转换为可执行SQL语句的技术,打破人与结构化数据之间的壁垒,其本质是将用户的自然语言描述语句转化为计算机可以理解并执行的规范语义表示(formal meaning representation),是自然语言处理-语义分析(semanticparsing)领域的一个子任务。
Tex2SQL技术的关键是构建一个将自然语言描述输入转为SQL查询语言的模型。因为Text2SQL模型通常针对一个数据库进行训练,而不同的数据库模式(表名、列名和类型、主外键等)也不尽相同,所以典型的预测模型(如神经网络等)在第一个数据库中训练完成后,将无法在第二个数据库中正常工作,除非数据库模式完全相同。
发明内容
本发明的目的在于解决现有技术所提供的Text2SQL通用性和普适性较差的问题,提供一种Text2Sql方法、系统、电子设备及存储介质,本方法可在多种类型的数据库模式上运行,且通过子查询递归,可以进行嵌套查询的预测。
本发明的实施例通过以下技术方案实现:一种Text2Sql方法,包括以下步骤:
获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,所述编码器内部为基于注意力机制的双向LSTM;
基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,基于预测结果对SQL草图语句内的缺失信息进行补充;
采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句;
基于SQL的语法关系对所述SQL语句进行SQL语句校验。
根据一种优选实施方式,所述数据库模式编码的获取方式如下:
采用基于LSTM的数据库模式编码器分别对数据库中每一列的单词序列进行预测,得到每一列的单词序列预测结果,所述单词序列由数据库中各列内的表名和列名构成;
基于所述单词序列预测结果,按照如下计算过程获取数据库模式编码:
上式中,表示第/>列的LSTM输出,/>表示/>的加权表示,/>表示可训练的权重矩阵,/>表示编码器内部LSMT数量,/>表示单词序列编码矩阵,/>表示倒置,表示列token个数,/>表示第/>列的单词序列编码;
获取每一列单词序列的加权表示作为数据库模式编码表示。
根据一种优选实施方式,所述SQL草图语句的获取方式如下:
取问题编码作为各LSTM的输入,/>表示问题的tokens向量表示,按照如下计算过程获取SQL草图语句/>:
上式中,表示/>的加权表示,/>表示可训练权重参数,/>表示序列表述,/>表示第一可训练参数,/>表示第二可训练参数,/>表示草图个数,/>表示/>中所有子句类型的概率分布;
基于各子预测模块的概率分布输出结果确定SQL草图语句。
根据一种优选实施方式,所述列预测采用基于LSTM的解码器,所述列预测的解码步骤如下:
上式中,表示解码器在第/>个解码步骤的加权总和,/>表示解码器在第/>个列预测解码步骤的隐藏状态,/>表示上下文向量,/>表示解码器在第/>个列预测解码步骤注意力的输出,/>、/>表示可训练权重参数,/>表示解码器在第/>个列预测解码步骤中列的概率分布,/>表示单词序列编码。
根据一种优选实施方式,所述运算符预测采用与列预测相同的解码架构,基于列预测得到的列名进行各列名中运算符的预测,所述运算符预测的解码步骤如下:
上式中,表示解码器在第/>个运算符预测解码步骤的输入,/>表示解码器在第/>个列预测解码步骤的输入,/>表示解码器在第/>个运算符预测解码步骤注意力的输出,/>表示解码器在第/>个运算符预测解码步骤中运算符的概率分布,/>表示第一可训练参数,/>表示第二可训练参数,/>表示可能的操作符个数。
根据一种优选实施方式,子查询预测采用与运算符预测相同的解码架构,基于列预测得到的列名进行各列名中子查询的预测;
在子查询预测的解码步骤中,判断每一列是否与子查询进行比较,若否,则不存在子查询;
若是,则在SQL输出的对应位置添加子查询标记,以供生成内部查询的FROM子句。
根据一种优选实施方式,所述SQL语句校验的步骤如下:
分别对SQL语句进行词法分析、语法分析和语义分析,其中在语法分析中,获取SQL语句中所有单词,针对SQL语句中的每一个单词,依次判断当前单词与下一单词之间是否满足SQL的语法关系,若满足,则得到SQL输出。
本发明还提供一种Text2Sql系统,包括:
SQL草图预测模块,用于获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,所述编码器内部为基于注意力机制的双向LSTM;
子预测模块,用于基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,基于预测结果对内的缺失信息进行补充;
FROM子句预测模块,用于采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句;
SQL语句校验模块,用于基于SQL的语法关系对所述SQL语句进行SQL语句校验。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的Text2Sql方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述所述的Text2Sql方法。
本发明实施例一种Text2Sql方法、系统、电子设备及存储介质的技术方案至少具有如下优点和有益效果:本方法在提高了数据查询准确性的同时,可在多种类型的数据库模式上运行,通用性和普适性更强;且通过子查询递归,可以进行嵌套查询的预测。
附图说明
图1为本发明实施例1提供的一种Text2Sql方法的流程示意图;
图2为本发明实施例1提供的SQL数据结构示意图;
图3为本发明实施例1提供的SQL草图语句预测示意图;
图4为本发明实施例2提供的一种Text2Sql系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
需要对本发明的可能涉及的关键术语进行进一步的解释:
自然语言(NL):即Natural Language,是人类日常交流和表达思想的语言形式,包括口头语言和书面语言;它是人类用来沟通、传递信息和表达意义的工具,具有词汇、语法和语义等方面的特点。
自然语言处理(NLP):即Natural Language Processing,研究人与计算机交互的语言问题的一门学科,属于人工智能的一个子领域,其目的是让计算机能够理解、处理和生成自然语言的技术;它涉及使用计算机和人工智能技术来分析、理解和处理人类语言的自动处理和理解,使计算机能够像人类一样理解和处理语言信息。
语义标注:是对文本、视频、图像等数据进行标注的过程,标记好的数据被用于训练机器学习的模型;常见的数据标注类型有文本标注、语义分割额图像视频标注;这些经标注的训练数据集可以用于训练自动驾驶、聊天机器人、翻译系统、智能客服和搜索引擎等人工智能应用场景。
结构化查询语言(SQL):即Structured Query Language,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
数据库(database,DB):即存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加,修改,删除,查询等操作。
数据库模式:即database schema,是一组相互关联的数据库对象,例如表、列、列的数据类型、索引、外键、主键、唯一键等,表示数据库中表之间的结构。
LSTM网络:即Long Short Term Memory netoworks,一种特殊的递归神经网络(RNN),该网络用于解决长依赖问题;相比于RNN原始的隐层(hidden state),LSTM增加了细胞状态(Cell State),并通过三个门(即遗忘门、输入门、输出门)控制单元状态;LSTM广泛应用于自然语言处理、语音识别、图像处理等领域。
Attention机制:是Encoder-Decoder模型中一个重要的技术,用于解决编码器输出过长或含义复杂的问题;采用注意力机制后,解码器每个时刻都可以选择性地关注编码器输出的不同部分,从而更加准确地生成目标序列;如自注意力机制(self-Attention)不是输入语句和输出语句之间的Attention机制,而是输入语句内部元素之间或者输出元素语句内部元素之间发生的Attention机制,让模型注意到整个输入中不同部分之间的相关性;多头注意力机制(Multi-Head Attention)将模型分为多个头,形成多个子空间,可以让模型去关注不同方向的信息。
Text2SQL:即Text-to-SQL,即把文本转化为SQL语言,把数据库领域下的自然语言(NL)问题,转化为在关系数据库中可以执行的结构化查询语言(SQL)。
实施例1
请参照图1,本发明提供的一种Text2Sql方法,包括以下步骤:
S101、接收用户问题的自然语言描述,其格式可以是文本输入或语音输入;如果是语音输入,则通过语音识别技术转换成文本;
采用LSTM网络对问题输入进行编码,得到,其中/>表示编码器内部LSMT数量,/>表示问题的tokens向量表示;
S102、对数据库模式进行编码;
S103、获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,具体参见图3所示,所述编码器内部为基于注意力机制的双向LSTM;
S104、基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,具体参见图2所示;
基于预测结果对内的缺失信息进行补充;
S105、采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句;
S106、基于SQL的语法关系对所述SQL语句进行SQL语句校验。
在本实施中,采用基于LSTM的数据库模式编码器分别对数据库中每一列的单词序列进行预测,得到每一列的单词序列预测结果,所述单词序列由数据库中各列内的表名和列名构成,例如[student,[SEP], name, age,class]。
进一步地,基于所述单词序列预测结果,按照本实施例提供的如下计算过程获取数据库模式编码:
上式中,表示第/>列的LSTM输出,/>表示/>的加权表示,/>表示可训练的权重矩阵,/>表示编码器内部LSMT数量,/>表示单词序列编码矩阵,/>表示倒置,表示列token个数,/>表示第/>列的单词序列编码;
获取每一列单词序列的加权表示作为数据库模式编码表示。
在本实施例中,SQL草图语句预测步骤取问题编码作为各LSTM的输入,进行各SQL子句的列/表达式数量的预测;所述各LSTM的构成例如:5个子句(SELECT、WHERE、GROUP BY、ORDER BY、HAVING),ORDER BY子句是升序还是降序,是否包含限制变量(LIMIT),和是否包含INTERSECT、UNION和EXCEPT运算符中的一个或多个共计8个LSTM构成。
进一步地,按照本实施例提供的如下计算过程获取SQL草图语句:
上式中,表示/>的加权表示,/>表示可训练权重参数,/>表示序列表述,/>表示第一可训练参数,/>表示第二可训练参数,/>表示草图个数,/>表示/>中所有子句类型的概率分布;
进一步地,基于各子预测模块的概率分布输出结果确定SQL草图语句。
在本实施例所提供的列预测的解码步骤中,所述列预测采用基于LSTM的解码器,根据数据库的列名和,确定SQL草图语句/>中SQL表达式对应的列名,基于列预测结果对/>内的缺失的列属性进行补充,并生成/>;
具体地,在本实施例的一种实施方式中,所述列预测的解码步骤如下:
上式中,表示解码器在第/>个解码步骤的加权总和,/>表示解码器在第/>个列预测解码步骤的隐藏状态,/>表示上下文向量,/>表示解码器在第/>个列预测解码步骤注意力的输出,/>、/>表示可训练权重参数;
解码器在第个解码步骤中每列的概率计算为/>和/>中每列编码之间的点积,表达式如下:
上式中,表示解码器在第/>个列预测解码步骤中列的概率分布,/>表示单词序列编码。
关于运算符预测,需要说明的是,运算符给出了列的组合方式,运算符主要包括聚合运算符、比较运算符、逻辑运算符等;其中,聚合运算符,如SUM、MIN、AVG、COUNT等;比较运算符,如大于(>)、等于(=)、小于(<)、IN、BETWEEN等;逻辑运算符,如AND、OR、NOT等。
在本实施例中,为了预测每个预测列的运算符,所述运算符预测采用与列预测相同的解码架构,基于列预测得到的列名进行各列名中运算符的预测。需要说明的是,区别于列预测,在本实施例中,运算符预测的解码器输入是解码器列预测步骤中对应时间步得到的编码;具体地,所述运算符预测的解码步骤如下:
上式中,表示解码器在第/>个运算符预测解码步骤的输入,/>表示解码器在第/>个列预测解码步骤的输入,/>表示解码器在第/>个运算符预测解码步骤注意力的输出,/>表示解码器在第/>个运算符预测解码步骤中运算符的概率分布,/>表示第一可训练参数,/>表示第二可训练参数,/>表示可能的操作符个数。
在本实施例的一种实施方式中,在预测完所有其他子句后,收集预测SQL中出现的所有列,然后JOIN这些预测列中的表,采用启发式规则生成FROM子句。
此外,为了实现嵌套查询,即子查询的预测,在本实施例中,所述子查询预测采用与运算符预测相同的解码架构,基于列预测得到的列名进行各列名中子查询的预测;
在所述子查询预测的训练步骤中,除了将带有单独标记[SEP]的自然语言输入(What is … [SEP]SELECT … INTERSECT [SUB_QUERY])作为输入外,还可以将带有子查询标记[SUB_QUERY]的临时生成的SQL作为输入。
进一步地,在子查询预测的解码步骤中,判断每一列是否与子查询进行比较(例如,WHEREage>(SELECTavg(age))),若否,则不存在子查询;若是,则在SQL输出的对应位置添加子查询标记[SUB_QUERY],以供生成内部查询的FROM子句。
在预测出子查询后,带有子查询标记[SUB_QUERY]的临时生成的SQL会取代之前生成的SQL中的子查询标记,形成最终查询。
此外,如果草图预测到INTERSECT、UNION或EXCEPT操作符之一,子查询预测也可在操作符之后添加子查询标记[SUB_QUERY]。
进一步地,关于所述SQL语句校验,在本实施例的一种实施方式中,所述SQL语句校验的步骤如下:
分别对取得的SQL语句进行词法分析语法分析和语义分析,其中在词法分析中,将SQL语句进行拆分,并去除空格、注释等无关字符;在语法分析中,获取SQL语句中所有单词,针对SQL语句中的每一个单词,依次判断当前单词与下一单词之间是否满足SQL的语法规则,若满足,则得到SQL输出;在语义分析中,会检查SQL语句中的表名、列名、数据类型等是否正确,以及是否存在重复的列名、表名等问题。
综上所述,本发明实施例一种Text2Sql方法至少具有如下优点和有益效果:本方法在提高了数据查询准确性的同时,可在多种类型的数据库模式上运行,通用性和普适性更强;且通过子查询递归,可以进行嵌套查询的预测。
实施例2
本实施例提供一种Text2Sql系统,包括:
SQL草图预测模块,用于获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,所述编码器内部为基于注意力机制的双向LSTM;
子预测模块,用于基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,基于预测结果对内的缺失信息进行补充;
FROM子句预测模块,用于采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句;
SQL语句校验模块,用于基于SQL的语法关系对所述SQL语句进行SQL语句校验。
此外,参见图4所示,本实施例还包括服务端、客户端、数据库管理系统、数据存储等,构成一个服务系统。
服务端包括相关服务如查询、数据分析、模型训练、Text2SQL等,这些服务部署在服务器中,用于接收客户端上执行的应用程序的请求,并根据数据存储区的数据向应用程序提供结果,并将请求结果显示反馈到用户界面上。服务端的服务可以是数据分析、智能问答、智能搜索、智能客服等服务。
客户端通过执行应用程序在用户界面执行问题查询、结果展示。查看基于存储在数据存储中的基础数据的分析信息。应用程序可根据通过客户端接收到的输入(文本输入、语音输入),将分析信息请求传递给服务端。服务端通过Text2SQL服务可根据请求生成结构化查询语言(SQL),并将其转发给数据库管理系统,以执行SQL查询,根据数据存储的数据返回结果集,应用程序则根据将查询结果反馈到用户界面。应用程序和/或服务也用于识别和组合用于训练机器学习模型的特征、Text2SQL服务中各预测模型的构建(如草图预测模型、列预测模型、运算符预测模型等)。
来自不同来源的原始数据可以存储在数据存储模块。在本示例中,应用程序和/或服务可以从原始数据中获得数据库信息、SQL语法信息、预测模型、训练样本数据等。这些特征可以作为数据库表存储在数据存储区。服务端执行的服务可使用数据库管理接口(如但不限于开放数据库连接(ODBC)和Java数据库连接(JDBC)接口)与数据库管理系统通信。这些类型的服务可以使用SQL和SQL脚本来管理和查询存储在数据存储区中的数据。数据库管理系统可处理查询、检索、创建、修改(更新)和/或删除数据存储区中存储的数据库文件中的数据的请求。
数据存储可以是任何已知或已知的查询响应数据源,包括但不限于SQL关系数据库管理系统。数据存储可以包括关系数据库、多维数据库、可扩展标记语言(XML)文档或存储结构化和/或非结构化数据的任何其他数据存储系统,或与之相关联。
数据存储包括定义对象的元数据,这些对象被映射到数据存储的逻辑实体上。元数据可存储在数据存储中。元数据可包括有关维度名称(如国家、年份、产品等)、维度层次(如国家、州、城市等)、度量名称(如利润、单位、销售额等)和任何其他合适元数据的信息。元数据也包括与用户、查询、查询模式和历史问题的信息。这些信息可在系统运行期间收集,并可用于根据查询和接收查询的用户确定响应接收到的查询。
实施例3
本实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例1所述的Text2Sql方法。
实施例4
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如实施例1所述的Text2Sql方法。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种Text2Sql方法,其特征在于,包括以下步骤:
获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,所述编码器内部为基于注意力机制的双向LSTM;
基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,基于预测结果对SQL草图语句内的缺失信息进行补充;
采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句;
基于SQL的语法关系对所述SQL语句进行SQL语句校验;
所述数据库模式编码的获取方式如下:
采用基于LSTM的数据库模式编码器分别对数据库中每一列的单词序列进行预测,得到每一列的单词序列预测结果,所述单词序列由数据库中各列内的表名和列名构成;
基于所述单词序列预测结果,按照如下计算过程获取数据库模式编码:
上式中,表示第/>列的LSTM输出,/>表示/>的加权表示,/>表示可训练的权重矩阵,/>表示编码器内部LSMT数量,/>表示单词序列编码矩阵,/>表示倒置,/>表示列token个数,/>表示第/>列的单词序列编码;
获取每一列单词序列的加权表示作为数据库模式编码表示;
所述SQL草图语句的获取方式如下:
取问题编码作为各LSTM的输入,/>表示问题的tokens向量表示,按照如下计算过程获取SQL草图语句/>:
上式中,表示/>的加权表示,/>表示可训练权重参数,/>表示序列表述,/>表示第一可训练参数,/>表示第二可训练参数,/>表示草图个数,/>表示/>中所有子句类型的概率分布;
基于各子预测模块的概率分布输出结果确定SQL草图语句。
2.如权利要求1所述的Text2Sql方法,其特征在于,列预测采用基于LSTM的解码器,所述列预测的解码步骤如下:
上式中,表示解码器在第/>个解码步骤的加权总和,/>表示解码器在第/>个列预测解码步骤的隐藏状态,/>表示上下文向量,/>表示解码器在第/>个列预测解码步骤注意力的输出,/>、/>表示可训练权重参数,/>表示解码器在第/>个列预测解码步骤中列的概率分布,/>表示单词序列编码。
3.如权利要求1所述的Text2Sql方法,其特征在于,运算符预测采用与列预测相同的解码架构,基于列预测得到的列名进行各列名中运算符的预测,所述运算符预测的解码步骤如下:
上式中,表示解码器在第/>个运算符预测解码步骤的输入,/>表示解码器在第/>个列预测解码步骤的输入,/>表示解码器在第/>个运算符预测解码步骤注意力的输出,表示解码器在第/>个运算符预测解码步骤中运算符的概率分布,/>表示第一可训练参数,/>表示第二可训练参数,/>表示可能的操作符个数。
4.如权利要求1所述的Text2Sql方法,其特征在于,子查询预测采用与运算符预测相同的解码架构,基于列预测得到的列名进行各列名中子查询的预测;
在子查询预测的解码步骤中,判断每一列是否与子查询进行比较,若否,则不存在子查询;
若是,则在SQL输出的对应位置添加子查询标记,以供生成内部查询的FROM子句。
5.如权利要求1所述的Text2Sql方法,其特征在于,所述SQL语句校验的步骤如下:
分别对SQL语句进行词法分析、语法分析和语义分析,其中在语法分析中,获取SQL语句中所有单词,针对SQL语句中的每一个单词,依次判断当前单词与下一单词之间是否满足SQL的语法关系,若满足,则得到SQL输出。
6.一种Text2Sql系统,其特征在于,包括:
SQL草图预测模块,用于获取问题编码以及数据库模式编码,编码器内部各LSTM分别执行对应子句类型的预测任务,获取SQL草图语句,所述编码器内部为基于注意力机制的双向LSTM;
子预测模块,用于基于问题编码的上下文向量,通过将向量分别与数据库模式编码中各列内的表名和列名进行比较,计算问题编码中所有列、运算符以及子查询的概率分布,进行意图预测,基于预测结果对内的缺失信息进行补充;
FROM子句预测模块,用于采用启发式规则生成FROM子句,以及基于子查询的预测结果生成内部查询的FROM子句,得到SQL语句;
SQL语句校验模块,用于基于SQL的语法关系对所述SQL语句进行SQL语句校验;
所述数据库模式编码的获取方式如下:
采用基于LSTM的数据库模式编码器分别对数据库中每一列的单词序列进行预测,得到每一列的单词序列预测结果,所述单词序列由数据库中各列内的表名和列名构成;
基于所述单词序列预测结果,按照如下计算过程获取数据库模式编码:
上式中,表示第/>列的LSTM输出,/>表示/>的加权表示,/>表示可训练的权重矩阵,/>表示编码器内部LSMT数量,/>表示单词序列编码矩阵,/>表示倒置,/>表示列token个数,/>表示第/>列的单词序列编码;
获取每一列单词序列的加权表示作为数据库模式编码表示;
所述SQL草图语句的获取方式如下:
取问题编码作为各LSTM的输入,/>表示问题的tokens向量表示,按照如下计算过程获取SQL草图语句/>:
上式中,表示/>的加权表示,/>表示可训练权重参数,/>表示序列表述,/>表示第一可训练参数,/>表示第二可训练参数,/>表示草图个数,/>表示/>中所有子句类型的概率分布;
基于各子预测模块的概率分布输出结果确定SQL草图语句。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的Text2Sql方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的Text2Sql方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410070981.0A CN117609281B (zh) | 2024-01-18 | 2024-01-18 | 一种Text2Sql方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410070981.0A CN117609281B (zh) | 2024-01-18 | 2024-01-18 | 一种Text2Sql方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117609281A CN117609281A (zh) | 2024-02-27 |
CN117609281B true CN117609281B (zh) | 2024-04-05 |
Family
ID=89958170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410070981.0A Active CN117609281B (zh) | 2024-01-18 | 2024-01-18 | 一种Text2Sql方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609281B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265858A (zh) * | 2021-12-09 | 2022-04-01 | 阿里巴巴(中国)有限公司 | 一种自然语言到sql的转义方法、设备及存储介质 |
CA3135717A1 (en) * | 2020-10-23 | 2022-04-23 | Royal Bank Of Canada | System and method for transferable natural language interface |
CN114817295A (zh) * | 2022-04-20 | 2022-07-29 | 平安科技(深圳)有限公司 | 多表Text2sql模型训练方法、系统、装置和介质 |
CN115576983A (zh) * | 2022-11-01 | 2023-01-06 | 国家电网有限公司大数据中心 | 一种语句生成方法、装置、电子设备及介质 |
CN115658729A (zh) * | 2022-11-02 | 2023-01-31 | 广东工业大学 | 一种基于预训练模型的自然语言转sql语句的方法 |
CN116028527A (zh) * | 2023-01-30 | 2023-04-28 | 中国联合网络通信集团有限公司 | 语言转换模型的训练方法、转换方法、装置、设备和介质 |
CN116737759A (zh) * | 2023-08-14 | 2023-09-12 | 北京理工大学 | 一种基于关系感知注意力的中文查询生成sql语句方法 |
CN117290376A (zh) * | 2023-09-28 | 2023-12-26 | 数据空间研究院 | 基于大语言模型的两阶段Text2SQL模型、方法与系统 |
CN117349311A (zh) * | 2023-10-16 | 2024-01-05 | 北京理工大学 | 一种基于改进RetNet的数据库自然语言查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580100B2 (en) * | 2021-03-05 | 2023-02-14 | Comcast Cable Communications, Llc | Systems and methods for advanced query generation |
-
2024
- 2024-01-18 CN CN202410070981.0A patent/CN117609281B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3135717A1 (en) * | 2020-10-23 | 2022-04-23 | Royal Bank Of Canada | System and method for transferable natural language interface |
CN114265858A (zh) * | 2021-12-09 | 2022-04-01 | 阿里巴巴(中国)有限公司 | 一种自然语言到sql的转义方法、设备及存储介质 |
CN114817295A (zh) * | 2022-04-20 | 2022-07-29 | 平安科技(深圳)有限公司 | 多表Text2sql模型训练方法、系统、装置和介质 |
CN115576983A (zh) * | 2022-11-01 | 2023-01-06 | 国家电网有限公司大数据中心 | 一种语句生成方法、装置、电子设备及介质 |
CN115658729A (zh) * | 2022-11-02 | 2023-01-31 | 广东工业大学 | 一种基于预训练模型的自然语言转sql语句的方法 |
CN116028527A (zh) * | 2023-01-30 | 2023-04-28 | 中国联合网络通信集团有限公司 | 语言转换模型的训练方法、转换方法、装置、设备和介质 |
CN116737759A (zh) * | 2023-08-14 | 2023-09-12 | 北京理工大学 | 一种基于关系感知注意力的中文查询生成sql语句方法 |
CN117290376A (zh) * | 2023-09-28 | 2023-12-26 | 数据空间研究院 | 基于大语言模型的两阶段Text2SQL模型、方法与系统 |
CN117349311A (zh) * | 2023-10-16 | 2024-01-05 | 北京理工大学 | 一种基于改进RetNet的数据库自然语言查询方法 |
Non-Patent Citations (1)
Title |
---|
"面向复杂查询请求的SQL自动生成模型";余波 等;《小型微型计算机系统》;20211130;第42卷(第11期);第2446-2451页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117609281A (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | Natural language to SQL: Where are we today? | |
Cai et al. | An encoder-decoder framework translating natural language to database queries | |
Johnson | A data management strategy for transportable natural language interfaces | |
US20240012810A1 (en) | Clause-wise text-to-sql generation | |
Sun et al. | Tableqa: a large-scale chinese text-to-sql dataset for table-aware sql generation | |
CN110287482B (zh) | 半自动化分词语料标注训练装置 | |
CN110765277B (zh) | 一种基于知识图谱的移动端的在线设备故障诊断方法 | |
CN113535917A (zh) | 基于旅游知识图谱的智能问答方法及系统 | |
CN113806563A (zh) | 面向多源异构建筑人文史料的建筑师知识图谱构建方法 | |
CN115576984A (zh) | 中文自然语言生成sql语句及跨数据库查询方法 | |
CN115827819A (zh) | 一种智能问答处理方法、装置、电子设备及存储介质 | |
CN117493379A (zh) | 一种基于大语言模型的自然语言到sql交互式生成方法 | |
Li et al. | Neural factoid geospatial question answering | |
CN111666374A (zh) | 一种在深度语言模型中融入额外知识信息的方法 | |
Sun | A natural language interface for querying graph databases | |
CN113377844A (zh) | 面向大型关系型数据库的对话式数据模糊检索方法及装置 | |
WO2023155914A1 (zh) | 一种用于人工智能的概念网络及其自然语言理解与生成方法 | |
CN115408506B (zh) | 联合语义解析和语义成分匹配的nl2sql的方法 | |
CN117609281B (zh) | 一种Text2Sql方法、系统、电子设备及存储介质 | |
Swamidorai et al. | Translating natural language questions to SQL queries (nested queries) | |
Anisha et al. | Text to sql query conversion using deep learning: A comparative analysis | |
Wang et al. | NALMO: Transforming queries in natural language for moving objects databases | |
Kilias et al. | IDEL: In-database neural entity linking | |
Tang et al. | Ontology-based semantic retrieval for education management systems | |
Wang et al. | Answering complex questions on knowledge graphs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |