CN117033423A - 一种注入最优模式项和历史交互信息的sql生成方法 - Google Patents

一种注入最优模式项和历史交互信息的sql生成方法 Download PDF

Info

Publication number
CN117033423A
CN117033423A CN202311004567.1A CN202311004567A CN117033423A CN 117033423 A CN117033423 A CN 117033423A CN 202311004567 A CN202311004567 A CN 202311004567A CN 117033423 A CN117033423 A CN 117033423A
Authority
CN
China
Prior art keywords
natural language
sql
database
node
column
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311004567.1A
Other languages
English (en)
Inventor
雷思情
桑楠
李贞昊
唐思佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202311004567.1A priority Critical patent/CN117033423A/zh
Publication of CN117033423A publication Critical patent/CN117033423A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24526Internal representations for queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种注入最优模式项和历史交互信息的SQL生成方法,应用于自然语言处理的语义解析领域,针对现有技术难以解决跨领域的复杂中文自然语言生成结构化语言SQL的实际商业智能场景应用的问题;本发明通过预筛选的交叉编码器将与中文自然语言查询相关性较大的最优模式项注入到模型中;然后,使用用户的历史查询简化分步用户的复杂查询;最后,提出了完整的SQL结构预测模型,从根节点root开始以深度优先顺序生成结点序列,融合上一时刻的特征、父结点特征、上下文特征、结点类型特征,最大化自然语言问题所对应正确SQL语句的概率值,生成SQL抽象语法树,再按深度遍历SQL语法树,生成最终的SQL语句。

Description

