袁志祥,任冬冬,洪旭东,孙国华
(安徽工业大学计算机科学与技术学院,安徽马鞍山 243000)
互联网上的许多重要数据都存储在结构化数据库中,其具有存储简单、数据质量高等特点。但是对于缺少相关SQL 专业知识的用户而言,很难快速准确地写出他们所需求的SQL 查询语句。为解决该问题,研究人员提出NL2SQL(Natural Language to SQL)任务,该任务要求模型根据自然语言问句和数据库表生成相应的SQL 查询,而解决该任务的关键是充分地理解自然语言问句的语义,并将其映射到SQL 表达式相应的部分(如在表中找到对应的列名,在表内容找到对应的条件值,在SQL 关键字中找到对应的聚合函数等)。
由于缺少人工标注的SQL 数据集,使得该任务未被重视。2017 年,ZHOU 等人[1]发布人工标注的大型SQL 数据集——WikiSQL,该数据集含有大量英文问句以及对应的SQL 语句和数据库表。2019年,追一科技公司在阿里云平台举办的首届中文NL2SQL 挑战赛,提供了大型中文SQL 数据集。上述数据集为训练NL2SQL 神经网络及解决语义解析提供了训练条件。
早期将自然语言转换为SQL 语句的研究是利用中间表达式的方法,结合自定义语法和规则将自然语言问句转换成SQL 语句。文献[2]使用斯坦福依存树解析器[3]解析问句,根据启发式规则生成SQL候选集,利用语法树核函数的SVM[4]对候选SQL 进行排序。文献[5]使用无监督学习的方法生成SQL,利用数据库模式限制模型的输出空间以弥补标注数据的不足,同时引入扩展状态空间的语义依存树解决语义和语法不匹配的问题。……