本申请涉及自然语言处理,具体涉及一种数据库查询语句的生成方法、装置、设备及存储介质。
背景技术:
1、查询关系型数据库需要掌握专业的程序设计语言,导致普通使用者难以与数据库产生良好交互。随着自然语言处理领域的快速发展,根据自然语言查询(natural languagequery,nlq)生成结构化查询语言(structured query language,sql)已经成为语义解析领域的重要研究。大量sql相关数据集和深度学习模型相继出现,sql生成任务也获得了极大的发展。nlq生成sql目前已经有了大量的研究成果,但仍然存在挑战。
2、因为用语习惯的差异,自然语言在描述同一个实体时常常会有多种不同的表达,导致自然语言描述的实体与数据库的标准描述匹配程度不高,使得生成的sql检索效果并不理想。同时,sql生成的所需的列名在自然语言表述中偶尔会被无意识地省略掉,以至于无法生成有效执行的sql。除此之外,现有大多技术集中在单表查询上,而使用场景往往需要联表查询。故此,现有方法生成的sql难以有效执行,也不能满足真实场景的查询需求。
技术实现思路
1、本申请的目的是提供一种数据库查询语句的生成方法及装置、一种电子设备以及一种计算机可读存储介质。
2、本申请第一方面提供一种数据库查询语句的生成方法,包括:
3、利用命名实体识别模型对自然语言查询语句内的命名实体进行识别,得到嵌套型识别结果;其中,所述命名实体识别模型是基于使用嵌套标注规则标注好命名实体的数据集训练得到的;
4、将所述嵌套型识别结果中各个命名实体按照不同嵌套层级进行全组合,得到多个命名实体组合;
5、针对每一命名实体组合,基于数据库和结构化查询语言关键词对其中的各个命名实体进行语义匹配,得到各个命名实体的语义匹配结果及其置信度;
6、对每一命名实体组合中的命名实体的置信度求平均,得到平均置信度最高的命名实体组合;
7、按照数据库结构化查询语言的语法处理所述平均置信度最高的命名实体组合,得到对应所述自然语言查询语句的结构化查询语句。
8、本申请第二方面提供一种数据库查询语句的生成装置,包括:
9、识别模块,用于利用命名实体识别模型对自然语言查询语句内的命名实体进行识别,得到嵌套型识别结果;其中,所述命名实体识别模型是基于使用嵌套标注规则标注好命名实体的数据集训练得到的;
10、全组合模块,用于将所述嵌套型识别结果中各个命名实体按照不同嵌套层级进行全组合,得到多个命名实体组合;
11、语义匹配模块,用于针对每一命名实体组合,基于数据库和结构化查询语言关键词对其中的各个命名实体进行语义匹配,得到各个命名实体的语义匹配结果及其置信度;
12、筛选模块,用于对每一命名实体组合中的命名实体的置信度求平均,得到平均置信度最高的命名实体组合;
13、生成模块,用于按照数据库结构化查询语言的语法处理所述平均置信度最高的命名实体组合,得到对应所述自然语言查询语句的结构化查询语句。
14、本申请第三方面提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行以实现本申请第一方面所述的方法。
15、本申请第四方面提供一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现本申请第一方面所述的方法。
16、相较于现有技术,本申请提供的数据库查询语句的生成方法,利用命名实体识别模型对自然语言查询语句内的命名实体进行识别,得到嵌套型识别结果;其中,所述命名实体识别模型是基于使用嵌套标注规则标注好命名实体的数据集训练得到的;将所述嵌套型识别结果中各个命名实体按照不同嵌套层级进行全组合,得到多个命名实体组合;针对每一命名实体组合,基于数据库和结构化查询语言关键词对其中的各个命名实体进行语义匹配,得到各个命名实体的语义匹配结果及其置信度;对每一命名实体组合中的命名实体的置信度求平均,得到平均置信度最高的命名实体组合;按照数据库结构化查询语言的语法处理所述平均置信度最高的命名实体组合,得到对应所述自然语言查询语句的结构化查询语句。相较于现有技术,本申请通过嵌套型的方式标注自然语言查询语句以提高召回率,能够减少因自然语言描述时的成分缺失导致生成的结构化查询语句不完整的问题,更加适用于真实场景的数据库查询,能够降低非专业人士使用数据库进行大规模数据分析的门槛,减少人力消耗。
1.一种数据库查询语句的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述嵌套型识别结果中各个命名实体按照不同嵌套层级进行全组合,得到多个命名实体组合之前,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述嵌套标注规则如下:
4.根据权利要求3所述的方法,其特征在于,所述针对每一命名实体组合,基于数据库和结构化查询语言关键词对其中的各个命名实体进行语义匹配,包括:
5.根据权利要求3所述的方法,其特征在于,所述按照数据库结构化查询语言的语法处理所述平均置信度最高的命名实体组合,得到对应所述自然语言查询语句的结构化查询语句,包括:
6.根据权利要求5所述的方法,其特征在于,若查询类型为单表查询,则补全方式如下:
7.根据权利要求5所述的方法,其特征在于,若查询类型为联表查询,则补全方式如下:
8.一种数据库查询语句的生成装置,其特征在于,包括:
9.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行以实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1至7中任一项所述的方法。