[发明专利]一种根据自然语言生成SQL语句的方法及装置有效
申请号: | 201911102273.6 | 申请日: | 2019-11-12 |
公开(公告)号: | CN110888897B | 公开(公告)日: | 2020-07-14 |
发明(设计)人: | 王世晞;张亮;刘涛 | 申请(专利权)人: | 杭州世平信息科技有限公司;杭州世平信息科技有限公司西安分公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2452;G06K9/62 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 房鑫 |
地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 根据 自然语言 生成 sql 语句 方法 装置 | ||
一种根据自然语言生成SQL语句的方法及装置,方法包括:1)通过句向量生成方法将自然语言N转换为句向量Ns;2)使用句向量生成方法将待查数据库中所有表的表描述转换为每个表的描述向量Ti;3)计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性;4)选择相关性最大的前n张表作为候选表;5)使用语义分析算法将自然语言N转换为相应的SQL模板,遍历所选取的候选表,将每张候选表套入SQL模板当中,得到SQL语句列表;6)计算SQL语句列表的置信度,根据置信度选取SQL语句作为匹配的语句。本发明数据分析处理能力强,能够从数据库中查询出相应信息。
技术领域
本发明属于数据处理领域,具体涉及一种根据自然语言生成SQL语句的方法及装置。
背景技术
随着互联网的发展,新的业务模式不断涌现,有很多新增的业务系统,集聚了一些新的数据。传统模式的数据分析处理对不断新增的数据越来越力不从心。根据自然语言生成SQL(Structured Query Language结构化查询语言)语句的方法可以部分满足数据处理中查询和统计的相关需求,而无需使用人员精通SQL语言或开发相应的查询统计功能。
发明内容
本发明的目的在于针对上述现有技术中数据分析处理能力不足的问题,提供一种根据自然语言生成SQL语句的方法及装置,根据自然语言和相关的表信息,通过将自然语言转换成SQL语句,从而能从数据库中查询出相应信息,方便分析处理不断新增的数据。
为了实现上述目的,本发明有如下的技术方案:
一种根据自然语言生成SQL语句的方法,包括以下步骤:
1)通过句向量生成方法将自然语言N转换为句向量Ns;
2)使用句向量生成方法将待查数据库中所有表的表描述转换为每个表的描述向量Ti;
3)计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性;
4)选择相关性最大的前n张表作为候选表,n为一个预先设定的参数;
5)使用语义分析算法将自然语言N转换为相应的SQL模板,遍历步骤4)所选取的候选表,将每张候选表套入SQL模板当中,得到SQL语句列表;
6)计算SQL语句列表的置信度,根据置信度选取SQL语句作为匹配的语句。
优选的,作为本发明根据自然语言生成SQL语句的方法一种实施例,所述的步骤6)根据置信度选取前m条SQL语句作为匹配的语句,m为一个预先设定的参数,一般为1。
优选的,作为本发明根据自然语言生成SQL语句的方法一种实施例,步骤5)所述的SQL模板形如“select{agg}([col_x])from[table]where[col_y]{op1}[value]({connector}[col_z]{op2}[value])”,其中,{agg}表示聚合函数:sum、avg、count、min、max或者为空,为空表示不进行聚合;{op1}、{op2}表示比较符:=、!=、、、=、=;{connector}表示逻辑连接符:and、or;[col_x]、[col_y]、[col_z]表示选择的列的自然语言表示;[table]表示表名的自然语言表示;[value]表示比较的值的自然语言表示;()表示其中内容所表达的模式可以重复多次。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州世平信息科技有限公司;杭州世平信息科技有限公司西安分公司,未经杭州世平信息科技有限公司;杭州世平信息科技有限公司西安分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911102273.6/2.html,转载请声明来源钻瓜专利网。