本申请公开了一种基于自然语言转SQL的查询系统、方法、设备和介质。该查询系统包括:数据接入层,用于接收用户的自然语言查询请求;预处理模块,用于对用户输入的自然语言进行预处理,得到预处理后的自然语言;深度学习模型,用于将预处理后的自然语言转换为SQL语句;优化模块,用于对SQL语句进行优化,得到优化后的SQL语句;数据库接口模块,用于执行优化后的SQL语句,并返回优化后的SQL语句对应的查询结果;应用层,用于展示查询结果。可见,本申请不需要大量的人工标注数据,降低了系统开发和维护成本,通过多步骤处理和优化算法,快速生成准确的SQL语句,能够提高自然语言查询转换为SQL语句的效率。
【技术实现步骤摘要】
本申请涉及数据库查询和自然语言处理,尤其涉及一种基于自然语言转sql的查询系统、方法、设备和介质。
技术介绍
1、随着大数据时代的到来,数据库在各个领域的应用变得越来越广泛。然而,传统的数据库查询方式要求用户掌握复杂的sql语法,这对于非技术背景的用户来说存在较高的使用门槛。虽然市面上已有一些自然语言转sql的方法,但这些方法通常需要大量的标注数据和长时间的机器学习过程,存在训练时间不可控、系统不可复用等问题,导致自然语言查询转换为sql语句的效率低下。
技术实现思路
1、有鉴于此,本申请提供了一种基于自然语言转sql的查询系统、方法、设备和介质,用以提高自然语言查询转换为sql语句的效率。
2、第一方面,本申请提供了一种基于自然语言转sql的查询系统,所述系统包括:
3、数据接入层,用于接收用户的自然语言查询请求;
4、预处理模块,用于对用户输入的自然语言进行预处理,得到预处理后的自然语言;
5、深度学习模型,用于将所述预处理后的自然语言转换为sql语句,所述深度学习模型包括编码器-解码器结构,其中编码器用于对输入的自然语言进行编码,得到对应的编码结果,解码器用于基于所述编码结果生成sql语句;
6、优化模块,用于对所述sql语句进行优化,得到优化后的sql语句;
7、数据库接口模块,用于执行所述优化后的sql语句,并返回所述优化后的sql语句对应的查询结果;
8、应用层,用于展示所述查询结果。</p>9、可选地,所述数据接入层包括:
10、认证子模块,用于对用户的身份进行验证;
11、输入验证子模块,用于正则表达式和预定义规则验证用户输入的自然语言的合法性;
12、负载均衡子模块,用于使用容器编排工具为所述自然语言查询请求分配系统资源;
13、日志记录子模块,用于记录所述自然语言查询请求。
14、可选地,所述预处理模块包括:
15、分词子模块,用于使用分词器对所述自然语言进行分词,得到分词后的自然语言;
16、词性标注子模块,用于对所述分词后的自然语言进行词性标注,得到标注后的自然语言;
17、实体识别子模块,用于对所述标注后的自然语言进行实体识别,得到识别后的自然语言;
18、停用词去除子模块,用于对所述识别后的自然语言进行停用词去除,得到停用词去除后的自然语言;
19、转换子模块,用于利用预训练的词向量模型将所述停用词去除后的自然语言转换为词向量,作为所述深度学习模型的输入。
20、可选地,所述深度学习模型为基于transformer的预训练语言模型,所述深度学习模型的训练过程包括:
21、获取训练数据集,所述训练数据集包括文本语料;
22、利用所述训练数据集,对所述深度学习模型进行训练,并基于pytorch框架或tensorflow框架优化所述深度学习模型的模型参数,直至达到模型收敛条件时,得到所述深度学习模型。
23、可选地,所述优化模块包括:
24、语法检查子模块,用于对所述sql语句的语法进行检查;
25、语义验证子模块,用于利用机器学习模型验证所述sql语句是否符合用户的意图;
26、查询优化子模块,用于利用优化器优化所述sql语句的查询性能;
27、查询执行计划生成子模块,用于生成所述sql语句的查询执行计划并估算查询代价。
28、可选地,所述数据库接口模块包括:
29、连接池管理子模块,用于根据并发情况动态调整所述查询系统与数据库之间的连接池中连接数量;
30、查询执行子模块,用于使用异步执行模式执行sql查询;
31、缓存子模块,用于将查询计划进行缓存和将结果集进行缓存。
32、可选地,所述应用层包括:
33、查询可视化子模块,用于提供实时预览功能;
34、结果展示子模块,用于展示所述查询结果;
35、权限管理子模块,用于管理用户对不同数据源和功能的访问权限;
36、反馈子模块,用于收集用户对生成的查询结果的评价和改进建议。
37、第二方面,本申请提供了一种自然语言转sql的查询方法,应用于如权利要求如第一方面所述的系统,所述方法包括:
38、接收自然语言查询请求,所述请求包括用户输入的自然语言;
39、对所述自然语言进行预处理,得到预处理后的自然语言;
40、利用深度学习模型将所述预处理后的自然语言转换为sql语句,所述深度学习模型包括编码器-解码器结构,其中编码器用于对输入的自然语言进行编码,得到对应的编码结果,解码器用于基于所述编码结果生成sql语句;
41、对所述sql语句进行优化,得到优化后的sql语句;
42、执行所述优化后的sql语句,并返回所述优化后的sql语句对应的查询结果;
43、展示所述查询结果。
44、第三方面,本申请实施例提供了一种电子设备,包括:
45、存储器,用于存储一个或多个程序;
46、处理器,当所述一个或多个程序被所述处理器执行时,实现如第二方面所述的查询方法。
47、第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质中存储有程序,当所述程序被处理器执行时,实现前述第二方面所述的查询方法。
48、上述技术方案具有如下有益效果:
49、本申请实施例提供了一种基于自然语言转sql的查询系统、方法、设备和介质,该查询系统包括:数据接入层,用于接收用户的自然语言查询请求;预处理模块,用于对用户输入的自然语言进行预处理,得到预处理后的自然语言;深度学习模型,用于将所述预处理后的自然语言转换为sql语句,所述深度学习模型包括编码器-解码器结构,其中编码器用于对输入的自然语言进行编码,得到对应的编码结果,解码器用于基于所述编码结果生成sql语句;优化模块,用于对所述sql语句进行优化,得到优化后的sql语句;数据库接口模块,用于执行所述优化后的sql语句,并返回所述优化后的sql语句对应的查询结果;应用层,用于展示所述查询结果。可见,本申请不需要大量的人工标注数据,降低了系统开发和维护成本,通过多步骤处理和优化算法,快速生成准确的sql语句,能够提高自然语言查询转换为sql语句的效率。
本文档来自技高网...
【技术保护点】
1.一种基于自然语言转SQL的查询系统,其特征在于,所述系统包括:
2.根据权利要求1所述的系统,其特征在于,所述数据接入层包括:
3.根据权利要求1所述的系统,其特征在于,所述预处理模块包括:
4.根据权利要求1所述的系统,其特征在于,所述深度学习模型为基于Transformer的预训练语言模型,所述深度学习模型的训练过程包括:
5.根据权利要求1所述的系统,其特征在于,所述优化模块包括:
6.根据权利要求1所述的系统,其特征在于,所述数据库接口模块包括:
7.根据权利要求1所述的系统,其特征在于,所述应用层包括:
8.一种自然语言转SQL的查询方法,其特征在于,应用于如权利要求1-7所述的系统,所述方法包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8所述的查询方法。
【技术特征摘要】
1.一种基于自然语言转sql的查询系统,其特征在于,所述系统包括:
2.根据权利要求1所述的系统,其特征在于,所述数据接入层包括:
3.根据权利要求1所述的系统,其特征在于,所述预处理模块包括:
4.根据权利要求1所述的系统,其特征在于,所述深度学习模型为基于transformer的预训练语言模型,所述深度学习模型的训练过程包括:
5.根据权利要求1所述的系统,其特征在于,所述优化模块包括:
...
【专利技术属性】
技术研发人员:时孝全,潘心冰,秦利滨,盛健勃,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。