CN117591543B - 一种中文自然语言的sql语句生成方法和装置 - Google Patents

一种中文自然语言的sql语句生成方法和装置 Download PDF

Info

Publication number
CN117591543B
CN117591543B CN202410076600.XA CN202410076600A CN117591543B CN 117591543 B CN117591543 B CN 117591543B CN 202410076600 A CN202410076600 A CN 202410076600A CN 117591543 B CN117591543 B CN 117591543B
Authority
CN
China
Prior art keywords
chinese
features
text
sql
feature
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
CN202410076600.XA
Other languages
English (en)
Other versions
CN117591543A (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.)
Chengdu Technological University CDTU
Original Assignee
Chengdu Technological University CDTU
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 Chengdu Technological University CDTU filed Critical Chengdu Technological University CDTU
Priority to CN202410076600.XA priority Critical patent/CN117591543B/zh
Publication of CN117591543A publication Critical patent/CN117591543A/zh
Application granted granted Critical
Publication of CN117591543B publication Critical patent/CN117591543B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • 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/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种中文自然语言的SQL语句生成方法和装置,涉及SQL生成技术领域。本发明的方法包括:通过跨语言学习模型得到中文问题的文本特征;通过语义角色分析得到中文问题文本的语义角色嵌入特征;将文本特征、语义角色嵌入特征和数据库模式进行拼接,通过编码器对问题和数据库模式进行联合编码;最后通过解码器解码得到中文问题对应的SQL语句。本发明针对中文Text‑to‑SQL任务,结合文本语义角色分析和跨语言学习技术,使基于英文数据库模式的SQL语句生成在中文模式下适配,解决依赖英文数据库模式的中文Text‑to‑SQL模型不能正确理解中文用户意图的问题。

Description

