一种Text-to-SQL方法、系统及介质技术方案

技术编号:38365762 阅读:12 留言:0更新日期:2023-08-05 17:32
一种Text

【技术实现步骤摘要】
一种Text

to

SQL方法、系统及介质


[0001]本专利技术涉及数据库
,具体为一种Text

to

SQL方法、系统及介质。

技术介绍

[0002]文本到SQL生成任务(Text

to

SQL)是自然语言处理领域一个备受关注的研究方向,文本到SQL生成任务具体为系统根据用户的问题,生成与问题语义一致的SQL语句,并在数据库中执行该语句得到相应的结果。
[0003]目前,对于Text

to

SQL的研究大多是针对端到端的生成方式,如基于固定模板的SQL生成(SQLova、M

SQL等)、基于文法和转移系统的SQL生成(RAT

SQL等)以及基于预训练模型和约束解码的SQL生成(PICARD等)。然而,现有的模型架构应用都有一定的局限性,例如只能局限于单个表格、单一领域或单轮的Text

to

SQL问题。虽现技术中的PICARD模型使用Transformer完成文本到SQL的生成任务,但是该模型结构较为复杂,难以应用到多表格、多领域、多轮的应用场景。并且,在复杂应用场景下,由于问题以及数据库结构长度较长时,会导致Text

to

SQL中存在准确率低的问题。

技术实现思路

[0004]本专利技术的目的是:针对Text

to

SQL中由于长度较长的问题以及数据库结构,导致了Text

to

SQL中存在准确率低的问题,提出一种Text

to

SQL方法、系统及介质。
[0005]本专利技术为了解决上述技术问题采取的技术方案是:
[0006]一种Text

to

SQL方法,包括以下步骤:
[0007]步骤一:获取Text

to

SQL问题以及数据库结构,将Text

to

SQL问题和数据库结构转换为线性文本后进行拼接,得到输入信息;
[0008]步骤二:针对输入信息,在输入信息中查找列名,并在列名后面标注类别信息;
[0009]步骤三:将标注类别信息后的输入信息进行编码,得到编码向量V,基于编码向量V,利用自回归解码,得到结果文本;
[0010]步骤四:获取结果文本中所有的单词以及单词的顺序,然后针对结果文本中的每个单词,依次判断当前单词与下一单词之间是否满足SQL的语法关系,若满足,则保留当前单词,
[0011]步骤五:将步骤四中保留的单词拼接成目标文本,并基于目标文本,统计目标文本中除FROM关键字之外的表名,并将目标文本中除FROM关键字之外的表名和FROM关键字内的表名进行比较,并基于比较结果,对FROM关键字内的缺失表名进行补充。
[0012]进一步的,所述将标注类别信息后的输入信息进行编码,具体包括:
[0013]利用预训练模型对标注类别信息后的输入信息进行编码,所述预训练模型为BART算法模型或T5算法模型。
[0014]进一步的,所述基于编码向量V,利用自回归解码,得到结果文本的具体步骤为:
[0015]通过自回归解码,在每轮中选取权重最大的单词作为当前生成的单词,进而得到
结果文本。
[0016]进一步的,所述通过自回归解码,在每轮中选取权重最大的单词作为当前生成的单词,进而得到结果文本具体步骤为:
[0017]步骤3.1:基于编码向量V,通过线性变换将编码向量V映射为词向量,其中词向量的维度数量与单词表中对应单词的数量一致,词向量每一维上的数值表示该维对应的单词被选中的权重,选择权重最大的维度对应的单词,作为目标单词,对目标单词进行编码,得到编码向量E,然后将编码向量E和编码向量V进行拼接后进行映射,得到新的编码向量;
[0018]步骤3.2:利用新的编码向量替换步骤三一中的编码向量V,并重复上述步骤,直至生成终止符,根据所有轮中确定出的目标单词,及相邻轮的顺序确定结果文本。
[0019]进一步的,所述步骤四中,若当前单词与下一单词之间不满足SQL的语法关系时,则将当前单词对应轮中所有权重进行排序,并从次大权重对应的单词开始依次替换当前单词,直至替换后的单词与下一单词之间满足SQL的语法关系。
[0020]进一步的,所述类别信息包括附属关系、外键关系、表关系、内结构信息、名称链接信息、数值链接信息以及历史信息。
[0021]进一步的,所述在列名后面标注类别信息,具体为:将列名后面的附属关系标注为BL、列名后面的外键关系标注为FK、列名后面的表关系标注为FT、列名后面的内结构信息标注为TK、列名后面的名称链接信息标注为SL、列名后面的数值链接信息标注为EL以及列名后面的历史信息标注为HI。
[0022]一种Text

