AI-比赛-语义解析:首届中文NL2SQL挑战赛

背景介绍

数据库中存储了海量的高价值数据,用户可以通过执行SQL与结构化数据直接进行交互,也可以通过设计好的交互界面进行交互。但SQL的使用难度限制了非技术用户,交互界面的设计也限制了使用的界限。通过自然语言直接与结构化数据进行交互,可以充分利用结构化数据的价值,为用户带来体验和效率的提升。

追一科技主攻深度学习和自然语言处理,致力于以业界最领先的AI解决方案、产品和服务为客户和用户创造价值,共创未来人类美好生活。我们希望通过NL2SQL赛题,拉近用户与结构化数据间的距离,实现人机交互体验升级。

竞赛题目

首届中文NL2SQL挑战赛,使用金融以及通用领域的表格数据作为数据源,提供在此基础上标注的自然语言与SQL语句的匹配对,希望选手可以利用数据训练出可以准确转换自然语言到SQL的模型。

Baseline 方案参考 GitHub - ZhuiyiTechnology/nl2sql_baseline

数据说明

本次赛题将提供4万条有标签数据作为训练集,1万条无标签数据作为测试集。其中,5千条测试集数据作为初赛测试集,对选手可见;5千条作为复赛测试集,对选手不可见。

提供的数据集主要由3个文件组成,以训练集为例,包括train.json、train.tables.json及train.db。

train.json文件中,每一行为一条数据样本。数据样例及字段说明例如下:

{
     "table_id": "a1b2c3d4", # 相应表格的id
     "question": "世茂茂悦府新盘容积率大于1,请问它的套均面积是多少?", # 自然语言问句
    "sql":{ # 真实SQL
        "sel": [7], # SQL选择的列 
        "agg": [0], # 选择的列相应的聚合函数, '0'代表无
        "cond_conn_op": 0, # 条件之间的关系
        "conds": [
            [1,2,"世茂茂悦府"], # 条件列, 条件类型, 条件值,col_1 == "世茂茂悦府"
            [6,0,1]
        ]
    }
}

其中,SQL的表达字典说明如下:

op_sql_dict = {0:">", 1:"<", 2:"==", 3:"!="}
agg_sql_dict = {0:"", 1:"AVG", 2:"MAX", 3:"MIN", 4:"COUNT", 5:"SUM"}
conn_sql_dict = {0:"", 1:"and", 2:"or"}

train.tables.json 文件中,每一行为一张表格数据。数据样例及字段说明例如下:

{
    "id":"a1b2c3d4", # 表格id
    "name":"Table_a1b2c3d4", # 表格名称
    "title":"表1:2019年新开工预测 ", # 表格标题
    "header":[ # 表格所包含的列名
        "300城市土地出让",
        "规划建筑面积(万㎡)",
        ……
    ],
    "types":[ # 表格列所相应的类型
        "text",
        "real",
        ……
    ],
    "rows":[ # 表格每一行所存储的值
        [
            "2009年7月-2010年6月",
            168212.4,
            ……
        ]
    ]
}

tables.db为sqlite格式的数据库形式的表格文件。各个表的表名为tables.json中相应表格的name字段。为避免部分列名中的特殊符号导致无法存入数据库文件,表格中的列名为经过归一化的字段,col_1, col_2, …, col_n。db文件将后续更新。

另外,也提供用于baseline方案的字向量文件char_embedding,每一行的内容为字符及其300维的向量表达,以空格分隔。

结果提交说明

初赛阶段,选手需要提交特定格式的测试数据的预测结果文件,格式参考sample.json。

复赛阶段,选手采用docker镜像的提交方式进行结果的提交,其中包括数据预处理、模型预测、生成结果文件等步骤的代码。生成的预测文件格式参考sample.json。输入输出路径后续补充。
 

评分标准

比赛的评分标准包括:
Logic Form Accuracy: 预测完全正确的SQL语句。其中,列的顺序并不影响准确率的计算。
Execution Accuracy: 预测的SQL的执行结果与真实SQL的执行结果一致。

排行榜以Score_{lf}与Score_{ex}的平均值排序。

Score_{lf}=\begin{cases} 1, & SQL'=SQL \\ 0, & SQL' \neq SQL \end{cases}Acc_{lf} = {1\over N}\sum_{n=1}^N Score_{lf}^nScore_{ex}=\begin{cases} 1, & Y'=Y \\ 0, & Y' \neq Y\end{cases}Acc_{ex} = {1\over N}\sum_{n=1}^N Score_{ex}^n

其中, N表示数据量, SQL'和SQL分别代表预测的SQL语句和真实的SQL语句, Score_{lf}表示Logic Form准确率; Y'和Y分别代表预测的SQL和真实的SQL的执行结果, Score_{ex}表示Execution准确率。
 

注意事项

此次挑战赛不限制参赛者使用外部数据/模型,但禁止参赛者以下行为:
1)大赛主办和协办单位,以及有机会接触赛题背景业务及数据的员工不得参赛;
2)人工标注数据;
3) 审查代码过程中发现有造假、作弊、雷同;
4)多账号刷分等。




首届中文NL2SQL挑战赛_算法大赛_赛题与数据_天池大赛-阿里云天池

GitHub - ZhuiyiTechnology/nl2sql_baseline 

方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了一个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值