CN114911820A - 一种sql语句判别模型构建方法、sql语句判别方法 - Google Patents
一种sql语句判别模型构建方法、sql语句判别方法 Download PDFInfo
- Publication number
- CN114911820A CN114911820A CN202210670696.3A CN202210670696A CN114911820A CN 114911820 A CN114911820 A CN 114911820A CN 202210670696 A CN202210670696 A CN 202210670696A CN 114911820 A CN114911820 A CN 114911820A
- Authority
- CN
- China
- Prior art keywords
- sql
- graph
- sql statement
- model
- training
- 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.)
- Pending
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
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)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information 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语句判别模型构建方法、SQL语句判别方法,该构建方法包括:获取训练数据,训练数据包括SQL语句以及对应的资源消耗数据;对训练数据进行语法分析,构建SQL语法树;基于图自编码器对SQL语法树进行编码,得到图拓扑结构;根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。通过实施本发明,构建SQL语法树,并将其转化为图拓扑结构作为图卷积神经网络的输入,由此可以在拓扑结构上进行卷积等运算,提高了SQL解析判别的效率。因此,该SQL语句判别模型构建方法构建的SQL语句判别模型能够实现对SQL快速的识别分类。
Description
技术领域
本发明涉及电力系统数据管理技术领域,具体涉及一种SQL语句判别模型构建方法、SQL语句判别方法。
背景技术
近年来,各行各业对大数据分析和应用管理的需求不断增加,大数据查询也逐渐向不同方向发展。这些查询系统在查询语言、计算机模型、系统架构和存储技术等方面各有特点,适用于多种垂直应用环境。因此,现代企业或组织会构建不同类型的数据查询来处理不同的业务系统。现有数据通常存储在相关的数据库系统中,而研究人员与数据库相关的知识和查询语言都是基于SQL(Structured Query Language,结构化查询语言),对技术专业知识要求很高,普通用户难以访问。
现有的SQL的判别主要采用两种方式,一种是基于规则的判别方式,通过观察者模型对SQL的类型进行甄别。这种方式需要消耗更多的人力资源,同时观察者模型的设计效率较为低下。另一种是基于深度学习算法的判别,通过神经网络来训练现有的已经标注好的数据集,只需要通过不断的优化训练集和训练模型就可以提高效率,且适应性比较强。然而传统的深度学习模型需要结合数据库本身的信息,也就是说输入的数据结构不能更好的体现SQL的特点,尤其在多表SQL查询场景中,效率不是特别高。
发明内容
有鉴于此,本发明实施例提供了涉及一种SQL语句判别模型构建方法、SQL语句判别方法,以解决现有技术中针对SQL语句的判别效率较低的技术问题。
本发明提出的技术方案如下:
本发明实施例第一方面提供一种SQL语句判别模型构建方法,包括:获取训练数据;对所述训练数据进行语法分析,构建SQL语法树;基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
可选地,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型,包括:基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数;采用优化后的参数,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
可选地,所述SQL语句判别模型采用如下步骤进行SQL语句判别:将图拓扑结构经过多层图卷积计算,得到第一计算结果;将所述第一计算结果经过线性全连接层和第一激励函数层计算,得到第二计算结果;将所述第二计算结果经过第二激励函数计算,输出SQL语句判别结果。
可选地,对所述训练数据进行语法分析,构建SQL语法树,包括:对所述训练数据进行语句、用词和词法分析,构建SQL语法树;遍历SQL语法树,进行语法裁剪,得到SQL规范语法树。
可选地,基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数,包括:基于随机生成的染色体生成初始种群;采用初始种群中任一染色体作为图卷积神经网络的参数进行训练,计算训练后的损失函数;根据训练后的损失函数计算对应染色体的适应度值;根据所述适应度值判断是否满足终止条件;当未满足终止条件时,保存最优个体并根据轮盘赌算法选择个体;根据保存和选择的个体进行基因突变,得到新的种群;根据新的种群重复训练和适应度值计算步骤,直至满足终止条件,得到最优个体作为优化后的参数。
可选地,SQL语句判别模型构建方法还包括:将根据待测数据生成的图拓扑结构输入至SQL语句判别模型进行判别,输出测试结果;根据模型测试指标判断所述测试结果是否满足符合预设要求;当不符合预设要求时,重复本发明实施例第一方面的步骤,生成新的SQL语句判别模型,直至新的SQL语句判别模型的测试结果符合预设要求;当符合预设要求时,获取新的训练数据对所述SQL语句判别模型进行优化。
本发明实施例第二方面提供一种SQL语句判别方法包括:获取待测数据;对待测数据进行语法分析,构建SQL语法树;基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;将所述图拓扑结构输入至采用本发明实施例第一方面及第一方面任一项所述的SQL语句判别模型构建方法构建的SQL语句判别模型中,得到判别结果。
本发明实施例第三方面提供一种SQL语句判别模型构建装置,包括:数据获取模块,用于获取训练数据;分析模块,用于对所述训练数据进行语法分析,构建SQL语法树;编码模块,用于基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;训练模块,用于根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
可选地,训练模块包括:参数优化模块,用于基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数;采训练子模块,用于采用优化后的参数,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
可选地,所述SQL语句判别模型采用如下步骤进行SQL语句判别:将图拓扑结构经过多层图卷积计算,得到第一计算结果;将所述第一计算结果经过线性全连接层和第一激励函数层计算,得到第二计算结果;将所述第二计算结果经过第二激励函数计算,输出SQL语句判别结果。
可选地,分析模块包括:对所述训练数据进行语句、用词和词法分析,构建SQL语法树;遍历SQL语法树,进行语法裁剪,得到SQL规范语法树。
可选地,参数优化模块包括:基于随机生成的染色体生成初始种群;采用初始种群中任一染色体作为图卷积神经网络的参数进行训练,计算训练后的损失函数;根据训练后的损失函数计算对应染色体的适应度值;根据所述适应度值判断是否满足终止条件;当未满足终止条件时,保存最优个体并根据轮盘赌算法选择个体;根据保存和选择的个体进行基因突变,得到新的种群;根据新的种群重复训练和适应度值计算步骤,直至满足终止条件,得到最优个体作为优化后的参数。
可选地,SQL语句判别模型构建方法还包括:测试模块,用于将根据待测数据生成的图拓扑结构输入至SQL语句判别模型进行判别,输出测试结果;判断模块,用于根据模型测试指标判断所述测试结果是否满足符合预设要求;新模型生成模块,用于当不符合预设要求时,重复本发明实施例第一方面的步骤,生成新的SQL语句判别模型,直至新的SQL语句判别模型的测试结果符合预设要求;模型优化模块,用于当符合预设要求时,获取新的训练数据对所述SQL语句判别模型进行优化。
本发明实施例第四方面提供一种SQL语句判别装置,包括:待测数据获取模块,用于获取待测数据;语法分析模块,用于对待测数据进行语法分析,构建SQL语法树;语法编码模块,用于基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;判别模块,用于将所述图拓扑结构输入至采用本发明实施例第一方面及第一方面任一项所述的SQL语句判别模型构建方法构建的SQL语句判别模型中,得到判别结果。
本发明实施例第五方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明实施例第一方面及第一方面任一项所述的SQL语句判别模型构建方法及本发明实施例第二方面及第二方面任一项所述的SQL语句判别方法。
本发明实施例第六方面提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如本发明实施例第一方面及第一方面任一项所述的SQL语句判别模型构建方法及本发明实施例第二方面及第二方面任一项所述的SQL语句判别方法。
本发明提供的技术方案,具有如下效果:
本发明实施例提供的SQL语句判别模型构建方法及装置,通过构建SQL语法树,并将其转化为图拓扑结构作为图卷积神经网络的输入,由此可以在拓扑结构上进行卷积等运算,提高了SQL解析判别的效率。因此,该SQL语句判别模型构建方法构建的SQL语句判别模型能够实现对SQL快速的识别分类。
本发明实施例提供的SQL语句判别方法及装置,通过构建SQL语法树,并将其转化为图拓扑结构作为SQL语句判别模型的输入,由此可以在拓扑结构上进行卷积等运算,提高了SQL解析判别的效率。因此,该SQL语句判别方法及装置能够实现对SQL快速的识别分类。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的SQL语句判别模型构建方法的流程图;
图2是根据本发明实施例的SQL语句判别模型构建方法及SQL语句判别方法的流程图;
图3是根据本发明实施例构建的SQL语法树的结构框图;
图4是根据本发明另一实施例的SQL语句判别模型构建方法的流程图;
图5是根据本发明实施例的SQL语句判别模型构建装置的结构框图;
图6是根据本发明实施例的SQL语句判别装置的结构框图;
图7是根据本发明实施例提供的计算机可读存储介质的结构示意图;
图8是根据本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种SQL语句解析判别方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种SQL语句解析判别方法,可用于电子设备,如电脑、手机、平板电脑等,图1是根据本发明实施例SQL语句解析判别方法的流程图,如图1和图2所示,该方法包括如下步骤:
步骤S101:获取训练数据,所述训练数据包括SQL语句以及对应的资源消耗数据。具体地,对于训练数据的获取,可以从电力系统的数据库中获取。例如,该数据库可以是HTAP(Hybrid Transactional/Analytical Processing,混合事务/分析处理)数据库。HTAP数据库,能够显著提升海量规模下的用电采集系统数据存取效率,尤其是实时存取效率,同时显著降低软硬件成本。
在从数据库中获取训练数据时,采用数据库的日志记录功能,将QL语句以及对应的资源消耗等记录记录下来,用作后续模型训练的训练集或验证集。
步骤S102:对所述训练数据进行语法分析,构建SQL语法树。其中,对于SQL语句可以分为四大类:数据查询语言(DQL,Data Query Language),数据操纵语言(DML,DataManipulation Language),数据定义语言(DDL,Data Definition Language),数据控制语言(DCL,Data Control Language)。但是在数据的操作上,可以根据SQL对于IO、CPU、内存等资源的消耗可以分为AP(Analytical Processing,分析处理)的SQL和TP(TransactionProcessing,事务处理)的SQL。对于TP类的SQL与AP类的SQL,其分别具体不同的特征。TP类SQL会有事务级别的插入、修改、删除等操作,也会有指定条件的简单查询等操。AP类会包含有大量的分类统计与语法嵌套,子树的数量、语法树的深度、语法树节点个数、第一棵子树等等。
具体地,为了实现对SQL语句TP类特征或者AP类特征进行分析,方便对SQL的判别做标签,可以通过对训练数据进行语法分析构建SQL语法树。其中,语法分析具体包括语句、用词和词法分析,在实际操作时,可以将训练数据输入语法解析器构建语法树。
在语法树的构建过程中,还可以遍历SQL语法树,进行语法裁剪,得到SQL规范语法树,从而可以获取SQL语句的主干。具体裁剪过程包括将SQL语句中用户输入部分,如数字字符串等,用通配符进行替换,同时将一些无用的节点裁剪删除。然后基于SQL规范语法树进行特征提取,提取特征包括:子树个数t1,树的高度t2,节点个数t3,第一颗字数节点个数t4,是否含有事务级别操作t5等等,从而获取SQL语句语法特征结构:
其中,若训练数据为“selecta from b where c=?”以用户admin为例,SQL语法树如图3所示。
步骤S103:基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构。具体地,用于encoder-decoder结构的图自编码器(Graph Auto-Encoder,GAE)可以对关系型数据结构进行结构化,可以更好的适应图卷积网络模型。具体地,将上述构建的SQL语法树经过图自编码器编码成图拓扑结构G=(V,E)。该图拓扑结构的形成可以是把语法树展开放入到特征变量中形成的。在该图拓扑结构中,V表示节点集合,即N表示节点的个数,E表示节点之间相连接边的集合。节点之间的边关系可用邻接矩阵A∈RN*N实数矩阵来表示。
步骤S104:根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。具体地,通过上述对训练数据的处理得到的图拓扑结构,将其输入至图卷积神经网络中对图卷积神经网络(Graph Convolutional Network,GCN))进行训练,从而使得该图卷积神经网络能够实现对SQL语句的类型判别。
本发明实施例提供的SQL语句判别模型构建方法,通过构建SQL语法树,并将其转化为图拓扑结构作为图卷积神经网络的输入,由此可以在拓扑结构上进行卷积等运算,提高了SQL解析判别的效率。因此,该SQL语句判别模型构建方法构建的SQL语句判别模型能够实现对SQL快速的识别分类。
在一实施方式中,所述SQL语句判别模型采用如下步骤进行SQL语句判别:将图拓扑结构经过多层图卷积计算,得到第一计算结果;将所述第一计算结果经过线性全连接层和第一激励函数层计算,得到第二计算结果;将所述第二计算结果经过第二激励函数计算,输出SQL语句判别结果。
具体地,对于多层卷积层的计算可以采用如下公式表示:其中,表示带有自连接的邻接矩阵,In是单位矩阵;σ表示激励函数;H(l)∈RN*D表示第l层的激活值,D是经过卷积层输出的维数;H0=G作为输入。W(l)是l层的参数,初始值W则是随机生成。该第一计算结果表示为HN。经过线性全连接层和第一激励函数计算之后的计算结果可以表示为:out=relu(linear(HN))。将第二计算结果经过第二激励函数计算转化为类别概率,最终输出2行1列的概率矩阵,分别代表TP类与AP类的概率:gcn_out(2*1)=softmax(out)。
在一实施方式中,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型,包括:基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数;采用优化后的参数,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
传统的卷积神经网络常采用最陡下降算法进行训练,但是最陡下降算法的学习性能受卷积层和全连接层的初始权重影响较大,并且有可能会导致训练过程陷入局部最优,因此卷积神经网络的优化问题可以归结为参数的选择问题。在卷积神经网络算法中,数据训练结果受许多参数影响,初始参数设置不合理将极有可能导致网络不能快速收敛,使得训练模型达不到预期效果。除此之外,网络模型结构参数的选择也是一项艰巨的工作。在基因表达式编程(GEP,GeneExpressionProgramming)算法优化图卷积神经网络的应用中,使用GEP算法优化图卷积网络参数,主要包括卷积层与全连接层的初始权值W。
在采用基因表达式编程算法进行遗传迭代过程中,设定种群大小固定为population-size,在训练过程中,由于染色体长度会因为网络层数的不同会有所改变,因此在进行遗传操作时需对交叉与重组算子做出修改。在选择出需要交叉或重组的两个父代染色体后,比较两染色体中基因的个数,将交叉点或重组点的取值范围设置在较短染色体长度之间。
具体地,基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数,如图4及图2所示,具体包括如下步骤:
步骤S201:基于随机生成的染色体生成初始种群。具体地,对图卷积神经网络的卷积层和全连接层的权重做初始化种群处理,得到初始种群记做pop={W1 0,W2 0,W3 0,...Wn 0}。其中随机生成的染色体Wi 0是经过解码的图卷积神经网络全部初始参数。
步骤S202:采用初始种群中任一染色体作为图卷积神经网络的参数进行训练,计算训练后的损失函数。具体地,由初始种群pop中的染色体生成一个图卷积神经网络的初始网络参数Wi 0,基于该参数进行网络训练,计算训练后图卷积神经网络的损失函数,记做qi,作为第i条染色体的值。其中,qi=loss(Wi 0)。
步骤S203:根据训练后的损失函数计算对应染色体的适应度值。具体地,该适应度值采用如下公式计算:
式中,q(i,j)是染色体对于个体i对于适应度样本(训练集样本)j的返回值,即针对训练集样本j计算得到的相应的损失函数;n是训练集样本数量,而Tj是适应度样本的目标值,因此对于一个最优适应的情况,对所有的适应度样本都有Ei=0或者逼近于0。
步骤S204:根据所述适应度值判断是否满足终止条件。其中,该终止条件为当适应度不在优化或者产生最优参数则停止迭代训练
步骤S205:当未满足终止条件时,保存最优个体并根据轮盘赌算法选择个体;当未满足终止条件时,保留当前的最优个体,然后采用轮盘赌算法进行选择操作。该选择操作具体采用如下公式实现:
其中,f(xi)是个体xi的适应度值,xi是剩下集合中的一个个体,P(xi)为xi选择的概率。
步骤S206:根据保存和选择的个体进行基因突变,得到新的种群;该新的种群表示为new_pop={W1 0',W2 0',Wi 0,...Wn 0'}。
步骤S207:根据新的种群重复训练和适应度值计算步骤,直至满足终止条件,得到最优个体作为优化后的参数。在产生新的种群后,重复上述步骤S202至步骤S205,直至产生最优个体。将该最优个体作为图卷积神经网络的参数,进行训练。
在一实施方式中,该SQL语句判别模型构建方法还包括:将根据待测数据生成的图拓扑结构输入至SQL语句判别模型进行判别,输出测试结果;根据模型测试指标判断所述测试结果是否满足符合预设要求;当不符合预设要求时,重复上述实施例的步骤,生成新的SQL语句判别模型,直至新的SQL语句判别模型的测试结果符合预设要求;当符合预设要求时,获取新的训练数据对所述SQL语句判别模型进行优化。
具体地,为了验证构建的SQL语句判别模型是否满足要求,可以通过模型测试指标计算。测试时,将根据待测数据生成的图拓扑结构输入至SQL语句判别模型进行判别,输出测试结果。然后根据模型测试指标平均绝对误差(MAE,Mean Absolute Error)、均方根误差(RMSE,Root Mean Square Error)和准确性(ACC,Accuracy)判断该测试结果满足预设要求。其中,模型测试指标采用如下公式表示:
式中,E(x)表示所有训练集标签的均值,xi是当前参数时的训练集中每一个实例经过模型输出的结果,n表示训练集中实例的个数,||x||F表示求x的F范数。
其中,预设要求可以预先设置,如分别针对三个模型测试指标设置阈值,当均满足阈值时,则认为符合要求,此时可以通过更换新的训练集对构建的SQL语句判别模型进行优化。若不符合要求,则重新进行模型训练和参数确定过程,直至得到符合要求的模型。
在一实施方式中,该SQL语句判别模型构建方法具体包括如下流程:
步骤1:开启数据库的日志记录功能,把SQL语句以及对应的资源消耗等记录记录下来,用做算法模型需要使用的训练数据,并把数据分成训练集合验证集。
步骤2:对训练数据进行进一步加工处理,如对SQL可以进一步处理为语法树,根据语法树展开放入到特征变量中去生成拓扑结构G=(V,E)。
步骤3:输入G,进行图卷积神经网络运算。
步骤5:根据优化参数生成的权重h(.)={W(0),W(1),W(2)...W(N)},将待测数据集进行测试,得出测试结果,根据模型测试指标MAE、RMSE、ACC,判断是否重复步骤2,如若效果很好则进入步骤6。
步骤6:保存数据模型,根据不同数据集优化模型。
步骤7:结束。
本发明实施例还提供一种SQL语句判别方法,如图2所示,包括:获取待测数据;对待测数据进行语法分析,构建SQL语法树;基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;将所述图拓扑结构输入至采用上述实施例所述的SQL语句判别模型构建方法构建的SQL语句判别模型中,得到判别结果。
本发明实施例提供的SQL语句判别方法,通过构建SQL语法树,并将其转化为图拓扑结构作为SQL语句判别模型的输入,由此可以在拓扑结构上进行卷积等运算,提高了SQL解析判别的效率。因此,该SQL语句判别方法能够实现对SQL快速的识别分类。
本发明实施例还提供一种SQL语句判别模型构建装置,如图5所示,包括:
数据获取模块,用于获取训练数据,所述训练数据包括SQL语句以及对应的资源消耗数据;具体内容参见上述方法实施例对应部分,在此不再赘述。
分析模块,用于对所述训练数据进行语法分析,构建SQL语法树;具体内容参见上述方法实施例对应部分,在此不再赘述。
编码模块,用于基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;具体内容参见上述方法实施例对应部分,在此不再赘述。
训练模块,用于根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。具体内容参见上述方法实施例对应部分,在此不再赘述。
本发明实施例提供的SQL语句判别模型构建装置,通过构建SQL语法树,并将其转化为图拓扑结构作为图卷积神经网络的输入,由此可以在拓扑结构上进行卷积等运算,提高了SQL解析判别的效率。因此,该SQL语句判别模型构建装置构建的SQL语句判别模型能够实现对SQL快速的识别分类。
在一实施方式中,训练模块包括:参数优化模块,用于基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数;采训练子模块,用于采用优化后的参数,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
在一实施方式中,所述SQL语句判别模型采用如下步骤进行SQL语句判别:将图拓扑结构经过多层图卷积计算,得到第一计算结果;将所述第一计算结果经过线性全连接层和第一激励函数层计算,得到第二计算结果;将所述第二计算结果经过第二激励函数计算,输出SQL语句判别结果。
在一实施方式中,分析模块包括:对所述训练数据进行语句、用词和词法分析,构建SQL语法树;遍历SQL语法树,进行语法裁剪,得到SQL规范语法树。
在一实施方式中,参数优化模块包括:基于随机生成的染色体生成初始种群;采用初始种群中任一染色体作为图卷积神经网络的参数进行训练,计算训练后的损失函数;根据训练后的损失函数计算对应染色体的适应度值;根据所述适应度值判断是否满足终止条件;当未满足终止条件时,保存最优个体并根据轮盘赌算法选择个体;根据保存和选择的个体进行基因突变,得到新的种群;根据新的种群重复训练和适应度值计算步骤,直至满足终止条件,得到最优个体作为优化后的参数。
在一实施方式中,SQL语句判别模型构建方法还包括:测试模块,用于将根据待测数据生成的图拓扑结构输入至SQL语句判别模型进行判别,输出测试结果;判断模块,用于根据模型测试指标判断所述测试结果是否满足符合预设要求;新模型生成模块,用于当不符合预设要求时,重复本发明实施例第一方面的步骤,生成新的SQL语句判别模型,直至新的SQL语句判别模型的测试结果符合预设要求;模型优化模块,用于当符合预设要求时,获取新的训练数据对所述SQL语句判别模型进行优化。
本发明实施例提供的SSQL语句判别模型构建装置的功能描述详细参见上述实施例中SQL语句判别模型构建方法描述。
本发明实施例还提供一种SQL语句判别装置,如图6所示,包括:
待测数据获取模块,用于获取待测数据;具体内容参见上述方法实施例对应部分,在此不再赘述。
语法分析模块,用于对待测数据进行语法分析,构建SQL语法树;具体内容参见上述方法实施例对应部分,在此不再赘述。
语法编码模块,用于基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;具体内容参见上述方法实施例对应部分,在此不再赘述。
判别模块,用于将所述图拓扑结构输入至采用上述实施例所述的SQL语句判别模型构建方法构建的SQL语句判别模型中,得到判别结果。具体内容参见上述方法实施例对应部分,在此不再赘述。
本发明实施例提供的SQL语句判别装置,通过构建SQL语法树,并将其转化为图拓扑结构作为SQL语句判别模型的输入,由此可以在拓扑结构上进行卷积等运算,提高了SQL解析判别的效率。因此,该SQL语句判别装置能够实现对SQL快速的识别分类。
本发明实施例提供的SQL语句判别装置的功能描述详细参见上述实施例中SQL语句判别方法描述。
本发明实施例还提供一种存储介质,如图7所示,其上存储有计算机程序601,该指令被处理器执行时实现上述实施例中SQL语句判别模型构建方法、SQL语句判别方法的步骤。该存储介质上还存储有音视频流数据,特征帧数据、交互请求信令、加密数据以及预设数据大小等。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(HardDisk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
本发明实施例还提供了一种电子设备,如图8所示,该电子设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图8中以通过总线连接为例。
处理器51可以为中央处理器(Central Processing Unit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的SQL语句判别模型构建方法、SQL语句判别方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行如图1-4所示实施例中的SQL语句判别模型构建方法、SQL语句判别方法。
上述电子设备具体细节可以对应参阅图1至图4所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (11)
1.一种SQL语句判别模型构建方法,其特征在于,包括:
获取训练数据;
对所述训练数据进行语法分析,构建SQL语法树;
基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;
根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
2.根据权利要求1所述的SQL语句判别模型构建方法,其特征在于,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型,包括:
基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数;
采用优化后的参数,根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
3.根据权利要求1所述的SQL语句判别模型构建方法,其特征在于,所述SQL语句判别模型采用如下步骤进行SQL语句判别:
将图拓扑结构经过多层图卷积计算,得到第一计算结果;
将所述第一计算结果经过线性全连接层和第一激励函数层计算,得到第二计算结果;
将所述第二计算结果经过第二激励函数计算,输出SQL语句判别结果。
4.根据权利要求1所述的SQL语句判别模型构建方法,其特征在于,对所述训练数据进行语法分析,构建SQL语法树,包括:
对所述训练数据进行语句、用词和词法分析,构建SQL语法树;
遍历SQL语法树,进行语法裁剪,得到SQL规范语法树。
5.根据权利要求2所述的SQL语句判别模型构建方法,其特征在于,基于基因表达式编程算法对图卷积神经网络的参数进行优化,得到优化后的参数,包括:
基于随机生成的染色体生成初始种群;
采用初始种群中任一染色体作为图卷积神经网络的参数进行训练,计算训练后的损失函数;
根据训练后的损失函数计算对应染色体的适应度值;
根据所述适应度值判断是否满足终止条件;
当未满足终止条件时,保存最优个体并根据轮盘赌算法选择个体;
根据保存和选择的个体进行基因突变,得到新的种群;
根据新的种群重复训练和适应度值计算步骤,直至满足终止条件,得到最优个体作为优化后的参数。
6.根据权利要求2所述的SQL语句判别模型构建方法,其特征在于,还包括:
将根据待测数据生成的图拓扑结构输入至SQL语句判别模型进行判别,输出测试结果;
根据模型测试指标判断所述测试结果是否满足符合预设要求;
当不符合预设要求时,重复权利要求1和权利要求2的步骤,生成新的SQL语句判别模型,直至新的SQL语句判别模型的测试结果符合预设要求;
当符合预设要求时,获取新的训练数据对所述SQL语句判别模型进行优化。
7.一种SQL语句判别方法,其特征在于,包括:
获取待测数据;
对待测数据进行语法分析,构建SQL语法树;
基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;
将所述图拓扑结构输入至采用权利要求1-6任一项所述的SQL语句判别模型构建方法构建的SQL语句判别模型中,得到判别结果。
8.一种SQL语句判别模型构建装置,其特征在于,包括:
数据获取模块,用于获取训练数据;
分析模块,用于对所述训练数据进行语法分析,构建SQL语法树;
编码模块,用于基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;
训练模块,用于根据图拓扑结构对图卷积神经网络进行训练,得到SQL语句判别模型。
9.一种SQL语句判别装置,其特征在于,包括:
待测数据获取模块,用于获取待测数据;
语法分析模块,用于对待测数据进行语法分析,构建SQL语法树;
语法编码模块,用于基于图自编码器对所述SQL语法树进行编码,得到图拓扑结构;
判别模块,用于将所述图拓扑结构输入至采用权利要求1-6任一项所述的SQL语句判别模型构建方法构建的SQL语句判别模型中,得到判别结果。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-6任一项所述的SQL语句判别模型构建方法或者执行权利要求7所述的SQL语句判别方法。
11.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-6任一项所述的SQL语句判别模型构建方法或者执行权利要求7所述的SQL语句判别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210670696.3A CN114911820A (zh) | 2022-06-13 | 2022-06-13 | 一种sql语句判别模型构建方法、sql语句判别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210670696.3A CN114911820A (zh) | 2022-06-13 | 2022-06-13 | 一种sql语句判别模型构建方法、sql语句判别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114911820A true CN114911820A (zh) | 2022-08-16 |
Family
ID=82770090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210670696.3A Pending CN114911820A (zh) | 2022-06-13 | 2022-06-13 | 一种sql语句判别模型构建方法、sql语句判别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911820A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981817A (zh) * | 2022-12-30 | 2023-04-18 | 深圳计算科学研究院 | 一种面向htap的任务资源调度方法及其系统 |
CN117251477A (zh) * | 2023-11-17 | 2023-12-19 | 吉贝克信息技术(北京)有限公司 | 基于sql解析的数据开发脚本标准化检查方法及系统 |
-
2022
- 2022-06-13 CN CN202210670696.3A patent/CN114911820A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981817A (zh) * | 2022-12-30 | 2023-04-18 | 深圳计算科学研究院 | 一种面向htap的任务资源调度方法及其系统 |
CN115981817B (zh) * | 2022-12-30 | 2023-09-05 | 深圳计算科学研究院 | 一种面向htap的任务资源调度方法及其系统 |
CN117251477A (zh) * | 2023-11-17 | 2023-12-19 | 吉贝克信息技术(北京)有限公司 | 基于sql解析的数据开发脚本标准化检查方法及系统 |
CN117251477B (zh) * | 2023-11-17 | 2024-02-20 | 吉贝克信息技术(北京)有限公司 | 基于sql解析的数据开发脚本标准化检查方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021073298A1 (zh) | 一种语音信息的处理方法、装置、智能终端以及存储介质 | |
CN110059181B (zh) | 面向大规模分类体系的短文本标签方法、系统、装置 | |
CN110597735A (zh) | 一种面向开源软件缺陷特征深度学习的软件缺陷预测方法 | |
WO2018218708A1 (zh) | 一种基于深度学习的舆情热点类别划分方法 | |
CN111310438A (zh) | 基于多粒度融合模型的中文句子语义智能匹配方法及装置 | |
CN114911820A (zh) | 一种sql语句判别模型构建方法、sql语句判别方法 | |
WO2016188279A1 (zh) | 一种故障谱的生成、基于故障谱的检测方法和装置 | |
CN110633366B (zh) | 一种短文本分类方法、装置和存储介质 | |
CN112380319B (zh) | 一种模型训练的方法及相关装置 | |
CN109388565B (zh) | 基于生成式对抗网络的软件系统性能优化方法 | |
CN111985228B (zh) | 文本关键词提取方法、装置、计算机设备和存储介质 | |
CN111967761A (zh) | 一种基于知识图谱的监控预警方法、装置及电子设备 | |
CN113361258A (zh) | 基于图卷积网络和选择注意力的方面级情感分析方法及系统 | |
CN114553983A (zh) | 一种基于深度学习高效工业控制协议解析方法 | |
KR20210063874A (ko) | 지식 그래프 기반 마케팅 정보 분석 서비스 제공 방법 및 그 장치 | |
CN112597285A (zh) | 一种基于知识图谱的人机交互方法及系统 | |
CN117609470A (zh) | 基于大语言模型和知识图谱的问答系统、其构建方法及智能化数据治理平台 | |
CN114491079A (zh) | 知识图谱构建和查询方法、装置、设备和介质 | |
CN111951079A (zh) | 一种基于知识图谱的信用评级方法、装置及电子设备 | |
CN116719936B (zh) | 一种基于集成学习的网络不可靠信息早期检测方法 | |
CN117349311A (zh) | 一种基于改进RetNet的数据库自然语言查询方法 | |
CN110929509B (zh) | 一种基于louvain社区发现算法的领域事件触发词聚类方法 | |
CN117474010A (zh) | 面向电网语言模型的输变电设备缺陷语料库构建方法 | |
CN110888977B (zh) | 文本分类方法、装置、计算机设备和存储介质 | |
CN116541166A (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 |