CN112732741B - Sql语句生成方法、装置、服务器及计算机可读存储介质 - Google Patents

Sql语句生成方法、装置、服务器及计算机可读存储介质 Download PDF

Info

Publication number
CN112732741B
CN112732741B CN202011642208.5A CN202011642208A CN112732741B CN 112732741 B CN112732741 B CN 112732741B CN 202011642208 A CN202011642208 A CN 202011642208A CN 112732741 B CN112732741 B CN 112732741B
Authority
CN
China
Prior art keywords
target
field
function
sql
classification model
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
Application number
CN202011642208.5A
Other languages
English (en)
Other versions
CN112732741A (zh
Inventor
梁子敬
贺春艳
翁志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202011642208.5A priority Critical patent/CN112732741B/zh
Priority to PCT/CN2021/084304 priority patent/WO2022141880A1/zh
Publication of CN112732741A publication Critical patent/CN112732741A/zh
Application granted granted Critical
Publication of CN112732741B publication Critical patent/CN112732741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种SQL语句生成方法、装置、服务器及计算机可读存储介质,该方法包括:获取目标问题对应的数据报表;根据目标问题和数据报表生成N个目标语句片段;将N个目标语句片段输入Bert模型,得到每个目标语句片段的语义向量和编码向量;根据每个编码向量生成每个字段标签对应的目标编码向量;根据目标语义向量和第一分类模型组确定预设SQL函数的字段个数和第一分类标签;根据每个目标编码向量和第二分类模型组确定各字段命中预设SQL函数的概率和第二分类标签;确定预设SQL函数的目标查询字段;生成可执行的SQL语句。该方法提高了SQL语句的生成准确性。本申请还涉及区块链领域,上述计算机可读存储介质可存储根据区块链节点的使用所创建的数据。

Description

SQL语句生成方法、装置、服务器及计算机可读存储介质
技术领域
本申请涉及语义分析的技术领域,尤其涉及一种SQL语句生成方法、装置、服务器及计算机可读存储介质。
背景技术
随着网络和互联网技术的快速发展,越来越多的企业都开始使用机器人客服为用户提供服务,主要是用户输入问题,由机器人客户对用户输入的问题进行回答。目前,主要是使用自然语言转SQL语句(Natural Language to SQL,NL2SQL)任务将用户输入的问题转换为可执行的SQL语句,然后由计算机执行该SQL语句,以获得该问题的答案,并向用户输出该答案。然而,NL2SQL任务主要是通过语义识别模型和多分类任务实现的,但仅通过语义识别模型和多分类任务无法准确地确定问题所对应的可执行的SQL语句。因此,如何提高可执行的SQL语句的生成准确性是目前亟待解决的问题。
发明内容
本申请实施例提供一种SQL语句生成方法、装置、服务器及计算机可读存储介质,旨在提高可执行的SQL语句的生成准确性。
第一方面,本申请实施例提供一种SQL语句生成方法,应用于服务器,所述服务器存储有SQL语句生成模型,所述SQL语句生成模型包括预先训练好的Bert模型、预先训练好的LSTM模型或GRU模型、预先训练好的第一分类模型组和第二分类模型组,所述方法包括:
获取待回答的目标问题,并获取所述目标问题对应的数据报表;
根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段,每个所述目标语句片段均包括所述目标问题、至少一个所述字段和至少一个字段标签序列;
将所述N个目标语句片段输入所述Bert模型,得到每个所述目标语句片段的语义向量和编码向量;
将每个所述目标语句片段的语义向量输入所述LSTM模型或GRU模型,得到目标语义向量;
根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量;
根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签;
根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签;
根据所述各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段;
根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句。
第二方面,本申请实施例还提供一种SQL语句生成装置,应用于服务器,所述服务器存储有SQL语句生成模型,所述SQL语句生成模型包括预先训练好的Bert模型、预先训练好的LSTM模型或GRU模型、预先训练好的第一分类模型组和第二分类模型组,所述SQL语句生成装置包括:
获取模块,用于获取待回答的目标问题,并获取所述目标问题对应的数据报表;
语句片段生成模块,用于根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段,每个所述目标语句片段均包括所述目标问题、至少一个所述字段和至少一个字段标签序列;
控制模块,用于将所述N个目标语句片段输入所述Bert模型,得到每个所述目标语句片段的语义向量和编码向量;
所述控制模块,用于将每个所述目标语句片段的语义向量输入所述LSTM模型或GRU模型,得到目标语义向量;
向量生成模块,用于根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量;
确定模块,用于根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签;
所述确定模块,还用于根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签;
所述确定模块,还用于根据所述各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段;
SQL语句生成模块,用于根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句。
第三方面,本申请实施例还提供一种服务器,所述服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上所述的SQL语句生成方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上所述的SQL语句生成方法的步骤。
本申请实施例提供一种SQL语句生成方法、装置、服务器及计算机可读存储介质,通过获取目标问题对应的数据报表,并根据目标问题和数据报表中的每个字段,生成N个目标语句片段,然后将N个目标语句片段输入Bert模型,得到每个目标语句片段的语义向量和编码向量,并将每个目标语句片段的语义向量输入LSTM模型或GRU模型,得到目标语义向量,同时根据每个目标语句片段的编码向量,生成字段标签序列中的每个字段标签对应的目标编码向量,再然后根据目标语义向量和第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签,并根据每个目标编码向量和第二分类模型组中的每个分类模型,确定数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签,最后根据各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段,并根据每个预设SQL函数的目标查询字段、连接符的第一分类标签和聚合函数的第二分类标签,生成可执行的SQL语句,能够极大的提高SQL语句的生成准确性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种SQL语句生成方法的流程示意图;
图2是本申请实施例中生成目标语句片段的一场景示意图;
图3是本申请实施例中SQL语句生成模型的一结构示意图;
图4是本申请实施例提供的一种SQL语句生成装置的示意性框图;
图5是图4中的SQL语句生成装置的子模块的示意性框图;
图6是本申请实施例提供的一种服务器的结构示意性框图。
本申请目的的实现、功能特点及优点将结合实施例,参阅附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
随着网络和互联网技术的快速发展,越来越多的企业都开始使用机器人客服为用户提供服务,主要是用户输入问题,由机器人客户对用户输入的问题进行回答。目前,主要是使用自然语言转SQL语句(Natural Language to SQL,NL2SQL)任务将用户输入的问题转换为可执行的SQL语句,然后由计算机执行该SQL语句,以获得该问题的答案,并向用户输出该答案。然而,NL2SQL任务主要是通过语义识别模型和多分类任务实现的,但仅通过语义识别模型和多分类任务无法准确地确定问题所对应的可执行的SQL语句。因此,如何提高可执行的SQL语句的生成准确性是目前亟待解决的问题。
为解决上述问题,本申请实施例提供一种SQL语句生成方法、装置、服务器及计算机可读存储介质。通过获取目标问题对应的数据报表,并根据目标问题和数据报表中的每个字段,生成N个目标语句片段,然后将N个目标语句片段输入Bert模型,得到每个目标语句片段的语义向量和编码向量,并将每个目标语句片段的语义向量输入LSTM模型或GRU模型,得到目标语义向量,同时根据每个目标语句片段的编码向量,生成字段标签序列中的每个字段标签对应的目标编码向量,再然后根据目标语义向量和第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签,并根据每个目标编码向量和第二分类模型组中的每个分类模型,确定数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签,最后根据各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段,并根据每个预设SQL函数的目标查询字段、连接符的第一分类标签和聚合函数的第二分类标签,生成可执行的SQL语句,能够极大的提高SQL语句的生成准确性。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请实施例提供的一种SQL语句生成方法的流程示意图。
如图1所示,该SQL语句生成方法包括步骤S101至步骤S109。
步骤S101、获取待回答的目标问题,并获取所述目标问题对应的数据报表。
其中,服务器存储有多个数据报表,不同的问题可以涉及不同的数据报表,一个问题也可以仅涉及一个数据报表,一个问题也可以涉及多个不同的数据报表,每个数据报表包括多个字段,该字段可以是数据报表中的列字段,也可以是数据报表中的行字段,本申请实施例对此不做具体限定。
在一实施例中,服务器获取终端设备发送的数据查询请求,其中,所述数据查询请求包括用户通过终端设备输入的目标问题;对该数据查询请求进行解析,得到该数据查询请求中的目标问题;将该目标问题拆分为多个关键词,并将多个关键词中的每个关键词与每个数据报表中的各字段进行匹配,将各字段中存在至少一个关键词的数据报表确定为目标问题对应的数据报表。
例如,目标问题为“截至2020年11月10日,自选基金产品的收益率和总收益”,则将目标问题“截至2020年11月10日,自选基金产品的收益率和总收益”拆分,可以得到的关键词“自选基金产品”、“收益率”和“总收益”,然后通过这些关键词查找目标问题对应的数据报表。
步骤S102、根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段。
示例性的,获取该数据报表对应的字段序列,并在该字段序列中的每个字段的头部位置***字段标签序列,得到目标字段序列;将该目标字段序列拆分为N个字段子序列,使得每个字段子序列各自对应的第一字符个数与目标问题的第二字符个数之和小于或等于预设字符个数;将该目标问题与每个字段子序列进行拼接,得到N个初始语句片段,并对N个初始语句片段进行字符填充,得到N个目标语句片段。其中,N为正整数,每个目标语句片段的字符个数等于预设字符个数,预设字符个数可基于实际情况进行设置,本申请实施例对此不做具体限定,例如,预设字符个数为256或128。
其中,每个目标语句片段均包括目标问题、至少一个字段和至少一个字段标签序列,目标语句片段中的字段标签序列的个数与目标语句片段中的字段的个数匹配,该字段标签序列包括多个不同的字段标签,该字段标签用于描述目标语句片段中的字段是否为预设SQL函数的目标查询字段,可选的,预设SQL函数包括select函数、where函数和Groupby函数,字段标签序列包括第一字段标签、第二字段标签和第三字段标签,第一字段标签用于描述目标语句片段中的字段是否为select函数的目标查询字段,第二字段标签用于描述目标语句片段中的字段是否为where函数的目标查询字段,第三字段标签用于描述目标语句片段中的字段是否为Groupby函数的目标查询字段。
如图2所示,数据报表对应的字段序列10包括M个字段,在字段序列10中的每个字段的头部位置***字段标签序列[label,label2,label3]可以得到目标字段序列20,label用于描述字段是否为select函数的目标查询字段,label2用于描述字段是否为where函数的目标查询字段,label3用于描述字段是否为Groupby函数的目标查询字段。然后将目标字段序列20拆分为N个字段子序列,N个字段子序列构成字段子序列组30,将该目标问题与字段子序列组30中的每个字段子序列进行拼接,可以得到N个初始语句片段,N个初始语句片段构成初始语句片段组40,最后对N个初始语句片段进行字符填充,得到N个目标语句片段。
步骤S103、将所述N个目标语句片段输入所述Bert模型,得到每个所述目标语句片段的语义向量和编码向量。
其中,服务器存储有SQL语句生成模型,SQL语句生成模型包括预先训练好的Bert模型、预先训练好的LSTM模型或GRU模型、预先训练好的第一分类模型组和第二分类模型组,如图3所示,Bert模型与LSTM模型或GRU模型连接,LSTM模型或GRU模型与第一分类模型组11连接,Bert模型还与第二分类模型组12连接,第一分类模型组11包括第一分类模型、第二分类模型、第三分类模型和第四分类模型,第一分类模型用于确定select函数的第一字段个数,第二分类模型用于确定where函数的第二字段个数,第三分类模型用于确定Groupby函数的第三字段个数,第四分类模型用于确定连接符的第一分类标签,第二分类模型组12包括第五分类模型、第六分类模型、第七分类模型和第八分类模型,第五分类模型用于确定数据报表中的各字段命中select函数的概率,第六分类模型用于确定数据报表中的各字段命中where函数的概率,第七分类模型用于确定数据报表中的各字段命中Groupby函数的概率,第八分类模型用于确定聚合函数的第二分类标签。
通过对Bert模型、LSTM模型、第一分类模型组和第二分类模型组一起进行迭代训练,可以得到SQL语句生成模型,或者,通过对Bert模型、GRU模型、第一分类模型组和第二分类模型组一起进行迭代训练,可以得到SQL语句生成模型。其具体训练过程可以为:获取样本数据集,并根据样本数据集中的样本数据对Bert模型、LSTM模型、第一分类模型组和第二分类模型组进行迭代训练,直到Bert模型、LSTM模型、第一分类模型组和第二分类模型均收敛,得到SQL语句生成模型。
在一实施例中,确定每个目标语句片段中的各字符在预设词典中的位置;根据每个目标语句片段中的各字符在预设词典中的位置,对每个目标语句片段中的各字符进行编码,得到每个目标语句片段的字符向量序列;将每个目标语句片段的字符向量序列输入Bert模型,得到每个目标语句片段的语义向量和编码向量。其中,该语义向量用于描述目标语句片段所想要表达的语义信息,预设词典可基于实际情况进行设置,本申请实例对此不做具体限定,通过字符在预设词典中的位置以及位置与字符向量之间的映射关系,可以得到字符对应的字符向量,然后再基于各字符的字符向量组成目标语句片段的字符向量序列。
步骤S104、将每个所述目标语句片段的语义向量输入所述LSTM模型或GRU模型,得到目标语义向量。
将每个目标语句片段的语义向量进行拼接,得到语义向量序列,并将该语义向量序列输入LSTM模型或GRU模型,得到目标语义向量。
步骤S105、根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量。
示例性的,获取每个目标语句片段的编码向量中的各字段标签对应的编码子向量;将相同字段标签对应的编码子向量进行拼接,得到每个字段标签对应的目标编码向量。例如,字段标签序列为[label,label2,label3],对于每个目标语句片段,从该目标语句片段的编码向量获取每个字段的字段标签label对应的编码子向量、字段标签label2对应的编码子向量、字段标签label3对应的编码子向量,将字段标签label对应的全部编码子向量进行拼接,得到字段标签label对应的目标编码向量,将字段标签labe2对应的全部编码子向量进行拼接,得到字段标签labe2对应的目标编码向量,将字段标签labe3对应的全部编码子向量进行拼接,得到字段标签labe3对应的目标编码向量。
步骤S106、根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签。
其中,预设SQL函数包括select函数、where函数和Groupby函数,第一分类模型组包括第一分类模型、第二分类模型、第三分类模型和第四分类模型,第一分类模型用于确定select函数的第一字段个数,第二分类模型用于确定where函数的第二字段个数,第三分类模型用于确定Groupby函数的第三字段个数,第四分类模型用于确定连接符的第一分类标签。
在一实施例中,将目标语义向量输入第一分类模型,得到select函数的第一字段个数;将目标语义向量输入第二分类模型,得到where函数的第二字段个数;将目标语义向量输入第三分类模型,得到Groupby函数的第三字段个数;将目标语义向量输入第四分类模型,得到连接符的第一分类标签。其中,第一分类模型、第二分类模型、第三分类模型可以为五分类模型,因此第一分类模型、第二分类模型、第三分类模型输出的字段个数可以为0、1、2、3和4,第四分类模型为三分类模型,因此,第四分类模型输出的第一分类标签包括第一连接符标签、第二连接符标签和第三连接符标签,第四分类模型输出第一连接符标签,则表示选择“and”连接符,第四分类模型输出第二连接符标签,则表示选择“or”连接符,第四分类模型输出第三连接符标签,则表示不选择连接符。
示例性的,第一分类模型包括第一全连接层和第一Softmax模型,第二分类模型包括第二全连接层和第二Softmax模型,第三分类模型包括第三全连接层和第三Softmax模型,第四分类模型包括第四全连接层和第四Softmax模型,因此,将目标语义向量输入第一全连接层进行处理,将经过处理后的目标语义向量输入第一Softmax模型进行处理,得到select函数的第一字段个数;将目标语义向量输入第二全连接层进行处理,将经过处理后的目标语义向量输入第二Softmax模型进行处理,得到where函数的第二字段个数;将目标语义向量输入第三全连接层进行处理,将经过处理后的目标语义向量输入第三Softmax模型进行处理,得到Groupby函数的第三字段个数;将目标语义向量输入第四全连接层进行处理,将经过处理后的目标语义向量输入第四Softmax模型进行处理,得到连接符的第一分类标签。
示例性的,设目标语义向量为hiddensql,则通过第一分类模型的表征公式softmax(ws*hiddensql+bs)可以确定select函数的第一字段个数,通过第二分类模型的表征公式softmax(ww*hiddensql+bw)可以确定where函数的第二字段个数,通过第三分类模型的表征公式softmax(wg*hiddensql+bg)可以确定Groupby函数的第三字段个数,通过第四分类模型的表征公式softmax(wc*hiddensql+bc)可以确定连接符的第一分类标签,其中,ws和bs是第一全连接层的模型参数,ww和bw是第二全连接层的模型参数,wg和bg是第三全连接层的模型参数,wc和bc是第四全连接层的模型参数。
其中,第一Softmax模型、第二Softmax模型和第三Softmax模型均为五分类的Softmax模型,这个五分类的Softmax模型的字段个数分类包括字段个数为0、字段个数为1、字段个数为2、字段个数为3和字段个数为4这五个,第四Softmax模型为三分类的Softmax模型,这个三分类的Softmax模型输出的连接符的第一分类标签包括第一连接符标签、第二连接符标签和第三连接符标签,第四分类模型输出第一连接符标签,则表示选择“and”连接符,第四分类模型输出第二连接符标签,则表示选择“or”连接符,第四分类模型输出第三连接符标签,则表示不选择连接符。
步骤S107、根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签。
其中,第二分类模型组包括第五分类模型、第六分类模型、第七分类模型和第八分类模型,字段标签序列包括第一字段标签、第二字段标签和第三字段标签,第五分类模型用于确定数据报表中的各字段命中select函数的概率,第六分类模型用于确定数据报表中的各字段命中where函数的概率,第七分类模型用于确定数据报表中的各字段命中Groupby函数的概率,第八分类模型用于确定聚合函数的第二分类标签。
在一实施例中,将第一字段标签对应的目标编码向量输入第五分类模型,得到数据报表中的各字段命中select函数的第一概率;将第二字段标签对应的目标编码向量输入所述第六分类模型,得到数据报表中的各字段命中where函数的第二概率;对第一字段标签对应的目标编码向量和第三字段标签对应的目标编码向量进行拼接,得到拼接编码向量;将拼接编码向量输入第七分类模型,得到数据报表中的各字段命中Groupby函数的第三概率;将第一字段标签对应的目标编码向量输入第八分类模型,得到聚合函数的第二分类标签。其中,聚合函数包括Min函数、Max函数、Avg函数、count函数、Sum函数。
示例性的,第五分类模型包括第五全连接层和第五Softmax模型,第六分类模型包括第六全连接层和第六Softmax模型,第七分类模型包括第七全连接层和第七Softmax模型,第八分类模型包括第八全连接层和第八Softmax模型,因此,将第一字段标签对应的目标编码向量输入第五全连接层进行处理,将经过处理后的目标编码向量输入第五Softmax模型,得到数据报表中的各字段命中select函数的第一概率;将第二字段标签对应的目标编码向量输入第六全连接层进行处理,将经过处理后的目标编码向量输入第六Softmax模型,得到数据报表中的各字段命中where函数的第二概率;将拼接编码向量输入第七全连接层进行处理,将经过处理后的拼接编码向量输入第七Softmax模型,得到数据报表中的各字段命中Groupby函数的第三概率;将第一字段标签对应的目标编码向量输入第八全连接层,将经过处理后的目标编码向量输入第八Softmax模型,得到聚合函数的第二分类标签。
示例性的,设第一字段标签对应的目标编码向量为hiddensc,第二字段标签对应的目标编码向量为hiddenwc,第三字段标签对应的目标编码向量为hiddengc,则通过第五分类模型的表征公式softmax(wsc*hiddensc+bsc)可以确定数据报表中的各字段命中select函数的第一概率,通过第六分类模型的表征公式softmax(wwc*hiddenwc+bwc)可以确定数据报表中的各字段命中where函数的第一概率,通过第七分类模型的表征公式softmax(wgc*cat(hiddensc,hiddengc)+bgc)可以确定数据报表中的各字段命中Groupby函数的第三概率,通过第八分类模型的表征公式softmax(wac*hiddensc+bac),其中,wsc和bsc是第五全连接层的模型参数,wwc和bwc是第六全连接层的模型参数,wgc和bgc是第七全连接层的模型参数,wac和bac是第八全连接层的模型参数。
示例性的,第五Softmax模型、第六Softmax模型、第七Softmax模型和第八Softmax模型均为多分类的Softmax模型,例如,第八Softmax模型为六分类的Softmax模型,第八分类模型输出的第二分类标签包括第一标签、第二标签、第三标签、第四标签、第五标签和第六标签,第八分类模型输出的第二分类标签为第一标签,则表示选择的聚合函数为“Min函数”,第八分类模型输出的第二分类标签为第二标签,则表示选择的聚合函数为“Max函数”,第八分类模型输出的第二分类标签为第三标签,则表示选择的聚合函数为“Avg函数”,第八分类模型输出的第二分类标签为第四标签,则表示选择的聚合函数为“count函数”,第八分类模型输出的第二分类标签为第五标签,则表示选择的聚合函数为“Sum函数”,第八分类模型输出的第二分类标签为第六标签,则表示不选择聚合函数。
步骤S108、根据所述各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段。
示例性的,根据数据报表中的各字段命中select函数的第一概率和select函数的第一字段个数,从各字段中确定select函数的目标查询字段,即根据数据报表中的各字段命中select函数的第一概率的大小顺序,对各字段进行排序,得到第一字段队列,从该第一字段队列的首个字段开始,依次从第一字段队列中选择select函数的目标查询字段,直到选择的目标查询字段的个数达到第一字段个数。例如,第一字段个数为2个,则从第一字段队列中选择靠前的2个字段作为select函数的目标查询字段。
类似的,根据数据报表中的各字段命中where函数的第二概率和where函数的第二字段个数,从各字段中确定where函数的目标查询字段,即根据数据报表中的各字段命中where函数的第二概率的大小顺序,对各字段进行排序,得到第二字段队列,从该第二字段队列的首个字段开始,依次从第二字段队列中选择where函数的目标查询字段,直到选择的目标查询字段的个数达到第二字段个数。例如,第二字段个数为1个,则从第二字段队列中选择第一个字段作为where函数的目标查询字段。
类似的,根据数据报表中的各字段命中Groupby函数的第三概率和Groupby函数的第三字段个数,从各字段中确定Groupby函数的目标查询字段,即根据数据报表中的各字段命中Groupby函数的第三概率的大小顺序,对各字段进行排序,得到第三字段队列,从该第三字段队列的首个字段开始,依次从第三字段队列中选择Groupby函数的目标查询字段,直到选择的目标查询字段的个数达到第三字段个数。例如,第三字段个数为1个,则从第三字段队列中选择第一个字段作为Groupby函数的目标查询字段。
步骤S109、根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句。
示例性的,根据第一分类标签,确定待生成的SQL语句中的目标连接符;根据第二分类标签,确定待生成的SQL语句中的目标聚合函数;根据每个预设SQL函数的目标查询字段、目标连接符和目标聚合函数,生成可执行的SQL语句。其中,目标连接符包括and和/或or,目标聚合函数包括Min函数、Max函数、Avg函数、count函数和/或Sum函数。
可以理解的是,SQL语句中可以有连接符和/或聚合函数,也可以没有聚合函数和/或连接符,SQL语句中可以仅包括select函数,也可以仅包括select函数和where函数,也可以仅包括select函数和Groupby函数,还可以包括select函数、where函数和Groupby函数。本申请实施例对此不做具体限定。
上述实施例提供的SQL语句生成方法,通过获取目标问题对应的数据报表,并根据目标问题和数据报表中的每个字段,生成N个目标语句片段,然后将N个目标语句片段输入Bert模型,得到每个目标语句片段的语义向量和编码向量,并将每个目标语句片段的语义向量输入LSTM模型或GRU模型,得到目标语义向量,同时根据每个目标语句片段的编码向量,生成字段标签序列中的每个字段标签对应的目标编码向量,再然后根据目标语义向量和第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签,并根据每个目标编码向量和第二分类模型组中的每个分类模型,确定数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签,最后根据各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段,并根据每个预设SQL函数的目标查询字段、连接符的第一分类标签和聚合函数的第二分类标签,生成可执行的SQL语句,能够极大的提高SQL语句的生成准确性。
请参阅图4,图4是本申请实施例提供的一种SQL语句生成装置的示意性框图。
该SQL语句生成装置应用于服务器,所述服务器存储有SQL语句生成模型,所述SQL语句生成模型包括预先训练好的Bert模型、预先训练好的LSTM模型或GRU模型、预先训练好的第一分类模型组和第二分类模型组。
如图4所示,该SQL语句生成装置200包括:获取模块210、语句片段生成模块220、控制模块230、向量生成模块240、确定模块250和SQL语句生成模块260,其中:
所述获取模块210,用于获取待回答的目标问题,并获取所述目标问题对应的数据报表;
所述语句片段生成模块220,用于根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段,每个所述目标语句片段均包括所述目标问题、至少一个所述字段和至少一个字段标签序列;
所述控制模块230,用于将所述N个目标语句片段输入所述Bert模型,得到每个所述目标语句片段的语义向量和编码向量;
所述控制模块230,用于将每个所述目标语句片段的语义向量输入所述LSTM模型或GRU模型,得到目标语义向量;
所述向量生成模块240,用于根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量;
所述确定模块250,用于根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签;
所述确定模块250,还用于根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签;
所述确定模块250,还用于根据所述各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段;
所述SQL语句生成模块260,用于根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句。
在一实施例中,所述字段标签序列包括多个不同的字段标签,所述字段标签用于描述所述目标语句片段中的字段是否为预设SQL函数的目标查询字段。
在一实施例中,所述目标语句片段的字符个数等于预设字符个数。
在一实施例中,如图5所示,所述向量生成模块240包括:
获取子模块241,用于获取每个所述目标语句片段的编码向量中的各所述字段标签对应的编码子向量;
拼接子模块242,用于将相同所述字段标签对应的编码子向量进行拼接,得到每个所述字段标签对应的目标编码向量。
在一个实施例中,所述预设SQL函数包括select函数、where函数和Groupby函数,所述第一分类模型组包括第一分类模型、第二分类模型、第三分类模型和第四分类模型,所述确定模块250还用于:
将所述目标语义向量输入所述第一分类模型,得到所述select函数的第一字段个数;
将所述目标语义向量输入所述第二分类模型,得到所述where函数的第二字段个数;
将所述目标语义向量输入所述第三分类模型,得到所述Groupby函数的第三字段个数;
将所述目标语义向量输入所述第四分类模型,得到所述连接符的第一分类标签。
在一实施例中,所述第二分类模型组包括第五分类模型、第六分类模型、第七分类模型和第八分类模型,所述字段标签序列包括第一字段标签、第二字段标签和第三字段标签,所述确定模块250还用于:
将所述第一字段标签对应的目标编码向量输入所述第五分类模型,得到所述数据报表中的各字段命中所述select函数的第一概率;
将所述第二字段标签对应的所述目标编码向量输入所述第六分类模型,得到所述数据报表中的各字段命中所述where函数的第二概率;
对所述第一字段标签对应的所述目标编码向量和所述第三字段标签对应的所述目标编码向量进行拼接,得到拼接编码向量;
将所述拼接编码向量输入所述第七分类模型,得到所述数据报表中的各字段命中所述where函数的第三概率;
将所述第一字段标签对应的目标编码向量输入所述第八分类模型,得到聚合函数的第二分类标签。
在一实施例中,所述SQL语句生成模块260还用于:
根据所述第一分类标签,确定待生成的SQL语句中的目标连接符;
根据所述第二分类标签,确定待生成的SQL语句中的目标聚合函数;
根据每个预设SQL函数的目标查询字段、所述目标连接符和所述目标聚合函数,生成可执行的SQL语句。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块及单元的具体工作过程,可以参考前述SQL语句生成方法实施例中的对应过程,在此不再赘述。
上述实施例提供的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的服务器上运行。
请参阅图6,图6是本申请实施例提供的一种服务器的结构示意性框图。
如图6所示,该服务器包括通过***总线连接的处理器、存储器和网络接口,其中,存储器可以包括存储介质和内存储器,所述存储器用于存储SQL语句生成模型,所述SQL语句生成模型包括预先训练好的Bert模型、预先训练好的LSTM模型或GRU模型、预先训练好的第一分类模型组和第二分类模型组。
存储介质可存储操作***和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种SQL语句生成方法。
处理器用于提供计算和控制能力,支撑整个服务器的运行。
内存储器为存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种SQL语句生成方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取待回答的目标问题,并获取所述目标问题对应的数据报表;
根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段,每个所述目标语句片段均包括所述目标问题、至少一个所述字段和至少一个字段标签序列;
将所述N个目标语句片段输入所述Bert模型,得到每个所述目标语句片段的语义向量和编码向量;
将每个所述目标语句片段的语义向量输入所述LSTM模型或GRU模型,得到目标语义向量;
根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量;
根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签;
根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签;
根据所述各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段;
根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句。
在一实施例中,所述字段标签序列包括多个不同的字段标签,所述字段标签用于描述所述目标语句片段中的字段是否为预设SQL函数的目标查询字段。
在一实施例中,所述目标语句片段的字符个数等于预设字符个数。
在一实施例中,所述处理器在实现根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量时,用于实现:
获取每个所述目标语句片段的编码向量中的各所述字段标签对应的编码子向量;
将相同所述字段标签对应的编码子向量进行拼接,得到每个所述字段标签对应的目标编码向量。
在一实施例中,所述预设SQL函数包括select函数、where函数和Groupby函数,所述第一分类模型组包括第一分类模型、第二分类模型、第三分类模型和第四分类模型,所述处理器在实现根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签时,用于实现:
将所述目标语义向量输入所述第一分类模型,得到所述select函数的第一字段个数;
将所述目标语义向量输入所述第二分类模型,得到所述where函数的第二字段个数;
将所述目标语义向量输入所述第三分类模型,得到所述Groupby函数的第三字段个数;
将所述目标语义向量输入所述第四分类模型,得到所述连接符的第一分类标签。
在一实施例中,所述第二分类模型组包括第五分类模型、第六分类模型、第七分类模型和第八分类模型,所述字段标签序列包括第一字段标签、第二字段标签和第三字段标签,所述处理器在实现根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签时,用于实现:
将所述第一字段标签对应的目标编码向量输入所述第五分类模型,得到所述数据报表中的各字段命中所述select函数的第一概率;
将所述第二字段标签对应的所述目标编码向量输入所述第六分类模型,得到所述数据报表中的各字段命中所述where函数的第二概率;
对所述第一字段标签对应的所述目标编码向量和所述第三字段标签对应的所述目标编码向量进行拼接,得到拼接编码向量;
将所述拼接编码向量输入所述第七分类模型,得到所述数据报表中的各字段命中所述where函数的第三概率;
将所述第一字段标签对应的目标编码向量输入所述第八分类模型,得到聚合函数的第二分类标签。
在一实施例中,所述处理器在实现根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句时,用于实现:
根据所述第一分类标签,确定待生成的SQL语句中的目标连接符;
根据所述第二分类标签,确定待生成的SQL语句中的目标聚合函数;
根据每个预设SQL函数的目标查询字段、所述目标连接符和所述目标聚合函数,生成可执行的SQL语句。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的服务器的具体工作过程,可以参考前述SQL语句生成方法实施例中的对应过程,在此不再赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台服务器(可以是个人计算机,服务器,或者网络服务器等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参阅本申请SQL语句生成方法的各个实施例。
其中,所述计算机可读存储介质可以是易失性的,也可以是非易失性的。所述计算机可读存储介质可以是前述实施例所述的服务器的内部存储单元,例如所述服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种SQL语句生成方法,其特征在于,应用于服务器,所述服务器存储有SQL语句生成模型,所述SQL语句生成模型包括预先训练好的Bert模型、预先训练好的LSTM模型或GRU模型、预先训练好的第一分类模型组和第二分类模型组,所述方法包括:
获取待回答的目标问题,并获取所述目标问题对应的数据报表;
根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段,每个所述目标语句片段均包括所述目标问题、至少一个所述字段和至少一个字段标签序列,所述根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段包括:获取所述数据报表对应的字段序列,并在所述字段序列中的每个字段的头部位置***字段标签序列,得到目标字段序列;将所述目标字段序列拆分为N个字段子序列,使得每个所述字段子序列各自对应的第一字符个数与所述目标问题的第二字符个数之和小于或等于预设字符个数;将所述目标问题与每个所述字段子序列进行拼接,得到N个初始语句片段,并对N个所述初始语句片段进行字符填充,得到N个所述目标语句片段,N为正整数;
将所述N个目标语句片段输入所述Bert模型,得到每个所述目标语句片段的语义向量和编码向量;
将每个所述目标语句片段的语义向量输入所述LSTM模型或GRU模型,得到目标语义向量;
根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量;
根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签;
根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签;
根据所述各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段;
根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句。
2.根据权利要求1所述的SQL语句生成方法,其特征在于,所述字段标签序列包括多个不同的字段标签,所述字段标签用于描述所述目标语句片段中的字段是否为预设SQL函数的目标查询字段。
3.根据权利要求1所述的SQL语句生成方法,其特征在于,所述目标语句片段的字符个数等于预设字符个数。
4.根据权利要求1所述的SQL语句生成方法,其特征在于,所述根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量,包括:
获取每个所述目标语句片段的编码向量中的各所述字段标签对应的编码子向量;
将相同所述字段标签对应的编码子向量进行拼接,得到每个所述字段标签对应的目标编码向量。
5.根据权利要求1-4中任一项所述的SQL语句生成方法,其特征在于,所述预设SQL函数包括select函数、where函数和Groupby函数,所述第一分类模型组包括第一分类模型、第二分类模型、第三分类模型和第四分类模型,所述根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签,包括:
将所述目标语义向量输入所述第一分类模型,得到所述select函数的第一字段个数;
将所述目标语义向量输入所述第二分类模型,得到所述where函数的第二字段个数;
将所述目标语义向量输入所述第三分类模型,得到所述Groupby函数的第三字段个数;
将所述目标语义向量输入所述第四分类模型,得到所述连接符的第一分类标签。
6.根据权利要求5所述的SQL语句生成方法,其特征在于,所述第二分类模型组包括第五分类模型、第六分类模型、第七分类模型和第八分类模型,所述字段标签序列包括第一字段标签、第二字段标签和第三字段标签,所述根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签,包括:
将所述第一字段标签对应的目标编码向量输入所述第五分类模型,得到所述数据报表中的各字段命中所述select函数的第一概率;
将所述第二字段标签对应的所述目标编码向量输入所述第六分类模型,得到所述数据报表中的各字段命中所述where函数的第二概率;
对所述第一字段标签对应的所述目标编码向量和所述第三字段标签对应的所述目标编码向量进行拼接,得到拼接编码向量;
将所述拼接编码向量输入所述第七分类模型,得到所述数据报表中的各字段命中所述Groupby函数的第三概率;
将所述第一字段标签对应的目标编码向量输入所述第八分类模型,得到聚合函数的第二分类标签。
7.根据权利要求1-4中任一项所述的SQL语句生成方法,其特征在于,所述根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句,包括:
根据所述第一分类标签,确定待生成的SQL语句中的目标连接符;
根据所述第二分类标签,确定待生成的SQL语句中的目标聚合函数;
根据每个预设SQL函数的目标查询字段、所述目标连接符和所述目标聚合函数,生成可执行的SQL语句。
8.一种SQL语句生成装置,其特征在于,应用于服务器,所述服务器存储有SQL语句生成模型,所述SQL语句生成模型包括预先训练好的Bert模型、预先训练好的LSTM模型或GRU模型、预先训练好的第一分类模型组和第二分类模型组,所述SQL语句生成装置包括:
获取模块,用于获取待回答的目标问题,并获取所述目标问题对应的数据报表;
语句片段生成模块,用于根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段,每个所述目标语句片段均包括所述目标问题、至少一个所述字段和至少一个字段标签序列,所述根据所述目标问题和所述数据报表中的每个字段,生成N个目标语句片段包括:获取所述数据报表对应的字段序列,并在所述字段序列中的每个字段的头部位置***字段标签序列,得到目标字段序列;将所述目标字段序列拆分为N个字段子序列,使得每个所述字段子序列各自对应的第一字符个数与所述目标问题的第二字符个数之和小于或等于预设字符个数;将所述目标问题与每个所述字段子序列进行拼接,得到N个初始语句片段,并对N个所述初始语句片段进行字符填充,得到N个所述目标语句片段,N为正整数;
控制模块,用于将所述N个目标语句片段输入所述Bert模型,得到每个所述目标语句片段的语义向量和编码向量;
所述控制模块,用于将每个所述目标语句片段的语义向量输入所述LSTM模型或GRU模型,得到目标语义向量;
向量生成模块,用于根据每个所述目标语句片段的编码向量,生成所述字段标签序列中的每个字段标签对应的目标编码向量;
确定模块,用于根据所述目标语义向量和所述第一分类模型组中的每个分类模型,确定每个预设SQL函数的字段个数和连接符的第一分类标签;
所述确定模块,还用于根据每个所述目标编码向量和所述第二分类模型组中的每个分类模型,确定所述数据报表中的各字段命中每个预设SQL函数的概率和聚合函数的第二分类标签;
所述确定模块,还用于根据所述各字段命中每个预设SQL函数的概率和每个预设SQL函数的字段个数,确定每个预设SQL函数的目标查询字段;
SQL语句生成模块,用于根据每个预设SQL函数的目标查询字段、所述连接符的第一分类标签和所述聚合函数的第二分类标签,生成可执行的SQL语句。
9.一种服务器,其特征在于,所述服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的SQL语句生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的SQL语句生成方法的步骤。
CN202011642208.5A 2020-12-31 2020-12-31 Sql语句生成方法、装置、服务器及计算机可读存储介质 Active CN112732741B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011642208.5A CN112732741B (zh) 2020-12-31 2020-12-31 Sql语句生成方法、装置、服务器及计算机可读存储介质
PCT/CN2021/084304 WO2022141880A1 (zh) 2020-12-31 2021-03-31 Sql语句生成方法、装置、服务器及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011642208.5A CN112732741B (zh) 2020-12-31 2020-12-31 Sql语句生成方法、装置、服务器及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112732741A CN112732741A (zh) 2021-04-30
CN112732741B true CN112732741B (zh) 2024-06-07

Family

ID=75609165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011642208.5A Active CN112732741B (zh) 2020-12-31 2020-12-31 Sql语句生成方法、装置、服务器及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN112732741B (zh)
WO (1) WO2022141880A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282724B (zh) * 2021-05-21 2024-05-28 北京京东振世信息技术有限公司 一种智能客服的交互方法和装置
CN115408506B (zh) * 2022-09-15 2023-09-12 云南大学 联合语义解析和语义成分匹配的nl2sql的方法
CN116880438B (zh) * 2023-04-03 2024-04-26 材谷金带(佛山)金属复合材料有限公司 退火设备控制***的故障检测方法及***
CN116629227B (zh) * 2023-07-24 2023-10-24 海信集团控股股份有限公司 一种将文本转换为sql语句的方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408526A (zh) * 2018-10-12 2019-03-01 平安科技(深圳)有限公司 Sql语句生成方法、装置、计算机设备及存储介质
CN111177174A (zh) * 2018-11-09 2020-05-19 百度在线网络技术(北京)有限公司 Sql语句的生成方法、装置、设备和计算机可读存储介质
CN111414380A (zh) * 2020-03-20 2020-07-14 华泰证券股份有限公司 一种中文数据库sql语句生成方法、设备及存储介质
CN111581229A (zh) * 2020-03-25 2020-08-25 平安科技(深圳)有限公司 Sql语句的生成方法、装置、计算机设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106033466A (zh) * 2015-03-20 2016-10-19 华为技术有限公司 数据库查询的方法和设备
CN110888897B (zh) * 2019-11-12 2020-07-14 杭州世平信息科技有限公司 一种根据自然语言生成sql语句的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408526A (zh) * 2018-10-12 2019-03-01 平安科技(深圳)有限公司 Sql语句生成方法、装置、计算机设备及存储介质
CN111177174A (zh) * 2018-11-09 2020-05-19 百度在线网络技术(北京)有限公司 Sql语句的生成方法、装置、设备和计算机可读存储介质
CN111414380A (zh) * 2020-03-20 2020-07-14 华泰证券股份有限公司 一种中文数据库sql语句生成方法、设备及存储介质
CN111581229A (zh) * 2020-03-25 2020-08-25 平安科技(深圳)有限公司 Sql语句的生成方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN112732741A (zh) 2021-04-30
WO2022141880A1 (zh) 2022-07-07

Similar Documents

Publication Publication Date Title
CN112732741B (zh) Sql语句生成方法、装置、服务器及计算机可读存储介质
US11151177B2 (en) Search method and apparatus based on artificial intelligence
CN107273503B (zh) 用于生成同语言平行文本的方法和装置
CN108549656B (zh) 语句解析方法、装置、计算机设备及可读介质
CN110334179B (zh) 问答处理方法、装置、计算机设备和存储介质
CN113707300B (zh) 基于人工智能的搜索意图识别方法、装置、设备及介质
CN109766418B (zh) 用于输出信息的方法和装置
WO2022174496A1 (zh) 基于生成模型的数据标注方法、装置、设备及存储介质
CN112035599A (zh) 基于垂直搜索的查询方法、装置、计算机设备及存储介质
CN111274822A (zh) 语义匹配方法、装置、设备及存储介质
CN110990533A (zh) 确定查询文本所对应标准文本的方法及装置
CN112925898B (zh) 基于人工智能的问答方法、装置、服务器及存储介质
CN116415564B (zh) 基于知识图谱的功能点扩增方法和***
CN115470338A (zh) 一种基于多路召回的多场景智能问答方法和***
WO2021042529A1 (zh) 文章摘要自动生成方法、装置及计算机可读存储介质
CN115344699A (zh) 文本分类模型的训练方法、装置、计算机设备及介质
CN107679055B (zh) 信息检索方法、服务器及可读存储介质
CN111488513A (zh) 用于生成页面的方法和装置
CN112597299A (zh) 文本的实体分类方法、装置、终端设备和存储介质
CN116451688A (zh) 汉语分词方法、装置、服务器及存储介质
CN111523312A (zh) 一种基于释义消歧的查词显示方法、装置和计算设备
CN114742062B (zh) 文本关键词提取处理方法及***
CN113064984B (zh) 意图识别方法、装置、电子设备及可读存储介质
CN113076089B (zh) 一种基于对象类型的api补全方法
CN113723058B (zh) 文本摘要与关键词抽取方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40041543

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant