CN116991877B - 一种结构化查询语句的生成方法、装置及应用 - Google Patents

一种结构化查询语句的生成方法、装置及应用 Download PDF

Info

Publication number
CN116991877B
CN116991877B CN202311234982.6A CN202311234982A CN116991877B CN 116991877 B CN116991877 B CN 116991877B CN 202311234982 A CN202311234982 A CN 202311234982A CN 116991877 B CN116991877 B CN 116991877B
Authority
CN
China
Prior art keywords
text
feature
sequence
skeleton
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.)
Active
Application number
CN202311234982.6A
Other languages
English (en)
Other versions
CN116991877A (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.)
CCI China Co Ltd
Original Assignee
CCI China 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 CCI China Co Ltd filed Critical CCI China Co Ltd
Priority to CN202311234982.6A priority Critical patent/CN116991877B/zh
Publication of CN116991877A publication Critical patent/CN116991877A/zh
Application granted granted Critical
Publication of CN116991877B publication Critical patent/CN116991877B/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/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • 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
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder 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/0464Convolutional networks [CNN, ConvNet]
    • 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/047Probabilistic or stochastic 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/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

本申请提出了一种结构化查询语句的生成方法、装置及应用,包括以下步骤:获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息;获取问题文本,根据所述问题文本与所述表信息构建模式序列文本,对所述模式序列文本进行排序筛选得到强相关模式序列文本;根据问题文本获取与问题文本相关的骨架语句序列;将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。本方案可以通过表信息与问题文本准确的将自然语言转换为结构化查询语言。

Description

