数据查询方法、装置、电子设备及存储介质与流程

文档序号:20917922发布日期:2020-05-29 13:46阅读:153来源:国知局
数据查询方法、装置、电子设备及存储介质与流程

本发明涉及人工智能技术领域,尤其涉及一种数据查询方法、装置、电子设备及存储介质。



背景技术:

在数据库查询技术中,数据库用户通过构建固定模式的查询语句,在数据库中进行数据查询,以得到对应查询语句的数据。然而,由于数据库查询策略的设定以及查询语句的固定化,对于不熟悉数据库的用户而言,无法清楚的短简该数据库的查询策略以及查询语句,使得数据库的查询具有一定的难度,需要进行一定程度的培训,这无疑加大了数据库的使用难度。因此,现有的数据库存在使用难度较高的问题。



技术实现要素:

本发明实施例提供一种数据查询识别方法,能够降低数据库的使用难度。

第一方面,本发明实施例提供一种数据查询方法,包括:

获取自然语言的文本信息;

将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,所述槽值对包含与目标数据库对应的查询子句以及查询内容;

基于的所述预测槽值对,构建目标数据库的查询命令;

根据所述查询命令查询在所述目标数据库中进行数据查询,并输出查询结果。

可选的,所述槽值对包括槽名与槽值,所述槽名与目标数据库中查询子句具有第一映射关系,所述槽值与目标数据库中查询内容具有第二映射关系,所述基于的所述预测槽值对,构建目标数据库的查询命令,包括:

根据所述槽名,通过所述第一映射关系映射得到目标数据表的查询子句;以及

根据所述槽值,通过所述第二映射关系映射得到目标数据表的查询内容;

根据所述查询子句与所述查询内容,构建目标数据库的查询命令。

可选的,所述目标数据库中包括数据表,所述数据表包括数据属性,所述将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,包括:

将所述文本信息进行预处理,以得到预设词长的查询文本;

将所述预设词长的查询文本以及所述数据属性通过预先训练好的编码网络进行编码,得到查询文本的词向量;

将所述查询文本的词向量依次输入预先训练好的长短时记忆网络获取具有上下文信息的特征向量;

将所述特征向量输入预先训练好的注意力机制,得到注意力向量;

将所述注意力向量输入到预先训练好的全连接层,对所述注意力向量进行分类,得到预设数据个预测槽值对。

可选的,所述目标数据库中包括数据表,所述数据表包括数据属性,所述预测网络的训练,包括:

获取预设词长的语料文本作为训练样本;

将所述训练样本与所述数据属性在编码后进行拼接,并输入到所述预测网络中对所述预测网络进行训练,以使所述预测网络输出与所述训练样本的槽值对标签相同的槽值对。

可选的,所述数据表还包括数据类型,所述获取预设词长的查询文本,包括:

统计数据集中所有语料样本的文本词长,以及统计所述目标数据库中数据类型的分类数量,以及每个数据类型对应的数据属性的属性数量;

根据预设语料样本比例,选取最大查询文本,所述最大查询文本包括最大文本词长,最大分类数量,以及每个表头对应的最大属性数量;

通过所述最大查询文本,对所有语料样本的文本词长及分类数量进行预处理,得到预设词长的查询文本,所述查询文本满足最大查询文本的文本词长及分类数量。

可选的,所述通过所述最大查询文本,对所有语料样本的文本词长及分类数量进行预处理,得到预设词长的查询文本,包括:

判断语料样本中的文本词长是否满足所述最大文本词长;

若所述语料样本中的文本词长不满足所述最大文件词长,则将所述语料样本进行填充,得到预设词长的查询文本。

第二方面,本发明实施例提供一种数据查询装置,包括:

获取模块,用于获取自然语言的文本信息;

预测模块,用于将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,所述槽值对包含与目标数据库对应的查询子句以及查询内容;

构建模块,用于基于的所述预测槽值对,构建目标数据库的查询命令;

