【Text2SQL】Spider 數據集

論文:Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Task

?????

EMNLP 2018, arXiv:1809.08887

Dataset: spider

GitHub: github.com/taoyds/spider

一、論文速讀

本文提出了 Text2SQL 方向的一個經典數據集 —— Spider 1.0,其難度遠大于 WikiSQL,包含了 200 個數據庫,覆蓋了 138 個不同的領域,平均每個數據庫由 27.6 個 columns 和 8.8 個外鍵,總共由 10,181 個 questions 以及 5,693 個對應的復雜 SQL 查詢構成。

1.1 數據集的特點

數據集由 11 名計算機學生構建,在做數據標注時,確保了以下三個方面:

  • SQL 模式的覆蓋:每個數據庫的示例覆蓋了常見的 SQL 模式,包含多列的 SELECT 和 aggregation、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT、JOIN、UNION、LIKE 等等,且每個 table 都至少出現在一個 query 中。
  • SQL 一致性:有些 question 可能有多種 SQL 查詢寫法,該工作設計了標注協議,當存在多個等效 query 時,所有標注者都選擇相同的 SQL 查詢模式。
  • 問題清晰化:不會創建模糊有歧義的問題,比如“最受歡迎”這種沒有明確定義的問題;也沒有需要數據庫之外的常識才能回答的問題,因為這脫離了“語義解析”的訓練目標。

標注工作可以借助 sqlite-web 來打開數據庫并查看。

1.2 任務的定義

模型將被在不同的復雜 SQL、復雜數據庫、復雜 domains 上被測試,要求模型能夠對 question 理解語義,并對新的數據庫有泛化能力。

任務不評估模型生成 value 的能力,因為這個 benchmark 側重評估預測出正確的 SQL 結構和 columns,數據集中也被排除了需要常識推理和數學計算的 querys。

論文工作還對數據庫的 table names 和 column names 做了清洗,讓這些名字清晰且自成一體。比如將 stu id 轉為 student id

二、評價指標

本論文給出了三個 metrics:Component Matching、Exact Matching 和 Execution Accuracy。

2.1 Component Matching

Component Matching 衡量的是 prediction 和 ground-truth SQL 的不同 component 的平均精確匹配效果。

SQL 中每個 keywords 視為一種 component,并將其分解為含有多個 sub-component 的 bag。比如 SELECT avg(col1), max(col2), min(col1) 被分解為一個 bag:(avg, min, col1), (max, col2),然后查看 prediction 和 ground-truth SQL 的 bag 是否相同。

keywords 指的是包括所有不帶 column name 和 operatiors 的 SQL 關鍵字,如 SELECT、WHERE 等。

被分解后,每一個 component 被分解為一個 bag,這個 bag 中的每一個元素對應一個 sub-component,這個 sub-component 也是被分解為一個 bag。

為了報告一個 model 在每個 component 上的整體表現,我們會計算每個 exact set matching 的 F1 score。

2.2 Exact Matching

Exact Matching 衡量的是兩個 SQL 是否整體上等同。按照上一節的描述,只有當兩個 SQL 在所有 component 上都精確匹配的情況下,這個樣本預測才算做正確。

2.3 Execution Acc

Execution Acc 比較的兩個 SQL 執行的結果集是否相同。

  • Exact Matching 可能會產生 false negative
  • Execution Acc 可能會產生 false positive

三、數據集示例

根據 SQL component 數量、conditions 等等,將 SQL queries 分成了四個難度:easy、medium、hard 和 extra hard。

下圖展示了四個 level 的示例:

在這里插入圖片描述

當時論文測試了已有的幾個 Text2SQL 模型,也發現都沒有表現很好,也說明了 Spider 數據集的難度較高。

四、實驗結論

論文使用 SQLNet、TypeSQL 等模型測試了一波,發現以下整體的結論:

  • 所有模型的整體表現都很低,說明 Spider 具有挑戰性,尤其是 WHERE 子句的預測,因為 WHERE 子句更有可能有多個 columns 和 operators。
  • 目前的模型在 test split 上拓展到新數據庫時都表現較差,這說明 Spider 為模型泛化到新的數據庫提出了挑戰。
  • 數據庫的模式復雜性也會影響模型的性能,實驗也發現,隨著數據庫的外鍵數量增多,表現也會下降。

五、代碼

GitHub 首頁中給出了 example 的格式,也給出了用于評估的腳本 evaluation.py

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15858.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15858.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15858.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1.4 Mac 電腦 Clion 安裝教程

目錄 1 安裝 2 激活 3 漢化 1 安裝 去 https://www.jetbrains.com/clion/download/other.html 下載: 也可以直接到鏈接進行下載:https

嵌入式全棧開發學習筆記---C語言筆試復習大全23

目錄 聯合體 聯合體的定義 聯合體的長度 如果來判斷設備的字節序? 如何把大端數據轉換成小端數據? 枚舉 枚舉的定義 上一篇復習了結構體,這一節復習聯合體和枚舉。 說明:我們學過單片機的一般都是有C語言基礎的了&#xff…

docker鏡像容器搭建nominatim地理編碼服務

1、下載地圖pbf文件: https://planet.openstreetmap.org/ 2、nominatim官網 https://nominatim.org/release-docs/latest/admin/Installation/ 3、地圖文件打包: docker run -it --shm-size20g \ -e PBF_PATH/nominatim/data/china-latest.osm.pbf \ -e REPLIC…

C語言PTA練習題:三角形類別,輸入三角形三條邊,求面積,四則計算器,猴子吃桃

7-1 三角形類別 輸入三個整數,以這三個數為邊長,判斷是否構成三角形;若不能輸出"no",若構成三角形,進一步判斷它們構的是:銳角三角形或直角三角形或鈍角三角形.分別輸出"ruijiao",&qu…

