Research on Generating SQL Statements through Natural Language based on Deep Learning

来源 :华中师范大学 | 被引量 : 0次 | 上传用户:fonely
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
大数据时代已经来临,海量的数据被存储在各种数据库中,如何从这些海量的数据中挖掘有价值的信息成为人们研究的重点。医疗、教育、金融、软件开发等各个行业都会在工作中频繁使用SQL语句用于数据的增删改查。对于有一定编程基础的人来说,使用SQL可能是一件比较轻松的事情,但对于更多的人来说需要学习一定的数据库和SQL语言相关专业知识并且需要在熟悉数据库模式的前提下,才能熟练进行SQL语句的编写。所以降低SQL语言的学习成本,更快更好的生成SQL查询语句,使用更自然的方式进行数据库操作是一个值得研究的问题。自然语言处理(NLP)是近年来人工智能领域重点研究方向,发展速度很快。NLP的目的就是希望计算机能够理解人类的自然语言,同时期望计算机能够依据非人类语言类型的数据生成人类能够理解的语言类型,这是自然语言处理所要面对的两大主要问题,即自然语言理解(NLU)和自然语言生成(NLG)。NLP的发展能够极大的推动我们在人工智能领域的进展,具有重要的理论价值和实践意义。通过自然语言与数据库进行人机交互来查询数据,是一种可以被广泛采用的方式,这种方式既能节省用户学习专业知识的成本,也能提升数据查询的效率。因此,自然语言生成SQL语句,即Text2SQL任务,具有重要的研究价值。如何消除自然语言,数据库中数据表结构及内容和SQL语句三者之间在表达和结构上的差距,正确理解自然语言的语义并将用户的意图翻译成正确的SQL 语句是Text2SQL任务中面临的主要挑战。Text2SQL任务主要分为两部分,一个是将自然语言编码为计算机可以理解的内容,另一个是将编码内容再解析翻译成SQL语句,即经典的encoder和decoder过程。同时,我们也会面对两个不同的SQL 语句生成场景,分别是单表查询和多表查询。这两者之间也有很多不同之处,但也有可以复用的技术。自然语言编码的好坏直接影响后续任务的执行效果。One-hot编码显然是一个直接有效的方式,它为每一个词都赋予了数学意义上的唯一表示,但这样的表示过程中会丢失词在文本中的顺序信息。Word2Vec与传统的高维词向量One-Hot相比,它既能解决维数爆炸问题,还具备上下文的语义特征但它无法解决解决一词多义问题。预训练模型BERT在许多实验中已经证明了其在NLP任务中的有效性,所以将预训练模型用于自然语言编码也是现在一种很流行的做法。完成对自然语言编码过程之后,我们获得了自然语言查询语句的编码结果,该结果包含了词法语法语义信息,根据编码结果我们需要了解用户的实际查询需求,将此需求转化成正确的SQL语句。目前用于解决这个任务的方法大致分为两种:1.基于非深度学习的流水线方法;2.基于深度学习的端到端的方法。基于非深度学习的流水线方法是将自然语言查询转化为一种中间表达,再将这些中间表达转化为SQL语句。该方法的优势在于不需要大量的“自然语言查询-SQL语句”配对,因为获取大量标注数据代价很大且很耗时。而该方法的不足之处在于无法处理一些复杂多变的自然语言描述,只能处理几种比较固定的表达方式,并且依赖于提前定义好的模板和手动设计的特征,因此领域迁移性也较差。基于深度学习的端到端的方法可根据使用训练数据的多少分为弱监督学习和监督学习两种。虽然弱监督学习有着训练数据收集快,数据标注成本低等优点,但不可否认的是,通过充足的“自然语言查询-SQL语句”配对的训练数据进行监督学习,得到的模型在效果上也会更胜一筹。Seq2SQL将生成的SQL语句分为三个部分:聚合操作:(S-UM、COUNT、MIN、MAX等)、SELECT:选取列、WHERE:查询条件。每一部分使用不同的方法进行计算,作者同时提出利用强化学习基于查询结果来进行优化。为了解决Seq2SQL使用强化学习效果不明显的问题,SQLNet将SQL 语句分成了 SELECT和WHERE两个部分,每个部分设置了几个槽位,只需向槽位中填入相应的符号即可,最后通过注意力机制进行分类得到操作符和条件值。TypeSQL模型基于SQLNet,使用模版填充的方法生成SQL语句。SQLNet为模版中的每一种成分设定了单独的模型;TypeSQL对此进行了改进,对于相似的成分,例如SELECT-COL和COND-COL以及CONDS(条件数),这些信息间有依赖关系,通过合并为单一模型,可以更好建模。相比于之前decoder输出一段线性的文本,SyntaxSQLNet将解码的过程引入了结构性信息,即解码的对象为SQL语句构成的树结构。通过该技术,模型的精确匹配率得到很大提高。与SyntaxSQLNet类似,IRNet定义了一系列的CFG文法,将SQL转化为语法树结构。作者另一部分的改进主要在schemelinking,即如何找到问题中所提到的表格与列。现有的算法模型主要针对的是单表查询,在单表查询中有可能面临列名复用的问题,极大影响算法的准确性。同时现有的算法模型也较少有专门针对多表查询的优化,而实际的应用场景中,通常涉及到多个数据表的查询操作,复杂程度也会很大。在多表查询场景下,我们需要在更大的范围内寻找与自然语言查询中描述中相匹配的内容,分辨出这些内容分别来自于数据库中的哪些数据表,并且在生成SQL语句时,考虑更多的SQL要素。本文在进行了 Text2SQL领域国内外相关工作与研究充分调研的前提下,针对单表和其扩展的多表查询场景,实现了通过自然语言查询生成SQL语句的完整流程和方法。本文的主要工作和贡献可以概括为以下几点:·提出了利用预训练模型的上下文输出来增强结构化表示和利用深度学习分类模型来完成Text2SQL下游任务的的完整流程和方法。本文首先对SQL 语句进行解析,将序列生成问题转化为模板填充问题,即分解为多个分类问题,并根据转化后的问题进行数据标注处理。然后,在单表查询场景下,将Text2SQL任务分解为两个子任务,分别采用了通用分类模型和条件值获取模型,两者模型的输出结果共同构成完整的SQL语句;在扩展的多表查询场景下,对应的SQL结构比单表复杂得多,预测结果难以用一个简单的模板来进行管理。因此我们采用树形的语法结构,同时加入SPC(Statement Position Code)来管理子查询的问题,用递归的形式完成SQL的生成。同时改造encoder层加强自然语言问题与数据库表结构和内容上的联系,提升模型对数据库表和列的预测能力。·在单表查询场景下,基于模板填充将Text2SQL任务分解成多个多分类子任务。充分利用预训练模型在处理文本时的特征表达能力,通过微调的方式在各个子任务上构建相应的分类模型。通用分类模型的作用是获取SQL语句中除条件值之外的填充部分,在对SQL语句中的列名填充时,该模型改善了列名复用的问题;条件值获取模型是为了获取SQL语句中的条件值,分别针对文本类型和数值类型构建不同的模型,充分利用了自然语言查询和数据库中存储的内容,该模型改善了自然语言查询的描述与数据库中存储的列值数据表述不一致的问题。通过对比实验证明在WikiSQL数据集和WikiTableQuestion数据集上,该方法从列名、条件值预测等多个方面提升了 SQL语句生成的准确率。·在多表查询的场景下,依旧采用了单表查询场景下的思路,基于模板填充将Text2SQL任务分解成子分类任务,但同时针对多表查询的特殊情况对模型进行优化。单表查询中的encoder层仅仅使用单一注意力机制来融合信息,针对多表的情况我们可以引入transfomer和heuristic fusion function用于加强上下文的联系来构造更加复杂的模型,这个模型可以极大增强问句与数据库数据表结构内容上的联系,将表结构信息和自然语言问句中的信息同时考虑,在多表的情况下更好的确定我们所需要的表和列。同时由于多数据表任务对应的SQL结构比以前复杂得多,预测过程难以用一个简单的模板来进行管理。因此根据SQL语句的特点,设计了 SQL语句解析树同时加入SPC(Statement Position Code)信息来解决SQL语句查询嵌套的问题。通过对比实验证明该方法能很好地从单表查询场景迁移到多表查询场景,完成多表SQL语句的生成,在多表查询数据集Spider上与多个模型进行比较,取得了不错的成绩。
其他文献
视觉目标跟踪是机器视觉领域中一个非常重要的分支,在智能制造、安防监控、无人侦察、无人驾驶、人机交互和智能诊断等领域有着十分广阔的应用。给定视频目标初始化信息后,视觉目标跟踪旨在对后续视频目标进行位置定位、尺寸估计等。目前已有许多研究者对其进行研究,并在一些场景中取得了不错的跟踪精度。然而,在具体的应用当中,视频目标往往会处于十分复杂的场景,可能出现遮挡、高速运动、目标抖动、光照变化、目标形变和背景
随着互联网技术的高速发展,基于互联网技术的应用在人们的日常生活中得到了广泛应用,大量的数据随着这些应用的使用而产生,在这些数据中有相当一部分是以文本方式存在的。又由于现在信息传递的速度非常快,这使得人们每天都会面对大量的文本信息。人们在处理这些信息时会出现力不从心的现象。人们为了能够快速的得到对自己有用的文本信息并且能够快速的利用这些文本信息就必须对这些文本信息进行处理。而文本分类就是对文本信息处
波动方程是一类重要的二阶偏微分方程,主要用于描述波的扩散和传播,其解有助于我们更加直观地了解波的传播特性,并应用于实际工程中。在波的传播过程中,各种类型的介质存在导致波产生耗散现象。因此,在分析波动方程的一些性质时,我们通常把阻尼考虑在内。本文考虑了一类带有结构阻尼的拟线性波动方程(Semilinear Structural Damped Wave equations,SSDW),模型如下:(?)
自2019年12月新冠疫情爆发以来,已经对全球人类的健康和生活产生了重大影响。据约翰斯·霍普金斯大学统计数据,截止北京时间2021年1月27日,全球新冠肺炎确诊人数已经破亿,全球新冠肺炎死亡人数超过215万例。同时,病毒的传播扰乱了全球供应链,造成全球金融市场显著波动。与2020年2月中旬相比,欧洲股市已经下跌约30%,为2008年金融危机开始以来的最大单月跌幅,全球年经济增长率预计将下降2.5%
随着开关频率的逐步提升,开关电源在工作时,高速变化的瞬变电压(d V/dt)和瞬变电流(d I/dt)产生的电磁干扰(EMI)问题愈发严重。这些电磁干扰能量在低频段会在导线之间传导,进而污染电网及影响周边用电设备的正常工作;在高频段会以电磁波的形式辐射到自由空间中,不仅影响设备自身的使用寿命,对周边正在工作的用电设备造成干扰,严重者还会对人体和生态环境造成危害。为此,开关电源产品都需要经过电磁兼容
在学生自发的将原本设计用于停自行车的图书馆架空层,逐步使用成为了一个学习空间的背景下,作者注意到校园内却还有大量空间形式类似于图书馆架空层的半开放空间一直被闲置、荒废。在调研后发现图书馆架空层的热舒适感与夏季室外气候的热舒适感存在显著的差异,进而提出假设,图书馆架空层内可能存在有别于其他架空层的较为稳定而舒适的微气候。本文基于这个微气候存在的假设,运用问卷调查、软件仿真模拟和现场实测去验证图书馆架
随着数字产品在GDP中所占的比例越来越高,数字产品的非法传播给其所有者带来了严重的经济损失。为了加强对数字产品的保护,研究者们研发了许多溯源防泄密的应用,其主要原理是基于信息隐藏算法。而传统的信息隐藏方法仅仅只在其设计的领域是有效的,基本上不具备泛化能力,因此亟须一种有效的方法来加强对数字产品的保护。研究发现,神经网络对输入图像的微小扰动高度敏感,可以利用这一功能来实现信息的隐藏。为了解决图片在传
知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。知识图谱的基本组成单位是“实体-关系-实体”三元组,以及实体及其相关属性-值对,实体间通过关系相互连接,形成网状的知识结构。通过知识图谱,可以实现Web网页链接向概念链接的转变,知识图谱支持用户按主题而不是字符串进行检索,从而实现真正的语义搜索[25]。知识图谱在这些应用中已经显示出重要的价值:(1)问答系统:问答系统将
时空效应是基坑工程的一个重要特点,基坑的稳定性和变形深受基坑的深度、平面面积及形状的影响。作为深基坑工程,在施工过程中一直伴随着变形,为了保障深基坑的安全并及时地掌握其变形情况是有着非常重要的意义。针对上述问题,本文以重庆某深基坑为研究对象,在基于传统深基坑监测理念的基础上,融入建筑信息模型(BIM)、Web端三维模型加载引擎技术、物联网、计算机互联网云平台技术,自主设计研发基于Web的深基坑三维
伴随着经济数字化转型深入,以区块链技术为代表的多方协作技术逐渐普及,如何验证承载着多样化价值的数据有效性早已成为全行业的普遍需求。满足这一需求的关键是引入各式各样数字化契约,而支持契约中数字签名高效验证则是关键中的关键。Hyperledger Fabric是流行的开源许可区块链平台,它包含一种称为背书的机制,用于建立交易的有效性。对于块数据,每个节点都会使用其自己的私钥生成一个独立的数字签名,并将