一种结构化查询语句的生成方法、装置及应用
技术领域
本申请涉及自然语言处理领域,特别是涉及一种结构化查询语句的生成方法、装置及应用。
背景技术
从自然语言到结构化查询语句的生成技术是指将自然语言查询转化为计算机能够理解和处理的结构化查询语句的过程,这种技术在信息检索、数据库查询和自然语言处理等领域具有重要应用。
现有技术可以基于语法、语义和上下文等方面设计规则并根据预定义的规则和模板来将自然语言查询转化为结构化查询语句,但是这种方法的缺点是需要手动编写和维护大量的规则,且对于复杂的查询和多样化的语言表达方式的识别存在不够灵活和识别不准确的问题。
现有技术还可以通过训练神经网络模型来学习自然语言查询和结构化语句之间的映射关系,从而实现自然语言到结构化查询语句的转化,但是这种方法需要大规模的训练数据和深度学习技术来提高性能,且自然语言和结构化查询语句的语义差异较大,在包含大量表名、列名以及表间关系的数据库中,其生成的结构化查询语句准确率低。
换言之,目前关于将自然语言用于多表查询语句生成的难度较大,多表查询需要根据表间关系进行连接操作以获取相关的数据,而表之间的关联关系错综复杂,关联列名可能是不同的命名方式,需要正确地识别和处理这些关系方可生成正确的连接操作,但现有技术的模型无法达到此效果。
发明内容
本申请实施例提供了一种结构化查询语句的生成方法、装置及应用,可以根据数据定义语言以获取数据库中的表信息,并结合问题文本将自然语言准确地转换为结构化查询语言,特别适用于多表查询结构化语句的生成。
第一方面,本申请实施例提供了一种结构化查询语句的生成方法,所述方法包括:
获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息,所述表信息为表名、列名以及表间关联关系;
获取问题文本,组合所述问题文本与所述表信息得到模式序列文本,将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征,在强相关模式序列文本特征中与问题文本的相关度越高的表信息排序越靠前;
将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别,根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列;
将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。
第二方面,本申请实施例提供了一种结构化查询语句的生成装置,包括:
获取模块:获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息,所述表信息为表名、列名以及表间关联关系;
排序模块:获取问题文本,组合所述问题文本与所述表信息得到模式序列文本,将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征,在强相关模式序列文本特征中与问题文本的相关度越高的表信息排序越靠前;
选择模块:将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别,根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列;
生成模块:将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种结构化查询语句的生成方法。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括一种结构化查询语句的生成方法。
本发明的主要贡献和创新点如下:
本方案通过定义语言理解模型来对数据定义语言进行理解来识别数据的表名、列名、以及获取表之间的关联信息从而提高涉及多表查询的问题的准确率;本方案通过对模式序列文本进行排序筛选来选出与问题文本强相关的模式序列文本,从而使得结构化查询语言能够更精准的查询与问题相关的表名、列名;本方案先通过问题文本获取结构化查询骨架,再从强相关模式序列文本中选择填充到结构化查询骨架中从而降低自然语言到结构化查询语言生成的难度,提高自然语言到结构化查询语言的准确性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种结构化查询语句的生成方法的流程图;
图2是本申请实施例中对模式序列文本进行排序筛选的流程图;
图3是本申请实施例中生成结构化查询语句的流程图;
图4是根据本申请实施例的一种结构化查询语句的生成装置的结构框图;
图5是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
本申请实施例提供了一种结构化查询语句的生成方法,具体地,参考图1,所述方法包括:
获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息,所述表信息为表名、列名以及表间关联关系;
获取问题文本,组合所述问题文本与所述表信息得到模式序列文本,将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征,在强相关模式序列文本特征中与问题文本的相关度越高的表信息排序越靠前;
将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别,根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列;
将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。
本方案通过数据定义语言训练数据定义语言理解模型以使其能够理解数据库中多个表之间的关系,本方案的数据定义语言指的是定义和管理数据库中的数据结构和对象的语言,在一些实施例中,数据定义语言包括CREATE TABLE语句和相关的外键约束,CREATETABLE语句中定义表名、列名、表间关联关系。
在一些具体实施例中,每一数据库中会包含多个不同的表,同样的每一个数据库都可包括数据定义语言,数据定义语言是用于定义和管理数据库中的数据结构和对象,例如如下是一个数据定义语言:
CREATE TABLE `Addresses` (
`id` INTEGER PRIMARY KEY,
`province` VARCHAR(50),
`city` VARCHAR(50),
`dstrict` VARCHAR(50),
street` VARCHAR(50),
address` VARCHAR(50),
`postcode` VARCHAR(20)
);
CREATE TABLE `Students` (
`id` INTEGER PRIMARY KEY,
`address_id` INTEGER NOT NULL,
`name` VARCHAR(80),
`email_address` VARCHAR(40),
`cell_mobile_number` VARCHAR(40),
FOREIGN KEY (`address_id` ) REFERENCES `Addresses`(`id` )
);
CREATE TABLE `Behavior_Incident` (
`id` INTEGER PRIMARY KEY,
`incident_type` VARCHAR(10) NOT NULL,
`student_id` INTEGER NOT NULL,
`date_incident_start` DATETIME,
`date_incident_end` DATETIME,
FOREIGN KEY (`student_id` ) REFERENCES `Students`(`id` )
);
对应该示例可以通过上述数据定义语言创建如表1、表2、表3三个表:
Addresses:
表1
Students:
表2
Behavior_Incident:
表3
在“获取数据定义语言”步骤中,获取待查询的数据库的数据定义语言。
在“将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息”步骤中,所述数据定义语言理解模型由Bert模型连接一个条件随机场组成,收集标记有表信息的数据定义语言作为训练样本,使用所述训练样本对数据定义理解模型进行训练得到训练好的数据定义语言理解模型。
具体的,本方案中收集的标记有表信息的数据定义语言包括CREATE TABLE(建表语句)以及相关的外键约束,其中标记的标签包括表名标签Table、列名标签Column、外键标签Foreign、引用表标签ReferencedTable、引用列标签ReferencedColumn,其他标签为O。
本方案之所以选用Bert模型作为数据定义语言理解模型的基础架构的原因在于:Bert是一种基于Transformer架构的预训练语言模型,通过在大规模无标签文本上进行预训练从而获得通用的语言理解能力,故其可以在各种下游自然语言处理(NLP)任务上进行微调,本方案的数据定义语言理解模型在Bert的基础上添加条件随机场,条件随机场的作用是对模型输出的序列进行全局的标签约束,有效地解决标签偏置和上下文依赖的问题,以提高序列标注的准确性。
具体的,所述数据定义语言理解模型能够直接根据定义语言识别表名、列名以及获取表之间的关联信息,识别出表名、列名为后续工作提供基础,且识别表间的关联信息能够提高涉及多表查询的问题的准确率。
进一步的,本方案采用监督学习的方法进行全量微调训练得到数据定义语言理解模型,监督学习方法通过调整模型的参数和权重来最小化预测输出与真实标签之间的差异,全量微调指整个预训练模型的参数都会被更新和调整,而不仅仅是最后几层或特定的部分,通过全量微调,可以利用预训练模型的知识和特征提取能力,快速构建适应特定任务或领域的模型,并在相对较小的数据集上取得较好的性能。
比如,获取上述示例中提到的数据定义语言,并将该数据定义语言输入到数据定义语言理解模型中,所述的数据定义语言理解模型输出可以表示为:CREATE TABLE `Students` (`id` INTEGER PRIMARY KEY,`address_id` INTEGER NOT NULL,`name`VARCHAR(80),`email_address` VARCHAR(40),`cell_mobile_number` VARCHAR(40),FOREIGN KEY (`address_id` ) REFERENCES `Addresses`(`id` )的表名为Students,列名为id、address_id、name、email_address、cell_mobile_number,外键为address_id,引用表为Addresses,引用列为id。
在“获取问题文本”步骤中,所述问题文本指的是用于表示用户查询内容的自然语言。在一些具体实施例中,所述问题文本为:“查询拾金不昧行为的学生姓名和联系方式”。
在“组合所述问题文本与所述表信息得到模式序列文本”步骤中,所述模式序列文本中问题文本作为独立的元素,同一表名下的多个列名作为独立的元素,表间关联关系作为独立的元素,不同元素之间使用分隔符进行分隔。
在本方案中,所述模式序列文本的格式为:{问题文本 | 表名1:列名1,列名2,...,列名c1 | 表名2:列名1,列名2,...,列名c2 | ... | 表名n:列名1,列名2,...,列名cn | 表名p.列名i = 表名q.列名j },其中|为分隔符。
示例性的,所述模式序列文本可以如下表示:
{查询拾金不昧行为的学生姓名以及联系方式 | Addresses:id,province,city,dstrict,street,address,postcode | Students:id,address_id,name,email_address,cell_mobile_number | Behavior_Incident:id,incident_type,student_id,date_incident_start,date_incident_end | Addresses.id = Students.address_id |Students.id = Behavior_Incident.student_id }。该模式序列文本的含义是从该多表关联的数据库中查询拾金不昧行为的学生姓名和联系方式。
在“将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征”步骤中,根据所述模式序列文本获取问题文本特征、表结构信息文本特征以及表间关系文本特征,将所述表结构信息文本特征以及表间关系文本特征输入到模式序列排序模块的表结构信息文本编码器中得到表联合特征,所述表联合特征为包括表间关系的表结构信息文本特征,使用所述表联合特征与所述问题文本特征进行注意力计算得到强相关模式序列文本,对所述强相关模式序列文本进行特征提取得到强相关模式序列文本特征。
进一步的,在“根据所述模式序列文本获取问题文本特征、表结构信息文本特征以及表间关系文本特征”步骤中,将所述问题文本、由表名、列名组成的表结构信息以及表间关联关系对应的文本输入到预训练好的模式序列排序模块中的词嵌入模型中得到问题文本嵌入、表结构信息文本嵌入以及表间关系文本嵌入,分别对问题文本嵌入、表结构信息文本嵌入以及表间关系文本嵌入进行编码处理得到问题文本特征、表结构信息文本特征以及表间关系文本特征。
在本方案中,表结构信息文本特征为表征表信息的表名和列名的特征,对应的,表结构信息文本为由表名和对应该表名下的列名组成的信息文本。
示例性的,在所述模式序列文本中提取问题文本表示为:“查询拾金不昧行为的学生姓名以及联系方式”,在所述模式序列文本提取的表结构信息文本为:“Addresses,Addresses.id,Addresses.province,Addresses.city,Addresses.dstrict,Addresses.street,Addresses.address,Addresses.postcode, Students,Students.id,Students.address_id,Students.name,Students.email_address,Students.cell_mobile_number,Behavior_Incident,Behavior_Incident.id,Behavior_Incident.incident_type,Behavior_Incident.student_id,Behavior_Incident.date_incident_start Behavior_Incident.date_incident_end”, 在所述模式序列文本提取的表间关系文本为:“Addresses.id = Students.address_id,Students.id = Behavior_Incident.student_id”。
具体的,本方案所使用的词嵌入模型为Word2Vec,Word2Vec可以将每个单词映射到一个固定长度的向量空间中,能够捕捉到单词之间的语义和语法关系,通过将单词表示为向量可以使用向量空间中的数学运算来计算单词之间的相似性、关联性和语义关系。
进一步的,本方案采用问题文本编码器、表结构信息文本编码器以及表间关系文本编码器分别处理问题文本嵌入、表结构信息文本嵌入以及表间关系文本嵌入,问题文本编码器、表结构信息文本编码器以及表间关系文本编码器采用LSTM结构。
具体的,LSTM结构是一种循环神经网络(RNN)的变体,本方案使用LSTM结构的文本编码器能够解决长期依赖问题。
进一步的,在“将所述表结构信息文本特征以及表间关系文本特征输入到模式序列排序模块的表结构信息文本编码器中得到表联合特征”步骤中,所述表结构信息文本编码器采用多个神经元组成的MLP。
具体的,MLP是一种人工神经网络模型,由多个神经元组成,每个神经元与下一层之间都有全连接的权重。
进一步的,在“使用所述表联合特征与所述问题文本特征进行注意力计算得到强相关模式序列文本”步骤中,以所述问题文本特征作为Q向量,以所述表联合特征作为K向量以及V向量,基于Q向量、K向量以及V向量进行自注意力计算得到自注意结果,使用激活函数对所述自注意结果进行输出得到表联合特征中每一表、每一表名与所述问题文本特征的相关度得分,根据相关度得分对每一表、每一表名进行正序排序,依据排序结果正向顺序选取第一数量的表、表名组成强相关模式序列文本。
具体的,本方案用于注意力计算的注意力模块包括m个Transformer编码器,其中问题文本特征作为Q向量,表联合特征作为K向量以及V向量,自注意力机制允许模型在处理序列时将注意力集中在序列的不同位置,而不仅仅是依赖于固定的上下文窗口,通过计算序列中每个位置与其他位置的相关性来实现,Q向量表示当前位置的注意力查询,Q向量与K向量进行点积操作以计算注意力权重,Q向量包含了所有位置的信息,K向量包含了所有位置的值信息,在计算注意力权重后,V向量与注意力权重相乘得到自注意结果。
具体的,本方案采用SoftMax激活函数对所述自注意结果进行处理得到表联合特征中每一表、每一表名与所述问题文本特征的相关度得分,得分在0-1之间,得分越高表明表、表名与问题越相关,根据得分高低对表、表名进行排序,依据排序结果正向顺序选取第一数量的表、表名构成与问题文本强相关的模式序列文本,第一数量的表可以是排名前k%的表、表名。
具体的,对模式序列文本进行排序筛选的流程图如图2所示,由于数据库中包含多个表,每个表又包含多个列名,如果直接将模式序列文本输入到序列文本解码器会导致生成的结构化查询语句中的需要查询的表名、列名不准确,因此对模式序列文本进行排序筛选得到与问题文本的关联性强的表名、列名以及表间关联信息,从而使得结构化查询语言能够更精准的查询与问题相关的表名、列名。
需要说明的,本方案的模式序列排序模块采用标注有强相关模式序列文本特征的所述模式序列文本训练得到,关于具体的训练方式同于常规神经网络模型的训练方式,在此不做展开说明。
在“将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别”步骤中,所述结构化查询语句骨架选择模块由卷积层、全连接层与激活函数层顺序串联,以所述问题文本作为所述结构化查询语句骨架选择模块的输入,结构化查询语句骨架选择模块输出为所述问题文本相对于每一结构化查询骨架类别的得分,选取得分最高的结构化查询骨架类别作为与所述问题文本对应的结构化查询骨架。
具体的,所述卷积层的卷积核大小为1×3,全连接层的维度为8,激活函数选择Softmax函数。
具体的,结构化查询骨架类别包括8类,分别为数据库的创建和删除,表的创建和删除,数据的插入、更新和删除,数据的查询,数据的连接,数据的聚合,数据的修改,数据的权限管理,由结构化查询语句骨架选择模块中的激活函数输出所述问题文本相对于每一结构化查询骨架类别的得分,得分的取值范围为0-1,将得分最高的结构化查询骨架类别作为与问题文本对应的结构化查询骨架。
在“根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列”步骤中,获取与问题文本对应的结构化查询骨架类别下的所有骨架语句组成骨架语句序列,其中所述骨架语句为结构化查询语句的标准结构字段。本方案的结构化查询语句利用SQL查询语句,对应SQL查询语句的标准结构字段为数据操纵语言。
示例性的,例如问题“查询拾金不昧行为的学生姓名以及联系方式”经过结构化查询语句骨架信息选择模块得到结构化查询语句骨架类别是数据的查询,所述数据的查询相应的骨架语句有SELECT、FROM、WHERE、ORDER BY、GROUP BY、JOIN、LIMIT、DISTINCT,使用这些骨架语句构建与问题文本相关的骨架语句序列得到{SELECT | WHERE | ORDER BY |GROUP BY |JOIN | LIMIT | DISTINCT}。
在“将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句”步骤中,所述序列文本解码器采用Transformer结构,利用Transformer结构中的自注意力机制来捕捉输入序列中的上下文信息并生成与问题文本对应的结构化查询语句。
具体的,生成结构化查询语句的流程图如图3所示,例如根据问题“查询拾金不昧行为的学生姓名以及联系方式”生成的结构化查询语句如下:
SELECT Students.name, Students.cell_mobile_number
FROM Students
JOIN Behavior_Incident ON Students.student_id = Behavior_Incident.student_id
WHERE Behavior_Incident.incident_type = '拾金不昧';
具体的,由于自然语言和结构化查询语言的语义差异较大,通过先对骨架语句序列进行解码,再解析ss强相关模式序列文本中的元素,即从输入的强相关模式序列文本中选择填充到骨架语句序列中,从而降低自然语言到结构化查询语言生成的难度,提高自然语言到结构化查询语言的准确性。
实施例二
基于相同的构思,参考图4,本申请还提出了一种结构化查询语句的生成装置,包括:
获取模块:获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息,所述表信息为表名、列名以及表间关联关系;
排序模块:获取问题文本,组合所述问题文本与所述表信息得到模式序列文本,将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征,在强相关模式序列文本特征中与问题文本的相关度越高的表信息排序越靠前;
选择模块:将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别,根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列;
生成模块:将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。
实施例三
本实施例还提供了一种电子装置,参考图5,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种结构化查询语句的生成方法、。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是数据定义语言、问题文本等,输出的信息可以是稻结构化查询语句等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息,所述表信息为表名、列名以及表间关联关系;
S102、获取问题文本,组合所述问题文本与所述表信息得到模式序列文本,将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征,在强相关模式序列文本特征中与问题文本的相关度越高的表信息排序越靠前;
S103、将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别,根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列;
S104、将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图5中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (8)

1.一种结构化查询语句的生成方法,其特征在于,包括:
获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息,所述表信息为表名、列名以及表间关联关系;
获取问题文本,组合所述问题文本与所述表信息得到模式序列文本,所述模式序列文本中问题文本作为独立的元素,同一表名下的多个列名作为独立的元素,表间关联关系作为独立的元素,不同元素之间使用分隔符进行分隔,将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征,根据所述模式序列文本获取问题文本特征、表结构信息文本特征以及表间关系文本特征,将所述表结构信息文本特征以及表间关系文本特征输入到模式序列排序模块的表结构信息文本编码器中得到表联合特征,所述表联合特征为包括表间关系的表结构信息文本特征,使用所述表联合特征与所述问题文本特征进行注意力计算得到强相关模式序列文本,对所述强相关模式序列文本进行特征提取得到强相关模式序列文本特征,在强相关模式序列文本特征中与问题文本的相关度越高的表信息排序越靠前;
将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别,根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列;
将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。
2.根据权利要求1所述的一种结构化查询语句的生成方法,其特征在于,在“将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息”步骤中,数据定义语言指的是定义和管理数据库中的数据结构和对象的语言,所述数据定义语言理解模型由Bert模型连接一个条件随机场组成,收集标记有表信息的数据定义语言作为训练样本,使用所述训练样本对数据定义理解模型进行训练得到训练好的数据定义语言理解模型。
3.根据权利要求1所述的一种结构化查询语句的生成方法,其特征在于,在“根据所述模式序列文本获取问题文本特征、表结构信息文本特征以及表间关系文本特征”步骤中,将所述问题文本、由表名、列名组成的表结构信息以及表间关联关系对应的文本表示输入到预训练好的模式序列排序模块中的词嵌入模型中得到问题文本嵌入、表结构信息文本嵌入以及表间关系文本嵌入,分别对问题文本嵌入、表结构信息文本嵌入以及表间关系文本嵌入进行特征提取编码处理得到问题文本特征、表结构信息文本特征以及表间关系文本特征。
4.根据权利要求1所述的一种结构化查询语句的生成方法,其特征在于,在“使用所述表联合特征与所述问题文本特征进行注意力计算得到强相关模式序列文本”步骤中,以所述问题文本特征作为Q向量,以所述表联合特征作为K向量以及V向量,基于Q向量、K向量以及V向量进行自注意力计算得到自注意结果,使用激活函数对所述自注意结果进行输出得到表联合特征中每一表、每一表名与所述问题文本特征的相关度得分,根据相关度得分对每一表、每一表名进行正序排序,依据排序结果正向顺序选取第一数量的表、表名组成强相关模式序列文本。
5.根据权利要求1所述的一种结构化查询语句的生成方法,其特征在于,在“根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列”步骤中,获取与问题文本对应的结构化查询骨架类别下的所有骨架语句组成骨架语句序列,其中所述骨架语句为结构化查询语句的标准结构字段。
6.一种结构化查询语句的生成装置,其特征在于,包括:
获取模块:获取数据定义语言,将所述数据定义语言输入到预训练好的数据定义语言理解模型中得到表信息,所述表信息为表名、列名以及表间关联关系;
排序模块:获取问题文本,组合所述问题文本与所述表信息得到模式序列文本,所述模式序列文本中问题文本作为独立的元素,同一表名下的多个列名作为独立的元素,表间关联关系作为独立的元素,不同元素之间使用分隔符进行分隔,将所述模式序列文本输入到预训练好的模式序列排序模块中进行排序筛选得到强相关模式序列文本特征,根据所述模式序列文本获取问题文本特征、表结构信息文本特征以及表间关系文本特征,将所述表结构信息文本特征以及表间关系文本特征输入到模式序列排序模块的表结构信息文本编码器中得到表联合特征,所述表联合特征为包括表间关系的表结构信息文本特征,使用所述表联合特征与所述问题文本特征进行注意力计算得到强相关模式序列文本,对所述强相关模式序列文本进行特征提取得到强相关模式序列文本特征,在强相关模式序列文本特征中与问题文本的相关度越高的表信息排序越靠前;
选择模块:将所述问题文本输入到预训练好的结构化查询语句骨架选择模块中得到与问题文本对应的结构化查询骨架类别,根据与问题文本对应的结构化查询骨架类别获取与问题文本相关的骨架语句序列;
生成模块:将与问题文本相关的骨架语句序列以及强相关模式序列文本特征输入到预训练好的序列文本解码器中得到与问题文本对应的结构化查询语句。
7.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1-5任一所述的一种结构化查询语句的生成方法。
8.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括权利要求1-5任一所述的一种结构化查询语句的生成方法。
CN202311234982.6A 2023-09-25 2023-09-25 一种结构化查询语句的生成方法、装置及应用 Active CN116991877B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311234982.6A CN116991877B (zh) 2023-09-25 2023-09-25 一种结构化查询语句的生成方法、装置及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311234982.6A CN116991877B (zh) 2023-09-25 2023-09-25 一种结构化查询语句的生成方法、装置及应用

Publications (2)

Publication Number Publication Date
CN116991877A CN116991877A (zh) 2023-11-03
CN116991877B true CN116991877B (zh) 2024-01-02

Family

ID=88528578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311234982.6A Active CN116991877B (zh) 2023-09-25 2023-09-25 一种结构化查询语句的生成方法、装置及应用

Country Status (1)

Country Link
CN (1) CN116991877B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581229A (zh) * 2020-03-25 2020-08-25 平安科技(深圳)有限公司 Sql语句的生成方法、装置、计算机设备及存储介质
CN111813802A (zh) * 2020-09-11 2020-10-23 杭州量之智能科技有限公司 一种基于自然语言生成结构化查询语句的方法
CN112487135A (zh) * 2020-12-18 2021-03-12 苏州思必驰信息科技有限公司 将文本转化为结构化查询语言的方法及装置
CN114416771A (zh) * 2021-12-27 2022-04-29 深信服科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN114528312A (zh) * 2022-02-16 2022-05-24 京东科技信息技术有限公司 一种结构化查询语言语句的生成方法和装置
CN114547329A (zh) * 2022-01-25 2022-05-27 阿里巴巴(中国)有限公司 建立预训练语言模型的方法、语义解析方法和装置
CN114691718A (zh) * 2022-03-29 2022-07-01 中国工商银行股份有限公司 一种查询语句生成方法和装置
CN114817300A (zh) * 2022-05-18 2022-07-29 城云科技(中国)有限公司 基于sql语句的日志查询方法及其应用
CN115794861A (zh) * 2022-11-24 2023-03-14 城云科技(中国)有限公司 基于特征摘要的离线数据查询复用方法及其应用
CN115982204A (zh) * 2022-12-07 2023-04-18 清华大学 查询语句转换方法、装置、电子设备和存储介质
CN116452707A (zh) * 2023-06-20 2023-07-18 城云科技(中国)有限公司 基于表格的文本生成方法、装置及其应用
CN116756176A (zh) * 2023-07-11 2023-09-15 中国建设银行股份有限公司 结构化查询语言问题预测方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169414B2 (en) * 2016-04-26 2019-01-01 International Business Machines Corporation Character matching in text processing
US11188531B2 (en) * 2018-02-27 2021-11-30 Elasticsearch B.V. Systems and methods for converting and resolving structured queries as search queries
CN112559552B (zh) * 2020-12-03 2023-07-25 北京百度网讯科技有限公司 数据对生成方法、装置、电子设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581229A (zh) * 2020-03-25 2020-08-25 平安科技(深圳)有限公司 Sql语句的生成方法、装置、计算机设备及存储介质
CN111813802A (zh) * 2020-09-11 2020-10-23 杭州量之智能科技有限公司 一种基于自然语言生成结构化查询语句的方法
CN112487135A (zh) * 2020-12-18 2021-03-12 苏州思必驰信息科技有限公司 将文本转化为结构化查询语言的方法及装置
CN114416771A (zh) * 2021-12-27 2022-04-29 深信服科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN114547329A (zh) * 2022-01-25 2022-05-27 阿里巴巴(中国)有限公司 建立预训练语言模型的方法、语义解析方法和装置
CN114528312A (zh) * 2022-02-16 2022-05-24 京东科技信息技术有限公司 一种结构化查询语言语句的生成方法和装置
CN114691718A (zh) * 2022-03-29 2022-07-01 中国工商银行股份有限公司 一种查询语句生成方法和装置
CN114817300A (zh) * 2022-05-18 2022-07-29 城云科技(中国)有限公司 基于sql语句的日志查询方法及其应用
CN115794861A (zh) * 2022-11-24 2023-03-14 城云科技(中国)有限公司 基于特征摘要的离线数据查询复用方法及其应用
CN115982204A (zh) * 2022-12-07 2023-04-18 清华大学 查询语句转换方法、装置、电子设备和存储介质
CN116452707A (zh) * 2023-06-20 2023-07-18 城云科技(中国)有限公司 基于表格的文本生成方法、装置及其应用
CN116756176A (zh) * 2023-07-11 2023-09-15 中国建设银行股份有限公司 结构化查询语言问题预测方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
自然语言生成多表SQL查询语句技术研究;曹金超;黄滔;陈刚;吴晓凡;陈珂;;计算机科学与探索(第07期);57-65 *

Also Published As

Publication number Publication date
CN116991877A (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN109033068B (zh) 基于注意力机制的用于阅读理解的方法、装置和电子设备
CN110990590A (zh) 一种基于强化学习和迁移学习的动态金融知识图谱构建方法
CN113127632B (zh) 基于异质图的文本摘要方法及装置、存储介质和终端
CN112328800A (zh) 自动生成编程规范问题答案的系统及方法
CN113159187B (zh) 分类模型训练方法及装置、目标文本确定方法及装置
CN116719520B (zh) 代码生成方法及装置
CN113312480A (zh) 基于图卷积网络的科技论文层级多标签分类方法及设备
CN110717019A (zh) 问答处理方法、问答系统、电子设备及介质
CN115687647A (zh) 公证文书生成方法、装置、电子设备及存储介质
CN118113815B (zh) 内容搜索方法、相关装置和介质
CN111090765B (zh) 一种基于缺失多模态哈希的社交图像检索方法及系统
CN110705279A (zh) 一种词汇表的选择方法、装置及计算机可读存储介质
CN116955644A (zh) 基于知识图谱的知识融合方法、系统及存储介质
CN117494815A (zh) 面向档案的可信大语言模型训练、推理方法和装置
CN114626378B (zh) 命名实体识别方法、装置、电子设备及计算机可读存储介质
US12039419B2 (en) Automatically labeling functional blocks in pipelines of existing machine learning projects in a corpus adaptable for use in new machine learning projects
CN117828142A (zh) 基于多模态信息的问答方法、装置及其应用
CN111666375A (zh) 文本相似度的匹配方法、电子设备和计算机可读介质
CN117009599A (zh) 数据检索方法、装置、处理器及电子设备
CN116991877B (zh) 一种结构化查询语句的生成方法、装置及应用
CN113742447B (zh) 基于查询路径生成的知识图谱问答方法、介质和设备
CN115658845A (zh) 一种适用于开源软件供应链的智能问答方法及装置
CN115186105A (zh) 实体链接方法及装置
CN116595125A (zh) 一种基于知识图检索的开放域问答方法
CN114881003A (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