GitLens或者Git Graph在vscode中對比文件歷史變化,并將歷史變化同步到當前文件中

有時候我們上周改的代碼,現在想反悔把它恢復過來,怎么辦???很好,你有這個需求,說明你找對人了,那就是我們需要在vscode中安裝這個插件:GitLens或者Git Graph,…

門禁-jenkins的構建狀態同步到gitlab提交流水線

API接口文檔 https://docs.gitlab.cn/jh/api/commits.html 配置pipline流水線 生成http請求代碼: 使用HttpRequest插件生成 - sharelibs內容 //這是share libs里的 package devopsdef httpReq(reqType, reqUrl, reqBody, accessToken){def gitServer "…

有一個3x4的矩陣,要求用函數編寫程序求出其中值最大的那個元素,以及其所在的行號和列號

常量和變量可以用作函數實參,同樣數組元素也可以作函數實參,其用法與變量相同。數組名也可以作實參和形參,傳遞的是數組的起始地址。 用數組元素作函數實參: 由于實參可以是表達式,而數組元素可以是表達式的組…

Oracle 12C開機自啟動

Oracle 12C設置開機自啟動 1、本文內容 背景說明檢查Oracle當前環境修改配置文件/etc/oratab添加數據庫啟動腳本dbstart 2、背景說明 最近因上線新的兩套系統,增加4套測試環境,由于昨晚機房電路故障,部分物理服務器需要關鍵,電…

2000 年至 2015 年中國(即水稻、小麥和玉米1km 網格)三種主要作物年收獲面積的時空變化

摘要 可靠、連續的主要作物收獲面積信息對于研究地表動態和制定影響農業生產、土地利用和可持續發展的政策至關重要。然而,中國目前還沒有高分辨率的空間明確和時間連續的作物收獲面積信息。全國范圍內主要農作物收獲面積的時空格局也鮮有研究。在本研究中&#xf…

2024年【熔化焊接與熱切割】考試內容及熔化焊接與熱切割考試報名

題庫來源:安全生產模擬考試一點通公眾號小程序 熔化焊接與熱切割考試內容考前必練!安全生產模擬考試一點通每個月更新熔化焊接與熱切割考試報名題目及答案!多做幾遍,其實通過熔化焊接與熱切割復審模擬考試很簡單。 1、【單選題】…

Django的模型層——2模型實例

1. 類的屬性 objects:是Manager類型的對象,用于與數據庫進行交互 當定義模型類時沒有指定管理器,則Django會為模型類提供一個名為objects的管理器 支持明確指定模型類的管理器 class BookInfo(models.Model):...books models.Manager()當為…

C# 運算符重載的技術深入分析

C# 運算符重載的技術深入分析 一、引言 在C#中,運算符重載是一個允許開發者自定義類或結構中特定運算符行為的特性。通過這個特性,可以為自定義類型創建與內置類型一致的語義,使得代碼更直觀、更易理解。 二、運算符重載基礎 2.1 定義和概…

網絡安全從入門到精通(特別篇I):應急響應之網站入侵排查思路

藍隊應急響應實戰 1. 應急響應-網站入侵-基礎知識2. 應急響應-網站入侵-技能掌握3. 應急響應-網站入侵-案例分析3.1 網站入侵-排查思路-首要任務3.2 IIS&.NET-注入-基于時間配合日志分析3.3 Apache&PHP-漏洞-基于漏洞配合日志分析3.4 Tomcat&JSP-弱口令-基于后門配…

SpringBoot【1】集成 Druid

SpringBoot 集成 Druid 前言創建項目修改 pom.xml 文件添加配置文件開發 java 代碼啟動類 - DruidApplication配置文件-propertiesDruidConfigPropertyDruidMonitorProperty 配置文件-configDruidConfig 控制層DruidController 運行驗證Druid 的監控應用程序 前言 JDK版本&…

33.perf工具使用

文章目錄 基本介紹perf命令使用reference 歡迎訪問個人網絡日志🌹🌹知行空間🌹🌹 基本介紹 Perf(Performance Counters for Linux,性能計數器子系統)是一個Linux性能分析工具,用于分…

分析 Base64 編碼和 URL 安全 Base64 編碼

前言 在處理數據傳輸和存儲時,Base64 編碼是一種非常常見的技術。它可以將二進制數據轉換為文本格式,便于在文本環境中傳輸和處理。Go 語言提供了對標準 Base64 編碼和 URL 安全 Base64 編碼的支持。本文將通過一個示例代碼,來分析這兩種編碼…

前端開發-添加公用的ts文件,并在Vue文件中引用

一般我們把頁面要用的公用函數寫在一個ts文件中 通過調用這個ts文件讓我們可以在vue文件中使用函數 Eg:我們現在創建一個formRules.ts文件 然后在我們需要調用該函數體的vue文件中 import { required } from "/utils/formRules";有可能語法一開始會提示…

Phobos勒索病毒:最新變種phobos襲擊了您的計算機?

一、導言 在數字化浪潮中,網絡安全問題日益凸顯,而.Phobos勒索病毒無疑是其中的隱形殺手。它潛伏在網絡的每一個角落,等待著合適的時機對目標發動致命一擊。本文將深入探討.Phobos勒索病毒的新特點、傳播途徑,并提出一系列創新的…

C++面試題記錄(網絡)

TCP與UDP區別 1. TCP面向連接,UDP無連接,所以UDP數據傳輸效率更高 2.UDP可以支持一對一、一對多、多對一、多對多通信,TCP只能一對一 3. TCP需要在端系統維護連接狀態,包括緩存,序號,確認號,…