计算机系统应用  2023, Vol. 32 Issue (12): 32-42   PDF    
基于中文自然语言的SQL生成综述
郑耀东, 李旭峰, 陈和平, 贺桂娇     
广州软件学院 计算机系, 广州 510990
摘要:自然语言转为SQL (NL2SQL)的研究有较高的应用价值, 随着深度学习技术的成熟, 越来越多的研究者开始将深度学习技术应用于NL2SQL任务中. 本文梳理了英文和中文领域NL2SQL的研究现状, 总结按年份发布的数据集和模型, 对比当前4大中文NL2SQL数据集的特点, 阐述了当前基于深度学习的NL2SQL任务的基本框架以及针对中文领域的单表简单问题和跨表复杂问题所适用的典型模型, 介绍了一般常用的模型评测方法, 并提出未来研究方向的展望.
关键词: NL2SQL    深度学习    中文数据集    自然语言处理    
Survey on SQL Generation Based on Chinese Natural Language
ZHENG Yao-Dong, LI Xu-Feng, CHEN He-Ping, HE Gui-Jiao     
Department of Computer Science, Software Engineering Institute of Guangzhou, Guangzhou 510990, China
Abstract: The research on natural language to SQL (NL2SQL) has high application value. With the maturity of deep learning technology, increasingly more researchers have begun to apply deep learning technology to NL2SQL tasks. This study reviews the research status of NL2SQL in English and Chinese fields and summarizes the datasets and models published by year. Additionally, it compares the characteristics of the four major Chinese NL2SQL datasets and expounds on the basic framework of NL2SQL tasks based on deep learning and typical models for simple single-table problems and complex cross-table problems in Chinese NL2SQL fields. Finally, the commonly adopted model evaluation methods are introduced, and future research directions are put forward.
Key words: natural language to SQL (NL2SQL)     deep leaning     Chinese dataset     natural language processing (NLP)    

1 引言

随着现代信息技术的发展以及数据的海量式增长, 人们希望以更自然、便捷的方式从数据库中获取信息, NL2SQL (natural language to SQL)也称为Text2SQL(text to SQL)应运而生, 旨在将用户熟悉的自然语言转换为SQL序列, 继而完成数据库查询工作, 从而打破人与结构化数据库之间的壁垒.

NL2SQL问题可表示为: 给定自然语言查询问句Q以及相应的数据库表T, 由NL2SQL模型生成SQL语句, 其公式如式(1)所示:

$ {{f}}(Q, T) \to {\rm{SQL}} $ (1)

早期的NL2SQL任务大多基于规则和流水线, 所采用的数据集也是某个领域的简单数据集, 研究方法难以复制. 近几年, 随着WikiSQL和Spider等大规模人工标注数据集的发布, 以及深度学习和自然语言处理技术的快速发展, NL2SQL领域的研究受到广泛关注. 研究者提出了一系列的新方法, 不断地推进着这一领域的研究进展. 本文对NL2SQL研究工作进行综述, 并重点侧重于中文领域的研究. 首先梳理了英文和中文领域NL2SQL的研究现状, 总结了主要的方法和典型模型. 接着总结按年份发布的数据集和模型, 对比当前4大中文NL2SQL数据集的特点. 然后本文阐述了当前基于深度学习的NL2SQL任务的基本框架以及针对中文领域的单表简单问题和跨表复杂问题所适用的典型模型, 并介绍了一般常用的模型评测方法. 最后本文提出未来研究方向的展望.

2 NL2SQL研究现状 2.1 英文领域现状

国外开展NL2SQL较早, 早期传统的研究大多通过对特定数据库人工制定匹配规则的方式来完成. 如LUNAR[1]、LADDER[2]、Chat-80[3]、PRECISE[4]等. 接着出现了针对数据集的研究, 例如ATIS[5]、GeoQuery[6]、JOBS[6]、Scholar[7]、Academic[8]等. 但针对这些数据集的研究并没有后来的WikiSQL或Spider那样得到广泛的应用. 由于这些数据集仅关注单一领域, 而且样本数太少, 所提出的研究方法即使在特定领域表现良好, 但通常不具备泛化能力和通用性. 2017年Zhong等人提出了第1个大规模人工标注的NL2SQL数据集WikiSQL[9], 研究者们开始基于WikiSQL数据集使用深度学习方法来解决NL2SQL方面的问题. 对于WikSQL的单表查询任务, 基于草图和槽位填充的方法比较有效, 典型的模型包括SQLNet[10]、TypeSQL[11]、STAMP[12]、Coarse2Fine[13]、IncSQL[14]等.

