CN111414380B - 一种中文数据库sql语句生成方法、设备及存储介质 - Google Patents
一种中文数据库sql语句生成方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111414380B CN111414380B CN202010201202.8A CN202010201202A CN111414380B CN 111414380 B CN111414380 B CN 111414380B CN 202010201202 A CN202010201202 A CN 202010201202A CN 111414380 B CN111414380 B CN 111414380B
- Authority
- CN
- China
- Prior art keywords
- sql
- condition
- sql statement
- sentences
- generating
- 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/245—Query processing
- G06F16/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种中文数据库SQL语句生成方法、设备及存储介质,包括如下步骤:根据任务种类,将SQL语句的构建拆解为若干子任务;利用语义表示模型对自然语言查询语句和待查询表列名进行语义编码后,分别针对各子任务进行有先后、有联合地预测;组合预测结果以生成所述SQL语句。本发明实施例提供的方法能够有效解决现有方案中存在的泛化性、扩展性、便捷性较差等技术问题。通过前后处理和深度学习模型的结合,实现了端到端的从自然语言语句到SQL语句的转换。同时,通过对SQL语句进行子任务的拆解,降低了模型预测的复杂度,提高了SQL语句生成的准确性。
Description
技术领域
本发明涉及一种中文数据库SQL语句生成方法、设备及存储介质,属于语言处理技术领域。
背景技术
人机交互的本质是数据的交互,信息的交互。在这个信息***的时代,数据正以前所未有的速度增长。经过整理落库后的结构化数据,需要相应的机器语言查询获取后才能发挥价值。但对非专业人员而言,这些机器语言无疑是不友好且不自然的,极大地限制了用户与数据交互的快捷程度。因此,如何根据用户需要,快速便捷地生成SQL语句并给出查询结果,对于提升用户体验具有重要意义。
现针对当前阶段数据交互过程中SQL语句生成常用的方法及存在的不足具体陈述如下:
1、正则表达式规则提取:将自然语言问句进行分词,正则提取匹配关键词,将关键词填入预先设置的SQL语句模板,生成SQL语句并查询。基于正则表达式关键词匹配提取的生成方式,一方面泛化性较差,句式表达的变化会导致关键词失效,另一方面,扩展性较差,需要持续地根据需求,人工维护规则库和模板库;
2、基于筛选条件的用户点选:预先设计基于条件筛选的专门界面,让用户通过点选不同条件来生成SQL语句并查询。基于筛选条件用户点选的方式,不仅需要开发人员开发可供用户点选的界面,工作量较大,同时还需要用户在界面操作,多次点选确认后才能获取想要的结果,操作流程和等待时间较长;
3、Sqlnet、X-SQL等深度学习模型:将SQL语句拆解为6个子任务,利用Bert进行语义编码,分任务输出结果,整合结果构建SQL语句并查询。基于Sqlnet、X-SQL等模型的方式,只将SQL的构建拆解成了6个子任务,既无法选取多个列和聚合函数,也无法解决条件列和条件值多对多的情况。更重要的是,它们是针对英文数据设计的,无法很好地处理句式变化导致的条件值不显式地存在句中的情况。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种中文数据库SQL语句生成方法、设备及存储介质,能够有效解决现有技术中存在的泛化性,扩展性,便捷性较差的技术问题。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种中文数据库SQL语句生成方法,包括如下步骤:
根据任务种类,将SQL语句的构建拆解为若干子任务;
利用语义表示模型对自然语言查询语句和待查询表列名进行语义编码后,分别针对各子任务进行有先后、有联合地预测;
组合预测结果以生成所述SQL语句。
结合第一方面,进一步的,所述方法还包括对所述自然语言查询语句进行归一化处理;
所述归一化处理包括:统一相同实体的不同称谓;将中文表达的数字、时间转化为***数字;统一不同颗粒度的货币单位。
结合第一方面,进一步的,所述语义表示模型包括Bert模型。
结合第一方面,进一步的,所述语义编码的方法包括:
将自然语言查询语句和待查询表列名拼接后输入到所述Bert模型;
所述Bert模型的输出编码维度均为768。
结合第一方面,进一步的,将SQL语句的构建拆解为如下8个子任务:
1)判断选取列数量的Select-Number;
2)选择列的Select-Column;
3)选取已选列对应聚合函数的Select-Aggregation;
4)判断条件列的数量的Where-Number;
5)选取条件列的Where-Column;
6)选取各条件的操作符Where-Operator;
7)选取各条件的条件值Where-Value;
8)判断条件连接类型的Where-Condition-Operator。
结合第一方面,进一步的,所述方法还包括:对预测结果组合生成的SQL语句进行语法合法性检验。
结合第一方面,进一步的,所述语法合法性检验的方法包括如下步骤:
1)对于非数字的条件值,条件操作符必须为等号;
2)条件值的类型和条件列的数据类型必须一致;
3)条件数量小于等于1个,则条件连接类型必然为空;
4)条件数量大于一个,则条件连接类型必然不为空。
第二方面,本发明提供了一种中文数据库SQL语句生成设备,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行前述任一项所述方法的步骤。
第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一项所述方法的步骤。
与现有技术相比,本发明实施例所提供的中文数据库SQL语句生成方法、设备及存储介质至少能够达到如下有益效果:
1、相比正则匹配生成的方式,并不需要维护大量的规则库和模板库,扩展性好,泛化能力强;
2、相比用户基于条件点选的方式,流程更快捷,交互更自然,用户体验更好;
3、相比Sqlnet等模型生成的方式,任务拆解更细,更适合中文SQL语句,配合前后处理逻辑,生成语句更加准确;
4、基于NLP的自然语言转化SQL语句的方法,改变了传统SQL语句的生成方式、交互方式;在数字化,智能化的潮流下,更符合未来人与数据库的交互场景;简化了技术人员的开发工作和维护工作,极大提升了用户体验,加快了数据获取的速度,创造了一种全新的数据交互方式。
附图说明
图1是本发明实施例提供的一种中文数据库SQL语句生成方法的流程图;
图2是本发明实施例提供的一种将SQL语句的构建拆解为若干子任务的方法示意图;
图3是本发明实施例提供的利用Bert模型进行语义编码的方法示意图。
具体实施方式
本发明实施例提供了一种基于NLP(Nature Language Processing,自然语言处理)的中文数据库SQL语句生成方法。针对当前广泛的数据库交互需求,本发明实施例将SQL(Structured Query Language,结构化查询语言)语句的构建拆解为8个子任务,利用语义表示模型对自然语言查询语句和待查询表列名进行语义编码后,分别针对8个子任务进行有先后、有联合的预测,同时结合前后处理,最终构成完整的可执行的SQL语句。本发明可以直接将自然语言表达方式的查询语句转化成机器可执行的SQL语句,避免了构建SQL对业务和技术的要求,简化了数据交互逻辑,提升了用户体验,也减轻了开发人员针对用户开发数据交互接口的工作量。
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,本发明实施例提供的中文数据库SQL语句生成方法包括如下步骤:
Step1:归一化前处理
基于知识库,对自然语言查询语句进行归一化处理,包括:统一相同实体的不同称谓;将中文表达的数字、时间转化为***数字;统一不同颗粒度的货币单位,如元、毛、角。
Step2-Bert编码
将自然语言查询语句和待查数据表的所有列名进行拼接,输入到Bert中进行编码。如图3所示,输出的编码维度均为768。
Step3-SQL语句8个子任务预测
如图2所示,SQL语句的构成被拆解为8个子任务
1)判断选取列数量的Select-Number;
sn=Softmax(Wsn×H[CLS])
式中:sn表示选取列的数量;Softmax()表示归一化指数函数;Wsn表示计算选取列数量分布的权重矩阵;H[CLS]表示句首位置处的语义向量。
2)选择哪些列的Select-Column;
3)选取已选列对应聚合函数的Select-Aggregation;
上两步联合预测,i代表第i表列,有聚合函数即代表该列被选中。
scai=Softmax(Wsca×Hhi+W[CLS]×H[CLS])
式中:scai表示第i选取表列对应的聚合函数;Wsca表示计算选取表列聚合函数分布的权重矩阵;Hhi表示第i表列位置处的语义向量;W[CLS]表示计算与句首语义关联度的权重矩阵。
4)判断条件列的数量的Where-Number;
wn=Softmax(Wwn×H[CLS])
式中:wn表示条件列的数量;Wwn表示计算条件列数量分布的权重矩阵;
5)选取条件列的Where-Column;
6)选取各个条件的操作符Where-Operator;
上两步联合预测,i代表第i表列,有条件操作符的即代表该列是条件列。
wcoi=Softmax(Wwco×Hhi+W[CLS]×H[CLS])
式中:wcoi表示第i条件表列对应的条件操作符;Wwco表示计算条件表列条件操作符分布的权重矩阵;
7)选取各个条件的条件值Where-Value;
条件值的选取,被转化为预测条件值在问句中的起止位置。
starti=Softmax(Wstart×[Hq0,Hq1,Hq2...,Hqn]+Wstarti×Hhi)
endi=Softmax(Wend×[Hq0,Hq1,Hq2...,Hqn]+Wendi×Hhi)
式中:starti表示第i条件列对应条件值在句中的开始位置;Wstart表示计算条件值开始位置分布与问句各位置语义关联度的权重矩阵;Hqk表示问句位置k处的语义向量;Wstarti表示计算条件值开始位置分布与第i条件列语义关联度的权重矩阵;endi表示第i条件列对应条件值在句中的结束位置;Wend表示计算条件值结束位置分布与问句各位置语义关联度的权重矩阵;Wendi表示计算条件值结束位置分布与第i条件列语义关联度的权重矩阵;
8)判断条件连接类型的Where-Condition-Operator
wco=Softmax(Wwco×H[CLS])
式中:wco表示条件连接符的类型;Wwco表示计算条件连接符类型分布的权重矩阵
Step4-合法性检验后处理
对于组合生成的SQL语句,进行语法合法性检验,矫正语法错误,步骤如下
1)对于非数字的条件值,条件操作符必须为等号;
2)条件值的类型和条件列的数据类型必须一致;
3)条件数量小于等于1个,则条件连接类型必然为空;
4)条件数量大于一个,则条件连接类型必然不为空。
上述四个步骤完成后,形成最终的SQL语句。
下面结合具体实施例对本发明实施例所提供的方法做进一步解释说明,将本发明方法应用于智能投顾的方案如下:
Step101–确定投顾场景的数据表,比如股票行情,财务等方面的数据。
Step102–标注一定量的自然语言查表语句和对应的SQL语句。
Step103–将标注数据结合表列名输入模型进行训练,得到训练完成的模型。
Step104–部署模型到服务器。
Step105–接收自然语言查表语句,比如“请问市盈率小于20,且PB小于1的公司有哪些?”,模型预测并结合前后处理,生成SQL语句。
Step6–查表给出结果。
本发明实施例提供的方法能够有效解决现有方案中存在的泛化性、扩展性、便捷性较差等技术问题。通过前后处理和深度学习模型的结合,实现了端到端的从自然语言语句到SQL语句的转换。同时,通过对SQL语句进行子任务的拆解,降低了模型预测的复杂度,提高了SQL语句生成的准确性。
本发明实施例还提供了一种中文数据库SQL语句生成设备,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行前述任一项所述方法的步骤。
同时,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一项所述方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种中文数据库SQL语句生成方法,其特征在于,包括如下步骤:
根据任务种类,将SQL语句的构建拆解为若干子任务;
利用语义表示模型对自然语言查询语句和待查询表列名进行语义编码后,分别针对各子任务进行有先后、有联合地预测;
组合预测结果以生成所述SQL语句;
所述语义表示模型包括Bert模型,所述语义编码的方法包括:将自然语言查询语句和待查询表列名拼接后输入到所述Bert模型。
2.根据权利要求1所述的中文数据库SQL语句生成方法,其特征在于,所述方法还包括对所述自然语言查询语句进行归一化处理;
所述归一化处理包括:统一相同实体的不同称谓;将中文表达的数字、时间转化为***数字;统一不同颗粒度的货币单位。
3.根据权利要求1所述的中文数据库SQL语句生成方法,其特征在于,所述Bert模型的输出编码维度均为768。
4.根据权利要求1所述的中文数据库SQL语句生成方法,其特征在于,将SQL语句的构建拆解为如下8个子任务:
1)判断选取列数量的Select-Number;
2)选择列的Select-Column;
3)选取已选列对应聚合函数的Select-Aggregation;
4)判断条件列的数量的Where-Number;
5)选取条件列的Where-Column;
6)选取各条件的操作符Where-Operator;
7)选取各条件的条件值Where-Value;
8)判断条件连接类型的Where-Condition-Operator。
5.根据权利要求1所述的中文数据库SQL语句生成方法,其特征在于,所述方法还包括:对预测结果组合生成的SQL语句进行语法合法性检验。
6.根据权利要求5所述的中文数据库SQL语句生成方法,其特征在于,所述语法合法性检验的方法包括如下步骤:
对于非数字的条件值,条件操作符必须为等号;
条件值的类型和条件列的数据类型必须一致;
条件数量小于等于1个,则条件连接类型必然为空;
条件数量大于一个,则条件连接类型必然不为空。
7.一种中文数据库SQL语句生成设备,其特征在于,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据权利要求1~6任一项所述方法的步骤。
8.计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201202.8A CN111414380B (zh) | 2020-03-20 | 2020-03-20 | 一种中文数据库sql语句生成方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010201202.8A CN111414380B (zh) | 2020-03-20 | 2020-03-20 | 一种中文数据库sql语句生成方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414380A CN111414380A (zh) | 2020-07-14 |
CN111414380B true CN111414380B (zh) | 2023-06-13 |
Family
ID=71494583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010201202.8A Active CN111414380B (zh) | 2020-03-20 | 2020-03-20 | 一种中文数据库sql语句生成方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414380B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463819A (zh) * | 2020-11-26 | 2021-03-09 | 北京宏景世纪软件股份有限公司 | 基于中文表达式的计算方法、装置、设备及存储介质 |
CN112506949B (zh) * | 2020-12-03 | 2023-07-25 | 北京百度网讯科技有限公司 | 结构化查询语言查询语句生成方法、装置及存储介质 |
CN112732741B (zh) * | 2020-12-31 | 2024-06-07 | 平安科技(深圳)有限公司 | Sql语句生成方法、装置、服务器及计算机可读存储介质 |
CN112527791A (zh) * | 2021-02-09 | 2021-03-19 | 中关村科学城城市大脑股份有限公司 | 一种城市大脑智能大数据*** |
CN113220881B (zh) * | 2021-02-24 | 2024-02-06 | 盐城幼儿师范高等专科学校 | 基于深度学习的教育问答实现方法、装置及服务器 |
CN113515955A (zh) * | 2021-04-26 | 2021-10-19 | 太极计算机股份有限公司 | 基于语义理解的从文本序列到指令序列的在线翻译***及方法 |
CN113468174A (zh) * | 2021-06-29 | 2021-10-01 | 天云融创数据科技(北京)有限公司 | 数据库的查询方法、装置、电子设备和计算机存储介质 |
CN113609158A (zh) * | 2021-08-12 | 2021-11-05 | 国家电网有限公司大数据中心 | 一种sql语句的生成方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947794A (zh) * | 2019-02-21 | 2019-06-28 | 东华大学 | 一种交互式自然语言查询转换方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688394B (zh) * | 2019-09-29 | 2021-11-23 | 浙江大学 | 面向新型供电城轨列车大数据运维的nl生成sql方法 |
CN110888897B (zh) * | 2019-11-12 | 2020-07-14 | 杭州世平信息科技有限公司 | 一种根据自然语言生成sql语句的方法及装置 |
-
2020
- 2020-03-20 CN CN202010201202.8A patent/CN111414380B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947794A (zh) * | 2019-02-21 | 2019-06-28 | 东华大学 | 一种交互式自然语言查询转换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111414380A (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414380B (zh) | 一种中文数据库sql语句生成方法、设备及存储介质 | |
US11461556B2 (en) | Method and apparatus for processing questions and answers, electronic device and storage medium | |
US11561969B2 (en) | Utilizing logical-form dialogue generation for multi-turn construction of paired natural language queries and query-language representations | |
JP2021149916A (ja) | ラベルラベリングモデルを確立する方法、装置、電子機器、プログラム及び可読記憶媒体 | |
CN113849162B (zh) | 一种利用模型驱动和深度神经网络相结合的代码生成方法 | |
US20220358292A1 (en) | Method and apparatus for recognizing entity, electronic device and storage medium | |
US11900263B2 (en) | Augmenting neural networks | |
CN114547072A (zh) | 自然语言查询转换sql方法、***、设备及存储介质 | |
CN111767334A (zh) | 信息抽取方法、装置、电子设备及存储介质 | |
CN117389541A (zh) | 基于对话检索生成模板的配置***及设备 | |
CN115062070A (zh) | 一种基于问答的文本表格数据查询方法 | |
CN117251455A (zh) | 一种基于大模型的智能报表生成方法及其*** | |
CN116432611A (zh) | 文稿写作辅助方法、***、终端及存储介质 | |
CN113158690B (zh) | 对话机器人的测试方法和装置 | |
CN113672699A (zh) | 基于知识图谱的nl2sql生成方法 | |
CN115438142A (zh) | 一种对话式交互数据分析报告*** | |
CN117891458A (zh) | 一种sql语句生成方法、装置、设备及存储介质 | |
CN117314139A (zh) | 业务流程的建模方法、装置、终端设备及存储介质 | |
CN116186219A (zh) | 一种人机对话交互方法方法、***及存储介质 | |
CN114090620B (zh) | 查询请求的处理方法及装置 | |
CN114116779A (zh) | 基于深度学习的电网调控领域信息检索方法、***和介质 | |
US11900918B2 (en) | Method for training a linguistic model and electronic device | |
US20240193366A1 (en) | Accelerated information extraction through facilitated rule development | |
Xusheng et al. | Research on BERT-based Text2SQL Multi-task Learning | |
Chen et al. | API Completion Recommendation Algorithm Based on Programming Site Context |
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 |