一种中文自然语言的SQL语句生成方法和装置
技术领域
本发明涉及SQL生成技术领域,尤其涉及一种中文自然语言的SQL语句生成方法和装置。
背景技术
大数据时代,大量信息以结构化和半结构化的形式存储在数据库中,需要使用编程语言(例如 SQL数据库查询语句)与数据库交互来获取和分析数据,Text-to-SQL旨在自动地将用户输入的自然语言问题转成可与数据库交互的SQL查询语句,一般方法为:自然语言与数据库查询转换器将接收的自然语言查询和数据库模式作为输入,并生成与输入的自然语言查询等效并符合数据库模式的SQL查询语句,在数据库上执行该查询语句可得到问题答案。数据库模式定义了存储在数据库中的数据结构,例如,数据库模式可以标识存储在数据库中的各种表、每个表的列、表之间的关系(例如外键关系)、与表相关联的任何约束等等。该技术对数据分析工具赋予了人工智能技术与自然语言理解能力,能够有效地辅助人们使用海量数据库进行查询和分析,在降低数据库使用门槛和人力成本的同时将人们从繁重的编程语言学习和编写中解放出来。Text-to-SQL技术已经落地于许多实际应用场景,如信息检索、智能客服、商业智能等,引起了学术界和工业界的广泛关注。
目前 Text-to-SQL的主要方法包括基于模板规则的方法、基于多任务分类的方法、基于语义解析树的方法、基于预训练语言模型的方法等,但大多方法都是基于英文自然语言转SQL数据集,中文Text-to-SQL方法在实际应用中数据库模式仍然采用英文,而用户的问题为中文,由于中、英文之间语法结构的差异,导致模型通常不能理解用户的意图,难以在中文场景下进行使用。
发明内容
本发明提供一种中文自然语言的SQL语句生成方法、装置、电子设备和计算机存储介质,以解决依赖英文数据库模式的中文Text-to-SQL模型不能正确理解中文用户意图的问题。
本发明通过下述技术方案实现:
本发明的第一方面,提供了一种中文自然语言的SQL语句生成方法,包括:
通过跨语言学习模型得到中文问题的文本特征;
对所述中文问题的文本进行语义角色分析,得到语义角色嵌入特征;
将所述文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征;
通过编码器对所述拼接特征进行编码,得到所述中文问题和数据库模式的联合编码特征;
通过解码器对所述联合编码特征进行解码,得到所述中文问题对应的SQL语句。
本发明针对中文Text-to-SQL任务,结合文本语义角色分析和跨语言学习技术,使基于英文数据库模式的SQL语句生成在中文模式下适配。通过语义角色分析对问题进行增强,能够使模型学习到用户查询句子中词语和词语间的语义依赖关系和各句子成份之间的关系,从而更好地理解中文查询意图,提升SQL生成模型在中文Text-to-SQL任务上的预测性能。
在一种实施方式中,所述将所述文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征,包括:
将所述文本特征和语义角色嵌入特征进行拼接,得到问题拼接特征;
将数据库模式按照预设顺序进行排序,依据所述排序依次将数据库模式中的表名称和列名称与所述问题拼接特征进行连接,得到所述拼接特征。
在一种实施方式中,对所述中文问题的文本进行语义角色分析,得到语义角色嵌入特征,包括:
构建以现代汉语动词和形容词为核心词的基础句模,将所述基础句模进行规则处理和逻辑表示,所述基础句模的逻辑表示包括一个核心词和多个语义角色;
基于所述基础句模的逻辑表示对所述中文问题的文本进行语义角色识别,基于识别结果得到语义角色嵌入特征。
在一种实施方式中,所述通过解码器对所述联合编码特征进行解码之前,所述方法还包括:
通过中间表示学习函数将所述联合编码特征转换为中间表示,通过信息瓶颈正则化器对所述中间表示添加信息瓶颈正则项,得到第一增强特征;
所述通过解码器对所述联合编码特征进行解码,包括:通过解码器对所述第一增强特征进行解码。
在一种实施方式中,所述通过解码器对所述第一增强特征进行解码之前,所述方法还包括:
通过局部稳定特征正则化器对所述第一增强特征添加局部稳定特征正则项,得到第二增强特征;
所述通过解码器对所述第一增强特征进行解码,包括:通过解码器对所述第二增强特征进行解码。
在一种实施方式中,所述解码器包括骨架解码器和尾解码器;
所述通过解码器对所述联合编码特征进行解码,得到所述中文问题对应的SQL语句,包括:
通过所述骨架解码器基于所述联合编码特征输出查询骨架,通过所述尾解码器输出数据库模式中的表和列来填充所述查询骨架中缺失的细节,生成所述中文问题对应的SQL语句。
在一种实施方式中,所述跨语言学习模型由因果语言模型、掩蔽语言模型和翻译语言模型进行多任务学习得到。
本发明的第二方面,提供了一种中文自然语言的SQL语句生成装置,包括:
文本特征提取模块,用于通过跨语言学习模型获得中文问题的文本特征;
语义角色分析模块,用于对所述中文问题的文本进行语义角色分析,得到语义角色特征;
特征拼接模块,用于将所述文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征;
SQL生成模块,用于通过编码器对所述拼接特征进行编码,得到所述中文问题和数据库模式的联合编码特征;
所述SQL生成模块还用于通过解码器对所述联合编码特征进行解码,得到所述中文问题对应的SQL语句。
本发明的第三方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明任一项实施例所述的中文自然语言的SQL语句生成方法。
本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明任一项实施例所述的中文自然语言的SQL语句生成方法。
本发明与现有技术相比,具有如下的优点和有益效果:
1、通过语义角色分析对问题进行增强,能够使模型学习到用户查询句子中词语和词语间的语义依赖关系和各句子成份之间的关系,从而更好地理解中文查询意图,提升SQL生成模型在中文Text-to-SQL任务上的预测性能。
2、通过跨语言学习技术使基于英文数据库模式的SQL语句生成在中文模式下适配,通过跨语言学习模型对中文自然语言问题进行跨语言的文本特征提取,将该文本特征、语义角色迁入特征和数据库模式进行联合编码,学习到中文问题的跨语言特征、语义角色特征和SQL语句之间的关联关系,为进一步解码得到准确的SQL语句提供基础。
3、通过加入信息瓶颈正则项对联合编码特征的中间表示进行增强,抑制输入特征和特征表达之间的有噪互信息,使得中间表示包含足够的信息用来推断目标标签,提高模型预测的准确性。
4、加入局部稳定特征正则项增加了局部稳定特征和全局特征的互信息,利用互信息的方式约束局部稳定特征(词级表示)和全局特征(句级表示)的信息,进一步增强了特征表达的鲁棒性。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1是本发明实施例的一种中文自然语言的SQL语句生成方法示意图;
图2是本发明实施例的一种跨语言学习模型结构示意图;
图3是本发明的中文自然语言的SQL语句生成流程示意图之一;
图4是本发明的中文自然语言的SQL语句生成流程示意图之二;
图5是本发明的中文自然语言的SQL语句生成装置的结构示意图;
图6是本发明实施例的一种电子设备的结构示意图。
附图标记说明:
40-处理器、41-存储器、42-输入装置、43-输出装置、44-通信装置。
实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于或设备固有的其它步骤或单元。
在本申请的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本申请的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
本发明的实施例提供一种中文自然语言的SQL语句生成方法,适用于中文场景下的SQL语句生成,有利于提高基于英文数据库模式的SQL语句生成模型对中文意图的理解能力,实现跨语言的SQL语句生成。
如图1所示,图1是本发明的一种中文自然语言的SQL语句生成方法示意图,该SQL语句生成方法包括以下步骤:
步骤S1,通过跨语言学习模型得到中文问题的文本特征;
步骤S2,对中文问题的文本进行语义角色分析,得到语义角色嵌入特征;
步骤S3,将文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征;
步骤S4,通过编码器对拼接特征进行编码,得到问题和数据库模式的联合编码特征;
步骤S5,通过解码器对联合编码特征进行解码,得到中文问题对应的SQL语句。
步骤S1中,可通过共享词汇表采用常规的训练方法预训练跨语言模型,如XLM、mBART、LaBSE等,将中文问题的文本输入训练好的跨语言学习模型中可以得到有关该中文问题和跨语言的文本表示,该步骤的目标是使英文的语言模型可以处理中文语言。
在本发明的一种实施方式中,上述跨语言学习模型由三个模型进行多任务学习得到,分别是因果语言模型、掩蔽语言模型和翻译语言模型。如图2所述是本实施例中的跨语言学习模型结构示意图,其构建过程如下
步骤S101,建立共享子词词汇库。
首先,创建共享词汇来处理所有语言的配对编码,本发明中仅针对中、英文,因此创建中英文共享词汇的配对编码,这可以改善在共享相同字母表或数字等锚定标记的语言之间嵌入空间或专有名词;然后,在随机抽样的句子串上学习单语语料库;最后根据多项式分布对句子进行采样,令采样率为0.5,利用多项式分布的采样增加了与低资源语言相关联的令牌的数量,并且减轻了对高资源语言的偏见,可以防止低资源语言的单词在字符级别上被拆分。
多项式分布采样的公式为:
式中,表示第i个样本的采样,/>表示样本的采样概率,N表示样本个数,/>表示关联的样本采样概率。
步骤S102,建立因果语言模型(Causal Language Model,CLM)。
因果语言模型是跟掩码语言模型相对的语言模型,其包括一个经过预训练的Transformer模型的decoder结构。因果语言模型采用了对角掩蔽矩阵,使得每个Token只能看到在它之前的Token信息,而看不到在它之后的Token,模型的训练目标是根据在这之前的Token来预测下一个位置的Token。首先,使单词在句子中给定前一个单词的概率。通常是根据概率分布来计算词之间组合的出现概率,因果语言模型根据所有之前的Token信息来预测当前时刻Token,所以可以很直接地应用到文本生成任务中。然而,这种技术没有扩展到跨语言环境,因此我们只保留每个批次中的第一个单词,不包含上下文信息。相应的公式为:
式中,P表示语言因果表示,表示第t个单词,/>表示/>之前的单词个数。
步骤S103,建立掩蔽语言模型(Masked Language Model,MLM)。
在掩蔽语言建模中,通常屏蔽给定句子中特定百分比的单词,模型期望基于该句子中的其他单词预测这些被屏蔽的单词。首先,我们将文本中80%的Token用[MASK]令牌替换,10%的Token用随机令牌替换;然后,在10%的Token中保持它们的分布不变,这样可以更好的拟合英文和中文之间的差异,该步骤中与传统方法之间的区别是使用任意数量句子的文本流输入掩蔽语言模型而不是成对的句子;最后,应对稀有Token和频繁Token(例如标点符号或停止词)之间的不平衡,我们根据多项式分布对文本流中的频繁Token进行采样,采样后的令牌被输入到嵌入层中。
步骤S104,建立翻译语言模型。
上述因果语言模型和掩蔽语言模型的目标都是无监督的,训练过程只需要单语数据。然而当并行数据可用时,不能只靠单语数据来学习目标。因此,我们加入了一个翻译语言模型用于改进跨语言模型的预训练。
首先,我们连接中英文平行句子,然后随机屏蔽两个来源中的单词以及目标语句;最后,为了预测英语句子中隐藏的单词,该模型可以关注围绕英语单词或法语翻译,鼓励模型中文与英语对齐。如果英语不足以推断出被掩盖的英语单词时,为了便于对齐,可以重置目标句子的位置。
步骤S104,建立跨语言学习模型。
使用因果语言模块、掩蔽语言模块和翻译语言模块进行跨语言模型预训练,我们用句子批量训练该跨语言学习模型,每个批量由256个标记,64个连续句子对组成。在每次迭代中,都会组成一个来自同一语言的句子批量,跨语言学习模型的损失表示为:
式中,L表示跨语言学习损失,表示损失权重,/>表示因果语言模型的损失,/>表示掩蔽语言模型的损失,/>表示翻译语言模型的损失。
步骤S2中,对所述中文问题的文本进行语义角色分析,得到语义角色嵌入特征,包括以下步骤:
步骤S201,构建基础句模。
语言学上的句模是由动词或形容词及它们联系着的语义角色组成的有序的句子语义结构, 根据句中谓语(动词)和论元(名词)之间不同的语义关系可以把论元分为若干个类型,这些类型一般称之为"语义角色"。常见的语义角色有施事、受事、与事、主事、致事等,“与事”指施事所发动事件的非主动参与者;“主事”是指性质、状态或发生非自主变化的主体,又称“当事”;“致事”则是事件或变化的引发者。例如:“老王走了”中,“老王”是“走”这一动作的发出者,语义角色是“施事”,“吃苹果”中,“苹果”是“吃”这一动作的承受者,语义角色是“受事”。在该步骤中,我们构建以现代汉语动词和形容词为核心的基础句模。
步骤S202,句模的规则处理和逻辑表示。
首先,我们以框架的形式描述句模,每个框架名称用相应的谓词类名称表示,谓词类是一个同义谓词集合;然后,使框架内容有谓词类共享的句模、句模对应的描述逻辑表示、谓词类和句模对应的从真实语料中检索到的例句;最后,由于汉语自身的复杂性,在构造句模的过程中处理同义谓词的句模部分,同义谓词的句模完全不同。相应的处理规则为:
(1) 只包含一个核心谓词;
(2) 只包含必不可少的语义角色;
(3) 常规语序;
(4) 主动语态;
(5) 陈述语气。
句模的逻辑表示在我们的句模框架中, 每个句模都有一个对应的描述逻辑表示,每个逻辑表示包括一个核心词和多个语义角色,形式化的表示方法可以使句模更好地被机器理解和使用,相应的逻辑表示的规则为:
(1) 句模的表示形式为“谓词(语义角色1, 语义角色2,…, 语义角色n)”;
(2) 谓词的名称和其所在的句模框架的名称相同;
(3) 每个句模都对应一个逻辑表示;
(4) 参数(语义角色)的表示顺序和其在句模中的描述顺序一致,这种表示方式更符合人的自然语言表达习惯,便于机器对逻辑表示进行正确的理解;
(5) 当一个框架中的两个句模包含的语义角色类型相同但语义角色的描述顺序不同时,选用人在日常生活中最常用的表达模式对应的那个逻辑表示统一形式化这两个句模。
步骤S203,利用逻辑表示对中文问题的文本进行语义角色识别,基于识别结果得到语义角色嵌入特征。
该步骤中,通过对中文问题文本进行分词、句法分析处理,得到文本结构,再用逻辑表示“谓词(语义角色1, 语义角色2,…, 语义角色n)”对问题文本进行匹配识别,得到问题的语义角色信息,将语义角色信息编码为问题的语义角色嵌入特征。
步骤S3中,将所述文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征,包括:
步骤S301,将文本特征和语义角色嵌入特征进行拼接,得到问题拼接特征;
步骤S302,将数据库模式按照预设顺序进行排序,依据排序依次将数据库模式中的表名称和列名称与所述问题拼接特征进行连接,得到所述拼接特征。
以上拼接步骤可通过一个问题-模式输入层完成,首先,将模式项按其默认顺序或预设顺序排列到模式序列中,并将模式序列与问题序列(即问题拼接特征)连接以形成编码器的输入序列,为了更好地表示模式项的语义,使用模式中的表名称及其列名称,这样更接近自然表达的语义。相应的公式为:
式中,表示拼接特征,q表示问题拼接特征,t表示表名称,c表示列(字段)名称,n表示第n个样本,N表示样本个数,“/>”是分隔符。
步骤S4中,将由文本特征、语义角色嵌入特征和数据库模式拼接得到的拼接向量输入编码器中,通过编码器对其进行编码,得到问题和数据库模式的联合编码特征。
以上编码步骤可通过一个问题-模式编码层完成,我们只考虑编码器输入中与问题最相关的模式项。为此,我们通过交叉编码器来对表格进行分类和分列,分别计算它们与问题序列之间的相关概率,基于概率大小进行顺序,过滤掉不相关的模式项。使用排序的模式序列,而不是无序的模式序列,以便seq2seq模型可以捕获用于模式链接的潜在位置信息。
可选的,上述步骤中的编码器可通过一个基于预训练语言模型的编码器实现,如RoBERTa。首先将拼接特征输入到RoBERTa中,由于每个模式项都将被标记为一个或多个PLM的令牌化器的令牌,为了对每个问题和模式项表示为一个整体进行分类,我们使用了一个非线性全连接层池化,相应的公式为:
式中,表示编码后的向量,F( )表示全连接网络,CrossEncoder( )表示交叉编码器,/>表示拼接特征。
在步骤S5中,解码器的目标是对于给定的树结构SemQL,输出合成SemQL查询语句的概率大小。具体实现过程如下:
步骤S501,解码目标函数。
该步骤中,我们基于语法的解码器,利用LSTM为SemQL查询语句的生成过程进行建模,SemQL查询y的生成过程可以形式化为相应的公式:
式中,是在时间步骤i采取的动作,/>i之前的动作序列,T是整个动作序列的总时间步长。
步骤S502,选择规则。
SQL的解析被记录在存储器中。基于概率选择列c的计算如下:
式中,S表示从模式中进行选择,MEM表示从内存中进行选择,表示通过执行关注,/>表示内存中的列,/>表示从未被选择的列的嵌入,/>是可训练参数。
当涉及到SELECTTABLE时,解码器通过指针网络从模式中选择表t , 解码器首先预测列c,然后预测它所属的表。为此,我们可以利用列和表之间的关系来修剪不相关的表。相关公式为:
在本发明的一种实施方式中,进一步采用从粗到细的框架分解SemQL查询,解码器包括骨架解码器和尾解码器,解码步骤分为以下两个阶段:
S511,通过骨架解码器输出查询骨架;
S512,通过所述尾解码器输出数据库模式中的表和列来填充所述查询骨架中缺失的细节,从而生成中文问题对应的SQL语句。
解码器与三种类型的操作交互以生成SemQL查询,包括APPLYRULE、SELECTCOLUMN和SELECTTABLE。生成规则如下所示:
(1) APPLYRULE(r):将生成规则r应用于SemQL查询的当前派生树;
(2) SE LECTCOLUMN(c):选择c列和模式中的表t;
(3) SELECTTABLE(t):选择模式中的表tc列。
在本发明的一种实施方式中,在通过解码器对所述联合编码特征进行解码之前,还包括对联合编码特征进行鲁棒性增强的步骤,如图3所示是本实施例的中文自然语言的SQL语句生成流程示意图之一,具体实施步骤如下:
步骤S401,鲁棒性中间表示学习。
在该步骤中,通过中间表示学习函数对编码器的输出进行鲁棒性中间表示学习,得到中间表示结果。我们主要对词级别的表示作为鲁棒性中间表示。由于离散性在文本输入空间中,很难在令牌级别上测量对抗性失真,相反,因为大多数单词级对抗性攻击通过语义嵌入空间中的有界幅度,我们定义了嵌入空间中具有扭曲约束的对抗性文本表示学习,相应的公式为:
式中,表示中间表示,/>表示中间表示学习函数。
步骤S402,加入信息瓶颈正则项。
对步骤S401的鲁棒性中间表示加入信息瓶颈正则项,信息瓶颈正则项制定了深度学习作为表示压缩和预测之间的信息论权衡权力,加入信息瓶颈正则项可以抑制输入和特征表达的有噪互信息。对于给定输入源X,深度神经网络学习内部表示某个中间层的T,并使T和标记Y之间的MI最大化,使得T在其复杂性上受到约束时包含足够的信息来推断目标标签Y。找到最佳表示T可以公式化为拉格朗日量的最大化,相应的公式为:
式中,为信息瓶颈正则化器损失,/>是控制权衡的超参数。
进一步,表示为:
式中,是由/>参数化的神经网络学习的真实分布/>的变分近似。
进一步,对上述公式求下界,相应的公式为:
进一步,为了推导IB的可处理下界,使用的上界,相应的公式为:
进一步,通过结合上述两项公式,可以通过以下方式最大化IB的可处理下界,相应的公式为:
进一步,对公式进行改写,得出信息瓶颈正则化器损失,相应的公式为:
通过以上信息瓶颈特征正则化器对中间表示添加信息瓶颈正则项,得到第一增强特征,通过解码器对第一增强特征进行解码,生成问题对应的SQL语句。
在本发明的一种实施方式中,在通过解码器对第一增强特征进行解码之前,还包括对第一增强特征进行局部稳定特征增强的步骤,如图4所示是本实施例的中文自然语言的SQL语句生成流程示意图之二,具体实施步骤如下:
步骤S403,加入局部稳定特征正则化项。
该步骤中,通过局部稳定特征正则化器对步骤S402的输出加入局部稳定特征正则项。局部稳定特征正则项可以增加局部稳定特征和全局特征的互信息。利用互信息的方式约束了局部稳定特征(词级表示)和全局特征(句级表示)的信息,提升全局特征的鲁棒性。相应的公式为:
式中,是局部锚定特征,M是局部锚定的特征的数量。
式中,是由神经网络近似的得分函数(或临界函数),/>是从局部锚定特征和全局表示的联合分布p中提取的正样本,/>是从非鲁棒和无用特征/>的分布中提取的负样本。
通过以上局部稳定特征正则化器对第一增强特征添加局部稳定特征正则项,得到第二增强特征,通过解码器对第二增强特征进行解码,生成问题对应的SQL语句。
本发明的第二方面,提供一种中文自然语言的SQL语句生成装置。
图5是本发明的中文自然语言的SQL语句生成装置的结构示意图,该装置包括:
文本特征提取模块,用于通过跨语言学习模型获得中文问题的文本特征;
语义角色分析模块,用于对中文问题的文本进行语义角色分析,得到语义角色特征;
特征拼接模块,用于将文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征;
SQL生成模块,用于通过编码器对拼接特征进行编码,得到所述问题和数据库模式的联合编码特征;
所述SQL生成模块还用于通过解码器对所述联合编码特征进行解码,得到所述中文问题对应的SQL语句。
在本发明的一种实施方式中,拼接模块通过一个问题-模式输入层实现,该拼接模块用于将文本特征和语义角色嵌入特征进行拼接,得到问题拼接特征;以及,
将数据库模式按照预设顺序进行排序,依据排序依次将数据库模式中的表名称和列名称与问题拼接特征进行连接,得到问题与数据库模式的拼接特征。
在本发明的一种实施方式中,语义角色分析模块基于预先构建的基础句模的逻辑表示对中文问题的文本进行语义角色识别,得到文本的语义角色特征,并将语义角色特征编码为语义角色嵌入特征。
在本发明的一种实施方式中,上述SQL语句生成装置还包括鲁棒性中间表示模块和第一增强模块,鲁棒性中间表示模块用于将联合编码特征转换为中间表示,第一增强模块用于对中间表示添加信息瓶颈正则项,得到第一增强特征;
在本发明的一种实施方式中,上述SQL语句生成装置还包括第二增强模块,第二增强模块用于对第一增强特征添加局部稳定特征正则项,得到第二增强特征;
在本发明的一种实施方式中,解码器用于对第一增强特征进行解码,得到中文问题对应的SQL语句。
在本发明的一种实施方式中,解码器用于对第二增强特征进行解码,得到中文问题对应的SQL语句。
在本发明的一种实施方式中,解码器包括骨架解码器和尾解码器,骨架解码器用于输出查询骨架,尾解码器用于输出数据库模式中的表和列来填充查询骨架中缺失的细节
在本发明的一种实施方式中,跨语言学习模型包括因果语言模型、掩蔽语言模型和翻译语言模型。
基于上述实施例,本发明还具有以下优点:
(1)本发明将文本语义角色分析与Text-to-SQL预训练语言模型相结合,通过方法能够学习到中文自然语言查询问题的语义角色特征,使模型正确理解中文意图,对现有SQL生成模型具有较大的性能提升;
(2)本发明针对现有的Text-to-SQL研究方法仅适用于英文语言的局限,我们开发出面向关系型数据库的中文自然语言转SQL语句模型;
(3)本发明中的系统,方便开发者快速集成到自己的软件产品中,如微信公众号、客服系统等其他应用系统。该项技术可直接应用于软件企业数据产品的研发,具备一定的应用价值;
(4)本发明具有良好的应用价值。随着工业自动化水平和信息化水平不断发展,工业生产领域早已积累了大量的生产数据。但工业领域产生的数据可解释性差且比较分散,这就使得目前工业生产领域所产生的大部分数据还停留在数据仓库层面,仅仅只是将历史数据保存起来,并没有发挥数据价值。本发明开发出数据库Text-to-SQL应用接口,将训练好的模型做成插件和接口供开发者使用,方便开发者将该项技术集成到自己的软件产品中,提升数据产品的性能效率。具备一定的应用与实用价值。
本发明的第三方面,提供一种电子设备,如图6所示,图6是本发明的一种电子设备的结构示意图,该电子设备包括处理器40、存储器41、输入装置42、输出装置43以及通信装置44;计算机设备中处理器40的数量可以是一个或多个,以图6中一个处理器40为例;电子设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,以实现本发明上述任一实施例的中文自然语言的SQL语句生成方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收用户的中文问题文本数据;输出装置43用于输出输入问题对应的SQL查询语句。
本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现本发明任一实施例的中文自然语言的SQL语句生成方法。存储介质可以是ROM/RAM、磁碟、光盘等。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种中文自然语言的SQL语句生成方法,其特征在于,包括:
通过跨语言学习模型得到中文问题的文本特征;
对所述中文问题的文本进行语义角色分析,得到语义角色嵌入特征;
将所述文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征;
通过编码器对所述拼接特征进行编码,得到所述中文问题和数据库模式的联合编码特征;
通过中间表示学习函数将所述联合编码特征转换为中间表示,通过信息瓶颈正则化器对所述中间表示添加信息瓶颈正则项,得到第一增强特征;
通过解码器对所述第一增强特征进行解码,得到所述中文问题对应的SQL语句。
2.根据权利要求1所述的中文自然语言的SQL语句生成方法,其特征在于,所述将所述文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征,包括:
将所述文本特征和语义角色嵌入特征进行拼接,得到问题拼接特征;
将数据库模式按照预设顺序进行排序,依据所述排序依次将数据库模式中的表名称和列名称与所述问题拼接特征进行连接,得到所述拼接特征。
3.根据权利要求1所述的中文自然语言的SQL语句生成方法,其特征在于,对所述中文问题的文本进行语义角色分析,得到语义角色嵌入特征,包括:
构建以现代汉语动词和形容词为核心词的基础句模,将所述基础句模进行规则处理和逻辑表示,所述基础句模的逻辑表示包括一个核心词和多个语义角色;
基于所述基础句模的逻辑表示对所述中文问题的文本进行语义角色识别,基于识别结果得到语义角色嵌入特征。
4.根据权利要求1所述的中文自然语言的SQL语句生成方法,其特征在于,所述通过解码器对所述第一增强特征进行解码之前,所述方法还包括:
通过局部稳定特征正则化器对所述第一增强特征添加局部稳定特征正则项,得到第二增强特征;
所述通过解码器对所述第一增强特征进行解码,包括:通过解码器对所述第二增强特征进行解码。
5.根据权利要求1所述的中文自然语言的SQL语句生成方法,其特征在于,所述解码器包括骨架解码器和尾解码器;
所述通过解码器对所述联合编码特征进行解码,得到所述中文问题对应的SQL语句,包括:
通过所述骨架解码器基于所述联合编码特征输出查询骨架,通过所述尾解码器输出数据库模式中的表和列来填充所述查询骨架中缺失的细节,得到所述中文问题对应的SQL语句。
6.根据权利要求1所述的中文自然语言的SQL语句生成方法,其特征在于,所述跨语言学习模型由因果语言模型、掩蔽语言模型和翻译语言模型进行多任务学习得到。
7.一种中文自然语言的SQL语句生成装置,其特征在于,包括:
文本特征提取模块,用于通过跨语言学习模型获得中文问题的文本特征;
语义角色分析模块,用于对所述中文问题的文本进行语义角色分析,得到语义角色特征;
特征拼接模块,用于将所述文本特征、语义角色嵌入特征和数据库模式进行拼接,得到拼接特征;
SQL生成模块,用于通过编码器对所述拼接特征进行编码,得到所述中文问题和数据库模式的联合编码特征;所述SQL生成模块还用于通过中间表示学习函数将所述联合编码特征转换为中间表示,通过信息瓶颈正则化器对所述中间表示添加信息瓶颈正则项,得到第一增强特征;
通过解码器对所述第一增强特征进行解码,得到所述中文问题对应的SQL语句。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的中文自然语言的SQL语句生成方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的中文自然语言的SQL语句生成方法。
CN202410076600.XA 2024-01-19 2024-01-19 一种中文自然语言的sql语句生成方法和装置 Active CN117591543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410076600.XA CN117591543B (zh) 2024-01-19 2024-01-19 一种中文自然语言的sql语句生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410076600.XA CN117591543B (zh) 2024-01-19 2024-01-19 一种中文自然语言的sql语句生成方法和装置