随着深度学习的发展, Transformer和BERT模型相继被提出并在自然语言处理任务上取得优异的成绩. Hwang等人于2019年提出SQLova模型[15], 第1次把大规模预训练模型应用于NL2SQL任务. SQLova使用BERT作为模型的输入表示层, 以此取代SQLNet中的词向量表示. SQLova将预测SQL语句任务划分为6个子任务, 并将自然语言问句和数据库表的列名均作为网络的输入进行编码. 大规模预训练模型BERT的引入, 大幅提升了模型的语义分析能力, 模型取得惊人的效果. He等人提出X-SQL模型[16], 在预训练模型的选择上, 采用了MT-DNN来代替BERT, 并在对列名编码时添加了上下文注意力机制, 取得更好的效果. 2020年, Lyu等人提出HydraNet模型[17], 没有将所有列名和问句连接在一起做BERT编码, 而是将每个列名分别与问句做编码, 再通过规则按列输出组装成 SQL查询, 取得更好的效果. 2021年, Xu等人提出SeaD模型[18], 没有采用基于草图和槽填充的方法, 而是直接训练序列到序列(Seq2Seq)的模型, 使用Transformer作为基础架构, 采用修改和删除列名以及打乱实体顺序的方式做数据增强, 并使用一种条件敏感的执行指导策略来进行解码, 从而最大化序列生成方法的潜能, 在Wiki-SQL数据集上取得了最好成绩. 总结WikiSQL数据集主要模型的贡献和效果如表1所示.

表 1 WikiSQl数据集主要模型的贡献和执行准确率

以上从2017年开展的基于深度学习的研究都是针对WikiSQL数据集, 该数据集仅针对某个领域单个表做简单查询. Yu等人于2018年提出更加复杂的Spider数据集[19], 包含oder by、group by、join以及嵌套查询. 由于SQL更加复杂, 以往针对WikiSQL数据集的模型不再适用. 研究者们先后提出了SyntaxSQLNet[20]、RCSQL[21]、IRNet[22]、RYANSQL[23]、SmBoP[24]、BRIDGE[25]、DT-Fixup[26]等模型, 采用语法树、schema linking等技术提升模型效果.

随着图神经网络(graph neural network, GNN)在深度学习领域表现出优异的性能, 越来越多的研究者开始在NL2SQL任务中利用图神经网络来表示关系型数据库的数据结构, 以提升数据库信息的利用效率. GNN[27]、Global-GNN[27]、RAT-SQL[28]、ShadowGNN[29]、LGESQL[30]、S2SQL[31] 、INSL[32]等模型相继被提出, 在Spider数据集上表现优异.

SParC[33]和CoSQL[34]数据集是对Spider数据集的扩展, 具有上下文语义相关、跨域、多轮对话等特性, 与实际的问答场景更加接近, 新的数据集为该领域的研究带来更大的挑战. EditSQL[35]、Bertrand-DR[36]、HIE-SQL[37]、UniSAr[38]、RASAT[39]、CQR-SQL[40]等模型增强SQL在语境理解方面的解析能力, 都取得了相对较好的效果.

随着模型参数规模的增加, 大语言模型(LLM)展现出涌现能力, Codex、chatGPT、GPT-4、PaLM、OPT等大语言模型在零样本、小样本或上下文学习方面取得显著的成就. Pourreza等人提出DIN-SQL模型[41], Sun等人提出SQL-PaLM模型[42], 在Spider数据集上都取得了最优成绩.

Spider数据集更加贴近实际应用场景, 近几年的绝大部分工作都在Spider数据集上进行测试, 由于难度较大, 在Spider数据集上模型的准确率要低于WikiSQL数据集, 总结主要模型的贡献和效果如表2所示.

英文NL2SQL的研究已经比较成熟, 总结英文领域NL2SQL的主要方法和典型模型如表3所示.

表 2 Spider数据集主要模型的贡献和执行准确率

表 3 英文NL2SQL方法和典型模型

