本发明涉及智能语音领域,尤其涉及一种用于sqltotext的图到自然语言语句的转换方法及系统。
背景技术:
::sql(structuredquerylanguage,结构化查询语言)到文本的目的是将结构化的sql转换为自然语言问题。该任务对于构建用于将自然语言连接到关系数据库的交互式问答系统。为了鼓励表面形式的多样性并确保语义的正确性,近年来提出了基于神经网络的方法来解决这个问题。与传统的序列到序列(seq2seq)模型相比,高级的graph-to-sequence模型考虑了sql查询的固有图结构并连接了不同的单元(例如列,运算符,单元格值)通过sql关键字节点(例如select和and)。通过图神经网络收集信息,每个节点获得其上下文嵌入,该嵌入将在解码器中检索。在实现本发明过程中,发明人发现相关技术中至少存在如下问题:虽然序列到序列模型、graph-to-sequence模型有效,但它们有以下主要缺点:由于构造的sql图的稀疏性,泛化能力差;不同节点对之间关系的无知,尤其是列节点之间的相关性。尽管在序列化的sql查询和解析的抽象语法树中,两个节点相隔很远,但它们可能具有高度的相关性。现有的技术更多地关注sql的语法结构,而忽略了语义层面上的这些潜在关系。技术实现要素:为了至少解决现有技术中忽略节点之间的相关性的问题。第一方面,本发明实施例提供一种用于sqltotext的图到自然语言语句的转换方法,包括:构建sql的树,在所述树的结构图中表示有各节点的级别和彼此之间的各种关系;将所述树的结构图输入至基于图形注意力网络的转换模型中,识别所述sql的结构特征和序列关系,并生成自然语言语句。第二方面,本发明实施例提供一种用于sqltotext的图到自然语言语句的转换系统,包括:关系表示程序模块,用于构建sql的树,在所述树的结构图中表示有各节点的级别和彼此之间的各种关系;语句转换程序模块,用于将所述树的结构图输入至基于图形注意力网络的转换模型中,识别所述sql的结构特征和序列关系,并生成自然语言语句。第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的用于sqltotext的图到自然语言语句的转换方法的步骤。第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例的用于sqltotext的图到自然语言语句的转换方法的步骤。本发明实施例的有益效果在于:对sql的树图结构化表示,确保树中各节点之间的相关性,同时,也提出了用于sql到文本生成的识别关系型图转换器。基于sql中每个节点中令牌的表示形式,会考虑节点的多种关系,从而提高自然语言语句的转换效果。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的流程图;图2是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的构造sql树的示意图;图3是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的sql树构造过程的示意图;图4是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的编码器的结构示意图;图5是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的数据库架构关系表;图6是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的所有类型节点的枚举表;图7是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的统计wikisql和spider数据表;图8是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的所有模型的结果数据表;图9是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的交叉注意力消融数据表;图10是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的关系消融数据表;图11是本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换系统的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示为本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换方法的流程图,包括如下步骤:s11:构建sql的树,在所述树的结构图中表示有各节点的级别和彼此之间的各种关系;s12:将所述树的结构图输入至基于图形注意力网络的转换模型中,识别所述sql的结构特征和序列关系,并生成自然语言语句。在本实施方式中,本方法提出了一种关系感知图变换器(rgt),以考虑查询的抽象语法树和不同节点对之间的相关性。使用transformer作为模型的主干,可以看作是图形注意力网络的一个实例,其中每个节点的接收字段是整个节点集。假设输入图是:r=[rij]|v|×|v|,其中v为顶点集,r为关系矩阵。每个节点vi∈v有一个初始嵌入计算节点vi经过一次迭代层后的输出嵌入yi:其中fc(·)表示完全连接的层,layernorm{·}是层归一化技巧,[·;·]表示向量串联,参数1≤h≤h是多重指数,在传统的结构中,或不考虑r的边缘关系标签。本方法通过引入额外的关系向量将这种技术应用到我们的框架中,并称之为rgt(relation-awaregraphtransformer,识别关系型图transformer)。数学上,给定关系矩阵r=[rij]|v|×|v|,我们构造一个关系嵌入函数erel来检索关系rij的特征向量然后:关系嵌入函数erel在不同的头和多层之间共享,除非另有规定。注意,节点vi和vj之间的关系rij可以从多个方面进行计算。换句话说,rij可以是一个元组,只要erel可以将这个元组映射到一个固定大小的向量。为了便于讨论,我们将rgt编码模块的符号简化为xout=rgt(xin,erel,r),其中xin=[x1;···;x|v|]表示所有节点的输入嵌入矩阵。对于步骤s11,sql-to-text任务可以表示为一个图到序列的问题。输入图由sql的底层语法诱导。通过构建sql的树,来表示各节点的级别和彼此之间的各种关系。整个节点集v分为两类:中间节点(也可以称为非叶子节点)和叶节点。中间节点包括三个抽象概念(sql、表和列)、sql子句关键字和多个参数的运算符,而叶节点包含一元运算符,原始的表和列单词以及实体值的占位符。我们精心制作了这个分区,以便这两种类型的节点嵌入可以使用不同的关系信息进行更新。作为一种实施方式,所述构建sql的树包括:基于数据操作语言和/或数据定义语言将所述sql划分为多条子句;创建抽象节点,用于分别表示所述子句中的表或行;基于所述抽象节点以及子句中的二进制操作符作为非叶子节点,构建所述sql的树的结构图。在本实施方式中,从根节点sql开始,我们首先附加子句级节点作为其子节点,具体内容如图2所示。然后概念抽象节点、表和列以及相关的运算符节点都相应地附加到它们的父节点上。接下来,对于column和table,我们将所有原始单词、聚合器和distinct标志附加为叶节点。在此更进一步细化的构造,如图3所示,本方法的sql树由三个级别:子句级、模式级和令牌级组成。首先,sql被划分为一些子句,如select子句、where子句、嵌套sql子句等(见图3-(a))。然后,每个子句由几个表、列和一些其他二进制运算符组成。考虑到某些表和列有几个标记,我们设计了两个抽象节点(表和列),以解决这个问题(见图3-(c))。使用这两个抽象节点,子句节点可以表示为图3-(b)。注意,二进制操作符可以被视为多个节点之间的关系,我们将它们设置为中间节点(一些子节点的父节点)。对于其他一元运算符和令牌(表和列),我们将它们放在叶子上。对于步骤s12,将在步骤s11中构造的树的结构图输入至基于图形注意力网络的转换模型中,来识别sql的结构特征和序列关系。也就是本方法区别于现有技术,多考虑到结构特征和序列关系,生成自然语言语句。例如,sql:selectdistinctnameformemployeewheremonth_salary>10000orderbymonth_salarydesc。生成查询月薪大于10000的员工,并且按照降序排列这样的自然语言语句。作为一种实施方式,所述sql的结构特征包括:所述树中非叶子节点间的数据库关系以及相对深度关系。所述sql的序列关系包括:所述树中叶子节点间的最近邻祖先关系以及相对位置关系。非叶子节点更多代表sql的结构信息,叶子节点更多代表sql的语义信息。非叶子节点间有数据库关系和有向相对深度关系两种关系,叶子节点间有最近邻祖先和相对位置两种关系。对于结构特征和序列关系中这四种关系的操作,在下面解码器中详细说明。通过本实施方式可以看出,对sql的树图结构化表示,确保树中各节点之间的相关性,同时,也提出了用于sql到文本生成的识别关系型图转换器。基于sql中每个节点中令牌的表示形式,会考虑节点的多种关系,从而提高自然语言语句的转换效果。作为一种实施方式,在本实施例中,所述基于图形注意力网络的转换模型包括:输入为树的结构图,输出为所述树的结构图编码的编码器,以及输入为所述树的结构图编码,输出为自然语言语句的解码器;所述编码器用于:-确定所述树的结构图中叶子节点间的最近邻祖先关系以及相对位置关系,输出具有sql的语义信息的叶子节点编码;-确定所述树的结构图中非叶子节点间的数据库关系以及相对深度关系,输出具有所述sql的结构信息非叶子节点中间编码;-对所述叶子节点编码和所述非叶子节点中间编码进行交叉注意力处理,输出非叶子节点编码;所述解码器用于:对所述叶子节点编码以及所述非叶子节点编码解码,生成自然语言语句。在本实施方式中,基于图形注意力网络的转换模型包括编码器,所述编码器从可训练的嵌入矩阵中提取v中所有节点的输入特征。我们用和来表示叶节点嵌入集和叶节点之间的关系矩阵。对于中间节点,对称地,和编码器由k个堆叠块组成,如图4所示。每个模块包含三个模块:中间节点(也可以称非叶子节点)rgt模块、叶节点rgt模块和交叉关注模块。在每个块中,通过自注意和交叉注意顺序更新节点嵌入xi和xl。其中:下,中,外下标用于区分输入和输出。关系嵌入函数和关系矩阵ri和rl以及模块crossattentioni←l(·,·)的定义将在下文详述。中间节点之间的关系对于中间节点,我们考虑两种类型的关系:数据库关系(dbs,databaseschema)和有向相对深度(drd,directionalrelativedepth)。dbs考虑抽象概念表和列之间的关系。我们总共定义了11个关系,如图5所示。如果node和是column类型的节点,并且根据数据库模式,它们属于同一个表,那么关系是same-table。dbs关系的完整版本。其中,关系嵌入函数将关系范畴映射为可训练向量在底层定向sql树的帮助下,我们可以建立另一个关系矩阵来表示和两个中间节点之间的可达性和相对深度差。表示节点的深度,例如根sql节点的深度为1,最大深度差为d,其中edrd是具有2d 2条目的关系嵌入模块。其中一个特殊条目表示不可访问性inf。中间节点的完整关系嵌入函数和关系矩阵ri将数据库关系和有向相对深度合并在一起。其中fc是从两个角度进行的从仿射到融合的变换。从图6可以看出,叶节点主要由原始单词组成,加上一些一元运算符作为修饰符。在sql查询中将所有这些节点按照它们原来的顺序聚集到序列sl中,我们可以得到这些叶节点之间的相对位置关系(rpr)。假设节点vil在sl中的位置以为索引,d为预先定义的最大距离,节点与的关系特征定义为:实际上,存储为(2d 1)×(dx/h)的参数矩阵以供检索。同一子句中的标记将按序列sl聚集在一起。直观上,将具有较小的绝对数值,并捕获前面提到的子句内关系。此外,我们考虑了sql树的结构。令表示叶节点的最近邻祖先,并且在sql树中,关系特征通过:关系嵌入函数仅从提取中间节点的当前节点嵌入,然后通过可训练的线性层将其转换为维dx/h。远程叶节点之间的关系由公共祖先节点反映。叶节点的完整关系嵌入函数是通过组合扁平关系和树结构关系来构造的:交叉注意从叶到中间节点模块crossattentioni←l(·,·)收集叶节点vl到中间节点vi的特征,使得语义信息能够流入vi的结构节点表示中,对于每个中间节点,计算叶节点上的注意向量与其关注所有的叶节点(对全节点的注意力,aof(attentionoverfull)),不如只关心由sql树确定的它的后代。我们称这种策略为对后代的注意力(aod,attentionoverdescendants)。设是中间节点的后代叶节点集,中间节点的更新方程为:其中we∈dx×dx是可训练参数。编码器:在获得中间节点和叶节点的最终节点嵌入后,我们应用lstm-based带复制机制的序列解码器生成自然语言句子。在解码之前,将提取叶节点中原始表和列单词的表示形式以供直接复制。在后处理过程中,val0等实体的占位符将替换为相应的名词(称为词汇化)。基于上述的识别关系型图transformer,进行具体试验。我们在最新版本的wikisql数据集上进行了实验,如图7所示。如前所述,wikisql中的sql只包含select和where子句,且长度较短。我们使用官方的训练/开发/测试分割,确保每个表只出现在单个分割中。这种设置要求模型泛化到不可见的表。我们也使用spider,一个更加复杂的数据集。如再图7所示,与wikisql相比,它的sql要长得多,大小也小得多。此外,spider还涉及其他一些复杂的语法,如join、having和嵌套sql。因此,爬行器上的任务要困难得多。考虑到测试划分不是公开的,我们只使用train和dev划分。我们所有的代码都是由pytorch实现的。我们利用adam优化器训练学习率为0.0001的模型。wikisql的批处理大小为32,spider的批处理大小为8。所有模型都经过50个训练,并具有默认初始化。我们采用辍学策略,编码器的比率为0.1,解码器的比率为0.5。隐藏大小为300,层数k为8。对于我们的关系感知图形转换器的编码器,模型尺寸为512,带有8个关注头。节点和类型嵌入大小都与隐藏大小相同。所有关系(dbs,drd,rpr)的嵌入大小均为64。我们裁剪模型梯度以使其不大于1。最大相对深度和距离均设置为4。bleu-4和nist是我们使用的自动度量。因为没有相同的sql,每个sql都有一个wikisql的引用。对于spider,大多数sqls都有双重引用,因为许多sqls对应于两个不同的表达式。为了缓解结果的波动,我们进行了10次不同随机种子的试验。所有结果均采用mteval-v14.pl3脚本计算。数据预处理首先,我们规范sql查询。对于wikisql,我们省略了from子句,因为所有sqls只与一个表相关。对于spider,我们将表别名替换为其原始名称,并删除as语法。此外,上述问题也被取消了。对于所有基线,使用相同的基于注意力的带有复制机制的lstmdecoder,其中只复制模式依赖项(表和列标记)。该编码器是一个使用规范化sql序列作为输入的bilstm编码器。我们报告的结果与复制机制和没有这个基线。treelstm编码器是一个子和treelstm编码器,以我们的sql树作为输入。对于这个基线,我们利用了绝对位置和相对位置的自注意嵌入。类似地,transformer编码器的输入是规范化的sql序列。gcn/gat对于sql树作为图,我们可以使用图卷积网络(gcn)和图注意网络(gat)来完成此任务。我们实现了双向gcn,并利用均值池来聚合消息。从自我关注到图表关注,我们的gat与transformer编码器略有不同。我们将建议的模型rgt与以上所有基线进行比较。如图8所示显示了bleu和nist在测试集上的wikisql和开发集上的spider(测试集不可用)。我们将我们的模型与前面提到的所有基线进行比较。对于bleu和nist,我们的模型关系感知图形转换器(rgt)的性能优于wikisql和spider上的所有基线模型。具体地说,rgt在spider和wikisql上的关系位置优于关系位置最强的基线变换器0.68bleu和nist0.1nist。如图7所示,与spider相比,wikisql中的sql非常简短和简单,导致两个节点之间的相关性可能不高。因此,rgt的性能并没有比相对位置的transformer大幅度提高。我们发现,只关心像gcn这样的结构的模型可能表现不佳。即使只考虑相对位置关系,具有相对位置的transformer也是最强基线。这鼓励我们考虑更多的关系。为了研究交叉注意力和关系的影响,我们分别进行了两项消融研究。我们尝试不同的组合以引起注意。图9所示的交叉注意表显示了交叉注意。此外,我们还探讨了叶对中间注意的影响。我们定义了aoa(attentionoverancestors,关注祖先),这表明叶子只关心它的祖先(从父节点到根节点的路径上的节点)。试验表明,aod 无叶节点为最佳组合。根据图9,我们总结出以下结论:如果中间到叶子节点的注意力高于后代节点(aod),那么中间节点叶子节点关心的越多,性能就越差。对于任何两个叶节点,只有它们的祖先会捕获它们关于aod的信息,这使得它们的祖先可以更准确地表示它们。准确地说,它们最低的共同祖先(lca)捕获了最相关的信息。可能,它引入的其他叶节点的信息最少。如果中间到叶子的注意力超过了全部(aof),叶节点需要关心祖先以获得更多的信息。与aod不同的是,所有中间节点携带任意两个叶节点的信息。因此,对于叶节点,aoa优于仅使用lca。此外,他们的祖先与他们的祖先中间节点的互动更密切,这说明祖先携带了最相关的信息。如果中间不注意aof,叶节点有放弃注意的倾向。在这种情况下,中间节点没有来自叶节点的信息。中间节点之间仅交互以捕获sql结构并对叶节点之间的关系进行编码。因此,叶节点只利用lca,而不关注中间节点。如图10关系消融表显示,为rgt引入的所有关系都是合理的。图10的上半部分表明,数据库关系关系(dbs)和定向相对深度(drd)的效果可比。结合使用它们可以大大提高rgt。dbs通过引入数据库关系信息来促进table和column中间节点的编码。drd协助rgt捕获中间节点结构。下半部分说明了相对位置关系(rpr)对rgt的贡献更大。使用rpr,rgt可以识别顺序关系(列标记和表列)。lca促进rgt识别更复杂的关系,例如两个列属于同一子句。我们将rgt与具有相对位置的最强基线transformer进行比较。特别是当两列彼此远离时,具有相对位置的transformer可能无法捕获子句中的所有列。rgt可以通过引入sql树来增强令牌(列令牌,表令牌,一元运算符等)之间的关系来缓解此问题。甚至两个令牌也很远。有一个lca连接它们。sql到文本这种技术可以利用自动生成的sql程序来创建额外的对,缓解了复杂的文本到sql任务的注释稀缺问题。早期基于规则的方法严重依赖研究人员设计通用模板,这将不可避免地产生僵化和规范化的问题。seq2seq和graph-to-seq模型已显示出其优于传统基于规则的系统。在这项工作中,我们提出了一个识别关系型图transformer,以兼顾图的结构和嵌入在不同节点对中的各种关系。graph-to-sequencetree-to-sequence模型,图卷积网络和图关注网络已经成功——完全应用于各种任务获得节点嵌入。当从邻居处聚合信息时,可以合并关系或边缘特征。对于不同的节点对,我们采用了这两种策略,并使用定制的关系。我们提出了一种用于复杂sql到文本生成的关系感知图形转换器(rgt)。当学习sql中每个令牌的表示形式时,在我们的模型中会考虑多个关系。关系包括相对距离和sql的相应抽象语法树中的最近邻祖先。在两个数据集wikisql和spider上进行的大量实验表明,我们提出的模型优于包括seq2seq模型和graph2seq模型在内的强大基线。值得注意的是,我们提出的方法不仅可以用于sql到文本任务,还可以用于其他树到序列任务。将来,我们将评估其他任务的方法。如图11所示为本发明一实施例提供的一种用于sqltotext的图到自然语言语句的转换系统的结构示意图,该系统可执行上述任意实施例所述的用于sqltotext的图到自然语言语句的转换方法,并配置在终端中。本实施例提供的一种用于sqltotext的图到自然语言语句的转换系统10包括:关系表示程序模块11和语句转换程序模块12。其中,关系表示程序模块11用于构建sql的树,在所述树的结构图中表示有各节点的级别和彼此之间的各种关系;语句转换程序模块12用于将所述树的结构图输入至基于图形注意力网络的转换模型中,识别所述sql的结构特征和序列关系,并生成自然语言语句。进一步地,所述关系表示程序模块用于:基于数据操作语言和/或数据定义语言将所述sql划分为多条子句;创建抽象节点,用于分别表示所述子句中的表或行;基于所述抽象节点以及子句中的二进制操作符作为非叶子节点,构建所述sql的树的结构图。进一步地,所述基于图形注意力网络的转换模型包括:输入为树的结构图,输出为所述树的结构图编码的编码器,以及输入为所述树的结构图编码,输出为自然语言语句的解码器;所述编码器用于:-确定所述树的结构图中叶子节点间的最近邻祖先关系以及相对位置关系,输出具有sql的语义信息的叶子节点编码;-确定所述树的结构图中非叶子节点间的数据库关系以及相对深度关系,输出具有所述sql的结构信息非叶子节点中间编码;-对所述叶子节点编码和所述非叶子节点中间编码进行交叉注意力处理,输出非叶子节点编码;所述解码器用于:对所述叶子节点编码以及所述非叶子节点编码解码,生成自然语言语句。本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的用于sqltotext的图到自然语言语句的转换方法;作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:构建sql的树,在所述树的结构图中表示有各节点的级别和彼此之间的各种关系;将所述树的结构图输入至基于图形注意力网络的转换模型中,识别所述sql的结构特征和序列关系,并生成自然语言语句。作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的用于sqltotext的图到自然语言语句的转换方法。非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的用于sqltotext的图到自然语言语句的转换方法的步骤。本申请实施例的电子设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如平板电脑。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。(4)其他具有数据处理功能的电子装置。在本文中,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种用于sqltotext的图到自然语言语句的转换方法,包括:
构建sql的树,在所述树的结构图中表示有各节点的级别和彼此之间的各种关系;
将所述树的结构图输入至基于图形注意力网络的转换模型中,识别所述sql的结构特征和序列关系,并生成自然语言语句。
2.根据权利要求1所述的方法,其中,所述sql的结构特征包括:所述树中非叶子节点间的数据库关系以及相对深度关系。
3.根据权利要求1所述的方法,其中,所述sql的序列关系包括:所述树中叶子节点间的最近邻祖先关系以及相对位置关系。
4.根据权利要求1所述的方法,其中,所述构建sql的树包括:
基于数据操作语言和/或数据定义语言将所述sql划分为多条子句;
创建抽象节点,用于分别表示所述子句中的表或行;
基于所述抽象节点以及子句中的二进制操作符作为非叶子节点,构建所述sql的树的结构图。
5.根据权利要求1-4中任一项所述的方法,其中,所述基于图形注意力网络的转换模型包括:
输入为树的结构图,输出为所述树的结构图编码的编码器,以及输入为所述树的结构图编码,输出为自然语言语句的解码器;
所述编码器用于:
-确定所述树的结构图中叶子节点间的最近邻祖先关系以及相对位置关系,输出具有sql的语义信息的叶子节点编码;
-确定所述树的结构图中非叶子节点间的数据库关系以及相对深度关系,输出具有所述sql的结构信息非叶子节点中间编码;
-对所述叶子节点编码和所述非叶子节点中间编码进行交叉注意力处理,输出非叶子节点编码;
所述解码器用于:对所述叶子节点编码以及所述非叶子节点编码解码,生成自然语言语句。
6.一种用于sqltotext的图到自然语言语句的转换系统,包括:
关系表示程序模块,用于构建sql的树,在所述树的结构图中表示有各节点的级别和彼此之间的各种关系;
语句转换程序模块,用于将所述树的结构图输入至基于图形注意力网络的转换模型中,识别所述sql的结构特征和序列关系,并生成自然语言语句。
7.根据权利要求6所述的系统,其中,所述关系表示程序模块用于:
基于数据操作语言和/或数据定义语言将所述sql划分为多条子句;
创建抽象节点,用于分别表示所述子句中的表或行;
基于所述抽象节点以及子句中的二进制操作符作为非叶子节点,构建所述sql的树的结构图。
8.根据权利要求6所述的系统,其中,所述基于图形注意力网络的转换模型包括:
输入为树的结构图,输出为所述树的结构图编码的编码器,以及输入为所述树的结构图编码,输出为自然语言语句的解码器;
所述编码器用于:
-确定所述树的结构图中叶子节点间的最近邻祖先关系以及相对位置关系,输出具有sql的语义信息的叶子节点编码;
-确定所述树的结构图中非叶子节点间的数据库关系以及相对深度关系,输出具有所述sql的结构信息非叶子节点中间编码;
-对所述叶子节点编码和所述非叶子节点中间编码进行交叉注意力处理,输出非叶子节点编码;
所述解码器用于:对所述叶子节点编码以及所述非叶子节点编码解码,生成自然语言语句。
9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
技术总结本发明实施例提供一种用于SQL to text的图到自然语言语句的转换方法。该方法包括:构建SQL的树,在树的结构图中表示有各节点的级别和彼此之间的各种关系;将树的结构图输入至基于图形注意力网络的转换模型中,识别SQL的结构特征和序列关系,并生成自然语言语句。本发明实施例还提供一种用于SQL to text的图到自然语言语句的转换系统。本发明实施例对SQL的树图结构化表示,确保树中各节点之间的相关性,同时,也提出了用于SQL到文本生成的识别关系型图转换器。基于SQL中每个节点中令牌的表示形式,会考虑节点的多种关系,从而提高自然语言语句的转换效果。
技术研发人员:俞凯;马达;陈露;曹瑞升
受保护的技术使用者:苏州思必驰信息科技有限公司
技术研发日:2020.12.18
技术公布日:2021.03.12