to

SQL系统,包括:输入信息获取模块、标注模块、编码模块、语法判断模块以及补全模块;
[0023]所述输入信息获取模块用于获取Text

to

SQL问题以及数据库结构,将Text

to

SQL问题和数据库结构转换为线性文本后进行拼接,得到输入信息;
[0024]所述标注模块用于针对输入信息,在输入信息中查找列名,并在列名后面标注类别信息;
[0025]所述编码模块用于将标注类别信息后的输入信息进行编码,得到编码向量V,基于编码向量V,利用自回归解码,得到结果文本;
[0026]所述语法判断模块用于获取结果文本中所有的单词以及单词的顺序,然后针对结果文本中每个单词,依次判断当前单词与下一单词之间是否满足SQL的语法关系,若满足,则保留当前单词;
[0027]所述补全模块用于将保留的单词拼接成目标文本,并基于目标文本,统计目标文本中除FROM关键字之外的表名,并将目标文本中除FROM关键字之外的表名和FROM关键字内的表名进行比较,并基于比较结果,对FROM关键字内的缺失表名进行补充。
[0028]进一步的,所述编码模块用于基于编码向量V,利用自回归解码,得到结果文本的具体步骤为:
[0029]所述编码模块用于通过自回归解码,在每轮中选取权重最大的单词作为当前生成的单词,进而得到结果文本。
[0030]一种Text

to

SQL介质,所述介质中包括计算机可读程序,所述计算机可读程序用于执行权利要求1至权利要求7中任一项的步骤。
[0031]本专利技术的有益效果是:
[0032]本申请针对问题以及数据库结构长度较长时存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Text

to

SQL方法,其特征在于包括以下步骤:步骤一:获取Text

to

SQL问题以及数据库结构,将Text

to

SQL问题和数据库结构转换为线性文本后进行拼接,得到输入信息;步骤二:针对输入信息,在输入信息中查找列名,并在列名后面标注类别信息;步骤三:将标注类别信息后的输入信息进行编码,得到编码向量V,基于编码向量V,利用自回归解码,得到结果文本;步骤四:获取结果文本中所有的单词以及单词的顺序,然后针对结果文本中的每个单词,依次判断当前单词与下一单词之间是否满足SQL的语法关系,若满足,则保留当前单词,步骤五:将步骤四中保留的单词拼接成目标文本,并基于目标文本,统计目标文本中除FROM关键字之外的表名,并将目标文本中除FROM关键字之外的表名和FROM关键字内的表名进行比较,并基于比较结果,对FROM关键字内的缺失表名进行补充。2.根据权利要求1所述的一种Text

to

SQL方法,其特征在于,所述将标注类别信息后的输入信息进行编码,具体包括:利用预训练模型对标注类别信息后的输入信息进行编码,所述预训练模型为BART算法模型或T5算法模型。3.根据权利要求1所述的一种Text

to

SQL方法,其特征在于,所述基于编码向量V,利用自回归解码,得到结果文本的具体步骤为:通过自回归解码,在每轮中选取权重最大的单词作为当前生成的单词,进而得到结果文本。4.根据权利要求3所述的一种Text

to

SQL方法,其特征在于,所述通过自回归解码,在每轮中选取权重最大的单词作为当前生成的单词,进而得到结果文本具体步骤为:步骤3.1:基于编码向量V,通过线性变换将编码向量V映射为词向量,其中词向量的维度数量与单词表中对应单词的数量一致,词向量每一维上的数值表示该维对应的单词被选中的权重,选择权重最大的维度对应的单词,作为目标单词,对目标单词进行编码,得到编码向量E,然后将编码向量E和编码向量V进行拼接后进行映射,得到新的编码向量;步骤3.2:利用新的编码向量替换步骤三一中的编码向量V,并重复上述步骤,直至生成终止符,根据所有轮中确定出的目标单词,及相邻轮的顺序确定结果文本。5.根据权利要求1所述的一种Text

to

SQL方法,其特征在于,所述步骤四中,若当前单词与下一单词之间不...

【专利技术属性】
技术研发人员:车万翔王丁子睿窦隆绪王佳琪夏文岳陶洪铸刘金波李大鹏付聪黄运豪张杰商敬安潘琦刘涛贺春
申请(专利权)人:中国电力科学研究院有限公司国网天津市电力公司国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1