查询模块,用于根据所述查询命令查询在所述目标数据库中进行数据查询,并输出查询结果。

第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例提供的数据查询方法中的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现发明实施例提供的数据查询方法中的步骤。

本发明实施例中,获取自然语言的文本信息;将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,所述槽值对包含与目标数据库对应的查询子句以及查询内容;基于的所述预测槽值对,构建目标数据库的查询命令;根据所述查询命令查询在所述目标数据库中进行数据查询,并输出查询结果。通过对自然语言的文本信息进行预测,得到预测槽值进行查询命令的构建,由于预测槽值对应目标数据库的查询子句以及查询内容,使得到数据库的查询可以通过自然语言进行,不必用户清楚知道数据库的查询策略以及查询语句,就可以对数据库进行查询,降低了数据库查询的难度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据查询方法的流程图;

图2是本发明实施例提供的一种数据表的结构示意图;

图3是本发明实施例提供的一种槽值对的结构示意图;

图4是本发明实施例提供的一种字牌编码的示意图;

图5是本发明实施例提供的一种预测网络的训练方法的流程图;

图6是本发明实施例提供的一种预测槽值对与查询命令的关系示意图;

图7是本发明实施例提供的一种数据查询装置的结构示意图;

图8是本发明实施例提供的另一种数据查询装置的结构示意图;

图9是本发明实施例提供的另一种数据查询装置的结构示意图;

图10是本发明实施例提供的另一种数据查询装置的结构示意图;

图11是本发明实施例提供的另一种数据查询装置的结构示意图;

图12是本发明实施例提供的另一种数据查询装置的结构示意图;

图13是本发明实施例提供的一种电子设备的结构示意图;

图14是本发明实施例提供的一种预测网络的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,图1是本发明实施例提供的一种数据查询方法的流程图,如图1所示,包括以下步骤:

101、获取自然语言的文本信息。

其中,上述的自然语言可以是用户语音或用户上传的图像,上述的文本信息指的是将上述自然语言通过自然语言识别算法转换得到的文本信息。比如,通过语音识别算法对用户语音进行识别,以得到用户语音对应的文本信息,通过图像语义识别算法对用户上传的图像进行语义识别,得到用户上传的图像对应的文本信息等。当然,上述的自然语言的文本信息还可以是用户输入的字符文本信息。

102、将文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对。

上述的槽值对包含与目标数据库对应的查询子句以及查询内容,上述的查询子句包括查询目标列、聚合操作、条件逻辑、数据类型、条件类型、数据文本类型,上述的数据类型比如:序号、性别、上身颜色、下身颜色、发型、年龄段等,查询目标列可选内容与条件属性内容一致,上述的聚合操作比如:count(计数)、sum(求和)、max(最大值)、min(最小值)、avg(求平均)等,上述的条件逻辑比如:“or”(或)、“and”(与),上述的条件判断比如:“>”“<”“==”“!=”等。数据文本类型可以是字符串类型的“text”,以及数值类型的“real”。

上述的目标数据库中通过数据库对数据进行存储,如图2所示。其中,数据类型也可以称为表头。

上述的查询内容包括数据类型对应的值、条件类型对应的值、数据文本类型对应的值。比如,在图2中,性别对应的值为1时,性别为男,性别对应的值为2时,性别为女。

上述的槽值对包括槽名与槽值,上述的槽名与目标数据库中查询子句具有第一映射关系,槽值与目标数据库中查询内容具有第二映射关系。

上述的槽名是根据数据库的查询命令进行拆分得到,比如,定义查询目标列为槽名sel,定义查询的聚合操作为槽名agg,定义条件子句数目为槽名where_num,定义条件子句间的关系为槽名where_real,定义条件子句的条件列的个数为槽名where_column_num,定义每个条件子句中条件列为槽名where_sel,定义条件判断为槽名where_op,定义条件值在查询文本中起始位置where_value_start,定位条件值在查询文本中终止位置where_value_end。

