SParC数据集介绍

news2024/11/18 17:30:18

导语

SParC是Text-to-SQL领域的一个多轮查询数据集。本篇博客将对该数据集论文和数据格式进行简要介绍。

SParC数据集概述

SParC是一个跨领域的多轮Text-to-SQL数据集。它包含有4298个问题轮次,大约有12k+的自然语言问句到SQL标注的Question-SQL对。这些问题来自于138个不同领域的200个复杂数据库。

SParC对研究者带来的挑战主要有以下三点:

  1. 这是一个多轮对话形式的Text-to-SQL解析,模型需要考虑复杂的上下文依赖关系;
  2. 由于对话的引入,使得数据集具有更大的语义多样性;
  3. 具有跨域特性,即验证和测试是在与训练集完全不同的数据库schema上进行,因而模型需要有足够强的泛化性能。

如下是一次完整的多轮对话示例。

image.png

如上图所示,数据库的简介记为 D 1 D_1 D1,简要介绍了这个数据库的信息,即是一个关于学生宿舍的数据库,包含有5个数据表。而这次交互的目的是 C 1 C_1 C1,即找到住在拥有电视机休息室的宿舍的学生的姓名。为了实现这个目标,一共进行了四次对话。用户的自然语言问句记为 Q Q Q,系统解析后的SQL语句记为 S S S

下面将详细介绍一下SParC数据集的收集过程。

数据收集

SParC数据集的创建包括四个阶段:

  1. 选择交互目标;
  2. 提出问题;
  3. 进行SQL标注;
  4. 检查回顾。

选择交互目标

为了确保问题序列的主题相关性,SParC使用了Spider数据集(之前的一个单轮Text-to-SQL数据集)中的一些问题作为参考而制定了交互目标。每一系列问题都是围绕着这个最终的交互目标进行。这里SParC使用了Spider数据集中的中等、困难和非常困难的问题作为参考。并在交互过程中为了确保问题的多样性而添加了一些简单的问题。经过选择后,一共在200个数据库上制定了4437个交互目标。

提出问题

SParC共邀请了15个SQL经验的大学生来进行提问和标注。每个系列中的相邻问题之间有着如下四种主题关联:

  1. 约束更加细化:当前的问句和上一个问句相比,问了一个相同类型的实体但是有着不同的约束。比如,前一个问题问:”哪一个专业的学生人最少?;而当前的问题问:”那最受欢迎的专业呢?“
  2. 主题扩展:当前的问句询问上一个问句的同一个实体的另外的属性。例如,前一个问句问:”Anonymous Donor Hall的容量是多少?“;而当前的问句问:”列出它所有的设施。“
  3. 属性转移:当前的问句询问另一个实体的相同属性。例如,前一个问句问:”告诉我那部叫做Double Down的电视剧的评分。“;而当前的问题则是:”那Keepers(这部电视剧)呢?“
  4. 答案更加细化:当前的问句徐闻上一个问题的答案给出的实体中的某些子集的其他属性。例如,前一个问题是:”请列出所有不同的部门名称。“;而现在的问句是”在统计部门的所有员工的平均薪资是多少?“

image.png

SQL标注

在进行完提问后,每个标注者都将对自己的问题进行SQL转化,并确保在相应数据库上执行得到正确的答案。

检查

最后,由英语为母语的标注者将问题进行检查,确保没有语法错误。

数据集统计和分析

SParC数据集的统计特性如下图,相比于ATIS(一个古老的用于航班订票的单数据库Text-to-SQL数据集)。SParC拥有更多的数据库和数据表,同时规模也更大。

image.png

同时,SParC对于SQL中的各种高级语法结构的使用也更加丰富。如下图所示,对于像ORDER,HAVING,SET,GROUP等SQL结构,ATIS几乎很少或者并不存在这样的结构。

image.png

数据集划分

SParC数据集的划分与SPider数据集保持了一致,即140个数据库训练,20个数据库验证,40个数据库进行测试。其数据规模见下图。

image.png

数据集格式介绍

该数据集的下载链接为Link。

原始文件为zip文件,解压后可以看到由以下几个数据文件和数据库文件夹组成:

image.png

其中database文件夹中包含了这200个数据库的内容和schema信息。tables.json则包含了json格式的数据库schema信息。

