查询语句的生成方法、装置、设备、存储介质及程序产品与流程

摘要: 本技术涉及互联网,尤其涉及一种查询语句的生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品。背景技术:1、在查询语句的生成过程中,随着数据规模的增长,...
查询语句的生成方法、装置、设备、存储介质及程序产品与流程

本技术涉及互联网,尤其涉及一种查询语句的生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品。

背景技术:

1、在查询语句的生成过程中,随着数据规模的增长,某些数据库表可能包含成百上千个字段,形成“大宽表”,相关技术在基于这种数据表生成查询语句时,查询语句的生成效率以及所生成的查询语句的准确性均较低。

技术实现思路

1、本技术实施例提供一种查询语句的生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提高生成查询语句时的效率和准确性。

2、本技术实施例的技术方案是这样实现的:

3、本技术实施例提供一种查询语句的生成方法,包括:

4、针对数据库中包括的至少一个数据表,确定各所述数据表的表级元数据以及各所述数据表的多个字段级元数据;

5、针对各所述数据表,将所述多个字段级元数据划分为至少一个数据块,并将所述表级元数据与各所述数据块分别进行融合,得到所述数据表的至少一个融合数据块;

6、从各所述数据表的融合数据块中,选择与查询文本匹配的第一融合数据块;

7、基于所述第一融合数据块及所述查询文本,生成查询语句,所述查询语句,用于在所述数据库中查询与所述查询文本相对应的内容。

8、本技术实施例提供一种查询语句的生成装置,包括:

9、确定模块,用于针对数据库中包括的至少一个数据表,确定各所述数据表的表级元数据以及各所述数据表的多个字段级元数据;

10、划分模块,用于针对各所述数据表,将所述多个字段级元数据划分为至少一个数据块,并将所述表级元数据与各所述数据块分别进行融合,得到所述数据表的至少一个融合数据块;

11、选择模块,用于从各所述数据表的融合数据块中,选择与查询文本匹配的第一融合数据块;

12、生成模块,用于基于所述第一融合数据块及所述查询文本,生成查询语句,所述查询语句,用于在所述数据库中查询与所述查询文本相对应的内容。

13、在上述方案中,所述确定模块,还用于获取所述数据表的表模式对应的结构化语句,所述结构化语句用于创建所述数据库中的各个所述数据表;对所述结构化语句进行解析,得到各所述数据表的表级元数据以及各所述数据表的多个字段级元数据。

14、在上述方案中,所述确定模块,还用于对所述结构化语句进行分解,得到所述结构化语句包括的词法单元;基于所述词法单元构建抽象语法树,并基于所述抽象语法树的语义信息,对所述抽象语法树进行验证;当验证结果表征所述抽象语法树通过验证时,从所述抽象语法树中提取得到各所述数据表的表级元数据以及各所述数据表的多个字段级元数据。

15、在上述方案中,所述划分模块,还用于获取所述多个字段级元数据的数据大小,并基于所述数据大小,将所述多个字段级元数据划分为至少一个数据块;其中,各所述数据块的数据大小小于或等于目标数据大小。

16、在上述方案中,所述划分模块,还用于针对各所述数据块,将所述数据块中的多个字段级元数据进行拼接,得到拼接数据;将所述表级元数据分别与各所述拼接数据进行融合,得到至少一个融合数据块。

17、在上述方案中,所述选择模块,还用于针对各所述融合数据块,将所述融合数据块与所述查询文本进行匹配,得到所述融合数据块与所述查询文本的相似度;基于所述相似度,从各所述数据表的融合数据块中,选取相似度达到相似度阈值的融合数据块,作为与所述查询文本匹配的第一融合数据块。

18、在上述方案中,所述选择模块,还用于对所述融合数据块进行编码,得到所述融合数据块的第一向量,并对所述查询文本进行编码,得到所述查询文本的第二向量;对所述第一向量以及所述第二向量进行匹配,得到所述融合数据块与所述查询文本的相似度。

19、在上述方案中,所述装置还包括融合模块,所述融合模块,用于当所述第一融合数据块的数量为多个时,基于各所述第一融合数据块归属的所述数据表,对多个第一融合数据块进行分组,得到至少一个数据块组,不同所述数据块组对应不同所述数据表;针对每一个所述数据块组,当所述数据块组中的所述第一融合数据块的数量为多个时,对所述数据块组中的多个所述第一融合数据块进行融合,得到第二融合数据块;所述生成模块,还用于当所述至少一个数据块组包括第一数据块组时,基于所述第二融合数据块以及所述查询文本,生成查询语句;当所述至少一个数据块组包括第二数据块组时,基于所述第一融合数据块以及所述查询文本,生成查询语句;当所述至少一个数据块组包括所述第一数据块组以及所述第二数据块组时,基于所述第二融合数据块、所述第一融合数据块以及所述查询文本,生成查询语句;其中,所述第一数据块组为,存在对应的第二融合数据块的数据块组;所述第二数据块组为,不存在对应的第二融合数据块的数据块组。