上述的槽值可以理解为对应槽名的值,比如槽名为where_column_num的条件子句数目为3,则说明自然语言的文本信息中,条件子句数目为3。

可选的,所述目标数据库中包括数据表,所述数据表包括数据属性(条件值),所述将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,包括:将所述文本信息进行预处理,以得到预设词长的查询文本;将所述预设词长的查询文本以及所述数据属性通过预先训练好的编码网络进行编码,得到查询文本的词向量;将所述查询文本的词向量依次输入预先训练好的长短时记忆网络获取具有上下文信息的特征向量;将所述特征向量输入预先训练好的注意力机制,得到注意力向量;将所述注意力向量输入到预先训练好的全连接层,对所述注意力向量进行分类,得到预设数据个预测槽值对,如图14所示。

103、基于的预测槽值对,构建目标数据库的查询命令。

在步骤102中,槽名与槽值分别对应目标数据库中查询子句与查询内容,使得槽名与槽值可以构建目标数据库的查询命令,比如,以自然语言的文本信息为“请帮我找一个穿红色外套长头发的女人”为例,如图2所示,同时请结合图3、图4进行理解,该语句中,条件子句为外套(上身颜色)、长头发(发型)、女(性别),条件值为红、长、女,通过预测网络进行预测后,输出的槽值对为:槽名where_column_num,槽值3,代表有条件子句的条件列的个数为3;槽名where_sel,槽值2,代表上身颜色,槽名where_op,槽值2,代表“=”,槽名where_value_start,槽值为8,则代表该条件值从语句中的第8个词开始,该位置的词为“红”,槽名where_value_end,槽值为8,则代表该条件值在语句中的第8个词结束,对应的查询命令为“where_sel”“where_op”“where_value_start”-“where_value_end”,即“上身颜色”=“红”。同理,可以计算得到其他条件子句的查询命令,通过槽名为where_real的条件子句间的关系,将各个条件子句对应的查询命令连接组合,得到最终的查询命令。

104、根据查询命令查询在目标数据库中进行数据查询,并输出查询结果。

上述的查询命令为步骤103中得到的查询命令。

在本发明实施例中,获取自然语言的文本信息;将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,所述槽值对包含与目标数据库对应的查询子句以及查询内容;基于的所述预测槽值对,构建目标数据库的查询命令;根据所述查询命令查询在所述目标数据库中进行数据查询,并输出查询结果。通过对自然语言的文本信息进行预测,得到预测槽值进行查询命令的构建,由于预测槽值对应目标数据库的查询子句以及查询内容,使得到数据库的查询可以通过自然语言进行,不必用户清楚知道数据库的查询策略以及查询语句,就可以对数据库进行查询。

需要说明的是,本发明实施例提供的数据查询方法可以应用于需要对数据进行查询的手机、计算机、服务器等设备。

请参照图5,图5是本发明实施例提供的一种预测网络的训练方法的流程图,如图5所示,所述训练方法包括:

501、获取预设词长的语料文本作为训练样本;

502、将所述训练样本与所述数据属性在编码后进行拼接,并输入到所述预测网络中对所述预测网络进行训练,以使所述预测网络输出与所述训练样本的槽值对标签相同的槽值对。

在上述的步骤501中,上述语料文本可以是自然语言语料转换得到的语料文本。

可选的,上述预设词长的语料文本的获取可以是统计数据集中所有语料样本的文本词长,以及统计所述目标数据库中数据类型的分类数量,以及每个数据类型对应的数据属性的属性数量;根据预设语料样本比例,选取最大查询文本,所述最大查询文本包括最大文本词长,最大分类数量,以及每个表头对应的最大属性数量;通过所述最大查询文本,对所有语料样本的文本词长及分类数量进行预处理,得到预设词长的查询文本,所述查询文本满足最大查询文本的文本词长及分类数量。

上述的预设语料样本比例,比如,可以是符合条件的语料占比99%,比如,100个语料中,有99个语料的词长为21及21以下,1个语料的词长为22,则选取词长21为最大查询文本的最大文本词。上述的最大分类数量为数据表的最大分类数量。

