CN117992068A - Lstm和trm组合的智能数据库语法解析方法 - Google Patents
Lstm和trm组合的智能数据库语法解析方法 Download PDFInfo
- Publication number
- CN117992068A CN117992068A CN202410390606.4A CN202410390606A CN117992068A CN 117992068 A CN117992068 A CN 117992068A CN 202410390606 A CN202410390606 A CN 202410390606A CN 117992068 A CN117992068 A CN 117992068A
- Authority
- CN
- China
- Prior art keywords
- data
- trm
- lstm
- module
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000007781 pre-processing Methods 0.000 claims abstract description 23
- 238000000605 extraction Methods 0.000 claims abstract description 19
- 230000007246 mechanism Effects 0.000 claims abstract description 18
- 238000004458 analytical method Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 239000013598 vector Substances 0.000 description 22
- 238000013528 artificial neural network Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 230000007774 longterm Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 208000025174 PANDAS Diseases 0.000 description 1
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/10—Pre-processing; Data cleansing
- G06F18/15—Statistical pre-processing, e.g. techniques for normalisation or restoring missing data
-
- 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/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2123/00—Data types
- G06F2123/02—Data types in the time domain, e.g. time-series data
-
- 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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种LSTM和TRM组合的智能数据库语法解析方法,所述方法由智能数据库语法解析系统实现,智能数据库语法解析系统包括输入模块、预处理模块、特征提取模块、序列建模模块和输出模块,所述输入模块依次通过预处理模块、特征提取模块、序列建模模块与输出模块通信连接。本发明有益效果:本方法结合了LSTM和TRM的优点,能够更好地捕捉SQL语句中的时序信息和语法结构,提高了解析准确率。通过预训练的LSTM模型和自注意力机制,该方法能够快速准确地解析SQL语句,为智能数据库的发展提供了有力支持。
Description
技术领域
本发明属于人工智能和自然语言处理领域,尤其是涉及一种LSTM和TRM组合的智能数据库语法解析方法。
背景技术
目前随着大数据时代的到来,数据库查询语句的解析显得尤为重要。传统的解析方法主要基于规则和模式匹配,无法处理复杂的SQL语句,且准确率较低。而基于深度学习的方法可以自动学习语法规则,提高了解析准确率。其中,LSTM和TRM(Transformer)是两种常见的深度学习模型,但单独使用它们并不能完全解决SQL语句解析的问题,具体的,TRM模型单独使用不能很好的理解SQL中的语义和结构,而LSTM模型模型的并行能力上存在劣势,对大量的SQL进行初步分析和理解会导致性能出现劣势。
发明内容
有鉴于此,本发明旨在提出一种LSTM和TRM组合的智能数据库语法解析方法,以解决上述现有技术中存在的问题,并将LSTM和TRM两种模型结合起来,取长补短,提高解析效果。
为达到上述目的,本发明的技术方案是这样实现的:
一种LSTM和TRM组合的智能数据库语法解析方法,所述方法由智能数据库语法解析系统实现,智能数据库语法解析系统包括输入模块、预处理模块、特征提取模块、序列建模模块和输出模块,所述输入模块依次通过预处理模块、特征提取模块、序列建模模块与输出模块通信连接;
所述方法包括以下步骤:
S1、基于预处理模块对输入数据进行预处理;
S2、基于特征提取模块使用TRM模型对步骤S1预处理后的数据进行初步分析;
S3、基于序列建模模块使用LSTM模型对步骤S2初步分析后的数据进行进一步分析;
S4、对步骤S3进一步分析后的数据生成查询计划;
在步骤S1中,对输入数据进行预处理,包括以下步骤:
S11、对输入数据进行数据清洗;
S12、对清洗后的数据进行文本转换;
S13、对文本转换后的数据进行特征提取;
S14、对特征提取后的数据进行数据划分。
进一步的,在步骤S11中,对输入数据进行数据清洗,包括以下步骤:
S111、对输入数据去除重复数据;
S112、对步骤S111的数据处理缺失值;
S113、对步骤S112的数据错误值纠正,得到清洗后的数据。
进一步的,在步骤S12中,所述对清洗后的数据进行文本转换,包括以下步骤:
S121、对清洗后的数据进行初始化:设置词典和最大词长;
S122、对步骤S122的数据扫描:从左到右扫描待分词的文本;
S123、对步骤S123的数据匹配:尝试用词典中的词从当前位置开始匹配,首先尝试最大词长的词,如果匹配成功,则切分出一个词,并继续从该词的下一个位置开始匹配;如果匹配失败,则尝试下一个较短的词,直到找到匹配的词或词长减为1;
S124、继续扫描:重复步骤S123,直到扫描完整个文本,得到文本转换后的数据。
进一步的,在步骤S13中,对文本转换后的数据进行特征提取,包括以下步骤:
S131、对文本转换后的数据统计特征:计算文本的长度、单词数量、句子数量统计信息;
S132、对文本转换后的数据获取语义特征;
S133、对文本转换后的数据获取结构特征;
S134、对文本转换后的数据获取上下文特征。
进一步的,在步骤S2中,使用TRM模型对预处理后的数据进行初步分析,包括:
S21、TRM模型对预处理后的数据进行数据嵌入;
S22、TRM模型使用自注意力机制对步骤S21的数据进行处理;
S23、TRM模型使用编码器层对步骤S22的数据进行处理;
S24、TRM模型使用解码器层对步骤S23的数据进行处理:
S25、TRM模型将步骤S24的数据输出。
进一步的,在步骤S22中,自注意力机制的计算方式,包括以下步骤:
S221、先使用查询Query和键Key计算权重系数,再用SoftMax操作对权重归一化;
S222、通过步骤S221的权重归一化的数据对Value进行加权求和,计算得到注意力的输出。
进一步的,在步骤S3中,使用LSTM模型对初步分析后的数据进行进一步分析,包括以下步骤:
S31、基于LSTM模型对初步分析后的数据预处理;
S32、基于LSTM模型对步骤S31的数据使用TRM模型来进行实体识别;
S33、基于LSTM模型对步骤S32的数据构建解析树,得到进一步分析后的数据。
相对于现有技术,本发明所述的LSTM和TRM组合的智能数据库语法解析方法具有以下优势:
本发明所述的LSTM和TRM组合的智能数据库语法解析方法,本方法结合了LSTM和TRM的优点,能够更好地捕捉SQL语句中的时序信息和语法结构,提高了解析准确率。通过预训练的LSTM模型和自注意力机制,该方法能够快速准确地解析SQL语句,为智能数据库的发展提供了有力支持。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的智能数据库语法解析系统原理示意图;
图2为本发明实施例所述的预处理流程示意图;
图3为本发明实施例所述的注意力机制原理示意图;
图4为本发明实施例所述的编解码器结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
名词解释:
LSTM、TRM:LSTM(Long Short-Term Memory)和TRM(Transformer)是两种常用的神经网络架构,用于处理序列数据。LSTM是一种循环神经网络(RNN)的变种,特别适用于处理长序列数据和捕捉长期依赖关系。而TRM是一种基于自注意力机制的神经网络,能够并行处理序列数据,适用于处理长距离依赖和捕捉全局信息。
如图1至图4所示,LSTM和TRM组合的智能数据库语法解析方法,所述方法由智能数据库语法解析系统实现,智能数据库语法解析系统包括输入模块、预处理模块、特征提取模块、序列建模模块和输出模块,所述输入模块依次通过预处理模块、特征提取模块、序列建模模块与输出模块通信连接,系统整体示意图如1所示。
本方法结合了LSTM和TRM的优点,能够更好地捕捉SQL语句中的时序信息和语法结构,提高了解析准确率。通过预训练的LSTM模型和自注意力机制,该方法能够快速准确地解析SQL语句,为智能数据库的发展提供了有力支持。
方法包括以下步骤:
S1、预处理:
预处理在预处理模块内进行。这一模块是数据分析和机器学习流程中的关键部分,其目标是清理、转换和标准化原始数据,以便后续的模型训练和预测。
具体来说,预处理包括以下几个步骤:
S11、数据清洗;
数据清洗是预处理的第一步,目的是去除或修正数据中的错误、异常、重复或不一致的信息。
S111、去除重复数据:使用Python的pandas库来检测并删除重复的行或记录。
S112、处理缺失值:删除含有缺失值的记录。
S113、错误值纠正:识别并纠正数据中的错误值,使用状态机来识别和纠正错误。
S12、文本转换;
文本转换是将原始文本数据转换为适合机器学习模型处理的格式。
分词:
算法实现步骤:
S121、初始化:设置词典和最大词长(通常是词典中最长词的长度)。
S122、扫描文本:从左到右扫描待分词的文本。
S123、匹配:尝试用词典中的词从当前位置开始匹配,首先尝试最大词长的词,如果匹配成功,则切分出一个词,并继续从该词的下一个位置开始匹配;如果匹配失败,则尝试下一个较短的词,直到找到匹配的词或词长减为1。
S124、继续扫描:重复步骤S123,直到扫描完整个文本。
在本发明一种优选的实施方式中,SQL语句分词示例:
假设有一个最大词长为4的词典,其中包含“SELECT”、“FROM”、“WHERE”等词,现在对SQL语句“SELECT * FROM table WHERE id = 1”进行分词。
1)初始化:词典= {“SELECT”, “FROM”, “WHERE”, “*”, “table”, “id”, “1”},最大词长=4。
2)扫描文本:开始扫描“SELECT * FROM table WHERE id = 1”。
3)匹配:
4)尝试匹配“SELECT ”:匹配成功,切分出“SELECT”。
5)尝试匹配“* FROM”:匹配成功,切分出“*”和“FROM”。
6)尝试匹配“FROM table”:匹配成功,切分出“FROM”和“table”。
7)尝试匹配“table WHERE”:匹配成功,切分出“table”和“WHERE”。
8)尝试匹配“WHERE id”:匹配成功,切分出“WHERE”和“id”。
9)尝试匹配“id =”:匹配成功,切分出“id”和“=”。
10)尝试匹配“= 1”:匹配成功,切分出“=”和“1”。
11)结果:分词结果为“SELECT”, “*”, “FROM”, “table”, “WHERE”, “id”, “=”,“1”。
S13、特征提取;
特征提取是从原始数据中提取有意义的信息,以用作机器学习模型的输入。
S131、统计特征:计算文本的长度、单词数量、句子数量等统计信息。
S132、语义特征:使用预训练模型BERT来获取文本的语义表示。
S133、结构特征:对于数据库查询语句,提取SQL语句的特定部分(如SELECT子句、FROM子句等)。
S134、上下文特征:考虑查询语句的上下文信息,如用户权限、事务状态等。
S14、数据划分;
将数据集分为训练集、验证集和测试集,以评估模型的性能。在智能数据库语法解析的上下文中,预处理模块会特别关注对数据库查询语句的清洗、分词、特征提取等任务,以便为后续的LSTM和Transformer模型提供高质量的训练数据。预处理具体流程,如图2所示。
S2、基于特征提取模块使用TRM模型进行初步分析:
Transformer模型通过其自注意力机制(Self-Attention Mechanism)的设计,能够捕捉SQL语句中的上下文信息。自注意力机制允许模型在处理每个单词或标记时,都考虑整个输入序列的信息,从而建立单词之间的依赖关系。
本系统中使用TRM模型进行初步分析属于特征提取模块,对于处理后的文本进行特征提取,并捕获文本中的依赖关系和上下文信息。
S21、数据嵌入:首先,模型需要对输入的数据进行一个embedding操作,将输入数据转换为模型可以处理的向量表示。这一步是通过词嵌入实现的。
S22、自注意力机制:注意力机制本质上借鉴了人眼视觉处理信息的能力,可以概述为两个阶段:判断需要特别注意输入的哪个部分;然后把资源优先分配给重要的部分。放在神经网络中,注意力机制就可以理解为:在预测结果的时候把注意力侧重放在不同的特征上。
从数学上来讲,注意力机制的计算可以被描述为一个查询(Query)到一系列键值对(Key-Value)的映射。注意力机制计算的原理如图3所示:
其计算方式也可以归纳为两个步骤:
其中Query、Key和Value分别代表三种不同的向量,作用分别为
Query表示要关注或检索的目标;
Key用来和Query进行匹配;
Value表示需要根据Query和Key匹配程度来加权求和的信息;
以本系统中使用的模型为例,每个分词后的词可以看做一个Key,当处理这个SQL语句时,模型会生成一个Query,表示需要处理的SQL语句,Value就是与Key相对应的编码。
(1)先使用查询Query和键Key计算权重系数,求相似性的方法有点乘、权重、余弦相似性等等,再用SoftMax操作对权重归一化。
;
其中,表示一个函数,用于计算查询(Query)和第个键(Key)之间的
相似度;
表示查询向量(Query),通常是一个表示当前关注焦点的向量;
表示转置操作,表示将向量转置,以便进行点乘运算;
表示键向量(Key),是一个与查询向量匹配的向量;
表示第个键向量。在一个序列中,可能会有多个键向量;
和表示权重矩阵,分别对应于查询(Query)和键(Key)。它们用于将查询向量和键向量线性变换到相同的维度空间,以便进行后续的运算;
表示向量的拼接操作,将查询向量和键向量拼接成一个更长的向量;
表示一个权重向量,通常被称为值向量(Value Vector)。在注意力机制中,它
用于将中间表示(通常是经过激活函数处理后的结果)转换为一个标量分数,这个分数将用
于后续的归一化操作以计算注意力权重。表示函一个双曲正切激活函数,它将输入值
映射到-1到1之间;
表示该矩阵属于某个特定层;
表示第个键(Key)的注意力权重。这个权重决定了在生成输出时,模型应该
多么关注与第个键相关联的值(Value);
表示指数函数,用于将括号内的值转换为正数。指数函数能够确保所有计算出
的分数都是正的,这对于后续的归一化步骤是必要的;
softmax表示softmax函数的符号,用于将一组分数转换为一个概率分布。softmax
函数会确保所有输出分数的和为1,并且每个输出分数都在0和1之间。这样,每个键都会得
到一个介于0和1之间的注意力权重,表示查询对该键的关注程度;
∑表示求和符号,表示对所有的键进行求和,以确保所有注意力权重的和为1;
表示一个迭代变量,用于遍历所有的键。
(2)第二个阶段再对Value进行加权求和,计算得到注意力的输出。
S23、编码器层:在自注意力机制处理完数据后,数据会被送入编码器层。编码器层由多个子层组成,包括自注意力层和前馈神经网络层。自注意力层负责对输入信息进行自注意力计算,而前馈神经网络层则进行进一步的非线性变换。
S24、解码器层:输入信息会经过解码器层的处理。解码器层也包含自注意力层、编码器-解码器注意力层(Encoder-Decoder Attention Layer)和前馈神经网络层。这些层协同工作,使得模型能够生成与输入信息相关的输出序列。编解码器结构示意图如图4所示。
S25、输出处理:最后,经过编码器层和解码器层的处理,模型会生成最终的输出。
在本发明一种优选的实施方式中,假设有以下SQL语句:
SELECT name, age FROM users WHERE age > 30
分词后得到:
[CLS], SELECT, name, ,, age, FROM, users, WHERE, age, >, 30, [SEP]
编码后的序列(假设使用BERT模型,每个单词被映射到其对应的ID):
[101], 2023, 2003, 1029, 2002, 1996, 2025, 1010, 2023, 1037, 1999,1012, [102]
将这些ID输入到BERT模型的编码层,每个ID都会生成一个上下文向量。如果关心整个SQL语句的表示,选择[CLS]标记(ID为101)对应的输出向量作为整个序列的表示向量。
最终,模型将输出一个固定大小的向量(如BERT中的768维),这个向量捕获了输入SQL语句的语义信息,并可以用于后续的任务。
S3、基于序列建模模块使用LSTM模型进行进一步分析:
LSTM模型是一种循环神经网络,特别适合处理序列数据。它可以捕捉序列中的长期依赖关系。在本系统中属于序列建模模块,结合Transformer提取的全局特征和LSTM的序列建模能力,可以更好的理解查询语句的语义结构。
假设有一个简单的SQL查询语句:“SELECT name, age FROM users WHERE age >30”。
S31、预处理:首先,对SQL语句进行预处理,比如分词、标注实体等。在这个例子中,将SQL语句分词为:["SELECT", "name", ",", "age", "FROM", "users", "WHERE", "age", ">", "30"],并标注出实体,比如 "name" 和 "age"是列名,"users"是表名,"age >30"是条件表达式。
S32、实体识别:接下来,使用TRM模型来进行实体识别。具体来说,将预处理后的SQL语句输入到Transformer模型中,模型会输出每个词的标签(比如列名、表名、条件表达式等)。这样,我们就可以识别出SQL语句中的实体。
S33、构建解析树:在实体识别的基础上,本模块开始构建SQL语法解析树。根据SQL语句的语法规则来定义一些基本的树结构,比如SELECT语句通常包含一个或多个列名,FROM语句包含一个表名,WHERE语句包含一个条件表达式等。然后,可以根据实体识别的结果来填充这些树结构。在本实例中,可以构建如下的解析树:
;
这个解析树可以进一步转换为SQL查询语句:“SELECT name, age FROM usersWHERE age > 30”。
S4、生成查询计划:
这个步骤属于输出模块,根据上述步骤的结果,生成对应的数据库查询操作指令。
根据语法解析树,数据库会检查查询的语义是否有效,例如表名和列名是否存在,用户是否有足够的权限执行查询等,输出带有语义信息的解析树。根据这个解析树,优化器会尝试重新组织查询的各个部分,以便更有效地执行查询。例如,它可能会合并多个表扫描操作,或将某些计算提前到查询的早期阶段。得到逻辑上等效但可能更简洁或更适合优化的查询计划。优化器会根据数据库的统计信息(如表的大小、索引的选择性等)来选择最有效的物理执行策略。得到具体的执行计划。
在本发明一种优选的实施方式中,假设有以下SQL查询:
SELECT name, department_id
FROM employees
WHERE salary > 50000;
会生成如下查询计划:
S41、id:查询标识符,用于区分查询中的不同部分。这里只有一个查询,所以它是1。
S42、select_type:查询的类型。SIMPLE表示这是一个简单的SELECT查询,不包含子查询或联合查询。
S43、table:查询涉及的表名,这里是employees。
S44、partitions:如果表是分区的,这里会显示查询涉及的分区信息。在这个例子中,没有分区,所以它是NULL。
S45、type:访问类型。ref表示这是一个基于索引的引用访问,它使用索引来查找匹配的行。
S46、possible_keys:可能应用于此表的索引。这里只有一个索引idx_salary,它是可能用于此查询的。
S47、key:实际被查询优化器选择的索引。在这个例子中,优化器选择了idx_salary索引。
S48、key_len:使用的索引的长度。这里的5可能表示索引的前5个字节被用于查找。
S49、ref:显示了哪些列或常量被用作索引查找的参考。const表示这是一个常量值,这里指的是数字50000。
S410、rows:估计需要检查的行数。这里估计为100行。
S411、filtered:返回结果的百分比。这里的10.00%意味着在检查的100行中,大约有10行会满足salary > 50000的条件。
S412、extra:标识SQL语句的索引使用情况。extra字段中常见的值有:Usingindex,表示将使用覆盖索引,以避免访问数据表;Using where,表示将在存储引擎检索行后再进行过滤等。
通过这些步骤,基于LSTM和TRM组合的智能数据库语法解析方法能够理解并执行复杂的数据库查询语句,为大数据时代的数据处理和分析提供了强大的支持。
本系统将LSTM和TRM组合使用,TRM模型具有高效的并行化能力和全局信息捕捉能力,可以对SQL语句进行初步的分析和理解,LSTM模型处理数据中的长短期以来问题的能力,进一步的理解SQL的语义和结构。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.LSTM和TRM组合的智能数据库语法解析方法,其特征在于:所述方法由智能数据库语法解析系统实现,智能数据库语法解析系统包括输入模块、预处理模块、特征提取模块、序列建模模块和输出模块,所述输入模块依次通过预处理模块、特征提取模块、序列建模模块与输出模块通信连接;
所述方法包括以下步骤:
S1、基于预处理模块对输入数据进行预处理;
S2、基于特征提取模块使用TRM模型对步骤S1预处理后的数据进行初步分析;
S3、基于序列建模模块使用LSTM模型对步骤S2初步分析后的数据进行进一步分析;
S4、对步骤S3进一步分析后的数据生成查询计划;
在步骤S1中,对输入数据进行预处理,包括以下步骤:
S11、对输入数据进行数据清洗;
S12、对清洗后的数据进行文本转换;
S13、对文本转换后的数据进行特征提取;
S14、对特征提取后的数据进行数据划分。
2.根据权利要求1所述的LSTM和TRM组合的智能数据库语法解析方法,其特征在于:在步骤S11中,对输入数据进行数据清洗,包括以下步骤:
S111、对输入数据去除重复数据;
S112、对步骤S111的数据处理缺失值;
S113、对步骤S112的数据错误值纠正,得到清洗后的数据。
3.根据权利要求2所述的LSTM和TRM组合的智能数据库语法解析方法,其特征在于:在步骤S12中,所述对清洗后的数据进行文本转换,包括以下步骤:
S121、对清洗后的数据进行初始化:设置词典和最大词长;
S122、对步骤S122的数据扫描:从左到右扫描待分词的文本;
S123、对步骤S123的数据匹配:尝试用词典中的词从当前位置开始匹配,首先尝试最大词长的词,如果匹配成功,则切分出一个词,并继续从该词的下一个位置开始匹配;如果匹配失败,则尝试下一个较短的词,直到找到匹配的词或词长减为1;
S124、继续扫描:重复步骤S123,直到扫描完整个文本,得到文本转换后的数据。
4.根据权利要求3所述的LSTM和TRM组合的智能数据库语法解析方法,其特征在于:在步骤S13中,对文本转换后的数据进行特征提取,包括以下步骤:
S131、对文本转换后的数据统计特征:计算文本的长度、单词数量、句子数量统计信息;
S132、对文本转换后的数据获取语义特征;
S133、对文本转换后的数据获取结构特征;
S134、对文本转换后的数据获取上下文特征。
5.根据权利要求4所述的LSTM和TRM组合的智能数据库语法解析方法,其特征在于:在步骤S2中,使用TRM模型对预处理后的数据进行初步分析,包括:
S21、TRM模型对预处理后的数据进行数据嵌入;
S22、TRM模型使用自注意力机制对步骤S21的数据进行处理;
S23、TRM模型使用编码器层对步骤S22的数据进行处理;
S24、TRM模型使用解码器层对步骤S23的数据进行处理:
S25、TRM模型将步骤S24的数据输出。
6.根据权利要求5所述的LSTM和TRM组合的智能数据库语法解析方法,其特征在于:在步骤S22中,自注意力机制的计算方式,包括以下步骤:
S221、先使用查询Query和键Key计算权重系数,再用SoftMax操作对权重归一化;
S222、通过步骤S221的权重归一化的数据对Value进行加权求和,计算得到注意力的输出。
7.根据权利要求1所述的LSTM和TRM组合的智能数据库语法解析方法,其特征在于:在步骤S3中,使用LSTM模型对初步分析后的数据进行进一步分析,包括以下步骤:
S31、基于LSTM模型对初步分析后的数据预处理;
S32、基于LSTM模型对步骤S31的数据使用TRM模型来进行实体识别;
S33、基于LSTM模型对步骤S32的数据构建解析树,得到进一步分析后的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410390606.4A CN117992068B (zh) | 2024-04-02 | 2024-04-02 | Lstm和trm组合的智能数据库语法解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410390606.4A CN117992068B (zh) | 2024-04-02 | 2024-04-02 | Lstm和trm组合的智能数据库语法解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117992068A true CN117992068A (zh) | 2024-05-07 |
CN117992068B CN117992068B (zh) | 2024-12-03 |
Family
ID=90902309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410390606.4A Active CN117992068B (zh) | 2024-04-02 | 2024-04-02 | Lstm和trm组合的智能数据库语法解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117992068B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113408298A (zh) * | 2021-06-30 | 2021-09-17 | 北京百度网讯科技有限公司 | 语义解析方法、装置、电子设备及存储介质 |
CN114020768A (zh) * | 2021-10-13 | 2022-02-08 | 华中科技大学 | 中文自然语言的sql语句生成模型的构建方法及应用 |
CN114691716A (zh) * | 2022-04-11 | 2022-07-01 | 平安国际智慧城市科技股份有限公司 | Sql语句转换方法、装置、设备及计算机可读存储介质 |
CN114896275A (zh) * | 2022-04-15 | 2022-08-12 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种将自然语言文本转为sql语句的方法及系统 |
CN116090454A (zh) * | 2022-12-26 | 2023-05-09 | 南京航空航天大学 | 一种基于半监督学习的空管系统危险源关键特征提取方法 |
CN116662582A (zh) * | 2023-08-01 | 2023-08-29 | 成都信通信息技术有限公司 | 基于自然语言的特定领域业务知识检索方法及检索装置 |
CN116737759A (zh) * | 2023-08-14 | 2023-09-12 | 北京理工大学 | 一种基于关系感知注意力的中文查询生成sql语句方法 |
CN116910086A (zh) * | 2023-09-13 | 2023-10-20 | 北京理工大学 | 一种基于自注意力句法感知的数据库查询方法和系统 |
CN117312989A (zh) * | 2023-10-24 | 2023-12-29 | 山东省计算中心(国家超级计算济南中心) | 一种基于GCN和RoBERTa的上下文感知的列语义识别方法和系统 |
CN117592482A (zh) * | 2023-11-21 | 2024-02-23 | 国网江苏省电力有限公司镇江供电分公司 | 一种基于BiLSTM+CRF模型的操作票命名实体识别方法 |
EP4339799A1 (en) * | 2022-09-16 | 2024-03-20 | Chongqing Changan Automobile Co., Ltd. | Intelligent session method and server based on table data retrieval |
-
2024
- 2024-04-02 CN CN202410390606.4A patent/CN117992068B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113408298A (zh) * | 2021-06-30 | 2021-09-17 | 北京百度网讯科技有限公司 | 语义解析方法、装置、电子设备及存储介质 |
CN114020768A (zh) * | 2021-10-13 | 2022-02-08 | 华中科技大学 | 中文自然语言的sql语句生成模型的构建方法及应用 |
CN114691716A (zh) * | 2022-04-11 | 2022-07-01 | 平安国际智慧城市科技股份有限公司 | Sql语句转换方法、装置、设备及计算机可读存储介质 |
CN114896275A (zh) * | 2022-04-15 | 2022-08-12 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种将自然语言文本转为sql语句的方法及系统 |
EP4339799A1 (en) * | 2022-09-16 | 2024-03-20 | Chongqing Changan Automobile Co., Ltd. | Intelligent session method and server based on table data retrieval |
CN116090454A (zh) * | 2022-12-26 | 2023-05-09 | 南京航空航天大学 | 一种基于半监督学习的空管系统危险源关键特征提取方法 |
CN116662582A (zh) * | 2023-08-01 | 2023-08-29 | 成都信通信息技术有限公司 | 基于自然语言的特定领域业务知识检索方法及检索装置 |
CN116737759A (zh) * | 2023-08-14 | 2023-09-12 | 北京理工大学 | 一种基于关系感知注意力的中文查询生成sql语句方法 |
CN116910086A (zh) * | 2023-09-13 | 2023-10-20 | 北京理工大学 | 一种基于自注意力句法感知的数据库查询方法和系统 |
CN117312989A (zh) * | 2023-10-24 | 2023-12-29 | 山东省计算中心(国家超级计算济南中心) | 一种基于GCN和RoBERTa的上下文感知的列语义识别方法和系统 |
CN117592482A (zh) * | 2023-11-21 | 2024-02-23 | 国网江苏省电力有限公司镇江供电分公司 | 一种基于BiLSTM+CRF模型的操作票命名实体识别方法 |
Non-Patent Citations (4)
Title |
---|
何佳壕等: "带复杂计算的金融领域自然语言查询的SQL生成", 《浙江大学学报(工学版)》, vol. 57, no. 2, 28 February 2023 (2023-02-28), pages 277 - 286 * |
双锴: "《自然语言处理》", 31 August 2021, 北京邮电大学出版社, pages: 37 - 39 * |
赵猛等: "基于树状模型的复杂自然语言查询转SQL技术研究", 《软件学报》, vol. 33, no. 12, 24 May 2022 (2022-05-24) * |
闫晓妍: "《基于深度学习的中文商品评论情感分析研究》", 31 May 2022, 中国矿业大学出版社, pages: 27 - 29 * |
Also Published As
Publication number | Publication date |
---|---|
CN117992068B (zh) | 2024-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7195365B2 (ja) | 画像条件付きマスク言語モデリングを用いて画像認識のための畳み込みニューラルネットワークを訓練するための方法 | |
CN110222045B (zh) | 一种数据报表获取方法、装置及计算机设备、存储介质 | |
CN114169330A (zh) | 融合时序卷积与Transformer编码器的中文命名实体识别方法 | |
CN110727839A (zh) | 自然语言查询的语义解析 | |
CN114429132B (zh) | 一种基于混合格自注意力网络的命名实体识别方法和装置 | |
CN112989004B (zh) | 面向知识图谱问答的查询图排序方法及系统 | |
CN118093834B (zh) | 一种基于aigc大模型的语言处理问答系统及方法 | |
CN116610778A (zh) | 基于跨模态全局与局部注意力机制的双向图文匹配方法 | |
CN116821168A (zh) | 一种改进的基于生成式大语言模型的nl2sql方法 | |
CN112685538B (zh) | 一种结合外部知识的文本向量检索方法 | |
CN113076744A (zh) | 一种基于卷积神经网络的文物知识关系抽取方法 | |
CN118606439B (zh) | 航迹领域知识库的大模型微调方法和场景适配系统 | |
CN117540734B (zh) | 一种中文医学实体标准化方法、装置及设备 | |
CN117235137B (zh) | 一种基于向量数据库的职业信息查询方法及装置 | |
CN117992068B (zh) | Lstm和trm组合的智能数据库语法解析方法 | |
KR20230081594A (ko) | 트랜스포머 신경망을 이용하여 관계형 데이터베이스에 대한 자연어 질의를 처리하는 장치 및 방법 | |
CN115203206A (zh) | 数据内容搜索方法、装置、计算机设备及可读存储介质 | |
CN112416754B (zh) | 一种模型评测方法、终端、系统及存储介质 | |
CN115879460A (zh) | 面向文本内容的新标签实体识别方法、装置、设备及介质 | |
CN111199170B (zh) | 配方文件识别方法及装置、电子设备、存储介质 | |
CN117743652B (zh) | 基于深度学习的弱监督时序图谱问答方法 | |
CN117493372B (zh) | 基于关系感知的sql语句生成方法及装置 | |
CN118410200B (zh) | 遥感图像检索方法、装置、电子设备及存储介质 | |
CN118069818B (zh) | 一种基于大语言模型增强的知识问答方法 | |
CN117874175B (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 |