一种基于深度学习的NL2SQ解析方法技术

技术编号:32859036 阅读:10 留言:0更新日期:2022-03-30 19:35
本发明专利技术属于智能搜索技术领域,尤其是一种基于深度学习的NL2SQ解析方法,现提出以下方案,包括NL2SQL解析模型,所述NL2SQL解析模型包括有编码器,且编码器为NLP预训练模型,所述NL2SQL解析模型构建了适配于NL2SQL任务的网络架构,且NL2SQL解析模型将公开数据与自标注数据进行标注格式进行了统一。本发明专利技术通过模型输入添加[SEL]、[GRP]、[ORD],特殊标记用以辅助模型解析的方法、模型的两次计算架构、两次预测之间的信息融合方式,设置的网络架构不限于源数据形式,当数据改变时,不需要变动网络结构,该网络架构基本包含了SQL的所有基础语法,覆盖更广,更符合落地需求。更符合落地需求。更符合落地需求。

【技术实现步骤摘要】
一种基于深度学习的NL2SQ解析方法


[0001]本专利技术涉及智能搜索
,尤其涉及一种基于深度学习的NL2SQ解析方法。

技术介绍

[0002]智能化搜索中,计算机理解用户查询意图的过程成为了业界研究的热点,而在理解用户意图之前,首先需要把自然语言转化为计算机可以理解并生成准确表达语句语义的可执行程序式语言。
[0003]NaturalLanguagetoSQL(NL2SQL)是将用户的自然语言语句转换成计算机可读懂、可运行、符合计算机规则语义表示的一种方法,NL2SQL旨在将自然语言转换成数据库结构化查询语言(NL2SQL),将自然语言转换为SQL的关键在于根据自然语言(Query)以及对应的数据表内容(表列的含义)解析出上述结构化语句各个对应部分是什么。
[0004]目前主流的方法是通过深度学习来达到解析目的,但目前的深度学习网络框架存在以下几个问题:
[0005](1)网络架构的某些部分严重依赖于数据的分布,当数据源改变时,模型不适用,需要重新调整网络架构进行训练;
[0006](2)网络架构对于表列名的运用上只是当成输入的一部分,让模型去学习Query和列名的相关性,并没有更多的考虑表列名的含义;
[0007](3)目前公开的网络架构都是在单表上的实验,且任务中不涉及上述标准结构中的GROUP、HAVING以及多表联合查询(JOIN)等难度较高但业务中较为常用的语法,所以无法评估目前公开网络的效果;
[0008]基于以上事实及业务需要,本专利提出了一种基于深度学习的NL2SQ解析方法。

技术实现思路