Publications (2)

Publication Number Publication Date
CN117591543A CN117591543A (zh) 2024-02-23
CN117591543B true CN117591543B (zh) 2024-04-02

Family

ID=89915439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410076600.XA Active CN117591543B (zh) 2024-01-19 2024-01-19 一种中文自然语言的sql语句生成方法和装置

Country Status (1)

Country Link
CN (1) CN117591543B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118093641B (zh) * 2024-04-29 2024-06-25 创意信息技术股份有限公司 一种基于因果推断的自然语言转sql查询语句方法及装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484706A (zh) * 2015-08-26 2017-03-08 星环信息科技(上海)有限公司 用于分布式系统的执行过程化sql语句的方法和设备
CN112069199A (zh) * 2020-08-20 2020-12-11 浙江大学 一种基于中间语法树的多轮自然语言转sql方法
CN112487135A (zh) * 2020-12-18 2021-03-12 苏州思必驰信息科技有限公司 将文本转化为结构化查询语言的方法及装置
CN112835927A (zh) * 2021-03-25 2021-05-25 中国工商银行股份有限公司 一种结构化查询语句的生成方法、装置和设备
CN113449205A (zh) * 2021-08-30 2021-09-28 四川省人工智能研究院(宜宾) 一种基于元数据增强的推荐方法及系统
CN114020768A (zh) * 2021-10-13 2022-02-08 华中科技大学 中文自然语言的sql语句生成模型的构建方法及应用
CN114238373A (zh) * 2021-12-16 2022-03-25 中国人民银行清算总中心 一种自然语言问题转换为结构化查询语句的方法及装置
CN114780577A (zh) * 2022-04-02 2022-07-22 中南民族大学 Sql语句生成方法、装置、设备及存储介质
CN115757461A (zh) * 2022-11-09 2023-03-07 北京新数科技有限公司 一种银行数据库应用系统结果聚类方法
CN116089260A (zh) * 2022-11-09 2023-05-09 福建福诺移动通信技术有限公司 一种sql语句的检测方法及装置
CN116261176A (zh) * 2023-02-16 2023-06-13 西安电子科技大学 基于信息瓶颈的语义通信方法
CN116737759A (zh) * 2023-08-14 2023-09-12 北京理工大学 一种基于关系感知注意力的中文查询生成sql语句方法
CN117033423A (zh) * 2023-08-10 2023-11-10 电子科技大学 一种注入最优模式项和历史交互信息的sql生成方法
CN117370378A (zh) * 2023-09-15 2024-01-09 国网浙江省电力有限公司营销服务中心 自然语言转化为数据库语句的方法、装置、设备及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200666B1 (en) * 2000-07-07 2007-04-03 International Business Machines Corporation Live connection enhancement for data source interface
US11544290B2 (en) * 2020-01-13 2023-01-03 International Business Machines Corporation Intelligent data distribution and replication using observed data access patterns
US20220300850A1 (en) * 2021-03-16 2022-09-22 Data Gran, Inc. End-to-end machine learning pipelines for data integration and analytics

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484706A (zh) * 2015-08-26 2017-03-08 星环信息科技(上海)有限公司 用于分布式系统的执行过程化sql语句的方法和设备
CN112069199A (zh) * 2020-08-20 2020-12-11 浙江大学 一种基于中间语法树的多轮自然语言转sql方法
CN112487135A (zh) * 2020-12-18 2021-03-12 苏州思必驰信息科技有限公司 将文本转化为结构化查询语言的方法及装置
CN112835927A (zh) * 2021-03-25 2021-05-25 中国工商银行股份有限公司 一种结构化查询语句的生成方法、装置和设备
CN113449205A (zh) * 2021-08-30 2021-09-28 四川省人工智能研究院(宜宾) 一种基于元数据增强的推荐方法及系统
CN114020768A (zh) * 2021-10-13 2022-02-08 华中科技大学 中文自然语言的sql语句生成模型的构建方法及应用
CN114238373A (zh) * 2021-12-16 2022-03-25 中国人民银行清算总中心 一种自然语言问题转换为结构化查询语句的方法及装置
CN114780577A (zh) * 2022-04-02 2022-07-22 中南民族大学 Sql语句生成方法、装置、设备及存储介质
CN115757461A (zh) * 2022-11-09 2023-03-07 北京新数科技有限公司 一种银行数据库应用系统结果聚类方法
CN116089260A (zh) * 2022-11-09 2023-05-09 福建福诺移动通信技术有限公司 一种sql语句的检测方法及装置
CN116261176A (zh) * 2023-02-16 2023-06-13 西安电子科技大学 基于信息瓶颈的语义通信方法
CN117033423A (zh) * 2023-08-10 2023-11-10 电子科技大学 一种注入最优模式项和历史交互信息的sql生成方法
CN116737759A (zh) * 2023-08-14 2023-09-12 北京理工大学 一种基于关系感知注意力的中文查询生成sql语句方法
CN117370378A (zh) * 2023-09-15 2024-01-09 国网浙江省电力有限公司营销服务中心 自然语言转化为数据库语句的方法、装置、设备及介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
InfoBERT: Improving Robustness of Language Models from An Information Theoretic Perspective;Boxin Wang;《https://www.researchgate.net/publication/344505975》;20201031;1-20 *
Zero-Shot Text-to-SQL Learning with Auxiliary Task;Shuaichen Chang;《AAAI Technical Track: Natural Language Processing》;20200403;第34卷(第5期);7488-7495 *
基于深度学习的中文自然语言生成复杂 SQL语句生成技术;林毅炜;《中国优秀硕士学位论文全文数据库 信息科技》;20230115;I138-632 *
基于规则的""字句语义角色标注;何保荣;邱立坤;徐德宽;;中文信息学报;20170115(第01期);85-92页 *
面向结构化数据库智能查询的关键技术研究;任冬冬;《中国优秀硕士学位论文全文数据库 信息科技》;20210715;I138-189 *