2.2 中文领域现状

中文领域NL2SQL发展相对落后, 一方面, 中文语法和语义相对复杂, 相比于英文, 处理难度较大. 另一方面, 早期中文NL2SQL数据集的缺乏也在一定程度上限制了中文问答系统的发展. 李保利等人于1999年提出了WTCDIS接口[43], 能够处理省略及乱序的用户输入, 但系统的可移植性差, 不能直接迁移到其他领域上. 孟小峰等人提出Nchiql[44], 对自然语言问句进行语法和语义分析, 首先将自然语言问句表示为语义依存树, 然后将语义依存树转变为SQL查询. Shen等人提出SPSQL[45], 结合流水线方法和深度学习的方法, 将任务分解为表选择、列选择、SQL生成和值调整4个子任务, 有效地提升了性能.

2019年, 西湖大学Min等人将Spider数据集中的自然语言问句部分进行了中文翻译, 发布了CSpider[46]中文复杂SQL数据集. 通过这个数据集应用Yu等人[20]的SyntaxSQLNet模型作为基线系统的测试, 进一步探索了中文NL2SQL任务的挑战.

2019年6月, 追一科技举办了首届中文NL2SQL比赛, 这让中文NL2SQL受到广泛关注. 本次比赛还发布了首个大规模中文NL2SQL数据集TableQA[47], 以金融和通用领域数据为数据源, 方便后续研究者展开研究. 主办方给出一个应用SQLNet模型的基线, SQLNet针对英文WikiSQL数据集效果较好, 但在应用中文数据集时效果不佳. 主要的挑战包括: where条件值预测不够精准; 问句中没有提到SQL语句中的选择列和条件列; 问句和条件关系表示不一致等. 另外, 研究者在TableQA数据集上直接应用SQLova模型得到的效果虽然好于SQLNet, 但还有比较大的改善空间. Zhang 等人在本次比赛提出的M-SQL 模型[48], 以哈工大讯飞联合实验室提出的中文BERT预训练模型作为编码器作初始化参数, 搭建了多任务学习框架, 通过联合学习提高了模型的准确度, 获得了比赛的第一名. F-SQL[49]在M-SQL的基础上, 使用门机制融合数据库模式和表内容, 有效地增强了列表示, 提高了SQL查询生成性能.

2020年, 百度举行语言与智能技术竞赛, 此次比赛提供大规模开放域的复杂中文 NL2SQL数据集DuSQL[50]. 随数据集发布了IRNet-Ext模型, 该模型为IRNet模型的扩展版本, 以适应中文DuSQL数据集的特点.

2021年, 微软研究院联合西安交大、北航等机构发布了CHASE数据集[51], 通过人工标注和审核丰富了问题的多样性和难度, 也更加贴近实际应用场景. 基于多轮对话的模型, 如UniSAr, 除了适用于WikiSQL、Spider等英文数据集, 在中文数据集DuSQL和CHASE上也取得了较好的实验效果.

汇总中文NL2SQL模型和主要贡献如表4所示.

总结NL2SQL领域按年份发布的中、英文数据集和模型汇总如图1所示.

表 4 中文NL2SQL模型和主要贡献

图 1 NL2SQL数据集和模型汇总

3 中文NL2SQL数据集

随着近几年深度学习技术在自然语言处理领域的广泛应用, NL2SQL任务取得了较大进展, 而现阶段对NL2SQL任务的研究大部分还是基于英文数据集. 对于中文NL2SQL技术的研究还处在初级阶段, 相对于英文, 中文表达更加多样化, 机器理解更加困难. TableQA数据集为中文领域公布的第1个大型NL2SQL数据集, 由追一科技公司于2019年天池大赛中发布. 该数据集包含金融以及通用领域的用户自然语言查询文本与SQL语句的标注匹配数据对, 包含64891个问题和相对应的20311个唯一SQL语句. 和WikiSQL数据集类似, TableQA中的SQL语句仅适用于单个表, 适用的范围较窄, 无法进行多表SQL查询生成.