[0009]基于
技术介绍
中提出的目前主流的方法是通过深度学习来达到解析目的,但目前的深度学习网络框架存在以下几个问题:网络架构的某些部分严重依赖于数据的分布,当数据源改变时,模型不适用,需要重新调整网络架构进行训练;网络架构对于表列名的运用上只是当成输入的一部分,让模型去学习Query和列名的相关性,并没有更多的考虑表列名的含义;目前公开的网络架构都是在单表上的实验,且任务中不涉及上述标准结构中的GROUP、HAVING以及多表联合查询(JOIN)等难度较高但业务中较为常用的语法,所以无法评估目前公开网络的效果的技术问题,本专利技术提出了一种基于深度学习的NL2SQ解析方法。
[0010]本专利技术提出的一种基于深度学习的NL2SQ解析方法,包括NL2SQL解析模型,所述NL2SQL解析模型包括有编码器,且编码器为NLP预训练模型,所述NL2SQL解析模型构建了适配于NL2SQL任务的网络架构,且NL2SQL解析模型将公开数据与自标注数据进行标注格式进行了统一,统一后的格式具体为:
[0011]a).question为查询的Query;
[0012]b).select中的元素为Query目标SQL中SELECT后的列名;
[0013]c).agg为select中列名对应的聚合函数;
[0014]d).cond_op为Query目标SQL中WHERE多条件的连接符;
[0015]e).conds为Query目标SQL中WHERE条件,形式为[”表列名”,“列条件操作符”,“列筛选值”];
[0016]f).order为Query目标SQL中的排序表列,“desc”为降序,默认为升序;
[0017]g).group为Query目标SQL中分组操作列;
[0018]h).limit为Query目标SQL中限制操作列;
[0019]i).table_id为Query目标SQL中涉及的数据表id。
[0020]优选地,将每条所述自标注数据进行格式化,构成模型的标准输入形式,[CLS]、[SEP]是预训练模型的标注输入,[SEL]、[GRP]、[ORD]分别是SELECT、GROUP、ORDER的特殊标记,是所述Query经过预训练模型分词后的第i个token,[TCC]、[TBT]为每一个表列名添加的特殊标记,分别用来捕获列名的语意以及添加列的数据类型信息,是第j个表列经过训练模型分词后的第k个token;
[0021]为了更好增加列名和Query的相关性,我们从列名的含义描述中抽取前三个关键词添加到列名上,例如原始列名是“姓名”,其含义描述为“公司员工及销售人员的姓名信息”,从含义抽取的关键词为“员工、销售”,所以最终列名为“员工销售姓名”。
[0022]优选地,对每条数据经过BERT编码后,得到每个token的编码,从这些token中取出所有对应的编码,作为是否出现在最后SQL语句中的判断依据;
[0023]训练时,在这些token的编码上接一层FFN来做分类任务计算损失;
[0024]推断时,当该FFN的sigmoid值大于0.5时,则进行到最后的SQL语句中,反之,不进入。
[0025]优选地,经过所述SQL语句中的判断依据的判断后,会有多个列被选入最后的SQL中,为了继续判定这些选中列在最后SQL的作用,将对应的编码结果和文字描述经过LSTM编码后的向量以相加,通过标准化条件将该信息注入到所述SQL语句中的判断依据中token的编码中,并将列对应的编码结果与所述SQL语句中的判断依据中所有token编码进行哈达姆乘积并和经过标准化条件注入后token编码进行连接,作为下一步预测的编码结果。
[0026]优选地,所述SQL语句中的判断依据中被选中的列可以是SELECT、WHERE、GROUP、ORDER中任一结构,并且不同的结构后面会有不同操作符,例如SELECT的聚合函数,WHERE的条件操作符(“>”,“<”,“=”,“!=”)等,于是将结构及其的操作进行合并,例如第一个类别代码SELECT结构并且不使用聚合函数,第二个类别代表SELECT结构并且使用COUNT聚合函数,第N个类别代表WHERE结构后使用“=”操作符,第N+1个类别代表WHERE结构后使用“>”操作符等。为兼容WHERE结构后面的列筛选值是Query中连续token,例如“张飞飞的业绩”,则WHERE后的筛选条件为(“姓名”,“=”,“张飞飞”),我们采用首尾指针的方式对每一个token进行分类,对于则将首尾指针标记为同样的位置,训练时,将所有列及列数据类型标记MASK掉,不计入损失。
[0027]优选地,当所述WHERE出现多个筛选条件时,这些条件的连接符通过[CLS]的编码结果接FFN进行分类。
[0028]优选地,所述token都是分类任务,且类别会出现长尾分布,采用FocalLoss作为损失函数,并对多个子任务联合训练。
[0029]优选地,在预测时,模型输入目标SQL的各个结构部分,通过该结构解析成最终的目标SQL。
[0030]本专利技术中的有益效果为:
[0031]该一种基于深度学习的NL2SQ解析方法,本申请通过模型输入添加[SEL]、[GRP]、[ORD],特殊标记用以辅助模型解析的方法、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于深度学习的NL2SQ解析方法,包括NL2SQL解析模型,所述NL2SQL解析模型包括有编码器,且编码器为NLP预训练模型,所述NL2SQL解析模型构建了适配于NL2SQL任务的网络架构,且NL2SQL解析模型将公开数据与自标注数据进行标注格式进行了统一,统一后的格式具体为:a).question为查询的Query;b).select中的元素为Query目标SQL中SELECT后的列名;c).agg为select中列名对应的聚合函数;d).cond_op为Query目标SQL中WHERE多条件的连接符;e).conds为Query目标SQL中WHERE条件,形式为[”表列名”,“列条件操作符”,“列筛选值”];f).order为Query目标SQL中的排序表列,“desc”为降序,默认为升序;g).group为Query目标SQL中分组操作列;h).limit为Query目标SQL中限制操作列;i).table_id为Query目标SQL中涉及的数据表id。2.根据权利要求1所述的一种基于深度学习的NL2SQ解析方法,将每条所述自标注数据进行格式化,构成模型的标准输入形式,[CLS]、[SEP]是预训练模型的标注输入,[SEL]、[GRP]、[ORD]分别是SELECT、GROUP、ORDER的特殊标记,是所述Query经过预训练模型分词后的第i个token,[TCC]、[TBT]为每一个表列名添加的特殊标记,分别用来捕获列名的语意以及添加列的数据类型信息,是第j个表列经过训练模型分词后的第k个token。3.根据权利要求2所述的一种基于深度学习的NL2SQ解析方法,对每条数据经过BERT编码后,得到每个token的编码,从这些token中取出所有对应的编码,作为是否出现在最后SQL语句中的判断依据;训练时,...

【专利技术属性】
技术研发人员:赵继帆张杨
申请(专利权)人:北京尘锋信息技术有限公司
类型:发明
国别省市:

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

1