训练样本的标签为需要预测的槽值对,上述槽值对如图6所示。

上述通过所述最大查询文本,对所有语料样本的文本词长及分类数量进行预处理,得到预设词长的查询文本可以包括:判断语料样本中的文本词长是否满足所述最大文本词长;若所述语料样本中的文本词长不满足所述最大文件词长,则将所述语料样本进行填充,得到预设词长的查询文本。上述的填充可以是填充0值,如图4所示。图4中,每个字符都对应一个字牌编码,比如,“序”对应的字牌编码为“2415”,“号”对应的字牌编码为“1384”。

上述的步骤502中,训练预测网络中的长短时记忆网络、注意力机制、以及全连接层网络。

通过对预测网络进行训练,使得训练好的预测网络能够准确地需要预测槽值。

需要说明的是,本发明实施例提供的数据查询方法可以应用于需要进行数据查询的手机、计算机、服务器等设备。

请参见图7,图7是本发明实施例提供的一种数据查询装置的结构示意图,如图7所示,包括:

获取模块701,用于获取自然语言的文本信息;

预测模块702,用于将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,所述槽值对包含与目标数据库对应的查询子句以及查询内容;

构建模块703,用于基于的所述预测槽值对,构建目标数据库的查询命令;

查询模块704,用于根据所述查询命令查询在所述目标数据库中进行数据查询,并输出查询结果。

可选的,如图8所示,所述槽值对包括槽名与槽值,所述槽名与目标数据库中查询子句具有第一映射关系,所述槽值与目标数据库中查询内容具有第二映射关系,所述构建模块703,包括:

第一处理子模块7031,用于根据所述槽名,通过所述第一映射关系映射得到目标数据表的查询子句;以及

第二处理子模块7032,用于根据所述槽值,通过所述第二映射关系映射得到目标数据表的查询内容;

构建子模块7033,用于根据所述查询子句与所述查询内容,构建目标数据库的查询命令。

可选的,如图9所示,所述目标数据库中包括数据表,所述数据表包括数据属性,所述预测模块702,包括:

第一预处理子模块7021,用于将所述文本信息进行预处理,以得到预设词长的查询文本;

编码子模块7022,用于将所述预设词长的查询文本以及所述数据属性通过预先训练好的编码网络进行编码,得到查询文本的词向量;

第三处理子模块7023,用于将所述查询文本的词向量依次输入预先训练好的长短时记忆网络获取具有上下文信息的特征向量;

第四处理子模块7024,用于将所述特征向量输入预先训练好的注意力机制,得到注意力向量;

第五处理子模块7025,用于将所述注意力向量输入到预先训练好的全连接层,对所述注意力向量进行分类,得到预设数据个预测槽值对。

可选的,如图10所示,所述目标数据库中包括数据表,所述数据表包括数据属性,所述预测网络的训练,包括:

样本获取模块705,用于获取预设词长的语料文本作为训练样本;

训练模块706,用于将所述训练样本与所述数据属性在编码后进行拼接,并输入到所述预测网络中对所述预测网络进行训练,以使所述预测网络输出与所述训练样本的槽值对标签相同的槽值对。

可选的,如图11所示,所述数据表还包括数据类型,所述样本获取模块705,包括:

统计子模块7051,用于统计数据集中所有语料样本的文本词长,以及统计所述目标数据库中数据类型的分类数量,以及每个数据类型对应的数据属性的属性数量;

选取子模块7052,用于根据预设语料样本比例,选取最大查询文本,所述最大查询文本包括最大文本词长,最大分类数量,以及每个表头对应的最大属性数量;

第二预处理子模块7053,用于通过所述最大查询文本,对所有语料样本的文本词长及分类数量进行预处理,得到预设词长的查询文本,所述查询文本满足最大查询文本的文本词长及分类数量。

可选的,如图12所示,所述通第二预处理子模块7053,包括:

判断单元70531,用于判断语料样本中的文本词长是否满足所述最大文本词长;

