【技术实现步骤摘要】
SQL语句生成方法、装置、电子设备和存储介质
本申请涉及自然语言处理
,尤其涉及一种SQL语句生成方法、装置、电子设备以及一种计算机可读存储介质。
技术介绍
在日常的生活和工作中,人们已经习惯使用自然语言和计算机交互来解决问题。如人们会通过自然语音交互的方式使用智能助手查看天气、邮件、电话等,同时人们也会在搜索引擎中用自然语言输入查询词,希望得到与查询词相匹配的答案。在多数场景中,用户输入的查询词可以通过搜索引擎的传统方法解决,然而在一些特殊场景中(如知识库搜索、智能客服、结构化问答等)数据是以结构化的形式存储的,尤其是大量的企业数据库,数据存储在关系型数据库的表格中,需要通过规范化的SQL语句执行查询操作。在这些场景下需要将用户的自然语言输入转化为机器可以理解并执行的规范语义SQL语句,这种表示可以在某个环境中被执行并返回结果。由于自然语言的表述方式是灵活多变的,如何将用户输入的查询词准确转化为规范化意义表示的方法是至关重要。
技术实现思路
本申请目的旨在至少在一定程度上解决上述的技术问题之一。为 ...
【技术保护点】
1.一种SQL语句生成方法,其特征在于,包括:/n获取待处理的自然语句;/n对所述自然语句进行分词处理以得到多个词片段;/n依据数据库的结构化信息,将所述多个词片段进行成分识别,得到所述多个词片段所对应的多个成分;/n基于自底向上的文法分析,根据预先设定的文法和所述多个成分,生成所述自然语句对应的SQL语句。/n
【技术特征摘要】
1.一种SQL语句生成方法,其特征在于,包括:
获取待处理的自然语句;
对所述自然语句进行分词处理以得到多个词片段;
依据数据库的结构化信息,将所述多个词片段进行成分识别,得到所述多个词片段所对应的多个成分;
基于自底向上的文法分析,根据预先设定的文法和所述多个成分,生成所述自然语句对应的SQL语句。
2.根据权利要求1所述的SQL语句生成方法,其特征在于,所述基于自底向上的文法分析,根据预先设定的文法和所述多个成分,生成所述自然语句对应的SQL语句,包括:
根据预先设定的文法,将所述多个成分分别转换为对应的变元符号;
基于所述自底向上的文法分析,利用所述文法对所述多个成分所对应的多个变元符号进行文法组合,以生成二维矩阵;
从所述二维矩阵中找出代表所述自然语句的目标变元符号,并根据代表所述自然语句的目标变元符号从所述二维矩阵中确定出所述目标变元符号的生成路径;
根据所述生成路径中各矩阵元素所对应的变元符号,生成代表SQL语句的SQL符号;
根据所述SQL符号和预先设定的变元符号含义,生成所述SQL语句。
3.根据权利要求2所述的SQL语句生成方法,其特征在于,基于所述自底向上的文法分析,利用所述文法对所述多个成分所对应的多个变元符号进行文法组合,以生成二维矩阵,包括:
根据所述多个词片段的个数,生成一个空的二维矩阵,其中,所述二维矩阵的行数和列数均为N,所述N为所述词片段的个数;
将所述多个成分所对应的多个变元符号作为所述二维矩阵中第一行对应矩阵元素的内容,填写至所述二维矩阵中的第一行;
基于所述文法,对所述二维矩阵中第一行矩阵元素内容自底向上进行文法分析,得到所述二维矩阵中其他矩阵元素P(i,j)的内容;其中,1<i≤N,1≤j≤N,所述P(i,j)对应到句子中跨度范围内可能的非终结符号的集合;其中,i表示跨度包含词片段的数目,j表示跨度左侧第一个词片段的位置。
4.根据权利要求3所述的SQL语句生成方法,其特征在于,还包括:
如果所述自然语句中存在不符合任何成分的词片段,则在生成所述其他矩阵元素P(i,j)时,判断欲用以生成所述其他矩阵元素P(i,j)的矩阵元素内容是否满足所述文法;
若是,则将所述欲用以生成所述其他矩阵元素P(i,j)的矩阵元素所组成的集合内容确定为所述其他矩阵元素P(i,j)的内容;
若否,则允许跳过不符合任何文法的矩阵元素,并通过自底向上从所述二维矩阵中找出所组成的集合内容存在满足条件的文法的两个矩阵元素,并将所述两个矩阵元素所组成的集合内容确定为所述其他矩阵元素P(i,j)的内容,以此类推,直至跳过词片段的数量超过允许最大跳数或矩阵元素位置超过矩阵边界。
5.根据权利要求3所述的SQL语句生成方法,其特征在于,还包括:
当所述自然语句中所包含的多个成分之间存在字符交叉现象时,将成分切分为最小粒度的词片段;
其中,将所述多个成分所对应的多个变元符号作为所述二维矩阵中第一行对应矩阵元素的内容,填写至所述二维矩阵中的第一行,包括:
判断所述多个成分中是否存在包含多个最小粒度的词片段的第一成分;
若是,则将所述第一成分对应的变元符号填写到目标位置,其中,所述目标位置的横坐标值为所述多个最小粒度的词片段在所述二维矩阵的坐标中的最大纵坐标值,所述目标位置的纵坐标值为所述多个最小粒度的词片段中位于第一位置的词片段的横坐标值;
将所述多个成分中的其他成分所对应的变元符号填写到所述第一行的对应位置。
6.根据权利要求3所述的SQL语句生成方法,其特征在于,在根据所述SQL符号和预先设定的变元符号含义,生成所述SQL语句的过程中,所述方法还包括:
从所述SQL符号中,剪除不符合语法规范的组合所生成的变元符号。
7.根据权利要求1至6中任一项所述的SQL语句生成方法,其特征在于,在基于自底向上的文法分析,根据预先设定的文法和所述多个成分,生成所述自然语句对应的SQL语句之前,所述方法还包括:
依据所述数据库的结构化信息,判断所述自然语句是否有缺少成分信息的情况;
若是,则确定出被缺少的成分,并将所述被缺少的成分补充至所述多个成分中。
8.一种SQL语句生成装置,其特征在于,包括:
自然语句获取模块,用于获取待处理的自然语句;
分词处理模块,用于对所述自然语句进行分词处理以得到多个词片段;
成分识别模块,用于依据数据库的结构化...
【专利技术属性】
技术研发人员:张帅,张傲,王丽杰,孙珂,李婷婷,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。