1.3.2 NL2SQL数据集
本小节列举NL2SQL中经常用到的几个中英文数据集。
1.英文数据集
当前Text-to-SQL数据集以英文数据集居多,根据是否跨领域、是否跨表以及是否为多轮等特征进行划分,结果如表1-6所示。
表1-6 NL2SQL中代表性的英文数据集
其中WikiSQL和Spider是研究比较多的单轮数据集,WikiSQL数据集包含80 654个手工注释的问题示例,全部来源于维基百科的26 531个表。部分样例展示如图1-15所示。
图1-15 WikiSQL数据集样例
Spider数据集是由11名耶鲁大学学生注释的大规模Text-to-SQL数据集,由873个跨领域数据库中的9693个问题和SQL语句组成,数据库覆盖了200个领域,覆盖了SQL中常见的关键词和复杂句式(如嵌套、多子句)。部分样例展示如表1-7所示。
表1-7 Spider数据集样例
2.中文数据集
中文类的数据集主要包括追一科技的NL2SQL数据集、西湖大学的CSpider数据集和百度的DuSQL数据集,根据是否多领域、是否跨表、是否多轮、数据库数量、问题和SQL对等特征进行划分,如表1-8所示。
表1-8 NL2SQL中代表性的中文数据集
DuSQL是百度公司建设的覆盖多领域、基于多表的中文Text-to-SQL数据集,包含164个领域的200个数据库,813个表,23 797个问题/SQL对,覆盖了匹配、计算、推理等实际应用中常见的问题形式,每个问题关联一个数据库中的一张或多张表格。该数据集更贴近真实应用场景,为模型解决领域无关性、问题无关性、计算推理问题带来了更大的挑战。数据集样例如表1-9所示。
表1-9 DuSQL数据集样例
CSpider数据集是由Spider数据集翻译而来的(仅翻译了问题,数据库相关信息仍为英文)。它包含166个数据库,平均每个数据库包含53张表格,共9000多个问题。
NL2SQL是追一科技公司发布的第一个中文Text-to-SQL数据集。该数据集覆盖金融、书籍、房产等领域,是基于单表的数据集,即每个数据库仅包含一张表格,SQL生成过程中不涉及表的选择。该数据集包含2.6万张表格以及8万多个问题,问题涉及的SQL形式较为简单,仅包含select和where两个关键词。
其中,数据样例如下所示: