Text2SQL学习整理(一) 综述

数据库由一张或多张表格构成,表格之间的关系通过共同的列(外键)关联,人们使用数据库来方便的记录和存储信息。SQL是广泛应用的关系型数据库查询语言,但是对于普通用户而言,编写SQL语句有一定的难度。

Text2SQL是近年来NLP领域一个比较热门的研究方向,该任务历史悠久,应用和落地性很强。该任务是在已知数据库的表名、列名其从属关系(这些统称为数据库的Schema)的前提下,将人类的自然语言问句(Question)转化为对应的数据库查询SQL语句。

如下图所示,模型接收一个Question问句和一个数据库作为输入,然后将其转化为可执行的结构化查询语句(即SQL语句)进行查询,最终返回结果给用户。

image.png

早期的Text2SQL数据集诸如ATIS(Airline Travel Information Systems,航空订票系统)、GeoQuery(地理查询系统)等都是限定于某个特定领域的数据库,仅能解决特定领域的问题,泛化性能较差。而现实世界中,关系型数据库已经广泛应用于社会的各行各业。为此,越来越多的多数据库、跨表查询的Text2SQL数据集被提出,比较知名的数据集有WikiSQL、Spider、SParC和CoSQL。这些数据集的提出极大地促进了该领域的发展,目前的SOTA模型也已经实现了非常好的表现。

这几个数据集的特性如下:

数据集提出时间、会议特点
WikiSQLarXiv,2017多数据库、多表、单轮、简单语句
SpiderEMNLP,2018多数据库、多表、单轮、复杂语句
SparCACL,2019多数据库、多表、多轮、复杂语句
CoSQLEMNLP,2019多数据库、多表、多轮、对话形式、复杂语句

从上表可以看出,所提出的数据集越来越复杂,难度越来越大,同时也越来越接近于现实世界中的真实数据库。

以下为Spider论文中的一个示例:

image.png

可以看出,对于Hard和Very Hard难度的SQL语句,里面存在着许许多多的多表链接、子句嵌入等SQL高级形式,即使是一位经验丰富的数据库工程师也无法很快写出这样的语句。因而,Text2SQL任务不仅可以帮助非专业用户进行查询,而且可以协助数据库工程师来减轻他们的工作量。

本系列博客将沿着近年来对这几个知名数据集上的研究论文来进行阅读总结,并从中归纳该领域的研究脉络。下一篇博客将开始从WikiSQL数据集入手,介绍在该数据集上当前的研究进展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/251881.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python蓝桥杯的回形取数

#来源于蓝桥杯的训练 题号是用户登录https://www.lanqiao.cn/problems/1517/learning/?page1&first_category_id1&problem_id1517 根据题目描述可以知道,我们传入的是一个矩阵。 在这里我们使用列表来实现矩阵。 那么,我们直接看代码 dir …

基于Springboot的高校教学评价系统的设计与实现(源码+调试)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于Springboot的高校教…

Intellij IDEA 运行maven报错误“CreateProcess error=2, 系统找不到指定的文件“的完美解决方案

一、问题背景 博主正常使用着Intellij IDEA,不知道为什么突然Intellij IDEA报错,错误提示如下: Error:Cannot run program "C:\Program Files\Java\jdk1.8.0_351" 观察Intellij IDEA报错的原因,我们可以知道&#xff1…

语音指令控制坦克大战

前言 本文将介绍一个可以通过语音指令来控制坦克大战游戏的程序,用户只需要添加几个疾病区然后控制坦克进行向上、向下、向左、向右、开火、停止等操作。同时还支持指令微调、提高指令的准确率。 安装项目环境 本项目开发换为: Anaconda 3Windows 11…

[LeetCode周赛复盘] 第 376 场周赛20231217

[LeetCode周赛复盘] 第 376 场周赛20231217 一、本周周赛总结100149. 找出缺失和重复的数字![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/347f99d7222f4b8a9c9b14fdff240e4d.png)2. 思路分析3. 代码实现 100161. 划分数组并满足最大差限制1. 题目描述2. 思路分析…

会 C# 应该怎么学习 C++?

会 C# 应该怎么学习 C? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!!&a…

Linux高级系统编程-MySQL数据库基本使用语法

DDL:数据定义语言 作用 : 用于完成对数据库对象(数据库、数据表、视图、索引等)的创建、删除、修改 数据库操作 查询数据库 - > 显示当前 mysql 中的数据库列表 > show databases; - > 显示指定名称的数据的创建的 SQL 指令 > show c…