CSpider数据集为Spider数据集的中文翻译, 由9691个问句和5263个复杂SQL查询组成, 涉及166个数据库, 880个表涵盖138个不同的域. 作者翻译了问句和数据库的内容, 但保留了英文的数据表名和数据列名以方便工程应用, 这也增加了问句和数据库对应的难度. 另外, 在翻译的过程中, 对一些英文的地名和人名进行了本地化处理. CSpider根据SQL语句中出现关键字的数量、选择和条件的复杂度以及group by、order by和嵌套查询、聚合操作的应用等为依据将每个问题分为了简单、中等、困难、极难4个等级, 方便更好地验证模型在不同查询上的性能.

百度2019年在语言与智能技术竞赛中发布的DuSQL是一个跨域的面向实际应用的数据集. 包含200个数据库、覆盖164个领域的813个表以及23797个问句/SQL对. 数据源来自百度百科、贴吧以及权威网站等, 该数据集更贴近真实应用场景, 问题覆盖了匹配、计算、推理等实际应用中的常见形式.

2021年发布的CHASE数据集是一个复杂的高质量多轮交互数据集. 它由280个不同领域的数据库和5459个问题序列以及17940个问句/SQL对组成. CHASE中的每个问题都有丰富的语义注释, 包括其SQL查询、上下文依赖和模式链接. 作为第一个跨域的多轮NL2SQL中文数据集, 作者翻译了英文多轮对话数据集SParC, 并做了修复和优化以组成CHASE-T. CHASE-C精选DuSQL中120个高质量数据库, 包括体育、教育、娱乐等60个子领域, 并做了人工审核和优化.

NL2SQL数据集有不同的分类方法, 根据覆盖领域的数量, 可以分为单领域和多领域; 根据每个数据库包含表的数量, 可分为单表和跨表; 根据交互方式, 可分为单轮和多轮. 表5所示为4个中文数据集的基本信息和分类.

表 5 中文NL2SQL数据集的基本信息和分类

NL2SQL数据集的发展趋势是从单表、单领域、单轮、简单问题到跨表、多领域、多轮、复杂问题, 任务难度也逐步提升. 中文领域的TableQA到CHASE, 其难度也逐步加深, 数据样例如表6所示.

表 6 中文NL2SQL数据集样例

4 中文NL2SQL典型模型和评测方法 4.1 模型基本框架

基于深度学习的研究方法, NL2SQL的任务可被认为是一个类似机器翻译的序列到序列的生成任务, 主要采用Encoder-Decoder框架, 利用端到端的模型, 实现将自然语言问句翻译为结构化的SQL语句序列, 如图2所示. 首先将自然语言问句和数据库表结构通过编码器编码为向量, 再通过解码器解码后输出SQL语句.

图 2 NL2SQL任务Encoder-Decoder框架

4.2 单表简单模型

单表查询的问答是实际场景中应用十分广泛的一项NL2SQL任务, 针对英文WikiSQL数据集的研究已经十分成熟. 主流的方案采用槽位填充的方法, 可以充分利用SQL语句的语法规则. SQL语句具有固定的语法格式, 按顺序, 它由 select、where、and/or关键字组成, 后面跟着要填充的内容. 如图3所示为SQLNet模型 , $agg表示聚合函数、$column表示列名、$op表示运算符、$value表示值, “*”表示该部分出现多次. 它将NL2SQL任务转化为6个子任务: select-column (列选择)、select-agg (列聚合)、where-number (条件数)、where-column (筛选条件对应列)、where-op (条件操作符)以及where-value (条件值). SQLNet为解耦出的每个子任务依据各自任务目标设计了不同输出层. select-column的输出层对所有列执行分类任务, select-agg的输出层对聚合函数(如MAX、AVG、SUM、MIN、COUNT)执行分类任务, 子任务间存在依赖关系.

图 3 SQLNet模型

和SQLNet类似, 基于草图的研究都使用了类似的任务划分, 比较知名的有SQLova和X-SQL, 这两个模型引入了预训练模型BERT, 效果更好并基本达到了WikiSQL数据集的极限. 而当研究者把SQLova、X-SQL等模型直接应用在中文TableQA数据集上时, 发现效果并理想. TableQA比WikiSQL更加复杂, 需要添加两个额外的子任务: 一个用于预测所选列的数量, 另一个用于预测 where 子句中的条件关系. 另外如果查询中存在多个值, 并且这些值属于不同的列时, 用SQLova和X-SQL无法准确提取. 而且, TableQA中文的查询形式比较随意, 问句中可能不会出现数据库的内容. Zhang等人[48]扩展了WikiSQL模型框架, 提出了M-SQL. M-SQL包含8个子模型, 分别是S-num (列数量)、S-col (列选择)、S-col-agg (列聚合)、W-num-op (条件列的关系和个数)、W-col (条件列)、W-col-op (条件列操作)、W-col-val (条件列的值)和W-cal-match (匹配条件列的值), 其草图如图4所示.