一种注入最优模式项和历史交互信息的SQL生成方法
技术领域
本发明属于自然语言处理的语义解析领域,特别涉及一种将自然语言转换为结构化的SQL语句的技术。
背景技术
语义解析是一项将自然语言查询映射为相应的机器可执行逻辑形式的任务,将复杂的自然语言转化为SQL(Structured Query Language,结构化查询语言)语句,是语义解析的一个分支,旨在打破非技术人员和数据库之间的壁垒,缩短用户和数据库之间的距离。随着大型的跨域的数据集Spider以及WikiSQL的提出,大大的推动了自然语言转SQL的研究,以上推出的数据集都是基于英文的,通过竞赛发布中文特色数据集TableQA,DuSQL以及翻译英文数据集CSpider大力推动SQL生成技术在中文场景下的发展以及落地。
但目前的研究成果和工作并不能使这项技术真正的用于实际的落地场景中,面临的问题有:(1)中文自然语言的口语形式的复杂查询使机器很难理解用户真实的查询意图。(2)实际落地的应用场景中设计的数据库规模可能很大,导致无法将信息完全输入到模型中。(3)数据库结构的变化导致性能下降。
早期的研究大多为了全面的掌握数据库包含的信息将数据库包含的所有信息都输入到模型中,并且没有考虑到实际应用场景中,用户难以以一句话表达出正确的查询意图,这使得生成复杂的SQL语句生成困难。
发明内容
为解决跨领域的复杂中文自然语言生成结构化语言SQL的实际商业智能场景应用的问题;本发明提出一种注入最优模式项和历史交互信息的SQL生成方法,通过设计一种预筛选的交叉编码器提取最优模式项并且注入用户历史的交互信息简化复杂查询的生成,通过一种SQL语法树的形式深度优先的生成最终正确SQL语句。
本发明采用的技术方案为:一种注入最优模式项和历史交互信息的SQL生成方法,包括:
S1、预筛选交叉编码器,根据输入的自然语言查询和相应的数据库模式项,计算出与自然语言查询最相关的模式项;
S2、融入历史交互信息的SQL编码模块,根据预筛选交叉编码器输出的最优模式项和用户的历史交互信息,构建自然语言与历史查询的交互图,并对得到的交互图进行编码;
S3、基于SQL结构预测模型对步骤S2的编码结果进行解码。
本发明的有益效果:通过本发明提出的一种注入最优模式项和历史交互信息的SQL生成技术,能够取得以下有益效果:
1、本发明在在针对实际应用落地场景中中文自然语言查询转为SQL任务中,可能遇到数据库规模过大,而无法完全输入到模型中,所提出的一种预筛选的交叉编码器优先计算与自然语言查询最为相关的数据库模式项(包括表和列),将最优的模式项包括前k1个数据库表前k2个数据列注入到模型中,保证高召回率的同时防止过多的噪声注入;
2、复杂的SQL语句的生成相对应的自然语言语句也会很复杂,因此本发明提出用户在输入中文自然语言查询语句之前,优先通过在历史交互信息的基础上输入多条的简单相互依赖的查询语句,以生成最后复杂的查询;
3、在基于Transformer结构计算时,添加输入序列分词间的关系,使模型在处理时更加偏向这些预先定义的关系,包括数据库模式项包括数据库表和列之间的关系;中文自然语言查询的分词与数据库模式中的数据表和数据列的链接关系;自然语言查询分词之间的依赖关系;/>本次自然语言查询分词和历史查询分词之间的关系;
4、本发明所提供的中文自然语言的SQL语句生成模型的构建方法,通过语法树的解码方法,按照深度优先顺序生成SQL语句,将解码过程分为生成语法关键字和生成数据库模式两类,根据当前结点类型、父结点类型来决定可能出现的候选项,再经过LSTM计算概率分布,选取概率值最高的候选项。这种解码方式符合SQL语句结构和结构化数据的特点,能规避语法错误,支持生成包括表连接、嵌套查询在内的复杂结构的SQL语句,模型的准确度较高。
附图说明
图1为本发明具体执行实施的技术步骤;
图2为预筛选交叉编码器的多语言编码模块流程示意图;
图3为预筛选交叉编码器计算数据库模式项概率的步骤示例图;
图4为k1和k2的取值示例;
图5为自然语言查询和数据库模式项链接示意图;
图6为自然语言查询轮次之间的共指关系示意图;
图7为最优模式项进行编码得到关系感知的编码向量的流程示意图;
图8为基于SQL语法树的SQL解码过程示意图。
具体实施方式
为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。
如图1所示,本发明的方法包括以下具体步骤:
S1、预筛选交叉编译模型:筛选出符合自然语言所描述的相关性较强的前k1个数据库表和k2个数据库列,k1、k2是两个重要的超参数,需要人为设定,设置的太大可能会包含很多不必要的模式项,太小可能会排除掉一些重要的模式项。避免实际应用场景中大规模的数据库无法完全输入到模型中的问题,设计一个交叉编码器将自然语言查询和数据库模式信息作为序列输入。所述预筛选交叉编译模型包括:数据预处理模块、编码模块、列增强表嵌入模块、损失计算模块。
具体包含以下分步骤:
S11、数据预处理模块包括对自然语言和数据库模式进行预处理。用户输入的中文自然语言可能存在口语化和不规范化的表述,比如2022年可能被表示为“去年”、“22年”、“二零二二年”。金额100000可能被表述为“十万”,但自然语言对应的数值在数据库中表示为规范化的确切的值,因此需要对数值类型的数据如时间、货币、百分数进行统一的处理,表示为一个确切的值。所述对数据库模式进行预处理则是使用语义名称将数据库表和列进行统一处理,如airports数据库表中的id列表示机场的唯一标识符,但对于模型来说无法识别出其真实的含义以及是否是与自然语言查询相关联的列,因此数据库模式均使用语义名称(airport id)使其更接近真实的语义,便于进行后续的筛选的过程。
具体地、对数据库模式项采用语义名称进行替换,在筛选匹配时更能识别数据库项的真实含义,计算中文自然语言与语义表示的数据库项相似度,对模式项进行分类。具体做法是遍历数据库中的数据表以及表中具体的列名,对于数据表使用注释还原数据表的真实语义名称,对于数据列使用数据表的信息和列注释还原真实的语义名称。
S12、编码模块:将数据预处理后的自然语言查询和数据库模式项编码为向量,向量中包含中文的自然语言查询以及历史的查询和英文的数据库模式表示,使用XLM-R(Cross-lingual Language Model RoBERTa)跨语言预训练模型对拼接的输入进行编码。
具体的实施步骤、将一个数据库中的N个数据库表表示为T={t1,t2…tN},将所有的列根据所属的表表示为C,代表所有的表集合。
对于数据库列,表示第i个表ti中的第j个列的向量表示,在列名前添加上列的类型/>表示出第i个表的第j列的类型,为数字形或是字符形。然后将非结构化的自然语言查询以及历史查询和使用语义名称表示的数据库模式拼接为一个融合的特征表示/> 使用|作为分界符。进一步地,得到规范化处理后的融合表征Xcontact作为PLM(Pre-trainedLanguage Model)的输入序列。因为输入序列中既包含中文的自然语言查询又包含英文表示的数据库模式项,本实例采用跨语言模型XLM-R(Cross-lingual Language ModelRoBERTa)进行编码,得到中文自然语言查询和数据库模式中数据库表名和列名的语义名称的语义编码向量。PLM会将模式项分为多个token标识符(比如将“source airport”分为两个词进行编码“source”和“airport”),但作为筛选列的条件时,希望所有的模式项信息融合在一个编码向量上。
因此,实例使用一个BiLSTM层获取被分词的模式项的隐藏状态的编码表示,经过池化将每个模式项表示为一个整体嵌入,池化操作将隐藏状态聚合为每个模式项的固定大小表示,在被池化的表示之上加入一层非线性的全连接层使使模式项能够捕获数据中的复杂关系和模式,在经上述池化操作后将表嵌入表示为每个列嵌入被表示为/>d代表隐藏层大小,/>代表嵌入的维度大小为1×d。详细步骤如图2所示。
S13、列信息增强的表嵌入模块:在自然语言中只显式得提到数据表中某个列名而没有提到表名时,将列信息注入到相应的表编码中。在自然语言中只涉及到与列名相关的信息时也可识别出相应的表,通过堆叠多头缩放点积注意层将列信息注入到表嵌入中,并增加一个特征融合层得到列信息增强的表嵌入。
具体地、例如在图3中示例所描述,自然语言只提及到“北京”而没有提及列所属地表名“airports”,此种情况下筛选表名时可能会漏掉“airports”表,因此本发明提出一种将列信息注入到表嵌入中的方法,使用多头注意力机制将表中列嵌入信息融入到表嵌入中, 其中Ti作为查询矩阵shape为(1xd),C: i既作为键也作为值矩阵大小也为(ni×d),ni为列的个数,h表示有h个头部。通过每个头不同的随机初始化的Q/K/V权重矩阵,使得模型专注于不同位置。分别计算表嵌入对每个列的注意力权重,然后通过加权求和的方式求得通过多头注意力计算得到对列信息敏感的表嵌入/>然后通过一个归一化函数得到列增强的表嵌入/>
S14、所述损失计算模块实际可以看作自然语言问题和表格的相似度任务,因此最终计算的是一个分类任务的损失函数,但因为SQL语句中包含较少的数据库表和列导致分类任务中负样本是正样本的多倍,样本是不均衡的,因此采用focal loss焦点损失函数作为分类的损失函数。以多任务学习的方式形成预筛选的交叉编码器的损失函数,它由表分类损失和列分类损失组成。
详细实现步骤,采用两个不同的MLP(Multi-Layer Perception)多层感知机模块对增强的表嵌入和列嵌入分别进行分类任务,分别计算出与自然语言问题的相关概率
均是可训练的参数,σ(·)表示softmax。对于实际的落地场景,用户所需要编写的SQL查询一般只包含数据库中的少数几个表,因此在筛选数据表和列的时候会出现较多的负样本,为了解决样本不平衡的问题,本发明采用的是焦点损失函数。以任务学习的方式,我们计算数据表分类和数据列分类的损失函数:
N表示所有的表,ni表示第数据库中的第i个列,表示所有的列,而yi是第i个表的真实标签yi=1表示相应的SQL语句中包含此表,否则则为0。/>代表第i个表中的第k列的真实标签,/>则表示对应的SQL语句中涉及到该列,否则为0。
最后我们求得自然语言对不同的表和列的相关性概率,示例设置筛选概率最高的k1个表以及k2个概率最相关的列,k1和k2是很重要的两个超参数,我们需要为k1和k2选择合适的值,以确保高的召回率,同时防止引入过多噪声,并将经过重新排序的数据库模式项还原为原始名称,后续的SQL生成模块使用原始名称进行链接,将得到的最优的模式项作为后续SQL生成模块的输入。步骤如图3所示。
例如查询样例"从北京出发的航班号是多少?",数据库中的表和列如图4所示,括号中表示模式项的语义名称,数据库中表有(airlines,aiports,flights)查询样例表相关度分别为(0.02,0.93,0.95),列的相似度如图4所示,SQL语句主要涉及的列为(airports.city,aiports.airport_code,flghts.flight_number,flights.source_airport),为了提升筛选任务的性能体现,k1和k2的值相对较高,设置相关概率值大于给定阈值80%即可作为相关的模式项,阈值可根据用户查询需求自行设定,因此本实例中筛选的k1为2,k2为4,此处的k1,k2被用于预筛选提取最优模式项,SQL语句中真正涉及的模式项还需根据后续编码部分决定。
S2、所述融入历史交互信息的SQL编码模块,本发明要求用户在输入自然语言查询时,优先地通过在历史查询中检索出更符合本次查询意图的历史生成记录,通过多轮次的交互生成最终的结果。编码数据库模式项和自然语言以及自然语言与历史查询之间的关系,其中包含基于模式项链接和自然语言查询之间的依赖,已有研究证明,将这些关系显式的表示出能够提高模型的表现能力。表现出各关系后便可对基于关系感知图进行编码。具体包含四个模块,自然语言查询和数据库模式编码模块,模式项的链接模块,历史交互链接模块,基于关系感知图编码模块。具体包括以下分步骤:
S21、自然语言查询和数据库编码模块:
此模块可单独进行,也可直接利用所述S1模块的输出结果作为本模块的输入,具体地:上述预筛选地交叉编码器已经得到了经过跨语言的预训练编码器编码的融入最优模式项和历史查询的自然语言和数据库模式项的初始编码向量:
Qi表示第i条历史查询语句,其中|Qi|代表第i条历史自然语言查询中总共的分词数,代表第i条历史查询自然语言查询中的第j个词向量表示,|k1|代表数据库模式中的预筛选的前k1个表,/>代表数据库中第i个表的初始向量表示,对于数据库列,/>表示第i个表中的第j个列的向量表示,在列名前添加上列的类型/>表示出第i个表的第j列的类型,为数字形或是字符形。所有的/>是所有列的个数总和k2
S22、基于模式项的链接主要是针对数据库的表、列以及和自然语言查询之间的链接对齐,所述关系有表与表,表与列,表与自然语言子词,列与自然语言子词,列与列。将自然语言查询中各词之间的关系表示为自然语言查询和数据库模式(包括数据库列和表以及数据库值)之间的关系表示为/>数据库模式项之间的关系比如外键信息等表示为/>所述自然语言和数据库模式被处理为节点,自然语言查询和数据库模式项之间的链接或关系即为边,那么整个输入即构成一张交互图,因为/>句法之间的依赖包含多种关系例如SpaCy工具包中包含的句法依赖多达55种,将所有的依赖全部注入交互异构图中,可能会导致过拟合,因此将句法之间的依赖抽象为三种关系为Forward,Backward,None,分别表示依赖于当前词前面的词,依赖于当前词后面的词,和没有依赖关系,例如“看,这个可爱的小猫”,“猫“前向依赖于“可爱的”,“这个”后向依赖于“小猫”。
进一步优选地,记有向图中的任意两个不同的顶点为顶点A和顶点B;
表示的关系为数据库模式项包括数据库表和列之间的关系,其中的关系/>表示为表1所示:
表1包含的关系
进一步地、关于自然语言查询和数据库模式之间地链接关系如图5所示将自然语言中的“北京”和“航班号”分别与aiports表中的city列和fights表中的fightno列进行链接,要将数据库模式项和自然语言查询中的分词进行正确链接时生成SQL语句的关键,这里也进行了一种重要的值链接方式,“北京”为city列中的值,将问题中提到模式中的值,也将发生对齐。因此/>包含以下关系,分词和数据库模式中完全匹配则用EM(exactmatch)表示,部分匹配则用PM表示(partial match),具体如表2所示:
表2包含的关系
自然语言查询分词之间的依赖关系,对查询问题本身的句法依赖关系分析一直很少被人关注,并且预训练模型能够在一定程度上处理这种依赖关系,但是实验表明显式的标注这些关系对于SQL生成效果有明显的提升。所述表示自然语言查询分词之间的依赖关系,为了防止关系总数太多过拟合,将关系抽象为,当顶点A和顶点B均为自然语言分词,Syntax-F表示A对B有前向句法依赖,Syntax-R表示A对B有反向句法依赖,Syntax-None表示A和B没有句法依赖。所述/>包含的关系如表3所示:
表3包含的关系
最后,所述表示本次自然语言查询分词和历史查询分词之间的关系,用户输入自然语言查询时,如果对于涉及到多个表之间的联合查询,实际应用场景中用户很难一次性的准确的描述出真实的查询意图,因此期望用户在描述需求时使用一种叠加的方式在用户已经查询过的历史记录的基础上产生更复杂的查询,这会使模型能更清楚的了解用户的真实意图,例如用户想要查询“从北京出发到达上海,并且航空公司是中国航空的航班有哪些”,使用历史查询多轮次的生成复杂查询的过程如图6所示:
所述包含的关系有:顶点A是本次自然语言查询的分词,顶点B为历史查询中的分词,Coref_Relation表示B和A具有共指关系,Co_Relation代表在共指关系中被视为一个整体关系如表4所示:
表4 Co_Relation包含的关系
S24、基于关系感知的图编码,上述已经定义了一系列的关系,接下来使模型能够感知到以上预先定义的关系,编码器将由所述的节点和边构建的初步异构图的每条边缘初始化为矢量表示。通过拼接异构图中所有边的特征,设置键关系和值关系/>如公式所示
i和j分别表示第i个节点和第j个节点,Contact(·)表示拼接操作,pij代表所述的某一种关系,是一个可训练的边向量表示,mij是一个图形剪裁的变量。根据输入的自然语言查询,对异构图中的每条边进行一个二元分类,以记录这条边是否需要保留,如果不需要保留,则用mij将该边的向量表示设为由所有零组成的相同维度的向量,R是关系边的总数目。
将所述构建的异构图按照RGAT(Relational graph attention transformers,关系图注意力变换器)进行编码,如下公式:
RGAT由多层多头自注意力堆叠,每一层总共包含H个头,每个头通过初始化不同的WQ,WK,WV专注于向量中不同的位置,在原始自注意力机制的基础上增加了预先定义的关系,构成新的K矩阵为V矩阵为/>分别通过线性变换得到;所示的WQ,WK,WV是在每个头中设置随机初始化的系数矩阵,xi,xj是输入序列Xinit中的第i和第j个分词,/>表示第i个分词对第j个分词计算的注意力得分,/>则为第i个分词对第j个分词的注意力值。最后/>为第h个注意力头的注意力结果,经过H个头,则由多个独立的注意力值拼接并乘以Wo参数矩阵得到最后的多头注意力值。
之后经过第一加和归一化单元将第i个分词结果的多头注意力值与第i个分词结果的复合语义编码向量相加后进行归一化后得到输入到前馈神经网络中进行处理;之后/>在经过线性层后经ReLU激活函数处理,再经过一层线性层得到输出再与第一加和归一化单元得到的结果/>相加,具体为:对每一个分词均按上述进行处理生成yi,所有分词的yi向量构成矩阵即得到最终的关系编码Xencode,总体过程如图7所示。
S3、SQL解码模块
SQL解码是由关系编码张量Xencode深度优先地基于语法树的SQL解码,提出了完整的SQL结构预测模型,语法树结构的特征是按照SQL语法规则,从根节点root开始以深度优先顺序生成结点序列,融合上一时刻的特征、父结点特征、上下文特征、结点类型特征,最大化自然语言问题所对应正确SQL语句的概率值首先生成SQL抽象语法树,然后通过LSTM网络输出一连串的解码器动作,树结构的解码器的LSTM更新状态的公式为:
其中mt是LSTM细胞状态,ht是LSTM在第t步的输出,是当前节点父节点的输出。at-1是前一个动作的嵌入表示(行为动作有APPLYRULE,SELECTTABLE和SELECTCOLUMN),/>表示当前节点父节点的行为zt是上下文表示,pt是当前节点的语法树父节点,/>是当前节点类型的嵌入表示,模型的目标是最大化预测正确SQL语句的概率值即:Prob表示条件概率,在给定qpre,Xencode的前提下计算at的概率,apre表示之前的所有预测行为序列。
包含以下分步骤:
S31、扩展非叶子节点、当生成的节点是非叶子节点时,将该节点扩展为语法规则,成为APPLYRULE,APPLYRULE意为应用语法规则;公式为如下:其中g(.)是一个以Tanh作为激活函数的2层MLP
Prob(at=APPLYRULE[R]|apre,Xencode)=softmax(g(ht))
softmax(·)为归一化指数函数;
S32、生成叶子节点,生成的节点为叶子节点,那么就从数据库模式中选择出一个表名或是列名分别成为SELECTTABLE和SELECTCOLUMN,公式为相同的计算:λj为权重向量,使表的嵌入表示
例如生成如下SQL语句:
SELECT COUNT(*)
FROM students
WHERE name....
生成过程如图8所示,从语法树的根节点root开始,按照深度优先的顺序生成结点,students是一个数据表名,name为该表中的一个列名。图8生成SQL语法关键字或结束符[END]的动作即为APPLYRULE;生成数据表名、数据列名的动作,分别称为SELECTTABLE和SELECTCOLUMN。每个结点的后继结点可能的类型由SQL语法决定。所有分支都最终以[END]结束时,就完成SQL解码过程,这时按照深度优先的顺序遍历语法树,就能得到唯一的SQL语句,将SQL语句交由数据库执行引擎返回SQL查询结果。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (8)

