有效
基于相关性判断的SQL解析方法、装置和计算机设备
谭真、张啸宇、赵翔、王俞涵、黄旭倩、廖劲智、肖卫东、唐九阳
中国人民解放军国防科技大学
谭
谭真 专利 88
中国人民解放军国防科技大学自然语言处理知识系统数据存储检索
张
张啸宇 专利 5
中国人民解放军国防科技大学自然语言处理物理仪器数据存储检索
赵
赵翔 专利 194
浙江大学知识系统自然语言处理数据存储检索
王
王俞涵 专利 13
中国人民解放军国防科技大学计算技术物理仪器数据存储检索
黄
黄旭倩 专利 8
中国人民解放军国防科技大学自然语言处理数据存储检索电子数据处理
廖
廖劲智 专利 16
中国人民解放军国防科学技术大学自然语言处理数据存储检索计算技术
肖
肖卫东 专利 82
中国人民解放军国防科技大学自然语言处理数据存储检索计算模型系统
唐
唐九阳 专利 61
中国人民解放军国防科技大学知识系统自然语言处理数据存储检索
摘要
本申请涉及一种基于相关性判断的SQL解析方法、装置和计算机设备。通过对自然语言进行编码,得到自然语言问题序列编码和字段序列编码,然后通过注意力机制,得到自然语言问题与字段序列的交互信息,从而通过交互信息,可以预测自然语言文本的自然语言问题,从而可以判断是否是数据库相关的问题,以上,就构建了字段序列与数据库的关联,在判断自然语言问题之后,可以采用模板匹配的方式,解析SQL语句,从而实现SQL解析,上述方法中,无需对样本进行标注,减少标注成本,另外,通过建立数据库与语义的关联,可以提高SQL解析的效率。
1.一种基于相关性判断的SQL解析方法,其特征在于,所述方法包括:将自然文本样本输入SQL解析模型;所述SQL解析模型包括:编码模块、相关性判断模块和SQL解析模块;根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列和自然语言问题序列;其中,所述字段序列编码和所述自然语言问题序列编码串联构成整体编码信息;所述自然语言问题序列编码中的一个自然语言问题编码对应一个字段序列编码的字段编码;所述字段编码对应一个输入序列编码;将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量;将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息;将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题;将所述预测自然语言问题和所述整体编码信息输入所述SQL解析模块,解析得到预测SQL语句;根据预先构建的损失函数对所述SQL解析模型进行训练,得到训练好的SQL解析模型;将待解析自然文本输入训练好的SQL解析模型,得到对应的SQL语句。
2.根据权利要求1所述的方法,其特征在于,根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列编码和自然语言问题序列编码,包括:获取自然文本样本的初始序列为:[CLS],q 1 ,q 2 ,...,q L ,[SEP],c 11 ,c 12 ,...,[SEP],c 21 ,c 22 ,...,[SEP],...,[SEP]其中,[CLS]表示初始标记,[SEP]表示间隔符,q 1 ,q 2 ,...,q L 是自然语言问题序列,c t1 ,c t2 ,...是第t个字段的输入序列,L表示自然语言问题的长度;q t 表示自然语言问题序列中的第t个token;根据预训练的所述编码模块对所述初始序列进行解析,得到字段序列编码和自然语言问题序列编码为:h [CLS] ,h q1 ,h q2 ,...,h qL ,h [SEP] ,h c11 ,h c12 ,...,h [SEP] ,h c21 ,h c22 ,...,h [SEP] ,...,h [SEP]其中,h [CLS] 表示整体编码信息,h [SEP] 表示[SEP]的编码,h qt 表示q t 的编码,h ct1 ,h ct2 ,...表示c t1 ,c t2 ,...的编码。
3.根据权利要求2所述的方法,其特征在于,将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量,包括:将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量为:s ij =dot(Uh [CLS] ,Vh cij )其中,U和V是可学习参数,U∈R d×d ,V∈R d×d 。dot表示点乘运算,h cij 表示第i个字段的第j个token的编码,s ij 表示第i个字段的第j个token的编码与输入序列的整体编码信息h [CLS] 的相似度,a ij 表示经过归一化处理后的注意力权重,n和m分别表示输入序列编码的数量和字段序列编码的长度,h c 是注意力加权向量。
4.根据权利要求3所述的方法,其特征在于,将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息,包括:将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息:h s =[h [CLS] ;h c ]其中,h s 表示交互信息;将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题,包括:将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题:p=sigmoid(Wh s )其中,W为可学习参数,W∈R 1×d ,p为相关性概率,p越大则表明自然语言问题与数据库的相关性越高。
5.根据权利要求1至4任一项所述的方法,其特征在于,将所述预测自然语言问题和所述整体编码信息输入所述SQL解析模块,解析得到预测SQL语句,包括:根据所述预测自然语言问题,确定预先设置在所述SQL解析模块中的SQL预定义模板;将所述交互信息或所述整体编码信息输入SQL预定义模板,得到预测SQL语句。
6.根据权利要求5所述的方法,其特征在于,所述SQL解析模块包括:操作判断模块、抽取模块、数量相关模块以及字段选择模块;所述数量相关模块包括:S-NUM任务和W-NUM-OP任务;所述字段选择模块包括:S-COL任务和W-COL任务;所述操作判断模块包括:S-COL-AGG任务和W-COL-OP任务;所述字段选择模块包括:W-VALUE任务和W-MATCH任务。
7.根据权利要求6所述的方法,其特征在于,构建损失函数的步骤包括:获取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任务的八个损失函数以及相关性判断模块的损失函数进行融合,得到损失函数。
8.一种基于相关性判断的SQL解析装置,其特征在于,所述装置包括:输入模块,用于将自然文本样本输入SQL解析模型;所述SQL解析模型包括:编码模块、相关性判断模块和SQL解析模块;编码模块,用于根据预训练的所述编码模块对所述自然文本样本进行解析,得到字段序列和自然语言问题序列;其中,所述字段序列编码和所述自然语言问题序列编码串联构成整体编码信息;所述自然语言问题序列编码中的一个自然语言问题编码对应一个字段序列编码的字段编码;所述字段编码对应一个输入序列编码;相关性判断模块,用于将所述整体编码信息输入所述相关性判断模块,根据所述整体编码信息和所述输入序列编码,确定所述整体编码信息中各个输入序列编码的注意力权重,根据所述注意力权重和所述输入序列编码,得到所述整体编码信息对应的注意力加权向量;将所述注意力加权向量和所述整体编码信息进行拼接,得到所述字段序列编码和所述自然语言问题序列编码的交互信息;将所述交互信息输入相关性判断模块的全连接层,得到所述自然文本样本对应的预测自然语言问题;SQL解析模块,用于将所述预测自然语言问题和所述整体编码信息输入所述SQL解析模块,解析得到预测SQL语句;根据预先构建的损失函数对所述SQL解析模型进行训练,得到训练好的SQL解析模型;将待解析自然文本输入训练好的SQL解析模型,得到对应的SQL语句。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
暂无引用专利