另外, 针对传统模型无法准确提取包含多个值和多个列的样本的值的问题, M-SQL改进了提取方法, 将基于列的值提取分为两个模块: 值提取和值列匹配. M-SQL的基本框架是多任务学习架构. 其整体架构如图5所示. 总体模型由3部分组成, 编码器层、表示层和子模型层. 编码器使用了哈工大讯飞联合实验室提出的中文BERT-wwm-ext模型, 和中文预训练模型ERNIE类似, 采用全词掩码策略, 可以更好地学习中文词向量表示. M-SQL模型在处理中文单表简单查询任务中表现优异, 可看作是当前中文NL2SQL单表查询任务的最佳方案.

图 4 M-SQL模型SQL草图

图 5 M-SQL模型架构

4.3 跨表复杂模型

与NL2SQL单表任务相比, 多表任务数据集的整理要复杂很多, 而且所对应的SQL查询形式也多种多样, 涉及多关键词组合、嵌套、多表连接等. IRNet设计了一种中间表示语言SemQL, 可以有效地解决复杂SQL的生成问题. 如图6所示, SemQL可看作是一个中间语言, 承接了自然语言和SQL的连接, 自然语言先生成SemQL的语法树, 再通过对语法树的解析则可转换为SQL.

RAT-SQL做schema linking的方法和IRNet类似, 不同的是RAT-SQL中引入了数据库模式图(schema graph)来表示数据库的结构. 一个数据库包含多个表, 表间通过主、外键连接, 把表名和列看作节点的话, 一个数据库即可构成了一张图的形式.

RAT-SQL模型将schema linking和schema graph的信息嵌入Transformer, Transformer结构可看作是一系列自注意力层的叠加, 编码时自然语言问句和表名、列名等schema融合一起作为输入, 构建relation embedding. 解码时, 通过树形解码器, 生成SQL对应的抽象语法树, 最后通过解析抽象语法树来生成最终的SQL. 编码和解码过程如图7所示.

图 6 SemQL示例

图 7 RAT-SQL编码和解码

当前无论英文Spider还是中文CSpider和DuSQL数据集, 主流的方案都是基于RAT-SQL或者相关的改进模型, 如S2SQL、LGESQL等. 新的模型在语义理解、关系发现、编码解码能力方面都追求更好的表现.

4.4 评测方法

NL2SQL任务的评测方法主要包括逻辑形式准确率(logical form accuracy) Acclf、执行准确率(execution accuracy) Accex、查询匹配准确率(query-match accuracy) Accqm等.

逻辑形式准确率是指通过模型所生成的SQL语句与正确的SQL语句是否完全一致, 包括select是否一致、agg是否一致、conds是否一致、value是否一致等. 式(2)为逻辑形式准确率的计算公式, 其中Nlf是逻辑形式上完全正确的样本个数, N是样本总数. 该评估方式的缺点是会过滤掉仅是由于select列的顺序不同或者条件的顺序不同但执行结果是正确的情况, 因此会导致准确率虚低.

$ Acc_{{\rm{lf}}} = \frac{{N_{{\rm{lf}}}}}{N} $ (2)

执行准确率是指执行预测的SQL语句, 数据库返回正确结果的样本数占比. 其公式如式(3)所示, 其中Nex是执行结果预测正确的样本个数, N是样本总数. 执行准确率只要求最终由数据库执行引擎返回的结果与正确SQL语句所执行的结果一致, 但无法保证生成的SQL是语义正确的, 因此会导致准确率虚高.

$ Acc_{{\rm{ex}}} = \dfrac{N_{{\rm{ex}}}}{N} $ (3)

查询匹配准确率是指模型生成的SQL和正确的SQL都以标准形式表示, 再计算两者的匹配精度. 其公式如式(4)所示, 其中Nqm是标准化后的预测的SQL和正确SQL匹配的样本个数, N是样本总数.