1.一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,包括:
S1、预筛选交叉编码器,根据输入的自然语言查询和相应的数据库模式项,计算出与自然语言查询最相关的模式项;
S2、融入历史交互信息的SQL编码模块,根据预筛选交叉编码器输出的最优模式项和用户的历史交互信息,构建自然语言与历史查询的交互图,并对得到的交互图进行编码;
S3、基于SQL结构预测模型对步骤S2的编码结果进行解码。
2.根据权利要求1所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S1具体包括:
S11、对输入的自然语言查询中的数值项进行规范化处理,对数据库模式项采用语义名称进行替换;
S12、将经步骤S11处理后的自然语言查询和数据库模式项进行拼接后输入跨语言预训练模型,得到被分词的模式项的隐藏状态的编码表示;
将被分词的模式项的隐藏状态的编码表示采用BiLSTM进行池化,将每个模式项表示为一个整体嵌入,池化处理后的结果输入一层非线性的全连接层,得到表嵌入,列嵌入;
S13、通过堆叠多头缩放点积注意层将列嵌入信息注入到表嵌入中,并增加一个特征融合层得到列嵌入信息增强的表嵌入;
S14、采用两个不同的多层感知机模块对列嵌入和增强的表嵌入分别进行分类任务,计算出自然语言对不同的列和表的相关概率;根据自然语言对不同的列和表的相关概率筛选概率最高的k1个表以及k2个概率最相关的列,得到最优的模式项。
3.根据权利要求2所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S11所述对数据库模式项采用语义名称进行替换,具体为:遍历数据库中的数据表以及表中具体的列名,对于数据表使用注释还原数据表的真实语义名称,对于数据列使用数据表的信息和列注释还原真实的语义名称。
4.根据权利要求3所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S2具体包括:
S21、根据优模式项和历史查询得到自然语言和数据库模式项的初始编码向量;
S22、将自然语言和数据库模式被处理为节点,自然语言查询和数据库模式项之间的链接或关系处理为边,构建的初步交互图;
S23、通过拼接交互图中所有边的特征,设置键关系和值关系/>
S24、将经步骤S23处理的异构图按照关系图注意力变换器进行编码,得到最终的关系编码Xencode
5.根据权利要求4所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S22所述自然语言查询和数据库模式项之间的链接或关系,具体包括:自然语言查询中各词之间的关系表示为自然语言查询和数据库模式之间的关系表示为数据库模式项之间的关系表示为/>
6.根据权利要求5所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,句法之间的依赖包括:依赖于当前词前面的词、依赖于当前词后面的词以及没有依赖关系。
7.根据权利要求5所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,步骤S3具体包括以下分步骤:
S31、从根节点root开始以深度优先顺序生成结点序列,若生成的节点是非叶子节点时,则执行步骤S32,若生成的节点为叶子节点,则执行步骤S33;
S32、将非叶子节点扩展为语法规则:
Prob(at=APPLYRULE[R]|apre,Xencode)=softmax(g(ht))
其中,g(.)是一个以Tanh作为激活函数的2层多层感知机模块,APPLYRULE表示应用语法规则,apre表示之前的所有预测行为序列,ht是LSTM在第t步的输出,at表示当前节点的嵌入表示;
S33、从数据库模式中选择出一个表名或是列名分别成为SELECTTABLE和SELECTCOLUMN,公式为相同的计算:λj为权重向量,使表的嵌入表示
S34、当所有分支都最终以[END]结束时,生成SQL抽象语法树;然后通过LSTM网络对SQL抽象语法树进行解码。
8.根据权利要求7所述的一种注入最优模式项和历史交互信息的SQL生成方法,其特征在于,LSTM网络更新状态的公式为:
其中,mt是LSTM细胞状态,ht是LSTM在第t步的输出,是当前节点父节点的输出,at-1是前一个动作的嵌入表示,/>表示当前节点父节点的行为,zt是上下文表示,pt是当前节点的语法树父节点,/>是当前节点类型的嵌入表示。
CN202311004567.1A 2023-08-10 2023-08-10 一种注入最优模式项和历史交互信息的sql生成方法 Pending CN117033423A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311004567.1A CN117033423A (zh) 2023-08-10 2023-08-10 一种注入最优模式项和历史交互信息的sql生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311004567.1A CN117033423A (zh) 2023-08-10 2023-08-10 一种注入最优模式项和历史交互信息的sql生成方法

