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数据集入手,介绍在该数据集上当前的研究进展。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第16课 SQL入门之更新和删除数据

文章目录 16.1 更新数据16.2 删除数据16.3 更新和删除的指导原则 这一课介绍如何利用UPDATE和DELETE语句进一步操作表数据。 16.1 更新数据 更新(修改)表中的数据,可以使用UPDATE语句。有两种使用UPDATE的方式: 更新表中的特定行…

Xpath注入

这里学习一下xpath注入 xpath其实是前端匹配树的内容 爬虫用的挺多的 XPATH注入学习 - 先知社区 查询简单xpath注入 index.php <?php if(file_exists(t3stt3st.xml)) { $xml simplexml_load_file(t3stt3st.xml); $user$_GET[user]; $query"user/username[name&q…

方案分享:如何做好云中的DDoS防御?

所有企业都会有遭受DDoS攻击的风险。由于目前DDoS即服务&#xff08;DaaS&#xff09;的售价低廉&#xff0c;因此对于恶意攻击者来说&#xff0c;发起攻击比以往任何时候都更加容易&#xff0c;技术门槛也更低。分析公司IDC一项关于DDoS防御的调查显示&#xff0c;超过50%的IT…

数据结构-06-散列/哈希表

1-什么是散列表 散列表用的是数组支持按照下标随机访问数据的特性&#xff0c;所以散列表其实就是数组的一种扩展&#xff0c;由数组演化而来。可以说&#xff0c;如果没有数组&#xff0c;就没有散列表。散列表中的元素在数组的位置(index)是通过散列函数得到的。 2-散…

MyBatis中的MapperScan的作用是干什么的?

MapperScan 是 MyBatis Plus 提供的注解&#xff0c;它的作用是扫描指定包下的所有接口&#xff0c;将其注册成 MyBatis 的 Mapper。在 MyBatis Plus 中&#xff0c;它是用于替代原生 MyBatis 中 XML 配置文件中的 <mapper> 标签的一种方式&#xff0c;可以自动扫描指定包…

【MyBatis-Plus】MyBatis进阶使用

目录 一、MyBatis-Plus简介 1.1 介绍 1.2 优点 1.3 结构 二、MyBatis-Plus基本使用 2.1 配置 2.2 代码生成 2.3 CRUD接口测试 三、MyBatis-Plus策略详解 3.1 主键生成策略 3.2 雪花ID生成器 3.3 字段自动填充策略 3.4 逻辑删除 四、MyBatis-Plus插件使用 4.1 乐…

从零开始:VuePress2 + GitHub Pages 搭建你的第一个免费博客网站

可能你也想拥有一个属于自己的博客网站&#xff0c;但是自己搭个博客网站不知道从何下手&#xff0c;而且还需要租个云服务器&#xff0c;虽然一个月只需几十块钱&#xff0c;但是我们的博客网站是要长期维护的&#xff0c;日积月累也要不少钱呢。 现在我就教你用 VuePress2 …

JVM-1-运行时数据区

程序计数器&#xff08;Program Counter Register&#xff09; 是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里[1]&#xff0c;字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令&…

js json简单介绍

JSON的值有两种形式。 一种以字符串的形式存在&#xff0c;通常称为“JSON字符串”&#xff0c;另一种是JavaScript中的对象或数组&#xff0c;通常称为“ JSON对象” 1.字符串 JSON字符串是由数字、字符串、布尔值、null、数组、对象这些值以引号包裹的形式组成的&#xff0…

【ICCV 2022】Masked Autoencoders Are Scalable Vision Learners

何凯明一作文章&#xff1a;https://arxiv.org/abs/2111.06377 本文的出发点&#xff1a;是BERT的掩码自编码机制&#xff1a;移除一部分数据并对移除的内容进行学习。mask自编码源于CV但盛于NLP&#xff0c;恺明对此提出了疑问&#xff1a;是什么导致了掩码自编码在视觉与语言…

Apache OfBiz 反序列化命令执行漏洞(CVE-2023-49070)

项目介绍 Apache OFBiz是一个非常著名的电子商务平台&#xff0c;是一个非常著名的开源项目&#xff0c;提供了创建基于最新J2EE/XML规范和技术标准&#xff0c;构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。OFBiz最主要的特…

自定义注解

自定义注解 自定义注解 以实战案例为驱动,快速掌握此怎么自己自定义注解,也好出去自己吹牛逼~哈哈哈 假设我们打车,需要检验验证码,我们需要一个注解字来进行核验,我们怎么操作呢? 大纲总览 ​​ 1.定义注解 可以自己创一个包单门存放自己的注解: 如​constraints​ 包 然后…

使用淘宝APIitem_get获取商品详情的技巧

一、引言 随着互联网的普及和电子商务的快速发展&#xff0c;越来越多的人选择在淘宝等电商平台上购物。为了方便用户查询和获取商品信息&#xff0c;淘宝提供了APIitem_get接口&#xff0c;用于获取商品详情。本文将介绍如何使用淘宝APIitem_get接口获取商品详情的技巧&#…

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

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

车规MCU应用场景及国产替代进展

目录 1.车规MCU应用场景 1.1 车身域 1.2 动力底盘域 1.3 座舱域和智驾域 1.4 网联域 2.国产替代进展 3.小结 前面一篇文章征途漫漫:汽车MCU的国产替代往事-CSDN博客对车规MCU国产替代的背景与一些往事进行了简单叙述&#xff0c;今天来聊聊车规MCU具体会在汽车哪些地方用…

sql宽字节注入

magic_quotes_gpc&#xff08;魔术引号开关&#xff09; https://www.cnblogs.com/timelesszhuang/p/3726736.html magic_quotes_gpc函数在php中的作用是判断解析用户提交的数据&#xff0c;如包括有&#xff1a;post、get、cookie过来的数据增加转义字符“\”&#xff0c;以…

NativeScript开发如何根据手机尺寸设定样式?

用NativescriptAngular开发手机应用时&#xff0c;有时需要根据设备屏幕尺寸设置不同样式&#xff0c;可以采用一下方法&#xff1a; testing.html&#xff1a; <StackLayout [ngClass]"containerClass"> </StackLayout>testing.compone…

PDF如何转换制作成翻页电子书

很多朋友想将PDF转换制作成一本翻页电子书&#xff0c;却不知道如何操作。其实&#xff0c;转换翻页电子书的过程并不难&#xff0c;只需要掌握一些基本的技巧和方法就可以了。 基本该怎么操作呢&#xff1f; 1.首先需要一个工具帮助我们成功转换&#xff0c;推荐使用FLBOOK这…

安装Hadoop 3.3.5

Hadoop架构设计 论述 kafka 依赖 Zookeeper 管理自身集群&#xff08;Broker、Offset、Producer、Consumer等&#xff09;&#xff0c;所以先要安装 Zookeeper。 为了达到高可用的目的&#xff0c;Zookeeper 自身也不能是单点&#xff0c;接下来就介绍如何搭建一个最小的 Zooke…

深入了解JavaScript的本地对象、内置对象和宿主对象

JavaScript是一种强大的编程语言&#xff0c;广泛应用于Web开发和应用程序开发。在JavaScript中&#xff0c;有许多不同类型的对象&#xff0c;包括本地对象、内置对象和宿主对象。本文将深入探讨这些对象的特性和用法&#xff0c;以及通过代码示例演示它们的功能。 引言 当我…