$ Acc_{{\rm{qm}}} = \frac{{N_{{\rm{qm}}}}}{N} $ (4)

实际应用中, 针对SQL子句的评估, 也经常采用拆分后做逻辑形式准确率评估的方法, 如AccS-aggAccS-colAccW-num等分别评估单项的预测准确率. 另外在子分类任务中也可以应用机器学习分类模型的常规评估方法如准确率、召回率、F1-score等.

5 总结和展望

将自然语言转换为SQL查询是一个语义分析问题, 在智能问答、商业智能等领域都有实际的应用场景, 当前学术界已经对NL2SQL任务进行了大量的研究, 从早期的基于模板、规则和统计的模型, 以及最近广泛使用的基于深度学习的方法, NL2SQL在英文领域已经取得了显著的进展. 中文NL2SQL任务的研究开展较晚, 2019年TableQA和CSpider数据集的发布, 为中文NL2SQL任务的研究创造了有利条件. 近两年发布的DuSQL和CHASE更加丰富了中文数据集, 包括了从单领域、单表、简单SQL到多领域、多表、复杂SQL、单轮对话、多轮对话等不同维度的数据, 场景逐步丰富, 难易程度循序渐进, 促进了该领域的发展.

中文NL2SQL的研究才刚刚开始, 未来可考虑从如下几个方面进行.

(1)进一步提升模型的准确率. 目前中文NL2SQL任务的准确率还有较大的提升空间, 特别是CSpider数据集标注为“困难”和“极难”的数据. 而CHASE数据集由于难度较大, 尤其是涉及多轮场景的数据, 相关中文模型的研究就更少.

(2)提升对中文语义的理解力. 在实际应用中要考虑用户的表达歧义问题. 在现实的应用场景中, 用户输入的自然语言问句难免存在表达歧义或错别字的问题, 而这些问题将会导致模型对于语义的理解出现偏差. 对语义的理解除了自然语言问句外, 对数据库的表, 也需要考虑包含的语义知识.

(3)提升零样本的预测准确率. 当前的模型大多为有监督学习, 其训练过程基于人工标注的数据, 而标注这些数据需要较高的成本. 而在实际应用中, 存在着大量的少标注数据或无标注数据, 英文数据集上应用图神经网络模型在零样本的预测取得了一定的效果, 如何通过少量标注数据来实现中文 NL2SQL任务, 也是未来值得探究的一个方向.

(4)基于大语言模型的应用. chatGPT等大语言模型在零样本和领域泛化能力方面表现优秀, 英文Spider和WikiSQL数据集应用大语言模型后成绩提升显著. 在中文领域, 大语言模型如何应用于中文NL2SQL任务也将是重要的研究方向.