20、在上述方案中,所述生成模块,还用于获取训练完成的语句生成模型;通过所述语句生成模型的特征提取层,对所述第一融合数据块进行特征提取,得到所述第一融合数据块的数据块特征,并对所述查询文本进行特征提取,得到所述查询文本的文本特征;通过所述语句生成模型的输出层,基于所述第一融合数据块的数据块特征以及所述查询文本的文本特征,生成所述查询语句。

21、在上述方案中,所述生成模块,还用于对所述查询文本进行语义分析,得到所述查询文本的语义结果,并基于所述语义结果,确定所述查询文本对应的查询语句的语句类型;基于所述语句类型,构建所述查询文本对应的查询语句的语句结构;确定所述第一融合数据块中的目标表级元数据以及至少一个目标字段级元数据,并基于所述语义结果,从所述至少一个目标字段级元数据中,选取与所述语义结果相关联的目标字段级元数据;基于所述目标表级元数据、以及选取的所述目标字段级元数据,对所述语句结构进行填充,得到所述查询语句。

22、在上述方案中,所述装置还包括检测模块,所述检测模块,用于对所述查询语句的语法进行检测,得到用于指示所述查询语句的语法是否正确的检测结果;当所述检测结果指示所述查询语句的语法正确时,执行所述查询语句,得到与所述查询文本相对应的内容。

23、在上述方案中,所述装置还包括标注模块,所述标注模块,用于针对各所述数据表,执行以下处理,得到所述数据表对应的至少一个标签:对所述数据表中每一个所述字段级元数据进行语义分析,得到所述字段级元数据的语义结果;基于各所述语义结果,对多个所述字段级元数据进行聚类,得到至少一个簇,并针对每一个所述簇,基于所述簇中的所述字段级元数据对应的语义结果,构建所述簇的标签;将至少一个所述簇的标签,确定为所述数据表对应的所述至少一个标签;所述划分模块,还用于将所述表级元数据、所述至少一个标签与各所述数据块分别进行融合,得到所述数据表的至少一个融合数据块。

24、在上述方案中,所述划分模块,还用于将所述表级元数据与各所述数据块分别进行融合,得到所述数据表的至少一个中间融合数据块;基于所述至少一个标签,对各所述中间融合数据块进行标注,得到所述至少一个融合数据块;针对各所述融合数据块,将所述融合数据块的每一个所述标签分别与所述查询文本进行匹配,得到至少一个匹配结果;基于所述至少一个匹配结果,从所述至少一个融合数据块中,选择第三融合数据块;其中,所述第三融合数据块为,对应的至少一个匹配结果中包括目标匹配结果的融合数据块,所述目标匹配结果为,用于指示相应所述标签与所述查询文本相匹配的匹配结果;所述选择模块,还用于从各所述数据表的所述第三融合数据块中,选择与查询文本匹配的第一融合数据块。

25、本技术实施例提供一种电子设备,包括:

26、存储器,用于存储计算机可执行指令或计算机程序;

27、处理器,用于执行所述存储器中存储的计算机可执行指令或计算机程序时,实现本技术实施例提供的查询语句的生成方法。

28、本技术实施例提供一种计算机可读存储介质,存储有计算机可执行指令或计算机程序,用于引起处理器执行时,实现本技术实施例提供的查询语句的生成方法。

29、本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机可执行指令或计算机程序,该计算机可执行指令或计算机程序存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令或计算机程序,处理器执行该计算机可执行指令或计算机程序,使得该电子设备执行本技术实施例提供的查询语句的生成方法。

30、本技术实施例具有以下有益效果:

31、确定数据库中包括的各数据表的表级元数据以及各数据表的多个字段级元数据,然后针对各数据表,将多个字段级元数据划分为至少一个数据块,并将表级元数据与各数据块分别进行融合,得到数据表的至少一个融合数据块,接着,从各数据表的融合数据块中,选择与查询文本匹配的第一融合数据块,从而基于第一融合数据块及查询文本,生成查询语句;如此,利用表模式的结构特点,针对各数据表确定将表格级元数据与字段级元数据,从而在将多个字段级元数据划分为至少一个数据块之后,再将表格级元数据与相对应的字段级元数据进行融合,这样,相较于对整个数据表进行处理的方案,通过对融合数据块进行处理,提高了处理速度,从而提高了查询语句的生成效率;同时,将每一个字段的字段级元数据作为一个整体进行划分,保证了字段的语义连贯性,从而保证了划分结果也即数据块的语义结构的完整性,而且每一个数据块都关联有对应的表格级元数据,形成语义完整的处理单元也即融合数据块,进一步提高了融合数据块的语义结构的完整性,从而在从融合数据块中选择与查询文本匹配的第一融合数据块时,能够提高所选择的第一融合数据块的准确性,进行再后续基于第一融合数据块及查询文本,生成查询语句时,也能够提高所生成的查询语句的准确性。