[发明专利]一种基于深度学习的自然语言转化为SQL语句的方法在审
申请号: | 202210456388.0 | 申请日: | 2022-04-27 |
公开(公告)号: | CN114880347A | 公开(公告)日: | 2022-08-09 |
发明(设计)人: | 杨晓春;李佳钰;王国仁;张志威 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F16/2452 | 分类号: | G06F16/2452;G06F16/22;G06F16/2455;G06F40/30;G06F40/253;G06N5/02;G06N20/00 |
代理公司: | 北京正阳理工知识产权代理事务所(普通合伙) 11639 | 代理人: | 张利萍 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 自然语言 转化 sql 语句 方法 | ||
1.一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于该方法的步骤包括:
第一步,根据待查询的数据表的名称获得数据表在查询数据库中的数据表所有列名;
第二步,将自然语言文本和第一步得到的数据表所有列名输入到NL2SQL模型中,得到自然语言文本对应的SQL查询语句;
第三步,根据第二步得到的SQL查询语句在查询数据库中进行查询,得到查询结果。
2.根据权利要求1所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
所述的第二步中,NL2SQL模型的获取方法为:
(1)基于英文和中文数据集将自然语言文本和数据表所有列名作为输入,使用BERT预训练模型进行编码,提取自然语言文本的语义信息和语法特征;
(2)使用类别标识符,在模型编码器的输入中对列的属性分为TEXT和REAL两类,将类别标识符通过模型编码器后对应的向量作为列的表示;
(3)使用全局信息编码标识符[CLS],通过注意力机制来对步骤(2)中列的表示进行增强;
(4)根据SQL语句固定的语法结构将步骤(1)得到的自然语言文本的语义信息和语法特征以及步骤(3)得到的增强后的列的表示分为八个子任务,对把八个子任务进行训练,得到基于BERT的NL2SQL模型;
(5)将步骤(4)得到的基于BERT的NL2SQL模型作为教师模型训练学生模型;
(6)使用知识蒸馏方法将设定层数的教师模型中的知识迁移到设定层数的学生模型中;
(7)结合真实的SQL标签,使用教师退火策略增强学生模型的知识蒸馏效果,得到一个轻量级的NL2SQL模型。
3.根据权利要求2所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
八个子任务分别为选择列数量预测子任务、选择列预测子任务、聚合函数预测子任务、条件列的数量和连接符预测子任务、条件列预测子任务、条件间连接符预测子任务、条件值预测子任务、条件列和条件值匹配子任务。
4.根据权利要求1-3任一所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
使用知识蒸馏方法将十二层的教师模型中的知识迁移到设定层数的学生模型中。
5.根据权利要求1-3任一所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
使用知识蒸馏方法将设定层数的教师模型中的知识迁移到四层的学生模型中。
6.根据权利要求5所述的一种基于深度学习的自然语言转化为SQL语句的方法,其特征在于:
使用知识蒸馏方法将设定十二层的教师模型中的知识迁移到四层的学生模型中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210456388.0/1.html,转载请声明来源钻瓜专利网。