CN110609849A - 一种基于sql语法树节点类型的自然语言生成方法 - Google Patents

一种基于sql语法树节点类型的自然语言生成方法 Download PDF

Info

Publication number
CN110609849A
CN110609849A CN201910796688.1A CN201910796688A CN110609849A CN 110609849 A CN110609849 A CN 110609849A CN 201910796688 A CN201910796688 A CN 201910796688A CN 110609849 A CN110609849 A CN 110609849A
Authority
CN
China
Prior art keywords
node
natural language
sql
vector
syntax tree
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
Application number
CN201910796688.1A
Other languages
English (en)
Other versions
CN110609849B (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.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
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 Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201910796688.1A priority Critical patent/CN110609849B/zh
Publication of CN110609849A publication Critical patent/CN110609849A/zh
Application granted granted Critical
Publication of CN110609849B publication Critical patent/CN110609849B/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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic 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/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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及自然语言领域,更具体地,涉及一种基于SQL语法树节点类型的自然语言生成方法。本发明不需要大量的人工操作以及不要求自然语言必须支持多样的句式。与基于序列至序列学习的自然语言生成方法对比,本发明能够获取SQL语言的文本信息,并结合SQL语法树的树状结构化数据以及树状长短期记忆网络使用,更加充分地获取SQL语句的语法结构信息,具有实际的应用意义,避免了人工去查阅开发文档和网上资料的不足,大大降低了时间成本以及人力成本,提高了工作效率。

Description

一种基于SQL语法树节点类型的自然语言生成方法
技术领域
本发明涉及自然语言领域,更具体地,涉及一种基于SQL语法树节点类型的自然语言生成方法。
背景技术
结构化查询语言(SQL)是一种非过程化的操作关系数据库的编程语言,允许用户在高层数据结构上交互式地查询数据,而使得用户对数据的具体存放方式透明;目前结构化查询语言已经被广泛应用于数据库操作事务上。而由于SQL语言是一种编程语言,可以通过抽象语法描述语言(Abstract Syntax Description Language,ASDL),一种被用于在编译器中描述树状数据结构的语言,来转化成抽象语法树(Abstract Syntax Tree,AST)。抽象语法树能够以树状的形式表现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语法树节点类型的自然语言生成方法,包括以下步骤:
步骤S1:构建自然语言生成模型,所述的模型包括基于记忆网络构成的语言编码器以及语言解码器;
步骤S2:从SQL文本中采集出自然语言数据集,将自然语言数据集按广度优先遍历获取有n个节点的SQL抽象语法树T={node1,...,noden}及对应的自然语言序列X={x1,...,xm};其中,node表示SQL抽象语法树T的一个节点,下标为节点序号;x表示一个自然语言句子X中的一个单词,下标表示序号;
步骤S3:使用自然语言生成模型中的语言编码器计算SQL抽象语法树中的每个节点nodei的节点状态向量
步骤S4:选取SQL抽象语法树的节点状态向量作为初始隐状态向量h0输入到自然语言生成模型中的语言解码器中;
步骤S5:在每个时间步t,语言解码器以上一个时间步更新的隐状态向量ht-1和预测出的单词xt-1作为输入,更新出新的隐状态向量ht
步骤S6:基于隐状态向量ht与SQL语法树的每个节点状态向量计算得到当前时间步的注意力向量attnt
步骤S7:将注意力向量attnt作为输入,输入到自然语言生成模型的语言解码器中;
步骤S8:语言解码器根据输入的注意力向量attnt执行复制操作或者生成操作,生成相应的自然语言序列;
步骤S9:使用梯度下降法对自然语言生成模型进行训练,确定自然语言生成模型的模型参数θ,得到优化后的自然语言生成模型。
优选的,步骤S1所述的语言解码器还包括有二元判别器,所述的语言编码器由基于节点类型的树型长短期记忆网络构成,所述的语言解码器由长短期记忆网络构成,所述的二元判别器由全连接网络构成;所述的基于节点类型的树型长短期记忆网络是一种树型长短期记忆网络的变种,树形长短期记忆网络由父节点、根节点以及子节点构成,所述的一个父节点包括若干个根节点,所述的一个根节点包括若干个子节点,若一棵SQL语法树的每个节点nodei有K个子节点,则基于节点类型的树型长短期记忆网络由1个输入门InputGate,K个遗忘门ForgetGate,一个输出门OutputGate组成,网络利用节点nodei的文本向量和节点类型其K个子节点的状态向量和节点类型及细胞状态按以下公式分别与输入门、遗忘门、输出门计算得到节点状态向量
其中,b为偏置,W· (·)为基于节点类型的树型长短期记忆网络的可学习参数,会根据节点类型type(·)的选择不同的参数值;而sigmoid(·)和tanh(·)为非线性激活函数,具体公式为:
优选的,步骤S2中的自然语言数据集由人工或机器统计采集,自然语言数据集包括结构化查询语言SQL和自然语言序列对,将数据集按比例拆分为训练集、验证集和测试集用于训练自然语言生成模型的可靠性。
优选的,在步骤S5中所述的时间步为长短期记忆网络在处理序列数据时的输入单位。
优选的,在步骤S5中,当t-1为0时,xt-1为一个表示开端的特殊符号。
优选的,在步骤S6中,计算注意力向量attnt的具体步骤如下:
首先基于隐状态向量ht与SQL语法树的每个节点状态向量计算关于每个节点状态向量的权重然后按权重加权求和得到一个上下文向量ctxt,最后将上下文向量ctxt与隐状态向量ht运算得到注意力向量attnt,具体公式为:
attnt=tanh([ctxt;ht]) (13)
其中,S为n×d的实数矩阵,表示一棵SQL语法树的n个节点状态向量向量的维度为d;softmax(·)和tanh(·)是非线性激活函数,softmax(·)具体公式为:
优选的,在步骤S7中,将注意力向量attnt输入到语言解码器的二元判别器中,该二元判别器为一个输出维度为2的全连接网络,即:
P(action|x1,...,xt-1,T)=W×attnt;W∈R2×d (15)
其中,W∈R2×d是全连接网络可训练参数,d为注意力向量attnt的维度;
二元判别器输出2个概率P(action=copy|x1,...,xt-1,T)和P(action=generate|x1,...,xt-1,T),P(action=copy|x1,...,xt-1,T)代表执行复制操作的概率,P(action=generate|x1,...,xt-1,T)代表执行生成操作的概率,比较两个概率值的大小,选取其中概率较大的操作执行。
优选的,在步骤S8中,若二元判别器判别为复制操作,基于注意力向量attnt与SQL语法树每个节点i的状态向量计算得到每个节点被复制的概率P(xt|x1,...,xt-1,T),选择最大概率的节点对该节点文本进行复制作为当前时间步的输出xt;复制机制中把注意力向量attnt与SQL语法树每个节点i的状态向量计算得到每个节点被复制的概率具体公式为:
其中,表示SQL语法树第i个节点的状态向量的转置形式,是一个标量,表示关于第t个时间步上,第i个节点上的一个值,该值表示状态向量与注意力向量attnt的相似度;
P(xt|x1,...,xt-1,T)=softmax(ut) (17)
若二元分类器判别为生成操作,将注意力向量attnt作为输入,输入到一个输出维度为目标词典大小的全连接网络中,得到目标词典中每个单词被生成的概率P(xt|x1,...,xt-1,T),选择最大概率的单词作为当前时间步的输出xt;重复步骤S5-步骤S8,直至生成相应的自然语言序列。
优选的,步骤S9中的梯度下降算法步骤如下:
步骤S201:假设有一个关于自然语言生成模型的模型参数θ的目标函数J(θ);
步骤S202:计算J(θ)的梯度
步骤S203:以更新步长α(α>0)更新参数θ,
优选的,在步骤S9中,在对自然语言生成模型训练的过程中,通过目标函数或损失函数训练模型参数θ直至模型收敛,其中目标函数为:
其中,P(xt,action=copy|x1,...,xt-1,T)表示文本执行复制操作的概率,P(xt,action=generate|x1,...,xt-1,T)表示文本执行生成操作的概率;
对应的损失函数L为:
L=-logP(X|T)
=-∑tlog(P(xt|x1,...,xt-1,T))
=-∑tlog(P(xt,action=copy|x1,...,xt-1,T)
+P(xt,action=generate|x1,...,xt-1,T))
=-∑tlog(P(xt|x1,...,xt-1,T)×P(action=copy|x1,...,xt-1,T)
+P(xt|x1,...,xt-1,T)
×P(action=generate|x1,...,xt-1,T)) (2)
其中,X表示一个自然语言句子,每个句子是x1,...,xm的单词序列;T表示一棵抽象语法树,每棵树是一个node1,...,noden的节点序列,P(X|T)表示给定语法树T下的X的条件概率,P(xt,action=copy|x1,...,xt-1,T)表示文本执行复制操作的概率,P(xt,action=generate|x1,...,xt-1,T)表示文本执行生成操作的概率。
与现有技术相比,本发明技术方案的有益效果是:
本发明不需要大量的人工操作以及不要求自然语言必须支持多样的句式。与基于序列至序列学习的自然语言生成方法对比,本发明能够获取SQL语言的文本信息,并结合SQL语法树的树状结构化数据以及树状长短期记忆网络使用,更加充分地获取SQL语句的语法结构信息,具有实际的应用意义,避免了人工去查阅开发文档和网上资料的不足,大大降低了时间成本以及人力成本,提高了工作效率。
附图说明
图1为本发明的方法流程图;
图2为本发明原理图;
图3为树状长短期记忆网络示意图;
图4为复制机制原理及示例图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种基于SQL语法树节点类型的自然语言生成方法,包括以下步骤:
步骤S1:构建自然语言生成模型,所述的模型包括基于记忆网络构成的语言编码器以及语言解码器;
步骤S2:从SQL文本中采集出自然语言数据集,将自然语言数据集按广度优先遍历获取有n个节点的SQL抽象语法树T={node1,...,noden}及对应的自然语言序列X={x1,...,xm};其中,node表示SQL抽象语法树T的一个节点,下标为节点序号;x表示一个自然语言句子X中的一个单词,下标表示序号;
步骤S3:使用自然语言生成模型中的语言编码器计算SQL抽象语法树中的每个节点nodei的节点状态向量
步骤S4:选取SQL抽象语法树的节点状态向量作为初始隐状态向量h0输入到自然语言生成模型中的语言解码器中;
步骤S5:在每个时间步t,语言解码器以上一个时间步更新的隐状态向量ht-1和预测出的单词xt-1作为输入,更新出新的隐状态向量ht
步骤S6:基于隐状态向量ht与SQL语法树的每个节点状态向量计算得到当前时间步的注意力向量attnt
步骤S7:将注意力向量attnt作为输入,输入到自然语言生成模型的语言解码器中;
步骤S8:语言解码器根据输入的注意力向量attnt执行复制操作或者生成操作,生成相应的自然语言序列;
步骤S9:使用梯度下降法对自然语言生成模型进行训练,确定自然语言生成模型的模型参数θ,得到优化后的自然语言生成模型。
如图2所示,作为一个优选的实施例,步骤S1所述的语言解码器还包括有二元判别器,所述的语言编码器由基于节点类型的树型长短期记忆网络构成,所述的语言解码器由长短期记忆网络构成,所述的二元判别器由全连接网络构成;所述的基于节点类型的树型长短期记忆网络是一种树型长短期记忆网络的变种,具体结构如图3所示,树形长短期记忆网络由父节点、根节点以及子节点构成,所述的一个父节点包括若干个根节点,所述的一个根节点包括若干个子节点,若一棵SQL语法树的每个节点nodei有K个子节点,则基于节点类型的树型长短期记忆网络由1个输入门InputGate,K个遗忘门ForgetGate,一个输出门OutputGate组成,网络利用节点nodei的文本向量和节点类型其K个子节点的状态向量和节点类型及细胞状态按以下公式分别与输入门、遗忘门、输出门计算得到节点状态向量
其中,b为偏置,W· (·)为基于节点类型的树型长短期记忆网络的可学习参数,会根据节点类型type(·)的选择不同的参数值;而sigmoid(·)和tanh(·)为非线性激活函数,具体公式为:
作为一个优选的实施例,步骤S2中的自然语言数据集由人工或机器统计采集,自然语言数据集包括结构化查询语言SQL和自然语言序列对,将数据集按比例拆分为训练集、验证集和测试集用于训练自然语言生成模型的可靠性。
作为一个优选的实施例,在步骤S5中所述的时间步为长短期记忆网络在处理序列数据时的输入单位。
作为一个优选的实施例,在步骤S5中,当t-1为0时,xt-1为一个表示开端的特殊符号。
作为一个优选的实施例,在步骤S6中,计算注意力向量attnt的具体步骤如下:
首先基于隐状态向量ht与SQL语法树的每个节点状态向量计算关于每个节点状态向量的权重然后按权重加权求和得到一个上下文向量ctxt,最后将上下文向量ctxt与隐状态向量ht运算得到注意力向量attnt,具体公式为:
attnt=tanh([ctxt;ht]) (13)
其中,S为n×d的实数矩阵,表示一棵SQL语法树的n个节点状态向量向量的维度为d;softmax(·)和tanh(·)是非线性激活函数,softmax(·)具体公式为:
作为一个优选的实施例,在步骤S7中,将注意力向量attnt输入到语言解码器的二元判别器中,该二元判别器为一个输出维度为2的全连接网络,即:
P(action|x1,...,xt-1,T)=W×attnt;W∈R2×d (15)
其中,W∈R2×d是全连接网络可训练参数,d为注意力向量attnt的维度;
二元判别器输出2个概率P(action=copy|x1,...,xt-1,T)和P(action=generate|x1,...,xt-1,T),P(action=copy|x1,...,xt-1,T)代表执行复制操作的概率,P(action=generate|x1,...,xt-1,T)代表执行生成操作的概率,比较两个概率值的大小,选取其中概率较大的操作执行。
作为一个优选的实施例,在步骤S8中,若二元判别器判别为复制操作,基于注意力向量attnt与SQL语法树每个节点i的状态向量计算得到每个节点被复制的概率P(xt|x1,...,xt-1,T),选择最大概率的节点对该节点文本进行复制作为当前时间步的输出xt;复制机制中把注意力向量attnt与SQL语法树每个节点i的状态向量计算得到每个节点被复制的概率具体公式为:
其中,表示SQL语法树第i个节点的状态向量的转置形式,是一个标量,表示关于第t个时间步上,第i个节点上的一个值,该值表示状态向量与注意力向量attnt的相似度;
P(xt|x1,...,xt-1,T)=softmax(ut) (17)
若二元分类器判别为生成操作,将注意力向量attnt作为输入,输入到一个输出维度为目标词典大小的全连接网络中,得到目标词典中每个单词被生成的概率P(xt|x1,...,xt-1,T),选择最大概率的单词作为当前时间步的输出xt;重复步骤S5-步骤S8,直至生成相应的自然语言序列。
作为一个优选的实施例,步骤S9中的梯度下降算法步骤如下:
步骤S201:假设有一个关于自然语言生成模型的模型参数θ的目标函数J(θ);
步骤S202:计算J(θ)的梯度
步骤S203:以更新步长α(α>0)更新参数θ,
作为一个优选的实施例,在步骤S9中,在对自然语言生成模型训练的过程中,通过目标函数或损失函数训练模型参数θ直至模型收敛,其中目标函数为:
其中,P(xt,action=copy|x1,...,xt-1,T)表示文本执行复制操作的概率,P(xt,action=generate|x1,...,xt-1,T)表示文本执行生成操作的概率;
对应的损失函数L为:
L=-logP(X|T)
=-∑tlog(P(xt|x1,...,xt-1,T))
=-∑tlog(P(xt,action=copy|x1,...,xt-1,T)
+P(xt,action=generate|x1,...,xt-1,T))
=-∑tlog(P(xt|x1,...,xt-1,T)×P(action=copy|x1,...,xt-1,T)
+P(xt|x1,...,xt-1,T)
×P(action=generate|x1,...,xt-1,T)) (2)。
其中,X表示一个自然语言句子,每个句子是x1,...,xm的单词序列;T表示一棵抽象语法树,每棵树是一个node1,...,noden的节点序列,P(X|T)表示给定语法树T下的X的条件概率,P(xt,action=copy|x1,...,xt-1,T)表示文本执行复制操作的概率,P(xt,action=generate|x1,...,xt-1,T)表示文本执行生成操作的概率。
实施例2
如图4所示,在本实施例中,在自然语言生成模型中的语言编码器中输入一段详细的话,并在语言解码器中输出一句能够概括输入内容的话,具体实例如下:
输入:小明去广州酒家吃午饭,点了3个菜,吃得很愉快。
输出:小明吃午饭吃得很开心。
假设“小明”这个单词不在所构造的词典中,则在不存在复制机制的情况下,会生成一个“未知”单词;而如果存在复制机制,“小明”这个单词则可以从输入中复制到输出。复制机制的具体实现是基于指针网络(Pointer Network)的。指针网络是以语言编码器-语言解码器框架为基础,假设输入为X={x1,...,xn},输出为Y={y1,...,ym}在解码器阶段某个时间步i中,语言解码器隐状态向量di与语言编码器输入的每个时间步j∈(1,...,n)的隐状态向量ej运算得到关于输入每个时间步的概率P(yi|y1,...,yi-1,X),表示复制此时间步输入单词的可能性,选择最大概率的输入单词进行复制,具体公式表示为:
P(yi|y1,...,yi-1,X)=softmax(ui)
其中,softmax(·)是非线性激活函数,softmax(·)具体公式为:
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (10)

1.一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,包括以下步骤:
步骤S1:构建自然语言生成模型,所述的模型包括基于记忆网络构成的语言编码器以及语言解码器;
步骤S2:从SQL文本中采集出自然语言数据集,将自然语言数据集按广度优先遍历获取有n个节点的SQL抽象语法树T={node1,…,noden}及对应的自然语言序列X={x1,…,xm};其中,node表示SQL抽象语法树T的一个节点,下标为节点序号;x表示一个自然语言句子X中的一个单词,下标表示序号;
步骤S3:使用自然语言生成模型中的语言编码器计算SQL抽象语法树中的每个节点nodei的节点状态向量
步骤S4:选取SQL抽象语法树的节点状态向量作为初始隐状态向量h0输入到自然语言生成模型中的语言解码器中;
步骤S5:在每个时间步t,语言解码器以上一个时间步更新的隐状态向量ht-1和预测出的单词xt-1作为输入,更新出新的隐状态向量ht
步骤S6:基于隐状态向量ht与SQL语法树的每个节点状态向量计算得到当前时间步的注意力向量attnt
步骤S7:将注意力向量attnt作为输入,输入到自然语言生成模型的语言解码器中;
步骤S8:语言解码器根据输入的注意力向量attnt执行复制操作或者生成操作,生成相应的自然语言序列;
步骤S9:使用梯度下降法对自然语言生成模型进行训练,确定自然语言生成模型的模型参数θ,得到优化后的自然语言生成模型。
2.根据权利要求1所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,步骤S1所述的语言解码器还包括有二元判别器,所述的语言编码器由基于节点类型的树型长短期记忆网络构成,所述的语言解码器由长短期记忆网络构成,所述的二元判别器由全连接网络构成;所述的基于节点类型的树型长短期记忆网络是一种树型长短期记忆网络的变种,树形长短期记忆网络由父节点、根节点以及子节点构成,所述的一个父节点包括若干个根节点,所述的一个根节点包括若干个子节点,若一棵SQL语法树的每个节点nodei有K个子节点,则基于节点类型的树型长短期记忆网络由1个输入门InputGate,K个遗忘门ForgetGate,一个输出门OutputGate组成,网络利用节点nodei的文本向量和节点类型其K个子节点的状态向量和节点类型及细胞状态按以下公式分别与输入门、遗忘门、输出门计算得到节点状态向量
其中,b为偏置,为基于节点类型的树型长短期记忆网络的可学习参数,会根据节点类型type(·)的选择不同的参数值;而sigmoid(·)和tanh(·)为非线性激活函数,具体公式为:
3.根据权利要求2所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,步骤S2中的自然语言数据集由人工或机器统计采集,自然语言数据集包括结构化查询语言SQL和自然语言序列对,将数据集按比例拆分为训练集、验证集和测试集用于训练自然语言生成模型的可靠性。
4.根据权利要求3所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,在步骤S5中所述的时间步为长短期记忆网络在处理序列数据时的输入单位。
5.根据权利要求4所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,在步骤S5中,当t-1为0时,xt-1为一个表示开端的特殊符号。
6.根据权利要求5所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,在步骤S6中,计算注意力向量attnt的具体步骤如下:
首先基于隐状态向量ht与SQL语法树的每个节点状态向量计算关于每个节点状态向量的权重然后按权重加权求和得到一个上下文向量ctxt,最后将上下文向量ctxt与隐状态向量ht运算得到注意力向量attnt,具体公式为:
attnt=tanh([ctxt;ht]) (13)
其中,S为n×d的实数矩阵,表示一棵SQL语法树的n个节点状态向量向量的维度为d;softmax(·)和tanh(·)是非线性激活函数,softmax(·)具体公式为:
7.根据权利要求6所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,在步骤S7中,将注意力向量attnt输入到语言解码器的二元判别器中,该二元判别器为一个输出维度为2的全连接网络,即:
P(action|x1,…,xt-1,T)=W×attnt;W∈R2×d (15)
其中,W∈R2×d是全连接网络可训练参数,d为注意力向量attnt的维度;
二元判别器输出2个概率P(action=copy|x1,…,xt-1,T)和P(action=generate|x1,…,xt-1,T),P(action=copy|x1,…,xt-1,T)代表执行复制操作的概率,P(action=generate|x1,…,xt-1,T)代表执行生成操作的概率,比较两个概率值的大小,选取其中概率较大的操作执行。
8.根据权利要求7所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,在步骤S8中,若二元判别器判别为复制操作,基于注意力向量attnt与SQL语法树每个节点i的状态向量计算得到每个节点被复制的概率P(xt|x1,…,xt-1,T),选择最大概率的节点对该节点文本进行复制作为当前时间步的输出xt;复制机制中把注意力向量attnt与SQL语法树每个节点i的状态向量计算得到每个节点被复制的概率具体公式为:
其中,表示SQL语法树第i个节点的状态向量的转置形式,是一个标量,表示关于第t个时间步上,第i个节点上的一个值,该值表示状态向量与注意力向量attnt的相似度;
P(xt|x1,…,xt-1,T)=softmax(ut) (17)
若二元分类器判别为生成操作,将注意力向量attnt作为输入,输入到一个输出维度为目标词典大小的全连接网络中,得到目标词典中每个单词被生成的概率P(xt|x1,…,xt-1,T),选择最大概率的单词作为当前时间步的输出xt;重复步骤S5-步骤S8,直至生成相应的自然语言序列。
9.根据权利要求8所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,步骤S9中的梯度下降算法步骤如下:
步骤S201:假设有一个关于自然语言生成模型的模型参数θ的目标函数J(θ);
步骤S202:计算J(θ)的梯度
步骤S203:以更新步长α(α>0)更新参数θ,
10.根据权利要求9所述的一种基于SQL语法树节点类型的自然语言生成方法,其特征在于,在步骤S9中,在对自然语言生成模型训练的过程中,通过目标函数或损失函数训练模型参数θ直至模型收敛,其中目标函数为:
其中,P(xt,action=copy|x1,…,xt-1,T)表示文本执行复制操作的概率,P(xt,action=generate|x1,…,xt-1,T)表示文本执行生成操作的概率;
对应的损失函数L为:
其中,X表示一个自然语言句子,每个句子是x1,…,xm的单词序列;T表示一棵抽象语法树,每棵树是一个node1,…,noden的节点序列,P(X|T)表示给定语法树T下的X的条件概率,P(xt,action=copy|x1,…,xt-1,T)表示文本执行复制操作的概率,P(xt,action=generate|x1,…,xt-1,T)表示文本执行生成操作的概率。
CN201910796688.1A 2019-08-27 2019-08-27 一种基于sql语法树节点类型的自然语言生成方法 Active CN110609849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910796688.1A CN110609849B (zh) 2019-08-27 2019-08-27 一种基于sql语法树节点类型的自然语言生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910796688.1A CN110609849B (zh) 2019-08-27 2019-08-27 一种基于sql语法树节点类型的自然语言生成方法

Publications (2)

Publication Number Publication Date
CN110609849A true CN110609849A (zh) 2019-12-24
CN110609849B CN110609849B (zh) 2022-03-25

Family

ID=68890463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910796688.1A Active CN110609849B (zh) 2019-08-27 2019-08-27 一种基于sql语法树节点类型的自然语言生成方法

Country Status (1)

Country Link
CN (1) CN110609849B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581946A (zh) * 2020-04-21 2020-08-25 上海爱数信息技术股份有限公司 一种语言序列模型解码方法
CN112487020A (zh) * 2020-12-18 2021-03-12 苏州思必驰信息科技有限公司 用于SQL to text的图到自然语言语句的转换方法及***
CN113254581A (zh) * 2021-05-25 2021-08-13 深圳市图灵机器人有限公司 一种基于神经语义解析的金融文本公式抽取方法及装置
CN113553411A (zh) * 2021-06-30 2021-10-26 北京百度网讯科技有限公司 查询语句的生成方法、装置、电子设备和存储介质
JP2022089166A (ja) * 2020-12-03 2022-06-15 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データペア生成方法、装置、電子デバイス及び記憶媒体
CN114692208A (zh) * 2022-05-31 2022-07-01 中建电子商务有限责任公司 一种数据查询服务权限的处理方法
CN116089476A (zh) * 2023-04-07 2023-05-09 北京宝兰德软件股份有限公司 数据查询方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805832A (en) * 1991-07-25 1998-09-08 International Business Machines Corporation System for parametric text to text language translation
CN110059100A (zh) * 2019-03-20 2019-07-26 广东工业大学 基于演员-评论家网络的sql语句构造方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805832A (en) * 1991-07-25 1998-09-08 International Business Machines Corporation System for parametric text to text language translation
CN110059100A (zh) * 2019-03-20 2019-07-26 广东工业大学 基于演员-评论家网络的sql语句构造方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郝亮等: "一种数据库汉语查询接口的设计与实现", 《计算机技术与发展》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581946A (zh) * 2020-04-21 2020-08-25 上海爱数信息技术股份有限公司 一种语言序列模型解码方法
CN111581946B (zh) * 2020-04-21 2023-10-13 上海爱数信息技术股份有限公司 一种语言序列模型解码方法
JP7266658B2 (ja) 2020-12-03 2023-04-28 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データペア生成方法、装置、電子デバイス及び記憶媒体
JP2022089166A (ja) * 2020-12-03 2022-06-15 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データペア生成方法、装置、電子デバイス及び記憶媒体
US11748340B2 (en) 2020-12-03 2023-09-05 Beijing Baidu Netcom Science And Technology Co., Ltd. Data pair generating method, apparatus, electronic device and storage medium
CN112487020A (zh) * 2020-12-18 2021-03-12 苏州思必驰信息科技有限公司 用于SQL to text的图到自然语言语句的转换方法及***
CN112487020B (zh) * 2020-12-18 2022-07-12 思必驰科技股份有限公司 用于SQL to text的图到自然语言语句的转换方法及***
CN113254581A (zh) * 2021-05-25 2021-08-13 深圳市图灵机器人有限公司 一种基于神经语义解析的金融文本公式抽取方法及装置
CN113553411A (zh) * 2021-06-30 2021-10-26 北京百度网讯科技有限公司 查询语句的生成方法、装置、电子设备和存储介质
CN113553411B (zh) * 2021-06-30 2023-08-29 北京百度网讯科技有限公司 查询语句的生成方法、装置、电子设备和存储介质
US12038955B2 (en) 2021-06-30 2024-07-16 Beijing Baidu Netcom Science Technology Co., Ltd. Method for generating query statement, electronic device and storage medium
CN114692208B (zh) * 2022-05-31 2022-09-27 中建电子商务有限责任公司 一种数据查询服务权限的处理方法
CN114692208A (zh) * 2022-05-31 2022-07-01 中建电子商务有限责任公司 一种数据查询服务权限的处理方法
CN116089476A (zh) * 2023-04-07 2023-05-09 北京宝兰德软件股份有限公司 数据查询方法、装置及电子设备

Also Published As

Publication number Publication date
CN110609849B (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
CN110609849B (zh) 一种基于sql语法树节点类型的自然语言生成方法
CN108628823B (zh) 结合注意力机制和多任务协同训练的命名实体识别方法
CN109284506B (zh) 一种基于注意力卷积神经网络的用户评论情感分析***及方法
CN109086270B (zh) 基于古诗词语料向量化的自动作诗***及其方法
CN109902159A (zh) 一种基于自然语言处理的智能运维语句相似度匹配方法
CN106126507A (zh) 一种基于字符编码的深度神经翻译方法及***
CN111858932A (zh) 基于Transformer的多重特征中英文情感分类方法及***
CN111782961B (zh) 一种面向机器阅读理解的答案推荐方法
CN108427665A (zh) 一种基于lstm型rnn模型的文本自动生成方法
Mo et al. Large language model (llm) ai text generation detection based on transformer deep learning algorithm
CN110532395B (zh) 一种基于语义嵌入的词向量改进模型的建立方法
CN111368082A (zh) 一种基于层次网络的领域自适应词嵌入的情感分析方法
CN113868425B (zh) 一种方面级情感分类方法
CN111400494A (zh) 一种基于GCN-Attention的情感分析方法
CN113157919A (zh) 语句文本方面级情感分类方法及***
CN114925195A (zh) 一种融合词汇编码与结构编码的标准内容文本摘要生成方法
CN114254645A (zh) 一种人工智能辅助写作***
CN115687609A (zh) 一种基于Prompt多模板融合的零样本关系抽取方法
CN108875024B (zh) 文本分类方法、***、可读存储介质及电子设备
CN116720519B (zh) 一种苗医药命名实体识别方法
CN117932066A (zh) 一种基于预训练的“提取-生成”式答案生成模型及方法
CN109615072A (zh) 一种对抗神经网络的集成方法及计算机设备
CN110442693B (zh) 基于人工智能的回复消息生成方法、装置、服务器及介质
CN115599918B (zh) 一种基于图增强的互学习文本分类方法及***
CN111259106A (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