填充单元70532,用于若所述语料样本中的文本词长不满足所述最大文件词长,则将所述语料样本进行填充,得到预设词长的查询文本。

需要说明的是,本发明实施例提供的数据查询装置可以应用于需要进行进行数据查询的手机、计算机、服务器等设备。

本发明实施例提供的数据查询装置能够实现上述方法实施例中数据查询方法实现的各个过程,且可以达到相同的有益效果。为避免重复,这里不再赘述。

参见图13,图13是本发明实施例提供的一种电子设备的结构示意图,如图13所示,包括:存储器1302、处理器1301及存储在所述存储器1302上并可在所述处理器1301上运行的计算机程序,其中:

处理器1301用于调用存储器1302存储的计算机程序,执行如下步骤:

获取自然语言的文本信息;

将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,所述槽值对包含与目标数据库对应的查询子句以及查询内容;

基于的所述预测槽值对,构建目标数据库的查询命令;

根据所述查询命令查询在所述目标数据库中进行数据查询,并输出查询结果。

可选的,所述槽值对包括槽名与槽值,所述槽名与目标数据库中查询子句具有第一映射关系,处理器1301执行的所述槽值与目标数据库中查询内容具有第二映射关系,所述基于的所述预测槽值对,构建目标数据库的查询命令,包括:

根据所述槽名,通过所述第一映射关系映射得到目标数据表的查询子句;以及

根据所述槽值,通过所述第二映射关系映射得到目标数据表的查询内容;

根据所述查询子句与所述查询内容,构建目标数据库的查询命令。

可选的,所述目标数据库中包括数据表,所述数据表包括数据属性,处理器1301执行的所述将所述文本信息输入到预先训练好的预测网络中进行预测,得到预测槽值对,包括:

将所述文本信息进行预处理,以得到预设词长的查询文本;

将所述预设词长的查询文本以及所述数据属性通过预先训练好的编码网络进行编码,得到查询文本的词向量;

将所述查询文本的词向量依次输入预先训练好的长短时记忆网络获取具有上下文信息的特征向量;

将所述特征向量输入预先训练好的注意力机制,得到注意力向量;

将所述注意力向量输入到预先训练好的全连接层,对所述注意力向量进行分类,得到预设数据个预测槽值对。

可选的,所述目标数据库中包括数据表,所述数据表包括数据属性,处理器1301还执行所述预测网络的训练过程,包括:

获取预设词长的语料文本作为训练样本;

将所述训练样本与所述数据属性在编码后进行拼接,并输入到所述预测网络中对所述预测网络进行训练,以使所述预测网络输出与所述训练样本的槽值对标签相同的槽值对。

可选的,所述数据表还包括数据类型,处理器1301执行的所述获取预设词长的查询文本,包括:

统计数据集中所有语料样本的文本词长,以及统计所述目标数据库中数据类型的分类数量,以及每个数据类型对应的数据属性的属性数量;

根据预设语料样本比例,选取最大查询文本,所述最大查询文本包括最大文本词长,最大分类数量,以及每个表头对应的最大属性数量;

通过所述最大查询文本,对所有语料样本的文本词长及分类数量进行预处理,得到预设词长的查询文本,所述查询文本满足最大查询文本的文本词长及分类数量。

可选的,处理器1301执行的所述通过所述最大查询文本,对所有语料样本的文本词长及分类数量进行预处理,得到预设词长的查询文本,包括:

判断语料样本中的文本词长是否满足所述最大文本词长;

若所述语料样本中的文本词长不满足所述最大文件词长,则将所述语料样本进行填充,得到预设词长的查询文本。

需要说明的是,上述电子设备可以是可以应用于需要进行数据查询的手机、计算机、服务器等设备。

本发明实施例提供的电子设备能够实现上述方法实施例中数据查询方法实现的各个过程,且可以达到相同的有益效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现本发明实施例提供的数据查询方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存取存储器(randomaccessmemory,简称ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1