目录
简介
1. WikiSQL
2. Spider
3. WikiTableQuestions
4. ATIS
5. 首届中文NL2SQL挑战赛数据集
下载地址
NL2SQL(Natural Language to SQL)是一项将用户的自然语句转为可执行 SQL 语句的技术,对改善用户与数据库之间的交互方式有很大意义。NL2SQL 的本质,是将用户的自然语言语句转化为计算机可以理解并执行的规范语义表示 (formal meaning representation),是语义分析 (Semantic Parsing) 领域的一个子任务。
NL2SQL的历史悠久,早在1973年,Woods等人就开发了一个名为LUNAR的系统,可以回答关于从月球带回的岩石样本的问题。到了1978年,Hendrix设计了一个连接美国海军舰艇信息数据库的自然语言接口,名为LIFER/LADDER。这些系统仅仅支持特定数据库的单表操作,受限于当时的技术发展,NL2SQL并没有受到太多的关注。直到2015年AI的复苏和NLP的发展,它渐渐回到人们的视线。
目前比较火的英文数据集有WikiSQL、Spider、WikiTableQuestions、ATIS等,中文数据集有刚刚结束的中文首届NL2SQL挑战赛公开的数据,各个数据集都有各自的特点,下面简单介绍下这几个数据集。
WikiSQL数据集是Salesforce在2017年提出的大型标注NL2SQL数据集,也是目前规模最大的NL2SQL数据集。它包含了 24,241张表,80,645条自然语言问句及相应的SQL语句。目前学术界的预测准确率可达91.8%。样例如下图。
WikiSQL的问题长度8~15个词居多,查询长度8~11个词居多,表的列数5~7个居多,另外,大多数问题是what类型,其次是which、name、how many、who等类型。
Spider数据集是耶鲁大学于2018年新提出的一个较大规模的NL2SQL数据集。该数据集包含了10,181条自然语言问句,分布在200个独立数据库中的5,693条SQL,内容覆盖了138个不同的领域。虽然在数据数量上不如WikiSQL,但Spider引入了更多的SQL用法,例如Group By、Order By、Having等高阶操作,甚至需要Join不同表,更贴近真实场景,所以难度也更大。目前准确率最高只有54.7%。样例数据如下:
该数据集是斯坦福大学于2015年提出的一个针对维基百科中那些半结构化表格问答的数据集,内部包含22,033条真实问句以及2,108张表格。由于数据的来源是维基百科,因此表格中的数据是真实且没有经过归一化的,一个cell内可能包含多个实体或含义,比如「Beijing, China」或「200 km」;同时,为了很好地泛化到其它领域的数据,该数据集测试集中的表格主题和实体之间的关系都是在训练集中没有见到过的。样例数据如下:
ATIS(The Air Travel Information System)是一个年代较为久远的经典数据集,由德克萨斯仪器公司在1990年提出。该数据集获取自关系型数据库Official Airline Guide (OAG, 1990),包含27张表以及不到2,000次的问询,每次问询平均7轮,93%的情况下需要联合3张以上的表才能得到答案,问询的内容涵盖了航班、费用、城市、地面服务等信息。
该数据集由追一科技在2019年举办的首届中文NL2SQL挑战赛中提出,使用金融以及通用领域的表格数据作为数据源,提供在此基础上标注的自然语言与SQL语句的匹配对,包括4万条有标签数据作为训练集,1万条无标签数据作为测试集。其中,5千条测试集数据作为初赛测试集,对选手可见;5千条作为复赛测试集,对选手不可见。样本格式如下:
表格信息如下:
WikiSQL:https://github.com/salesforce/WikiSQL
Spider:https://yale-lily.github.io/spider
ATIS:https://www.kaggle.com/siddhadev/ms-cntk-atis
WikiTableQuestions:https://github.com/ppasupat/WikiTableQuestions
中文数据集:https://tianchi.aliyun.com/competition/entrance/231716/information