这里以train.json中的第一个交互为例,分析样例数据。

    {
        "database_id": "hospital_1", 
        "interaction": [
            {
                "query": "SELECT count(departmentID) FROM department GROUP BY departmentID", 
                "utterance_toks": [
                    "What", 
                    "is", 
                    "the", 
                    "number", 
                    "of", 
                    "employees", 
                    "in", 
                    "each", 
                    "department", 
                    "?"
                ], 
                "utterance": "What is the number of employees in each department?", 
                "sql": {
                    "orderBy": [], 
                    "from": {
                        "table_units": [
                            [
                                "table_unit", 
                                1
                            ]
                        ], 
                        "conds": []
                    }, 
                    "union": null, 
                    "except": null, 
                    "groupBy": [
                        [
                            0, 
                            5, 
                            false
                        ]
                    ], 
                    "limit": null, 
                    "intersect": null, 
                    "where": [], 
                    "having": [], 
                    "select": [
                        false, 
                        [
                            [
                                3, 
                                [
                                    0, 
                                    [
                                        0, 
                                        5, 
                                        false
                                    ], 
                                    null
                                ]
                            ]
                        ]
                    ]
                }
            }, 
            {
                "query": "SELECT name FROM department GROUP BY departmentID ORDER BY count(departmentID) DESC LIMIT 1;", 
                "utterance_toks": [
                    "Which", 
                    "department", 
                    "has", 
                    "the", 
                    "most", 
                    "employees", 
                    "?", 
                    "Give", 
                    "me", 
                    "the", 
                    "department", 
                    "name", 
                    "."
                ], 
                "utterance": "Which department has the most employees? Give me the department name.", 
                "sql": {
                    "orderBy": [
                        "desc", 
                        [
                            [
                                0, 
                                [
                                    3, 
                                    5, 
                                    false
                                ], 
                                null
                            ]
                        ]
                    ], 
                    "from": {
                        "table_units": [
                            [
                                "table_unit", 
                                1
                            ]
                        ], 
                        "conds": []
                    }, 
                    "union": null, 
                    "except": null, 
                    "groupBy": [
                        [
                            0, 
                            5, 
                            false
                        ]
                    ], 
                    "limit": 1, 
                    "intersect": null, 
                    "where": [], 
                    "having": [], 
                    "select": [
                        false, 
                        [
                            [
                                0, 
                                [
                                    0, 
                                    [
                                        0, 
                                        6, 
                                        false
                                    ], 
                                    null
                                ]
                            ]
                        ]
                    ]
                }
            }
        ], 
        "final": {
            "query": "SELECT name FROM department GROUP BY departmentID ORDER BY count(departmentID) DESC LIMIT 1;", 
            "utterance": "Find the department with the most employees."
        }
    }, 

这里首先声明了它所依赖的数据库是”hospital_1“,本次交互一共有2轮对话,第一轮对话为:”What is the number of employees in each department?“,然后第二轮对话为:”Find the department with the most employees.“。最后的”final“字段声明了最后一轮也就是整个交互的最终目标。其中关于SQL语句的token和各种成分的关系则与Spider相同,详细可以参考这篇博客Spider数据集格式介绍

dev.json则是和train.json同样的格式。

另一个dev_gold.txt则是用于评价最终结果时所使用。

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

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

相关文章

【Python终端报错】“python.exe: can‘t open file”【及解决方法】

一、问题描述 如下图,在PyCharm中使用自带的Python终端运行源代码文件时,提示出错: D:\Program Files\Python3.10.0\python.exe: can’t open file ‘D:\Desktop\Python Security Chapter 4\Whois’: [Errno 2] No such file or directory 翻…

Winserver上如何配置和开启NTP客户端进行时间同步

场景 Winserver 2012 服务器,需要与其它服务器保持时间一致。 已知NTP服务器的ip,在winserver 服务器上如何进行配置和开启。 注: 博客:霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客 实现 1、运行-输入 gpedit.msc 打开组策略管理器…

个性化定制的知识付费小程序,为用户提供个性化的知识服务,知识付费saas租户平台

明理信息科技知识付费saas租户平台 在当今数字化时代,知识付费已经成为一种趋势,越来越多的人愿意为有价值的知识付费。然而,公共知识付费平台虽然内容丰富,但难以满足个人或企业个性化的需求和品牌打造。同时,开发和…

c++学习笔记(13)-左值和右值

一、左值与右值 啥是左值和右值呢? 左值:在内存有确定存储地址、有变量名,表达式结束依然存在的值,简单来说左值就是非临时对象。 右值:就是在内存没有确定存储地址、没有变量名,表达式结束就会销毁的值&…

1764程控直流电源

1764程控直流电源 交流输入电压范围:100~242Vac 在自动测试环境中提供偏置和对部件或最终产品提供激励的理想设备 国产思仪电源 01 产品综述 1764程控直流电源是在自动测试环境中提供偏置和对部件或最终产品提供激励的理想设备。其广泛应用于民用测…

无线路由器DHCP导致网络故障一例

多个DHCP故障 这几天公司网络很难用,也不知道原因。通过路由器的检测功能,领导截图如下: 故障解决 其实解决办法也很简单,就是关闭设备排查。结果发现是一个无线路由器导致的。进入路由器管理界面,关闭DHCP即可。 反思…

SAP PP BAPI 成本收集器的操作

成本收集器常见用tcode:KKF6n 删除标记也是在这里操作 那业务提出批量打删除标记的事务代码却是没有,预研一下 SAP 关于成本收集器的BAPI KOSA KK_F_PKOSA_AUTHORITY KK_F_PKOSA_COPY KK_F_PKOSA_CREATE KK_F_PKOSA_DISPLAY KK_F_PKOSA_FILL KK_F_PKOSA_FIND KK…