参考文献
[1]
Woods WA. Progress in natural language understanding: An application to lunar geology. Proceedings of the 1973 National Computer Conference and Exposition. New York: ACM, 1973. 441–450.
[2]
Sacerdoti ED. Language access to distributed data with error recovery. Proceedings of the 5th International Joint Conference on Artificial Intelligence. Cambridge: Morgan Kaufmann Publishers Inc., 1977. 196–202.
[3]
Warren DHD, Pereira FCN. An efficient easily adaptable system for interpreting natural language queries. Computational Linguistics, 1982, 8(3–4): 110-122.
[4]
Popescu AM, Etzioni O, Kautz H. Towards a theory of natural language interfaces to databases. Proceedings of the 8th International Conference on Intelligent User Interfaces. Miami: ACM, 2003. 149–157.
[5]
Price PJ. Evaluation of spoken language systems: The ATIS domain. Proceedings of the 1990 Workshop on Speech and Natural Language. Stroudsburg: ACL, 1990. 91–95.
[6]
Tang LR, Mooney RJ. Using multiple clause constructors in inductive logic programming for semantic parsing. Proceedings of the 12th European Conference on Machine Learning. Freiburg: Springer, 2001. 466–477.
[7]
Iyer S, Konstas I, Cheung A, et al. Learning a neural semantic parser from user feedback. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Vancouver: ACL, 2017. 963–973.
[8]
Li F, Jagadish HV. Constructing an interactive natural language interface for relational databases. Proceedings of the VLDB Endowment, 2014, 8(1): 73-84. DOI:10.14778/2735461.2735468
[9]
Zhong V, Xiong CM, Socher R. Seq2SQL: Generating structured queries from natural language using reinforcement learning. arXiv:1709.00103, 2017.
[10]
Xu XJ, Liu C, Song D. SQLNet: Generating structured queries from natural language without reinforcement learning. arXiv:1711.04436, 2017.
[11]
Yu T, Li ZF, Zhang ZL, et al. TypeSQL: Knowledge-based type-aware neural text-to-SQL generation. Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. New Orleans: ACL, 2018. 588–594.
[12]
Sun YB, Tang DY, Duan N, et al. Semantic parsing with syntax- and table-aware SQL generation. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics. Melbourne: ACL, 2018. 361–372.
[13]
Dong L, Lapata M. Coarse-to-fine decoding for neural semantic parsing. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics. Melbourne: ACL, 2018. 731–742.
[14]
Shi TZ, Tatwawadi K, Chakrabarti K, et al. IncSQL: Training incremental text-to-SQL parsers with non-deterministic oracles. arXiv:1809.05054, 2018.
[15]
Hwang W, Yim J, Park S, et al. A comprehensive exploration on WikiSQL with table-aware word contextualization. arXiv:1902.01069, 2019.
[16]
He PC, Mao Y, Chakrabarti K, et al. X-SQL: Reinforce schema representation with context. arXiv:1908.08113, 2019.
[17]
Lyu Q, Chakrabarti K, Hathi S, et al. Hybrid ranking network for text-to-SQL. arXiv:2008.04759, 2020.
[18]
Xu K, Wang YB, Wang YL, et al. SeaD: End-to-end text-to-SQL generation with schema-aware denoising. Proceedings of the 2022 Findings of the Association for Computational Linguistics. Seattle: ACL, 2022. 1845–1853.
[19]
Yu T, Zhang R, Yang K, et al. Spider: A large-scale human-labeled dataset for complex and cross-domain semantic parsing and text-to-SQL task. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. Brussels: ACL, 2018. 3911–3921.
[20]
Yu T, Yasunaga M, Yang K, et al. SyntaxSQLNet: Syntax tree networks for complex and cross-domain text-to-SQL task. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. Brussels: ACL, 2018. 1653–1663.
[21]
Lee D. Clause-wise and recursive decoding for complex and cross-domain text-to-SQL generation. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). Hong Kong: ACL, 2019. 6045–6051.
[22]
Guo JQ, Zhan ZC, Gao Y, et al. Towards complex text-to-SQL in cross-domain database with intermediate representation. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence: ACL, 2019. 4524–4535.
[23]
Choi DH, Shin MC, Kim EG, et al. RYANSQL: Recursively applying sketch-based slot fillings for complex text-to-SQL in cross-domain databases. Computational Linguistics, 2021, 47(2): 309-332.
[24]
Rubin O, Berant J. SmBoP: Semi-autoregressive bottom-up semantic parsing. Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. ACL, 2020. 311–324.
[25]
Lin XV, Socher R, Xiong CM. Bridging textual and tabular data for cross-domain text-to-SQL semantic parsing. Proceedings of the 2020 Findings of the Association for Computational Linguistics. ACL, 2020. 4870–4888.
[26]
Xu P, Kumar D, Yang W, et al. Optimizing deeper Transformers on small datasets. arXiv:2012.15355, 2021.
[27]
Bogin B, Gardner M, Berant J. Global reasoning over database structures for text-to-SQL parsing. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). Hong Kong: ACL, 2019. 3659–3664.
[28]
Wang BL, Shin R, Liu XD, et al. RAT-SQL: Relation-aware schema encoding and linking for text-to-SQL parsers. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. ACL, 2019. 7567–7578.
[29]
Chen Z, Chen L, Zhao YB, et al. ShadowGNN: Graph projection neural network for text-to-SQL parser. Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. ACL, 2021. 5567–5577.
[30]
Cao RS, Chen L, Chen Z, et al. LGESQL: Line graph enhanced text-to-SQL model with mixed local and non-local relations. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing. ACL, 2021. 2541–2555.
[31]
Hui BY, Geng RY, Wang LH, et al. S2SQL: Injecting syntax to question-schema interaction graph encoder for text-to-SQL parsers. Proceedings of the 2022 Findings of the Association for Computational Linguistics. Dublin: ACL, 2022. 1254–1262.
[32]
Tie J, Fan ZQ, Sun C, et al. INSL: Text2SQL generation based on inverse normalized schema linking. Proceedings of the 4th International Conference on Artificial Intelligence in China. Springer, 2023. 195–202.
[33]
Yu T, Zhang R, Yasunaga M, et al. SParC: Cross-domain semantic parsing in context. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence: ACL, 2019. 4511–4523.
[34]
Yu T, Zhang R, Er HY, et al. CoSQL: A conversational text-to-SQL challenge towards cross-domain natural language interfaces to databases. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Hong Kong: ACL, 2019. 1962–1979.
[35]
Zhang R, Yu T, Er HY, et al. Editing-based SQL query generation for cross-domain context-dependent questions. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). Hong Kong: ACL, 2019. 5338–5349.
[36]
Kelkar A, Relan R, Bhardwaj V, et al. Bertrand-DR: Improving text-to-SQL using a discriminative re-ranker. arXiv:2002.00557, 2020.
[37]
Zheng YZ, Wang HB, Dong BH, et al. HIE-SQL: History information enhanced network for context-dependent text-to-SQL semantic parsing. Proceedings of the 2022 Findings of the Association for Computational Linguistics. Dublin: ACL, 2022. 2997–3007.
[38]
Dou LX, Gao Y, Pan MY, et al. UniSAr: A unified structure-aware autoregressive language model for text-to-SQL. arXiv:2203.07781, 2022.
[39]
Qi JX, Tang JY, He ZW, et al. RASAT: Integrating relational structures into pretrained Seq2Seq model for text-to-SQL. Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing. Abu Dhabi: ACL, 2022. 3215–3229.
[40]
Xiao DL, Chai LZ, Zhang QW, et al. CQR-SQL: Conversational question reformulation enhanced context-dependent text-to-SQL parsers. Proceedings of the 2022 Findings of the Association for Computational Linguistics. Abu Dhabi: ACL, 2022. 2055–2068.
[41]
Pourreza M, Rafiei D. DIN-SQL: Decomposed in-context learning of text-to-SQL with self-correction. arXiv:2304.11015, 2023.
[42]
Sun RX, Arik SO, Nakhost H, et al. SQL-PaLM: Improved large language model adaptation for text-to-SQL. arXiv:2306.00739, 2023.
[43]
李保利, 周锡令, 胡景凡. 数据库汉语查询接口WTCDIS系统的设计与实现. 中文信息学报, 1999, 13(6): 26-33, 60.
[44]
孟小峰, 王珊. 数据库自然语言查询系统Nchiql中语义依存树向SQL的转换. 中文信息学报, 2001, 15(5): 40-45. DOI:10.3969/j.issn.1003-0077.2001.05.007
[45]
Shen R, Sun G, Shen H, et al. SPSQL: Step-by-step parsing based framework for text-to-SQL generation. arXiv:2305.11061, 2023.
[46]
Min QK, Shi YF, Zhang Y. A pilot study for Chinese SQL semantic parsing. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Hong Kong: ACL, 2019. 3652–3658.
[47]
Sun NY, Yang XF, Liu YF. TableQA: A large-scale Chinese text-to-SQL dataset for table-aware SQL generation. arXiv:2006.06434, 2020.
[48]
Zhang XY, Yin FJ, Ma GJ, et al. M-SQL: Multi-task representation learning for single-table Text2SQL generation. IEEE Access, 2020, 8: 43156-43167. DOI:10.1109/ACCESS.2020.2977613
[49]
Zhang XY, Yin FJ, Ma GJ, et al. F-SQL: Fuse table schema and table content for single-table Text2SQL generation. IEEE Access, 2020, 8: 136409-136420. DOI:10.1109/ACCESS.2020.3011747
[50]
Wang LJ, Zhang A, Wu K, et al. DuSQL: A large-scale and pragmatic Chinese text-to-SQL dataset. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing. ACL, 2020. 6923–6935.
[51]
Guo JQ, Si ZL, Wang Y, et al. CHASE: A large-scale and pragmatic Chinese dataset for cross-database context-dependent text-to-SQL. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing. ACL, 2021. 2316–2331.