Also Published As

Publication number Publication date
CN117591543A (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN117591543B (zh) 一种中文自然语言的sql语句生成方法和装置
CN114818717B (zh) 融合词汇和句法信息的中文命名实体识别方法及系统
CN116204674B (zh) 一种基于视觉概念词关联结构化建模的图像描述方法
CN116304748B (zh) 一种文本相似度计算方法、系统、设备及介质
CN113239663B (zh) 一种基于知网的多义词中文实体关系识别方法
CN114548101A (zh) 基于可回溯序列生成方法的事件检测方法和系统
CN113869054B (zh) 一种基于深度学习的电力领域项目特征识别方法
CN117648933B (zh) 基于深度学习和知识库的自然语言歧义消解方法和系统
CN114742016A (zh) 一种基于多粒度实体异构图的篇章级事件抽取方法及装置
Gao et al. Chinese causal event extraction using causality‐associated graph neural network
CN110377753B (zh) 基于关系触发词与gru模型的关系抽取方法及装置
CN116483314A (zh) 一种自动化智能活动图生成方法
CN113449517B (zh) 基于bert门控多窗口注意力网络模型的实体关系抽取方法
Jiang et al. Bidirectional LSTM-CRF models for keyword extraction in Chinese sport news
CN118520876B (zh) 分层级联的嵌套实体识别模型及其构建方法、存储介质
CN116882398B (zh) 基于短语交互的隐式篇章关系识别方法和系统
Zhao et al. Semantic computation in geography question answering
Shen et al. Named Entity Recognition of Chinese Text Based on Attention Mechanism
CN117350276B (zh) 一种数据增强方法及系统
Radovanovic Introducing Natural Language Interface to Databases for Data-Driven Small and Medium Enterprises: This paper summarizes major challenges and current approaches in the context of constructing Natural Language Interfaces to Databases for data-driven small and medium enterprises.
Gan et al. A text sentiment multi-classification method based on dual graph convolutional network
Wang et al. Aspect-level Sentiment Analysis Based on Static Pruning of Syntactic Trees
Manchanda et al. Predicting stack overflow question quality through the use of deep learning techniques
Lia et al. Research on Chinese Event Joint Extraction Method based on RoBERTa Model and Fine-Grained Chinese Linguistic Features
Zhang et al. College of Intelligence and Computing, Tianjin University, Tian Jin, China azhang@ tju. edu. cn

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