华为——使用ACL限制内网主机访问外网网站示例

组网图形 图1 使用ACL限制内网主机访问外网网站示例 ACL简介配置注意事项组网需求配置思路操作步骤配置文件 ACL简介 访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句&#…

如何使用iframe嵌套跨域类型的网址?

本章教程&#xff0c;主要介绍一下&#xff0c;如何利用iframe嵌套一些存在跨域性的问题。 这里我们以百度首页网址进行举例说明。 如果我们直接嵌套百度的首页地址&#xff0c;如下 <!DOCTYPE html> <html lang"en"><head><meta charset"…

基于 OV2640 的以太网 RGMII 图像传输系统设计

相关文章: (1)千兆以太网网络层 ARP 协议的原理与 FPGA 实现 (2)千兆以太网硬件设计及链路层 MAC 协议格式 (3)CRC校验原理及实现 (4)RGMII 与 GMII 转换电路设计 (5)千兆以太网网络层 IP 协议介绍与 IP 校 验和算法实现 (6)千兆以太网传输层 UDP 协议原理与 FPGA…

楼宇对讲门铃的芯片选型分析

目前很多的高层住宅都使用了对讲门铃了&#xff0c;在频繁使用中&#xff0c;门铃会出现的越来越多种类&#xff0c;下面我就简单的介绍会有用到的几款芯片. 语音通话芯片&#xff1a;D34018,D34118,D5020,D31101; D34018 单片电话机通话电路&#xff0c;合并了必 需的放大器…

Postman接口测试(附教程)

前言 之前还没实际做过接口测试的时候呢&#xff0c;对接口测试这个概念比较渺茫&#xff0c;只能靠百度&#xff0c;查看各种接口实例&#xff0c;然后在工作中也没用上&#xff0c;现在呢是各种各样的接口都丢过来…

C++力扣题目347--前k个高频元素

给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2: 输入: nums [1], k 1 输出: [1] 提示&#xff1a; 1 < nums.length < 105k 的取…

uniapp中uview的text组件

基本使用&#xff1a; 通过text参数设置文本内容。推荐您使用:textvalue的形式 <u--text text"我用十年青春,赴你最后之约"></u--text>设置主题&#xff1a; 通过type参数设置文本主题&#xff0c;我们提供了五类属性。primary error success warning…

Maven之插件入门

官方文档&#xff1a;https://maven.apache.org/guides/plugin/guide-java-plugin-development.html 命名规范 <yourplugin>-maven-plugin 创建项目 生成项目 方式一、IDEA 2023 方式二、命令行 mvn archetype:generate -DgroupIdcn.lsj -DartifactIdhello-maven-pl…

【EI会议征稿通知】第五届电子商务与互联网技术国际学术会议(ECIT 2024)

2023 4th International Conference on E-Commerce and Internet Technology 第五届电子商务与互联网技术国际学术会议(ECIT 2024) 电子商务是以信息网络技术为手段&#xff0c;以商品交换为中心的商业活动。在互联网开放的网络环境下&#xff0c;基于客户端/服务端应用方式&…

微信小程序添加用户隐私保护指引

微信小程序添加用户隐私保护指引 一、官方介绍二、实现效果三、实现步骤privacyPopup.jsprivacyPopup.wxmlprivacyPopup.jsonprivacyPopup.wxss首页的index.wxml首页的index.js首页的index.json 四、配置隐私协议请求参数效果 前段时间不知道大家有没有发现很多小程序都添加了用…

AlignBench:量身打造的中文大语言模型对齐评测

对齐&#xff08;Alignment&#xff09;&#xff0c;是指大语言模型&#xff08;LLM&#xff09;与人类意图的一致性。换言之&#xff0c;就是让LLM生成的结果更加符合人类的预期&#xff0c;包括遵循人类的指令&#xff0c;理解人类的意图&#xff0c;进而能产生有帮助的回答等…

Python小工具——开发一个加密解密的小应用 windows下可执行文件exe制作

前言 本篇博客是python开发的使用案例博客&#xff0c;结合一些具体的案例进行阐述&#xff0c;本篇博客介绍如何开发一个专属的加密解密windows小应用。 其他相关的博客文章如下&#xff1a; Python开发——工具篇 & Pycharm的相关配置&#xff0c;Python相关操作 &…

OpenAI GPTs 到底是怎么工作的?

▼最近直播超级多&#xff0c;预约保你有收获 今晚直播&#xff1a;《GPTs 构建应用程序案例实现》 —1— GPTs 是如何工作的&#xff1f; OpenAI 官方对 GPTs 的定义是&#xff0c;用户为特定目的创建的 ChatGPT 版本。 GPTs 结合了技能说明、外部知识库和目前可见的 GPT 的任…