微信 小程序 在电脑PC端无法加载的解决办法。电脑微信小程序打不开是怎么回事?电脑微信小程序不能打开解决方法教学

一、电脑微信小程序打不开或者一直在加载的原因? 1、电脑端微信版本未更新 微信版本未及时更新,也会影响小程序的正常打开,可以尝试更新版本。 2、缓存过多 如果电脑缓存文件过多,内存少,也可能导致小程序无法流畅…

探秘 AJAX:让网页变得更智能的异步技术(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

1241. 外卖店优先级(蓝桥杯/暴力/优化--暴力遍历 VS 根据输入遍历)

题目: 1241. 外卖店优先级 - AcWing题库 数据范围 1≤N,M,T≤1051≤�,�,�≤105, 1≤ts≤T1≤��≤�, 1≤id≤N1≤��≤� 输入样例: 2 6 6 1 1 5…

低代码是什么?可能取代人工吗?

低代码开发是近年来迅速崛起的软件开发方法,让编写应用程序变得更快、更简单。有人说它是美味的膳食,让开发过程高效而满足,但也有人质疑它是垃圾食品,缺乏定制性与深度。你认为低代码到底是美味的膳食还是垃圾食品呢,…

Delphi 编译关闭时 Stack overflow 错误

本人工程文件,编译EXE文件,程序关闭时出现 Stack overflow 错误。网搜索一些解决办法:比如,加大堆栈...,均不能问题。虽然,生成的EXE文件,执行时,无任何问题。 Stack overflow 错误&…

广州旅游攻略(略说一二)

广州是中国南方的一个重要城市,也是广东省的省会,拥有着悠久的历史和丰富的文化遗产。作为中国最繁华的城市之一,广州吸引了大量的游客前来探索其独特的魅力。今天我将为大家介绍一份广州旅游攻略,希望能帮助各位游客更好地了解这…

STM32 DAC+串口

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、DAC是什么?二、STM32 DAC1.什么型号有DAC2. 简介3. 主要特点4. DAC框图5. DAC 电压范围和引脚 三、程序步骤1. 开启DAC时钟2. 配置引脚 PA4 PA5…

Kubernetes技术与架构-调度 1

Kubernetes技术与架构集群对Pod的资源调度策略分为三个部分,其中包括匹配调度、优先调度以及终止调度,匹配调度是指将Pod匹配到适合、指定的Node服务器节点中运行,优先调度是指终止优先级低的Pod而优先匹配优先级高的Pod到适合的Node服务器节…

基于go语言开发的海量用户及时通讯系统

文章目录 二十三、海量用户即时通讯系统1、项目开发前技术准备2.实现功能-显示客户端登录菜单3.实现功能-完成用户登录-1.完成客户端可以该长度值发送消息长度,服务器端可以正常接收到-2.完成客户端可以发送消息,服务器端可以接收到消息并根据客户端发送…

一键安装下载3ds Max!别墅还是宫殿?3ds Max助你建造梦幻般的艺术建筑

不再浪费时间在网上寻找3ds Max的安装包了!因为你所需要的一切都可以在这里找到!作为一款全球领先的3D设计工具,3ds Max为创作者们带来了前所未有的便利和创作灵感。无论是建筑设计、影视特效还是游戏开发,3ds Max都能帮助你实现想…

Keil新建STM32软件工程 - (详细步骤图文)

文章目录 1. 前言2. 下载芯片对应的Keil开发包3. 下载芯片对应的标准外设库 - STM32F10x_StdPeriph_Lib_Vx.x.x4. 新建工程文件夹 - Demo34.1 移植标准外设库4.2 启动文件介绍及如何选择 5. 新建软件工程 - Demo5.1 打开Keil → Project → New uVision Project5.2 选择芯片型号…

银行数字化转型导师坚鹏:银行数字化转型正在重塑您的工作

您好,我是银行数字化转型导师坚鹏。坚持知行果合一,赋能数字化转型!非常荣幸和您分享关于银行数字化转型如何影响老百姓工作的一些思考。 您知道吗?银行数字化转型给您的工作方式带来新变化、新趋势、新潮流啦!在这个…

SpringBoot配置线程池

SpringBoot配置线程池 1、线程池简介 1.1 什么是线程池 线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程 的创建和任务的执行解耦开来。我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程…