CN110888897B - 一种根据自然语言生成sql语句的方法及装置 - Google Patents
一种根据自然语言生成sql语句的方法及装置 Download PDFInfo
- Publication number
- CN110888897B CN110888897B CN201911102273.6A CN201911102273A CN110888897B CN 110888897 B CN110888897 B CN 110888897B CN 201911102273 A CN201911102273 A CN 201911102273A CN 110888897 B CN110888897 B CN 110888897B
- Authority
- CN
- China
- Prior art keywords
- natural language
- statement
- generating
- col
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种根据自然语言生成SQL语句的方法及装置,方法包括:1)通过句向量生成方法将自然语言N转换为句向量Ns;2)使用句向量生成方法将待查数据库中所有表的表描述转换为每个表的描述向量Ti;3)计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性;4)选择相关性最大的前n张表作为候选表;5)使用语义分析算法将自然语言N转换为相应的SQL模板,遍历所选取的候选表,将每张候选表套入SQL模板当中,得到SQL语句列表;6)计算SQL语句列表的置信度,根据置信度选取SQL语句作为匹配的语句。本发明数据分析处理能力强,能够从数据库中查询出相应信息。
Description
技术领域
本发明属于数据处理领域,具体涉及一种根据自然语言生成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]表示比较的值的自然语言表示;()表示其中内容所表达的模式可以重复多次。
优选的,作为本发明根据自然语言生成SQL语句的方法一种实施例,步骤5)将每张候选表套入SQL模板当中时,根据表中的列描述,计算[col_x]、[col_y]、[col_z]选择的列的自然语言表示与各列描述之间的相关性,选取相关性最大的列替换[col_x]、[col_y]、[col_z];根据所选列的列描述,判断[value]的值是否需要替换。
优选的,作为本发明根据自然语言生成SQL语句的方法一种实施例,步骤6)计算SQL语句列表的置信度的方法为将步骤3)得到的表相关性乘以步骤5)得到的列相关性。
优选的,作为本发明根据自然语言生成SQL语句的方法一种实施例,步骤3)和步骤5)所述的相关性使用余弦距离或KL散度(Kullback-Leibler divergence)进行计算;
步骤1)和步骤2)中句向量生成方法使用BERT(Bidirectional EncoderRepresentations from Transformers)或MT-DNN(Multi-Task Deep Neural Networks)模型进行计算。
本发明还提供一种根据自然语言生成SQL语句的装置,包括:
句向量Ns转换模块,用于将自然语言N转换为句向量Ns;
表描述向量Ti转换模块,将待查数据库中所有表的表描述转换为每个表的描述向量Ti;
表相关性计算模块,计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性;
候选表选择模块,选择相关性最大的前n张表作为候选表,n为一个预先设定的参数;
SQL语句列表生成模块,使用语义分析算法将自然语言N转换为相应的SQL模板,遍历选取的候选表,将每张候选表套入SQL模板当中,得到SQL语句列表;
SQL语句列表的置信度计算模块,计算SQL语句列表的置信度,选取匹配的语句。
本发明还提供一种终端设备:
包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述根据自然语言生成SQL语句的方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述根据自然语言生成SQL语句的方法的步骤。
相较于现有技术,本发明具有如下的有益效果:根据自然语言和相关的表信息,计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性,首先选择相关性最大的前n张表作为候选表,再将每张候选表套入SQL模板当中,得到SQL语句列表,计算SQL语句列表的置信度,根据置信度选取SQL语句作为匹配的语句,开创性的通过一定的处理将自然语言转换成SQL语句,从而能从数据库中查询出相应信息。本发明的应用前景广泛,数据分析处理能力强,能够赋予业务人员通过自然语言来查询数据库的能力。
附图说明
图1本发明自然语言生成SQL语句的方法实施例流程框图。
具体实施方式
下面结合附图对本发明实施例做进一步的详细说明。
参见图1,本发明根据自然语言生成SQL语句的方法如下:
1)对自然语言N,使用一些句向量生成方法,得到句向量Ns。
2)对待查数据库中所有的表的表描述,使用句向量生成方法得到每个表的描述向量Ti。
3)使用向量相关性计算方法,计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性,选择相关性最大的前n张表为候选,n为一个预先设定的参数。
4)对自然语言N,使用语义分析算法转成相应的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]表示比较的值的自然语言表示;()表示其中内容所表达的模式可以重复多次。
5)遍历步骤3)所选取的候选表,对每张表套入步骤4)的SQL模板中,并根据表中的列描述,计算[col_x]、[col_y]、[col_z]等选择的列的自然语言表示与各列描述之间的相关性,选取相关性最大的列替换[col_x]、[col_y]、[col_z]等;根据所选列的列描述,判断[value]的值是否需要替换,比如表示性别的列可能值不是“男”、“女”而是“1”,“0”。
6)根据步骤5)得到的SQL语句列表,计算其置信度。
置信度按照步骤3)中得到的表相关性乘以步骤5)得到的列相关性进行计算。根据置信度选取前m条SQL语句,做为匹配的语句。m为预设参数,一般为1。
步骤1)和步骤2)中句向量计算方法可以使用BERT(Bidirectional EncoderRepresentations from Transformers)或MT-DNN(Multi-Task Deep Neural Networks)等模型进行计算。步骤3)和步骤5)的相似度计算可以使用余弦距离或KL散度(Kullback-Leibler divergence)进行计算。
本发明开创性的提供了一种根据自然语言生成SQL语句的方法,根据自然语言和相关的表信息,通过一定的处理将自然语言转换成SQL语句,从而能从数据库中查询出相应信息。
本发明根据自然语言生成SQL语句的方法可以通过以下装置进行实现,包括:
句向量Ns转换模块,用于将自然语言N转换为句向量Ns;
表描述向量Ti转换模块,将待查数据库中所有表的表描述转换为每个表的描述向量Ti;
表相关性计算模块,计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性;
候选表选择模块,选择相关性最大的前n张表作为候选表,n为一个预先设定的参数;
SQL语句列表生成模块,使用语义分析算法将自然语言N转换为相应的SQL模板,遍历选取的候选表,将每张候选表套入SQL模板当中,得到SQL语句列表;
SQL语句列表的置信度计算模块,计算SQL语句列表的置信度,选取匹配的语句。
本发明根据自然语言生成SQL语句的方法可以应用于一种终端设备当中,所述的终端设备具有存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,当处理器执行计算机程序时实现上述根据自然语言生成SQL语句的方法的步骤。
本发明还可以应用于一种计算机可读存储介质当中,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述根据自然语言生成SQL语句的方法的步骤。
以上所述的仅仅是本发明的较佳实施例,并不用以对本发明的方案进行任何限制,所属技术领域的技术人员应当理解的是,在不脱离本发明精神和原则的前提下,该技术方案还可以进行若干简单的修改和替换,而这些修改和替换也均属于本发明权利要求的保护范围。
Claims (10)
1.一种根据自然语言生成SQL语句的方法,其特征在于,包括以下步骤:
1)通过句向量生成方法将自然语言N转换为句向量Ns;
2)使用句向量生成方法将待查数据库中所有表的表描述转换为每个表的描述向量Ti;
3)计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性;
4)选择相关性最大的前n张表作为候选表,n为一个预先设定的参数;
5)使用语义分析算法将自然语言N转换为相应的SQL模板,遍历步骤4)所选取的候选表,将每张候选表套入SQL模板当中,得到SQL语句列表;
6)计算SQL语句列表的置信度,根据置信度选取SQL语句作为匹配的语句。
2.根据权利要求1所述根据自然语言生成SQL语句的方法,其特征在于:所述的步骤6)根据置信度选取前m条SQL语句作为匹配的语句,m为一个预先设定的参数。
3.根据权利要求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]表示比较的值的自然语言表示;()表示其中内容所表达的模式可以重复多次。
4.根据权利要求3所述根据自然语言生成SQL语句的方法,其特征在于:
步骤5)将每张候选表套入SQL模板当中时,根据表中的列描述,计算[col_x]、[col_y]、[col_z]选择的列的自然语言表示与各列描述之间的相关性,选取相关性最大的列替换[col_x]、[col_y]、[col_z];根据所选列的列描述,判断[value]的值是否需要替换。
5.根据权利要求4所述根据自然语言生成SQL语句的方法,其特征在于:步骤6)计算SQL语句列表的置信度的方法为将步骤3)得到的表相关性乘以步骤5)得到的列相关性。
6.根据权利要求4所述根据自然语言生成SQL语句的方法,其特征在于:步骤3)和步骤5)所述的相关性使用余弦距离或KL散度(Kullback-Leibler divergence)进行计算。
7.根据权利要求1所述根据自然语言生成SQL语句的方法,其特征在于:
步骤1)和步骤2)中句向量生成方法使用BERT(Bidirectional EncoderRepresentations from Transformers)或MT-DNN(Multi-Task Deep Neural Networks)模型进行计算。
8.一种根据自然语言生成SQL语句的装置,其特征在于,包括:
句向量Ns转换模块,用于将自然语言N转换为句向量Ns;
表描述向量Ti转换模块,将待查数据库中所有表的表描述转换为每个表的描述向量Ti;
表相关性计算模块,计算每个表的描述向量Ti与自然语言句向量Ns之间的相关性;
候选表选择模块,选择相关性最大的前n张表作为候选表,n为一个预先设定的参数;
SQL语句列表生成模块,使用语义分析算法将自然语言N转换为相应的SQL模板,遍历选取的候选表,将每张候选表套入SQL模板当中,得到SQL语句列表;
SQL语句列表的置信度计算模块,计算SQL语句列表的置信度,选取匹配的语句。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述根据自然语言生成SQL语句的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:
所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述根据自然语言生成SQL语句的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102273.6A CN110888897B (zh) | 2019-11-12 | 2019-11-12 | 一种根据自然语言生成sql语句的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102273.6A CN110888897B (zh) | 2019-11-12 | 2019-11-12 | 一种根据自然语言生成sql语句的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888897A CN110888897A (zh) | 2020-03-17 |
CN110888897B true CN110888897B (zh) | 2020-07-14 |
Family
ID=69747352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911102273.6A Active CN110888897B (zh) | 2019-11-12 | 2019-11-12 | 一种根据自然语言生成sql语句的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888897B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888897B (zh) * | 2019-11-12 | 2020-07-14 | 杭州世平信息科技有限公司 | 一种根据自然语言生成sql语句的方法及装置 |
CN111414380B (zh) * | 2020-03-20 | 2023-06-13 | 华泰证券股份有限公司 | 一种中文数据库sql语句生成方法、设备及存储介质 |
CN111506595B (zh) * | 2020-04-20 | 2024-03-19 | 金蝶软件(中国)有限公司 | 一种数据查询方法、系统及相关设备 |
CN111522839B (zh) * | 2020-04-25 | 2023-09-01 | 华中科技大学 | 一种基于深度学习的自然语言查询方法 |
CN111651474B (zh) * | 2020-06-02 | 2023-07-25 | 东云睿连(武汉)计算技术有限公司 | 一种自然语言至结构化查询语言的转换方法及系统 |
CN112559550B (zh) * | 2020-10-30 | 2021-09-07 | 北京智源人工智能研究院 | 基于语义规则和多维模型的多数据源nl2sql系统 |
CN112559690A (zh) * | 2020-12-21 | 2021-03-26 | 广东珠江智联信息科技股份有限公司 | 一种自然语言智能数据建模技术 |
CN112732741B (zh) * | 2020-12-31 | 2024-06-07 | 平安科技(深圳)有限公司 | Sql语句生成方法、装置、服务器及计算机可读存储介质 |
CN113032418B (zh) * | 2021-02-08 | 2022-11-11 | 浙江大学 | 一种基于树状模型的复杂自然语言查询转sql方法 |
CN113515955A (zh) * | 2021-04-26 | 2021-10-19 | 太极计算机股份有限公司 | 基于语义理解的从文本序列到指令序列的在线翻译系统及方法 |
CN112988785B (zh) * | 2021-05-10 | 2021-08-20 | 浙江大学 | 基于语言模型编码和多任务解码的sql转换方法及系统 |
CN115168435A (zh) * | 2022-02-15 | 2022-10-11 | 支付宝(杭州)信息技术有限公司 | 查询数据的方法及装置 |
CN114661963B (zh) * | 2022-05-25 | 2022-09-27 | 阿里巴巴达摩院(杭州)科技有限公司 | 模式链接处理方法、装置以及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888897A (zh) * | 2019-11-12 | 2020-03-17 | 杭州世平信息科技有限公司 | 一种根据自然语言生成sql语句的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033466A (zh) * | 2015-03-20 | 2016-10-19 | 华为技术有限公司 | 数据库查询的方法和设备 |
CN109542929B (zh) * | 2018-11-28 | 2020-11-24 | 山东工商学院 | 语音查询方法、装置和电子设备 |
CN110362798B (zh) * | 2019-06-17 | 2023-12-19 | 平安科技(深圳)有限公司 | 裁决信息检索分析方法、装置、计算机设备和存储介质 |
-
2019
- 2019-11-12 CN CN201911102273.6A patent/CN110888897B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888897A (zh) * | 2019-11-12 | 2020-03-17 | 杭州世平信息科技有限公司 | 一种根据自然语言生成sql语句的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110888897A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888897B (zh) | 一种根据自然语言生成sql语句的方法及装置 | |
CN108959246B (zh) | 基于改进的注意力机制的答案选择方法、装置和电子设备 | |
CN104199965B (zh) | 一种语义信息检索方法 | |
CN107729322B (zh) | 分词方法及装置、建立句子向量生成模型方法及装置 | |
CN110619050B (zh) | 意图识别方法及设备 | |
CN108021547A (zh) | 一种自然语言的生成方法、自然语言生成装置及电子设备 | |
US20220138193A1 (en) | Conversion method and systems from natural language to structured query language | |
CN113127605B (zh) | 一种目标识别模型的建立方法、系统、电子设备及介质 | |
CN111274267A (zh) | 一种数据库查询方法、装置及计算机可读取存储介质 | |
CN111160041B (zh) | 语义理解方法、装置、电子设备和存储介质 | |
CN110866042B (zh) | 表格智能查询方法、装置及计算机可读存储介质 | |
CN110096697B (zh) | 词向量矩阵压缩方法和装置、及获取词向量的方法和装置 | |
CN116932730B (zh) | 基于多叉树和大规模语言模型的文档问答方法及相关设备 | |
CN111339248A (zh) | 数据属性填充方法、装置、设备及计算机可读存储介质 | |
CN117390169B (zh) | 表格数据问答方法、装置、设备及存储介质 | |
JP2022169743A (ja) | 情報抽出方法、装置、電子機器及び記憶媒体 | |
CN111026840A (zh) | 文本处理方法、装置、服务器和存储介质 | |
CN117076636A (zh) | 一种智能客服的信息查询方法、系统和设备 | |
CN117112438A (zh) | 一种性能测试数据构造方法和装置 | |
CN117290478A (zh) | 一种知识图谱问答方法、装置、设备和存储介质 | |
CN116414958B (zh) | 文本语料的生成方法、装置、存储介质及电子设备 | |
CN110287396B (zh) | 文本匹配方法及装置 | |
CN117131204A (zh) | 一种大语言模型协同知识图谱的推理方法及装置 | |
CN117009599A (zh) | 数据检索方法、装置、处理器及电子设备 | |
CN110633363A (zh) | 一种基于nlp和模糊多准则决策的文本实体推荐方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |