CN113626468A - 基于人工智能的sql语句生成方法、装置、设备及存储介质 - Google Patents
基于人工智能的sql语句生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113626468A CN113626468A CN202110924883.5A CN202110924883A CN113626468A CN 113626468 A CN113626468 A CN 113626468A CN 202110924883 A CN202110924883 A CN 202110924883A CN 113626468 A CN113626468 A CN 113626468A
- Authority
- CN
- China
- Prior art keywords
- chinese
- template
- corpus
- english
- question
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 53
- 230000011218 segmentation Effects 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 241000475481 Nebula Species 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种基于人工智能的SQL语句生成方法,应用于人工智能技术领域,用于解决传统方案通过手动配置样本语料导致样本语料产出效率低的技术问题。本发明提供的方法包括:获取用户输入的中文问句,对该中文问句进行分词处理,得到多个词语;根据得到的该词语,在预先配置的多个中文语料模板中匹配与该中文问句相对应的中文语料模板,得到目标中文语料模板;获取预先配置的与该目标中文语料模板唯一对应的英文语料模板;识别该英文语料模板中的各个英文模板槽位;获取与各该英文模板槽位对应配置的多个变量的取值,将各该变量的取值对对应的英文模板槽位依次进行填充,得到与该中文问句相对应的多个SQL查询语句。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种基于人工智能的SQL语句生成方法、装置、计算机设备及存储介质。
背景技术
Text-to-SQL是一项将自然语言描述转换为SQL查询语句的技术,用户通过输入简单的问题进行搜索即可快速得到可视化的转换结果。例如:用户输入“年龄的最大值”,转化成SQL语句为“select max(age)from user”。那么对于监督式textToSql的模型,都需要相应的样本语料来学习从一个句子转化成SQL语句的能力。
训练该模型的流程可能是:用户配置一张业务表;基于表字段以及表字段值来构建‘问句’以及对应‘sql’的语料;把人工写好的样本语料给到text2sql模型、bert模型或者其他模型进行训练。
显而易见的是,用于训练TextToSql模型、bert模型或者其他模型的样本语料传统的做法,需要对用于训练各模型的每一张表手动地配置相应的样本语料,让模型去学习,手动配置样本语料是一个繁琐且非常耗时的工作,效率非常低。
发明内容
本发明实施例提供一种基于人工智能的SQL语句生成方法、装置、计算机设备及存储介质,以解决传统方案通过手动配置样本语料导致样本语料产出效率低的技术问题。
一种基于人工智能的SQL语句生成方法,所述方法包括:
获取用户输入的中文问句,对所述中文问句进行分词处理,得到多个词语;
根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板,得到目标中文语料模板;
获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板;
识别所述英文语料模板中的各个英文模板槽位;
获取与各所述英文模板槽位对应配置的多个变量的取值,将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句。
一种基于人工智能的SQL语句生成装置,所述装置包括:
问句获取模块,用于获取用户输入的中文问句,对所述中文问句进行分词处理,得到多个词语;
匹配模块,用于根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板,得到目标中文语料模板;
英文模板获取模块,用于获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板;
英文槽位识别模块,用于识别所述英文语料模板中的各个英文模板槽位;
第一填充模块,用于获取与各所述英文模板槽位对应配置的多个变量的取值,将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于人工智能的SQL语句生成方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于人工智能的SQL语句生成方法的步骤。
本申请提出的基于人工智能的SQL语句生成方法、装置、计算机设备及存储介质,通过匹配与用户输入的中文问句相对应的中文语料模板,得到目标中文语料模板,再获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板,然后识别该英文语料模板中的各个英文模板槽位,获取与各所述英文模板槽位对应配置的多个变量的取值,最后将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句,可以将得到的SQL查询语句作为待训练模型的样本语料,在得到该SQL查询语句的过程中只需要用户预先配置好中文语料模板和对应的英文语料模板,用户只需要输入一个中文问句即可智能生成相应的多个SQL查询语句,用户可以通过输入不同类型的中文问句以匹配到不同的英文语料模板,最终通过槽位填充可得到批量的SQL查询语句,以降低代码的开发量,提高SQL语料的生成效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中基于人工智能的SQL语句生成方法的一应用环境示意图;
图2是本发明一实施例中基于人工智能的SQL语句生成方法的一流程图;
图3是本发明另一实施例中基于人工智能的SQL语句生成方法的一流程图;
图4是本发明一实施例中基于人工智能的SQL语句生成装置的结构示意图;
图5是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的基于人工智能的SQL(Structured Query Language,结构化查询语言)语句生成方法,可应用在如图1的应用环境中,其中,该计算机设备可以通过网络与服务器进行通信。其中,该计算机设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。该服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
进一步地,本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
在一实施例中,如图2所示,提供一种基于人工智能的SQL语句生成方法,以该方法应用在图1中的计算机设备为例进行说明,包括如下步骤S101至S106。
S101、获取用户输入的中文问句,对所述中文问句进行分词处理,得到多个词语。
其中,对所述中文问句进行分词处理,得到多个词语,适用于自然语言处理技术。用户输入的中文问句例如“截止20201023,浙江机构中满足当月新增客户数不大于0的领取赠券客户数最小值?”。分词后得到的词语包括“20201023”、“浙江”、“新增客户数”、“不大于”、“0”、“领取赠券客户数”、“最小值”。
S102、根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板,得到目标中文语料模板。
可以理解的是,系统中预先配置有多个中文语料模板以对应不同语法结构的中文问句。每种中文语料模板后期都可以智能生成多个SQL查询语句。
在其中一个实施例中,每个所述中文语料模板均包含有至少一个中文模板槽位,所述根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板的步骤包括:
识别各所述词语所属的所有中文语料模板中的中文模板槽位,得到与各个所述词语相对应的中文模板槽位;
将包含有得到的所有所述中文模板槽位的中文语料模板确定为所述目标中文语料模板。
在进行中文模板槽位匹配时,可以通过各个槽位预先配置的词语集进行匹配。例如槽位A配置的词语集包括大于、小于、不大于、不小于、等于等,中文问句中包含有词语“不大于”,与槽位A中的一个词语相同,则确定中文问句中的词语“不大于”与中文模板槽位A匹配成功。
可以理解的是,各所述中文语料模板中包含有若干个中文模板槽位,不同的中文语料模板可能会包含相同的中文模板槽位,本实施例提出的目标中文语料模板的匹配步骤通过将包含有得到的所有所述中文模板槽位的中文语料模板确定为该目标中文语料模板,使得可以匹配到最相关的目标中文语料模板。
在其中一个实施例中,槽位的定义格式例如{time_mention.1}。用‘{}’包裹的一个变量,time_mention表示变量名称,‘.1’为该变量别名。用来在中文语料模板和英文语料模板中做占位符。
其中,‘.1’之所以需要这样使用,是因为一个英文语料模板(也可以叫做SQL模板)可能会出现两个time_mention,但是这两个time_mention的值不一致,用该方式可以做区分。
S103、获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板。
在其中一个实施例中,中文语料模板或目标中文语料模板例如:从{time_mention.1}到{time_mention.2}代理人的年龄是多少?
对应的英文语料模板例如:select age from student where dt>{time_mention.1}and dt<{time_mention.2}。
在另一实施例中,中文语料模板或目标中文语料模板例如:截止{time_mention.1},{com_mention.1}机构中符合{sel_ch.1}{op.1}{value:sel_en.1}的{sel_ch.2}{agg.1}?
对应的英文语料模板例如:select{agg.1}({sel_en.2})from sxjx_aggd_internalboard_elis_newtool_mon_d_p_02where dt={time_mention.1}anddescription_2={com_mention.1}and{sel_en.1}{op.1}{value:sel_en.1}。
可以理解的是,本实施例中的中文语料模板和英文语料模板是需要成对进行配置的,中文语料模板便于匹配用户输入的中文问句,同步配置中文语料模板和英文语料模板便于将中文的语法结构转换为对应的SQL语法结构,使得最终得到的多个SQL查询语句与用户输入的中文问句为语法结构相似的问句。
S104、识别所述英文语料模板中的各个英文模板槽位。
可以理解的是,由于槽位的定义格式为用‘{}’包裹的一个变量,例如{time_mention.1},识别到的该英文语料模板中的‘{}’即表示该英文语料模板中的英文模板槽位。
S105、获取与各所述英文模板槽位对应配置的多个变量的取值,将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句。
在其中一个实施例中,所述变量包括枚举类型变量、二元组变量和/或Value类型变量。
在其中一个实施例中,枚举类型变量可以定义为用来定义英文语料模板中有限的值的变量,枚举变为后台配置的一些值且不可更改。进一步的,枚举变量包含agg、op、cond_conn_op三个变量。
其中,agg:用来定义SQL语料中的聚合函数,后台把sum、max、min和avg中的四个聚合函数随机填充一个至sql模板中的带agg槽位中,并把sum、max、min、avg对应的中文语义填充到对应的中文语料模板中的agg槽位中。
op:用来定义SQL语料中where中字段的逻辑运算符,后台把“<”、“>”、“=”、“!=”、“<=”、“>=”随机填充一个至英文语料模板中的带op的槽位中,并把对应的中文语义填充至中文语料模板的对应槽位中。
cond_conn_op:用来定义sql中的where中字段与字段之前的逻辑关系,后台把“and”、“or”随机填充对应的至英文语料模板的cond_conn_op的槽位中,并把对应的中文语料填充至中文语料模板槽位中。
考虑到待训练的模型不支持出现{cond_conn_op}值不一样的类型,目前cond_conn_op在英文语料模板中出现的值只能为一个类型值,也就是里面只能定义{cond_conn_op.1},不能出现例如{cond_conn_op.1}、{cond_conn_op.2},但是可以出现多个{cond_conn_op.1}。
例如中文语料模板“分数{op.1}80{cond_conn_op.1}年龄{op.1}18岁的按性别分组{agg.1}是多少”,填充得到的中文查询语句为“分数大于80并且年龄小于18岁的按性别分组平均值是多少?”。
对应的英文语料模板为“select{agg.1}(score)from student where scroe{op.1}80{cond_conn_op.1}age{op.2}18group by gender”,填充得到的SQL查询语句为“select avg(srore)from student where scroe>80and age<18group by gender”。
在其中一个实施例中,所述变量还包括一般变量。该一般变量用于定义表中某个字段维度值集合,用于填充至中文语料模板和英文语料模板where中某个字段的具体值。
一般变量例如变量名:time_mention;
变量定义:select distinct dt from sxjx_aggd_internalboard_elis_newtool_mon_d_p_02;
中文语料模板:在{time_mention.1}有哪些代理人;
对应的英文语料模板:select emp_name from sxjx_aggd_internalboard_elis_newtool_mon_d_p_0 where dt={time_mention.1}。
其中,该二元组变量用于定义英文语料模板中select中查询的字段列名和中文名集合。由于在中文语料模板中填充的是中文,英文语料模板中填充的是具体字段名,两者值不一致,所有定义为二元组类型,定义格式为中间用逗号隔开,并且英文语料模板变量定义在第一位,语料模板变量定义在第二位。
二元组变量例如变量名:sel_en,sel_ch,注意sql模板填充值变量定义在前面为sel_en,中文语料模板填充变量定义在后面;
变量定义:select column_name,name from nebula_abi_data_columns wheretable_name='sxjx_aggd_internalboard_elis_newtool_mon_d_p_02'and model_measure_unit=1and source_id='46';
中文语料模板:{agent_mention.1}或{agent_mention.2}的{sel_ch.1}{agg.1}是多少?
对应的英文语料模板:select{agg.1}({sel_en.1}),emp_name from sxjx_aggd_internalboard_elis_newtool_mon_d_p_02where emp_name={agent_mention.1}or emp_name={agent_mention.2}group by emp_name。
在其中一个实施例中,Value类型变量用于定义当英文语料模板中select查询字段中出现了二元组变量时,并且该二元组变量出现在了where后台的条件判断中,此时where中二元组条件判断的值定义为value类型变量,格式为value:sel_en,可以理解的是,value后面跟的是二元组中的英文语料模板填充的变量,该Value类型变量无需在变量定义中定义,在二元组变量前加上value:直接使用。
Value类型变量例如,变量名:value:sel_en;
变量定义:该变量名为sel_en,sel_ch二元组中sel_en某个字段具体值得集合;
中文语料模板例如:
{time_mention.1},{com_mention.1},{sel_ch.1}{op.1}{value:sel_en.1},{sel_ch.2}{agg.1};
英文语料模板例如:select{agg.1}({sel_en.2})from sxjx_aggd_internalboard_elis_newtool_mon_d_p_02where dt={time_mention.1}anddescription_2={com_mention.1}and{sel_en.1}{op.1}{value:sel_en.1}。
可以理解的是,在配置中文语料模板和英文语料模板时,需要定义的内容包含两个方面,一个是中文语料模板定义,一个英文语料模板定义。中文语料模板和英文语料模板具有一一对应关系。其中中文语料模板用来定义问例模板,填充之后是一个一个的中文查询语句。而英文语料模板填充之后对应的是SQL查询语句。英文语料模板定义就在SQL中用对应的槽位在sql中select查询的字段、where后面的条件判断、以及group by做字段填充。
本实施例提出的基于人工智能的SQL语句生成方法通过匹配与用户输入的中文问句相对应的中文语料模板,得到目标中文语料模板,再获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板,然后识别该英文语料模板中的各个英文模板槽位,获取与各所述英文模板槽位对应配置的多个变量的取值,最后将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句,可以将得到的SQL查询语句作为待训练模型的样本语料,在得到该SQL查询语句的过程中只需要用户预先配置好中文语料模板和对应的英文语料模板,用户只需要输入一个中文问句即可智能生成相应的多个SQL查询语句,用户可以通过输入不同类型的中文问句以匹配到不同的英文语料模板,最终通过槽位填充可得到批量的SQL查询语句,以降低代码的开发量,提高SQL语料的生成效率。
图3是本发明另一实施例中基于人工智能的SQL语句生成方法的一流程图,如图3所示,本实施例提出的基于人工智能的SQL语句生成方法在包括上述步骤S101至S105的基础上,还包括步骤S106和S107:
S106、识别所述目标中文语料模板中各个中文模板槽位,所述目标中文语料模板中各所述中文模板槽位与对应英文语料模板中的英文模板槽位具有一一映射关系。
同样可以理解的是,由于槽位的定义格式为用‘{}’包裹的一个变量,例如{time_mention.1},识别到的该目标中文语料模板中的‘{}’即表示该目标中文语料模板中的中文模板槽位。
可以理解的是,模板中含有的‘{}’叫做槽位,一个槽位代表该位置会被替换成一个具体的值。每个中文语料模板的槽位对应着一个英文语料模板的槽位。
S107、获取与各所述中文模板槽位对应配置的多个字符变量的取值,将各所述字符变量的取值对所述目标中文语料模板中对应的中文模板槽位依次进行填充,得到与所述中文问句相对应的多个中文查询语句。
可以理解的是,槽位里面包裹是变量,一个中文语料模板槽位中的变量对应着一个英文语料模板中槽位中的变量。在进行SQL查询语句批量智能生成时,需要用槽位中的变量值来替换该槽位。通过变量替换槽位的值得到很多个中文查询语句相对应的SQL查询语句。
在其中一个实施例中,该基于人工智能的SQL语句生成方法还包括:
输出与所述中文问句相对应的多个SQL查询语句;
以注释的形式输出与各所述SQL查询语句相对应的中文查询语句。
在其中一个实施例中,输出该SQL查询语句及该中文查询语句的方式可以是以显示的方式在计算机设备的屏幕上进行输出。
本实施例通过输出与所述中文问句相对应的多个SQL查询语句,并以注释的形式输出与各所述SQL查询语句相对应的中文查询语句,便于程序员在看SQL查询语句的表意时,可以根据注释中对应的中文查询语句,更快地读懂该SQL查询语句,另一方面也便于程序员在结合该SQL查询语句和对应的中文查询语句对智能生成的SQL查询语句的准确性就行纠正或确认。
根据本实施例提出的基于人工智能的SQL语句生成方法在替换和填充槽位后,目标中文语料模板对应的中文查询语句和英文语料模板对应的SQL查询语句的样例例如:
以目标中文语料模板为“截止{time_mention.1},{com_mention.1}机构中符合{sel_ch.1}{op.1}{value:sel_en.1}的{sel_ch.2}{agg.1}?”为例,填充得到的中文查询语句例如“截止20201023,浙江机构中满足当月新增客户数不大于0的领取赠券客户数最小值?”,其中{time_mention.1}填充值为“20201023”,{com_mention.1}填充值为“浙江”,{sel_ch.1}填充值为“新增客户数”,{op.1}填充值为“不大于”,{value:sel_en.1}填充值为“0”,{sel_ch.2}填充值为“领取赠券客户数”,{agg.1}填充值为“最小值”。
相应的,与该目标中文语料模板对应的英文语料模板为“select{agg.1}({sel_en.2})from sxjx_aggd_internalboard_elis_newtool_mon_d_p_02where dt={time_mention.1}and description_2={com_mention.1}and{sel_en.1}{op.1}{value:sel_en.1}”,填充得到的SQL查询语句相应为“select min(tag3012)from sxjx_aggd_internalboard_elis_newtool_mon_d_p_02where dt='20201023'and description_2='浙江'and tag3009<='0'”。其中{agg.1}填充值为min,{sel_en.2}填充值为tag3012,{time_mention.1}填充值为’20201023’,{com_mention.1}填充值为'浙江',{sel_en.1}填充值为tag3009,{op.1}填充值为<=,{value:sel_en.1}填充值为‘0’。
本实施例提出的基于人工智能的SQL语句生成方法中语料扩充机制主要在于以下五点:
1、配置每条模板语料需要扩充多少条语料值N。
2、初始化配置文件。
agg:avg:平均值,均值,平均数</br>max:最大值,极大值,最大,极大</br>min:最小值,极小值,最小,极小</br>sum:汇总,之和,总数,总计,总共;
op:>:超过,大于,高于,高出</br><:小于,低于</br>=:等于,是,为</br>!=:不等于,去除,不为,不是</br><=:小于等于,不大于</br>>=:大于等于,不小于;
cond_conn_op:and:以及,并且,且,和</br>or:或者,或。
3、后台解析中文模板,英文模板。获得两个集合,中文变量集合,英文变量集合。
4、给每个变量生成N个随机变量值。
1)、枚举变量
比如agg.1,agg.2随机生成N个英文语料的值(avg,min等),在配置相应的中文语料值(平均值,最小),以agg.1为key存入map。
2)、二元组变量
根据sel_en,sel_ch得sql获取N个二元组变量值(二元组就是表中字段,以及字段中文含义)分别放入Map。
3)、一般变量
根据sql得到N个变量值,取变量名称作为key存入Map。
4)、Value变量:随机取10000行表中数据,包含所有字段。{value:sel_en.1},从生成的N个sel_en.1取值,得到具体字段。在从10000行数据,从里面根据字段名随机取N个数据。
5、按顺序把每个生成变量的值填充值模板中,此时生成了想要的语料。
本实施例提出的基于人工智能的SQL语句生成方法可以智能批量的生成SQL查询语句,在textToSql的模型中都可以通过人工配置一定数量的模板语料,一条模板语料能够扩充多条模板语料,从而可以快速扩充大量不同类型的模板语料,使得在配置TextToSql模型生产语料这一方面大大节省人力成本,以及时间成本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于人工智能的SQL语句生成装置,该基于人工智能的SQL语句生成装置与上述实施例中基于人工智能的SQL语句生成方法一一对应。如图4所示,该基于人工智能的SQL语句生成装置100包括问句获取模块11、匹配模块12、英文模板获取模块13、英文槽位识别模块14和第一填充模块15。各功能模块详细说明如下:
问句获取模块11,用于获取用户输入的中文问句,对所述中文问句进行分词处理,得到多个词语;
匹配模块12,用于根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板,得到目标中文语料模板;
英文模板获取模块13,用于获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板;
英文槽位识别模块14,用于识别所述英文语料模板中的各个英文模板槽位;
第一填充模块15,用于获取与各所述英文模板槽位对应配置的多个变量的取值,将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句。
在其中一个实施例中,该变量包括但不限于枚举类型变量、二元组变量和/或Value类型变量。
在其中一个实施例中,每个所述中文语料模板均包含有至少一个中文模板槽位,所述匹配模块进一步包括:
中文槽位识别单元,用于识别各所述词语所属的所有中文语料模板中的中文模板槽位,得到与各个所述词语相对应的中文模板槽位;
目标确定单元,用于将包含有得到的所有所述中文模板槽位的中文语料模板确定为所述目标中文语料模板。
进一步地,该基于人工智能的SQL语句生成装置还包括:
中文槽位识别模块,用于识别所述目标中文语料模板中各个中文模板槽位,所述目标中文语料模板中各所述中文模板槽位与对应英文语料模板中的英文模板槽位具有一一映射关系;
第二填充模块,用于获取与各所述中文模板槽位对应配置的多个字符变量的取值,将各所述字符变量的取值对所述目标中文语料模板中对应的中文模板槽位依次进行填充,得到与所述中文问句相对应的多个中文查询语句。
作为可选地,该基于人工智能的SQL语句生成装置还包括:
第一输出模块,用于输出与所述中文问句相对应的多个SQL查询语句;
第二输出模块,用于以注释的形式输出与各所述SQL查询语句相对应的中文查询语句。
本实施例提出的基于人工智能的SQL语句生成装置通过匹配模块匹配与用户输入的中文问句相对应的中文语料模板,得到目标中文语料模板,再通过英文模板获取模块获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板,然后通过英文槽位识别模块识别该英文语料模板中的各个英文模板槽位,获取与各所述英文模板槽位对应配置的多个变量的取值,最后通过第一填充模块将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句,可以将得到的SQL查询语句作为待训练模型的样本语料,在得到该SQL查询语句的过程中只需要用户预先配置好中文语料模板和对应的英文语料模板,用户只需要输入一个中文问句即可智能生成相应的多个SQL查询语句,用户可以通过输入不同类型的中文问句以匹配到不同的英文语料模板,最终通过槽位填充可得到批量的SQL查询语句,以降低代码的开发量,提高SQL语料的生成效率。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于基于人工智能的SQL语句生成装置的具体限定可以参见上文中对于基于人工智能的SQL语句生成方法的限定,在此不再赘述。上述基于人工智能的SQL语句生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质包括非易失性存储介质和/或易失性的存储介质,该存储介质存储有操作系统和计算机程序。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种基于人工智能的SQL语句生成方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中基于人工智能的SQL语句生成方法的步骤,例如图2所示的步骤101至步骤105及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中基于人工智能的SQL语句生成装置的各模块/单元的功能,例如图4所示模块11至模块15的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中基于人工智能的SQL语句生成方法的步骤,例如图2所示的步骤101至步骤105及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中基于人工智能的SQL语句生成装置的各模块/单元的功能,例如图4所示模块11至模块15的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性和/或易失性的计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于人工智能的SQL语句生成方法,其特征在于,所述方法包括:
获取用户输入的中文问句,对所述中文问句进行分词处理,得到多个词语;
根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板,得到目标中文语料模板;
获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板;
识别所述英文语料模板中的各个英文模板槽位;
获取与各所述英文模板槽位对应配置的多个变量的取值,将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句。
2.根据权利要求1所述的基于人工智能的SQL语句生成方法,其特征在于,每个所述中文语料模板均包含有至少一个中文模板槽位,所述根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板的步骤包括:
识别各所述词语所属的所有中文语料模板中的中文模板槽位,得到与各个所述词语相对应的中文模板槽位;
将包含有得到的所有所述中文模板槽位的中文语料模板确定为所述目标中文语料模板。
3.根据权利要求2所述的基于人工智能的SQL语句生成方法,其特征在于,在所述得到目标中文语料模板的步骤之后,所述方法还包括:
识别所述目标中文语料模板中各个中文模板槽位,所述目标中文语料模板中各所述中文模板槽位与对应英文语料模板中的英文模板槽位具有一一映射关系;
获取与各所述中文模板槽位对应配置的多个字符变量的取值,将各所述字符变量的取值对所述目标中文语料模板中对应的中文模板槽位依次进行填充,得到与所述中文问句相对应的多个中文查询语句。
4.根据权利要求3所述的基于人工智能的SQL语句生成方法,其特征在于,所述方法还包括:
输出与所述中文问句相对应的多个SQL查询语句;
以注释的形式输出与各所述SQL查询语句相对应的中文查询语句。
5.根据权利要求1至4任一所述的基于人工智能的SQL语句生成方法,其特征在于,所述变量包括枚举类型变量、二元组变量和/或Value类型变量。
6.一种基于人工智能的SQL语句生成装置,其特征在于,所述装置包括:
问句获取模块,用于获取用户输入的中文问句,对所述中文问句进行分词处理,得到多个词语;
匹配模块,用于根据得到的所述词语,在预先配置的多个中文语料模板中匹配与所述中文问句相对应的中文语料模板,得到目标中文语料模板;
英文模板获取模块,用于获取预先配置的与所述目标中文语料模板唯一对应的英文语料模板;
英文槽位识别模块,用于识别所述英文语料模板中的各个英文模板槽位;
第一填充模块,用于获取与各所述英文模板槽位对应配置的多个变量的取值,将各所述变量的取值对对应的英文模板槽位依次进行填充,得到与所述中文问句相对应的多个SQL查询语句。
7.根据权利要求书6所述的基于人工智能的SQL语句生成装置,其特征在于,每个所述中文语料模板均包含有至少一个中文模板槽位,所述匹配模块进一步包括:
中文槽位识别单元,用于识别各所述词语所属的所有中文语料模板中的中文模板槽位,得到与各个所述词语相对应的中文模板槽位;
目标确定单元,用于将包含有得到的所有所述中文模板槽位的中文语料模板确定为所述目标中文语料模板。
8.根据权利要求书6所述的基于人工智能的SQL语句生成装置,其特征在于,所述装置还包括:
中文槽位识别模块,用于识别所述目标中文语料模板中各个中文模板槽位,所述目标中文语料模板中各所述中文模板槽位与对应英文语料模板中的英文模板槽位具有一一映射关系;
第二填充模块,用于获取与各所述中文模板槽位对应配置的多个字符变量的取值,将各所述字符变量的取值对所述目标中文语料模板中对应的中文模板槽位依次进行填充,得到与所述中文问句相对应的多个中文查询语句。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述基于人工智能的SQL语句生成方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述基于人工智能的SQL语句生成方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110924883.5A CN113626468B (zh) | 2021-08-12 | 2021-08-12 | 基于人工智能的sql语句生成方法、装置、设备及存储介质 |
PCT/CN2022/071257 WO2023015841A1 (zh) | 2021-08-12 | 2022-01-11 | 基于人工智能的 sql 语句生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110924883.5A CN113626468B (zh) | 2021-08-12 | 2021-08-12 | 基于人工智能的sql语句生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626468A true CN113626468A (zh) | 2021-11-09 |
CN113626468B CN113626468B (zh) | 2024-03-01 |
Family
ID=78384888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110924883.5A Active CN113626468B (zh) | 2021-08-12 | 2021-08-12 | 基于人工智能的sql语句生成方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113626468B (zh) |
WO (1) | WO2023015841A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114298001A (zh) * | 2021-11-29 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 语料模板生成方法、装置、电子设备及存储介质 |
WO2023015841A1 (zh) * | 2021-08-12 | 2023-02-16 | 平安科技(深圳)有限公司 | 基于人工智能的 sql 语句生成方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111191439A (zh) * | 2019-12-16 | 2020-05-22 | 浙江大搜车软件技术有限公司 | 自然语句生成的方法、装置、计算机设备和存储介质 |
CN111767381A (zh) * | 2020-06-30 | 2020-10-13 | 北京百度网讯科技有限公司 | 自动问答方法和装置 |
US20200334233A1 (en) * | 2019-04-18 | 2020-10-22 | Sap Se | One-shot learning for text-to-sql |
CN112380240A (zh) * | 2020-11-17 | 2021-02-19 | 深圳壹账通智能科技有限公司 | 基于语义识别的数据查询方法、装置、设备及存储介质 |
CN112541070A (zh) * | 2020-12-25 | 2021-03-23 | 北京百度网讯科技有限公司 | 槽位更新语料的挖掘方法、装置、电子设备和存储介质 |
CN112925794A (zh) * | 2021-04-02 | 2021-06-08 | 中国人民解放军国防科技大学 | 基于桥接填充的复杂多表sql生成方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470700A (zh) * | 2007-12-28 | 2009-07-01 | 日电(中国)有限公司 | 文本模板生成器、文本生成设备、文本检验设备及其方法 |
CN112632100A (zh) * | 2020-12-18 | 2021-04-09 | 中国平安人寿保险股份有限公司 | 自然语言语句解析方法、装置、电子设备及存储介质 |
CN113626468B (zh) * | 2021-08-12 | 2024-03-01 | 平安科技(深圳)有限公司 | 基于人工智能的sql语句生成方法、装置、设备及存储介质 |
-
2021
- 2021-08-12 CN CN202110924883.5A patent/CN113626468B/zh active Active
-
2022
- 2022-01-11 WO PCT/CN2022/071257 patent/WO2023015841A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200334233A1 (en) * | 2019-04-18 | 2020-10-22 | Sap Se | One-shot learning for text-to-sql |
CN111191439A (zh) * | 2019-12-16 | 2020-05-22 | 浙江大搜车软件技术有限公司 | 自然语句生成的方法、装置、计算机设备和存储介质 |
CN111767381A (zh) * | 2020-06-30 | 2020-10-13 | 北京百度网讯科技有限公司 | 自动问答方法和装置 |
CN112380240A (zh) * | 2020-11-17 | 2021-02-19 | 深圳壹账通智能科技有限公司 | 基于语义识别的数据查询方法、装置、设备及存储介质 |
CN112541070A (zh) * | 2020-12-25 | 2021-03-23 | 北京百度网讯科技有限公司 | 槽位更新语料的挖掘方法、装置、电子设备和存储介质 |
CN112925794A (zh) * | 2021-04-02 | 2021-06-08 | 中国人民解放军国防科技大学 | 基于桥接填充的复杂多表sql生成方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023015841A1 (zh) * | 2021-08-12 | 2023-02-16 | 平安科技(深圳)有限公司 | 基于人工智能的 sql 语句生成方法、装置、设备及存储介质 |
CN114298001A (zh) * | 2021-11-29 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 语料模板生成方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113626468B (zh) | 2024-03-01 |
WO2023015841A1 (zh) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388515B (zh) | 测试数据生成方法、装置、设备以及计算机可读存储介质 | |
US11373047B2 (en) | Method, system, and computer program for artificial intelligence answer | |
CN111176996A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN108717437B (zh) | 搜索结果展示方法、装置及存储介质 | |
CN113626468B (zh) | 基于人工智能的sql语句生成方法、装置、设备及存储介质 | |
CN108776677B (zh) | 平行语句库的创建方法、设备及计算机可读存储介质 | |
CN110941427A (zh) | 代码生成方法及代码生成器 | |
US20220284371A1 (en) | Method, device and medium for a business function page | |
CN112286934A (zh) | 数据库表导入方法、装置、设备及介质 | |
CN112988298A (zh) | 可视化界面配置方法、装置、计算机设备及存储介质 | |
CN113705198B (zh) | 场景图生成方法、装置、电子设备及存储介质 | |
CN111158648A (zh) | 一种基于实景语义理解的互动帮助系统开发方法及其平台 | |
CN109243249B (zh) | 测评程序的生成方法和生成装置 | |
CN112307167A (zh) | 文本切句方法、装置、计算机设备和存储介质 | |
CN117763140B (zh) | 基于计算特征网络的精准医学信息结论生成方法 | |
CN110633118A (zh) | 程序自制方法、装置和存储介质 | |
CN118296035B (zh) | 语句生成方法、语句生成装置以及计算机存储介质 | |
CN114741070B (zh) | 代码生成方法、装置、电子设备及存储介质 | |
US20240264809A1 (en) | Generation of synthetic training data using grammar mapping | |
CN115686520A (zh) | 存储代码转换方法、装置、计算机设备及存储介质 | |
CN114462400B (zh) | 定向包脚本生成方法、装置、设备及存储介质 | |
CN117033677A (zh) | 图数据库的操作方法、装置及计算机可读存储介质 | |
CN114912427A (zh) | 响应于用户输入的数据表分析 | |
CN116301838A (zh) | 表单创建方法、装置、设备及存储介质 | |
CN118656136A (zh) | 信息获取方法与相关设备 |
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 |