Publications (1)

Publication Number Publication Date
CN117033423A true CN117033423A (zh) 2023-11-10

Family

ID=88631235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311004567.1A Pending CN117033423A (zh) 2023-08-10 2023-08-10 一种注入最优模式项和历史交互信息的sql生成方法

Country Status (1)

Country Link
CN (1) CN117033423A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117591543A (zh) * 2024-01-19 2024-02-23 成都工业学院 一种中文自然语言的sql语句生成方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117591543A (zh) * 2024-01-19 2024-02-23 成都工业学院 一种中文自然语言的sql语句生成方法和装置
CN117591543B (zh) * 2024-01-19 2024-04-02 成都工业学院 一种中文自然语言的sql语句生成方法和装置

Similar Documents

Publication Publication Date Title
CN108519890B (zh) 一种基于自注意力机制的鲁棒性代码摘要生成方法
Wang et al. Learning to extract attribute value from product via question answering: A multi-task approach
CN110020438B (zh) 基于序列识别的企业或组织中文名称实体消歧方法和装置
Qin et al. A survey on text-to-sql parsing: Concepts, methods, and future directions
CN110765240B (zh) 多相关句子对的语义匹配评估方法
Chen et al. ShadowGNN: Graph projection neural network for text-to-SQL parser
CN112487190B (zh) 基于自监督和聚类技术从文本中抽取实体间关系的方法
CN113761893B (zh) 一种基于模式预训练的关系抽取方法
CN115048447B (zh) 一种基于智能语义补全的数据库自然语言接口***
CN115145551A (zh) 一种面向机器学习应用低代码开发的智能辅助***
CN117033423A (zh) 一种注入最优模式项和历史交互信息的sql生成方法
CN116561251A (zh) 一种自然语言处理方法
Jia et al. Hybrid neural tagging model for open relation extraction
CN114841353A (zh) 一种融合句法信息的量子语言模型建模***及其应用
Sun et al. Knowledge guided attention and graph convolutional networks for chemical-disease relation extraction
CN117077655A (zh) 基于情感知识增强的方面级情感三元组提取方法及***
CN115408506B (zh) 联合语义解析和语义成分匹配的nl2sql的方法
Liu et al. Chinese named entity recognition based on BERT with whole word masking
CN113807079A (zh) 一种基于序列到序列的端到端实体和关系联合抽取方法
CN116629361A (zh) 基于本体学习和注意力机制的知识推理方法
CN114510569A (zh) 基于ChineseBERT模型和注意力机制的化工突发事件新闻分类方法
CN113822018A (zh) 实体关系联合抽取方法
Xiao et al. Chapter-level entity relationship extraction method based on joint learning
Shivashankar et al. Reaching out for the Answer: Answer Type Prediction.
Jiang et al. Bidirectional LSTM-CRF models for keyword extraction in Chinese sport news

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination