基于相关性判断的SQL解析方法、装置和计算机设备制造方法及图纸

技术编号:28979779 阅读:14 留言:0更新日期:2021-06-23 09:26
本申请涉及一种基于相关性判断的SQL解析方法、装置和计算机设备。通过对自然语言进行编码,得到自然语言问题序列编码和字段序列编码,然后通过注意力机制,得到自然语言问题与字段序列的交互信息,从而通过交互信息,可以预测自然语言文本的自然语言问题,从而可以判断是否是数据库相关的问题,以上,就构建了字段序列与数据库的关联,在判断自然语言问题之后,可以采用模板匹配的方式,解析SQL语句,从而实现SQL解析,上述方法中,无需对样本进行标注,减少标注成本,另外,通过建立数据库与语义的关联,可以提高SQL解析的效率。

【技术实现步骤摘要】
基于相关性判断的SQL解析方法、装置和计算机设备
本申请涉及自然语言处理
,特别是涉及一种基于相关性判断的SQL解析方法、装置和计算机设备。
技术介绍
在SQL解析的实际应用场景中,用户的行为不可控,其所输入的自然语言问题不一定与目标数据库相关,导致该自然语言问题无法在目标数据库上进行解析。受限于主流SQL解析数据集构建情况,很少有研究人员在SQL解析任务中考虑自然语言问题与数据库的相关性。目前,目前,基于相关性判断的SQL解析任务缺少公开数据集,现有SQL解析数据集均未包含自然语言问题的相关性判断。由于人工标注数据成本较高,采用全面匹配方法进行SQL解析的成本高、效率低。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够解决SQL解析成本和效率兼顾的基于相关性判断的SQL解析方法、装置、计算机设备和存储介质。一种基于相关性判断的SQL解析方法,所述方法包括:将自然文本样本输入SQL解析模型;所述SQL解析模型包括:编码模块、相关性判断模块和SQL解析模块;根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列和自然语言问题序列;其中,所述字段序列编码和所述自然语言问题序列编码串联构成整体编码信息;所述自然语言问题序列编码中的一个自然语言问题编码对应一个字段序列编码的字段编码;所述字段编码对应一个输入序列编码;将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量;将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息;将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题;将所述预测自然语言问题和所述整体编码信息输入所述SQL解析模块,解析得到预测SQL语句;根据预先构建的损失函数对所述SQL解析模型进行训练,得到训练好的SQL解析模型;将待解析自然文本输入训练好的SQL解析模型,得到对应的SQL语句。在其中一个实施例中,还包括:获取自然文本样本的初始序列为:[CLS],q1,q2,...,qL,[SEP],c11,c12,...,[SEP],c21,c22,...,[SEP],...,[SEP]其中,[CLS]表示初始标记,[SEP]表示间隔符,q1,q2,...,qL是自然语言问题序列,ct1,ct2,...是第t个字段的输入序列,L表示自然语言问题的长度;qt表示自然语言问题序列中的第t个token;根据预训练的所述编码模块对所述初始序列进行解析,得到字段序列编码和自然语言问题序列编码为:h[CLS],hq1,hq2,...,hqL,h[SEP],hc11,hc12,...,h[SEP],hc21,hc22,...,h[SEP],...,h[SEP]其中,h[CLS]表示整体编码信息,h[SEP]表示[SEP]的编码,hqt表示qt的编码,hct1,hct2,...表示ct1,ct2,...的编码。在其中一个实施例中,还包括:将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量为:sij=dot(Uh[CLS],Vhcij)其中,U和V是可学习参数,U∈Rd×d,V∈Rd×d。dot表示点乘运算,hcij表示第i个字段的第j个token的编码,sij表示第i个字段的第j个token的编码与输入序列的整体编码信息h[CLS]的相似度,aij表示经过归一化处理后的注意力权重,n和m分别表示输入序列编码的数量和字段序列编码的长度,hc是注意力加权向量。在其中一个实施例中,还包括:将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息:hs=[h[CLS];hc]其中,hs表示交互信息;将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题,包括:将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题:p=sigmoid(Whs)其中,W为可学习参数,W∈R1×d,p为相关性概率,p越大则表明自然语言问题与数据库的相关性越高。在其中一个实施例中,还包括:根据所述预测自然语言问题,确定预先设置在所述SQL解析模块中的SQL预定义模板;将所述交互信息或所述整体编码信息输入SQL预定义模板,得到预测SQL语句。在其中一个实施例中,还包括:所述SQL解析模块包括:操作判断模块、抽取模块、数量相关模块以及字段选择模块;所述数量相关模块包括:S-NUM任务和W-NUM-OP任务;所述字段选择模块包括:S-COL任务和W-COL任务;所述操作判断模块包括:S-COL-AGG任务和W-COL-OP任务;所述字段选择模块包括:W-VALUE任务和W-MATCH任务。在其中一个实施例中,还包括:获取S-NUM任务、W-NUM-OP任务、S-COL任务、W-COL任务、S-COL-AGG任务、W-COL-OP任务、W-VALUE任务、W-MATCH任务以及相关性判断模块的损失函数;对S-NUM任务、W-NUM-OP任务、S-COL任务、W-COL任务、S-COL-AGG任务、W-COL-OP任务、W-VALUE任务、W-MATCH任务的八个损失函数以及相关性判断模块的损失函数进行融合,得到损失函数。一种基于相关性判断的SQL解析装置,所述装置包括:输入模块,用于将自然文本样本输入SQL解析模型;所述SQL解析模型包括:编码模块、相关性判断模块和SQL解析模块;编码模块,用于根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列和自然语言问题序列;其中,所述字段序列编码和所述自然语言问题序列编码串联构成整体编码信息;所述自然语言问题序列编码中的一个自然语言问题编码对应一个字段序列编码的字段编码;所述字段编码对应一个输入序列编码;相关性判断模块,用于将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量;将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息;将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题;SQL解析模块,用于将所述预本文档来自技高网...

【技术保护点】
1.一种基于相关性判断的SQL解析方法,其特征在于,所述方法包括:/n将自然文本样本输入SQL解析模型;所述SQL解析模型包括:编码模块、相关性判断模块和SQL解析模块;/n根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列和自然语言问题序列;其中,所述字段序列编码和所述自然语言问题序列编码串联构成整体编码信息;所述自然语言问题序列编码中的一个自然语言问题编码对应一个字段序列编码的字段编码;所述字段编码对应一个输入序列编码;/n将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量;/n将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息;/n将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题;/n将所述预测自然语言问题和所述整体编码信息输入所述SQL解析模块,解析得到预测SQL语句;/n根据预先构建的损失函数对所述SQL解析模型进行训练,得到训练好的SQL解析模型;/n将待解析自然文本输入训练好的SQL解析模型,得到对应的SQL语句。/n...

【技术特征摘要】
1.一种基于相关性判断的SQL解析方法,其特征在于,所述方法包括:
将自然文本样本输入SQL解析模型;所述SQL解析模型包括:编码模块、相关性判断模块和SQL解析模块;
根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列和自然语言问题序列;其中,所述字段序列编码和所述自然语言问题序列编码串联构成整体编码信息;所述自然语言问题序列编码中的一个自然语言问题编码对应一个字段序列编码的字段编码;所述字段编码对应一个输入序列编码;
将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量;
将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息;
将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题;
将所述预测自然语言问题和所述整体编码信息输入所述SQL解析模块,解析得到预测SQL语句;
根据预先构建的损失函数对所述SQL解析模型进行训练,得到训练好的SQL解析模型;
将待解析自然文本输入训练好的SQL解析模型,得到对应的SQL语句。


2.根据权利要求1所述的方法,其特征在于,根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列编码和自然语言问题序列编码,包括:
获取自然文本样本的初始序列为:
[CLS],q1,q2,...,qL,[SEP],c11,c12,...,[SEP],c21,c22,...,[SEP],...,[SEP]
其中,[CLS]表示初始标记,[SEP]表示间隔符,q1,q2,...,qL是自然语言问题序列,ct1,ct2,...是第t个字段的输入序列,L表示自然语言问题的长度;qt表示自然语言问题序列中的第t个token;
根据预训练的所述编码模块对所述初始序列进行解析,得到字段序列编码和自然语言问题序列编码为:
h[CLS],hq1,hq2,...,hqL,h[SEP],hc11,hc12,...,h[SEP],hc21,hc22,...,h[SEP],...,h[SEP]
其中,h[CLS]表示整体编码信息,h[SEP]表示[SEP]的编码,hqt表示qt的编码,hct1,hct2,...表示ct1,ct2,...的编码。


3.根据权利要求2所述的方法,其特征在于,将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量,包括:
将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量为:
sij=dot(Uh[CLS],Vhcij)






其中,U和V是可学习参数,U∈Rd×d,V∈Rd×d。dot表示点乘运算,hcij表示第i个字段的第j个token的编码,sij表示第i个字段的第j个token的编码与输入序列的整体编码信息h[CLS]的相似度,aij表示经过归一化处理后的注意力权重,n和m分别表示输入序列编码的数量和字段序列编码的长度,hc是注意力加权向量。


4.根据权利要求3所述的方法,其特征在于,将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息,包括:
将所述注意力加权向量和所述...

【专利技术属性】
技术研发人员:谭真张啸宇赵翔王俞涵黄旭倩廖劲智肖卫东唐九阳
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1