一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于关系型数据库的数据查询方法、设备、介质及产品与流程

2022-03-05 05:52:17 来源:中国专利 TAG:


1.本发明实施例涉及智能搜索技术领域,尤其涉及一种基于关系型数据库的数据查询方法、设备、介质及产品。


背景技术:

2.随着人工智能的不断发展,搜索技术也取得了不断的发展。基于关系型数据库的搜索被广泛应用。
3.目前在对关系型数据库的数据搜索中,一般要求用户使用结构化查询语言(英文为:structured query language,简称为:sql)进行数据搜索。所以在搜索前,需要提供sql。目前一种提供sql的方式是由用户编写sql。另一种提供sql的方式是为用户提供sql生成界面,用户通过在sql生成界面中拖拽字段,进而生成sql。
4.所以目前提供sql语言的方式需要用户具备较强的sql编写能力并且需要用户熟知需要查询的信息与数据库表格中各字段的对应关系。或者虽然拖拽字段的方式降低了用户使用门槛,但存在表达能力不足,无法在移动端使用的问题。


技术实现要素:

5.本发明实施例提供一种基于关系型数据库的数据查询方法、设备、介质及产品,用以解决需要用户具备较强的sql编写能力并且需要用户熟知需要查询的信息与数据表中各字段的对应关系。或者虽然拖拽字段的方式降低了用户使用门槛,但存在表达能力不足,无法在移动端使用的问题。
6.第一方面,本发明实施例提供一种基于关系型数据库的数据查询方法,包括:
7.接收用户输入的自然语言查询语句;
8.根据预先构建的数据库对应的词典对所述自然语言查询语句进行切词处理,以获得目标切词结果;所述词典中存储有数据库的表格中词语到字段的映射关系;
9.对目标切词结果进行语法分析,获得语法分析结果;
10.根据所述语法分析结果生成所述自然语言查询语句对应的目标语法树;
11.对所述目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql。
12.第二方面,本发明实施例提供一种基于关系型数据库的数据查询装置,包括:
13.接收模块,用于接收用户输入的自然语言查询语句;
14.切词模块,用于根据预先构建的数据库对应的词典对所述自然语言查询语句进行切词处理,以获得目标切词结果;所述词典中存储有数据库的表格中词语到字段的映射关系;
15.分析模块,用于对目标切词结果进行语法分析,获得语法分析结果;
16.生成模块,用于根据所述语法分析结果生成所述自然语言查询语句对应的目标语法树;
17.遍历模块,用于对所述目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql。
18.第三方面,本发明实施例提供一种电子设备,包括:至少一个处理器及存储器;
19.所述存储器存储计算机执行指令;
20.所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的方法。
21.第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法。
22.第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的方法。
23.本发明实施例提供的基于关系型数据库的数据查询方法、装置、设备、存储介质及产品,通过接收用户输入的自然语言查询语句;根据预先构建的数据库对应的词典对所述自然语言查询语句进行切词处理,以获得目标切词结果;所述词典中存储有数据库的表格中词语到字段的映射关系;对目标切词结果进行语法分析,获得语法分析结果;根据所述语法分析结果生成所述自然语言查询语句对应的目标语法树;对所述目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql。由于只需要用户输入自然语言查询语句,就可根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理并进行语法分析后,生成对应的目标语法树,并通过遍历目标语法树就可自动生成sql语言,所以能够有效降低用户使用门槛。也能够在移动端使用,并且能够对搜索数据进行充分地表达。
附图说明
24.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
25.图1是可以实现本发明实施例的基于关系型数据库的数据查询方法的一种网络架构图;
26.图2是本发明一实施例提供的基于关系型数据库的数据查询方法的流程示意图;
27.图3是本发明另一实施例提供的基于关系型数据库的数据查询方法的流程示意图;
28.图4是本发明又一实施例提供的基于关系型数据库的数据查询方法的流程示意图;
29.图5是本发明实施例提供的基于关系型数据库的数据查询方法中语法树的示意图;
30.图6是本发明一实施例提供的基于关系型数据库的数据查询装置的结构示意图;
31.图7是用来实现本发明实施例的基于关系型数据库的数据查询方法的电子设备的框图。
32.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为
本领域技术人员说明本公开的概念。
具体实施方式
33.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
34.为了清楚理解本发明的技术方案,对现有技术的方案进行详细介绍。
35.目前提供sql的方法主要有两种。第一种是由用户编写sql。另一种提供sql的方式是为用户提供sql生成界面,用户通过在sql生成界面中拖拽字段,进而生成sql。
36.具体地,在第一种提供sql的方法中,用户可在自定义的sql界面编写sql。但由于能力的限制,一部分用户只会使用oracle等传统关系型数据库的sql,但由于如hive、spark等关系型数据库的sql语法和oracle存在一定差异,用户的sql可能出现无法运行或者性能不佳的问题。所以第一种提供sql的方法需要用户具备较强的sql编写能力。并且在编写sql时,需要用户熟知需要查询的信息与数据库表格中各字段的对应关系,才能进行sql的编写,使生成sql繁琐,效率较低。
37.在第二种提供sql方法中,为用户提供sql生成界面。在sql生成界面中展示数据库表格中的字段。用户通过在sql生成界面中拖拽字段,后端根据用户拖拉的字段自动生成sql。这种方式虽然降低了用户使用门槛,但存在表达能力不足的问题。并且由于拖拉拽的方式需要较大的工作空间,移动端的空间非常有限,所以无法在移动端使用这种提供sql的方法。
38.所以针对现有技术中的技术问题,发明人通过研究后发现,为了能够降低用户使用门槛,使用户直接输入最习惯的自然语言搜索语句是最低的使用门槛。那么在获取到自然语言搜索语句后,为了能够生成sql,需要预先构建出数据库对应的词典,在词典中存储数据库的表格中词语到字段的映射关系。可采用该词典对自然语言查询语句进行切词处理,以获得目标切词结果。然后将目标切词结果进行语法分析,获得语法分析结果;根据语法分析结果生成自然语言查询语句对应的目标语法树。该目标语法树是能够与sql相互转换的抽象语法树格式,所以通过对目标语法树进行遍历,生成自然语言查询语句对应的目标结构化查询语言sql。由于用户输入的是自然语言搜索语句,所以能够有效降低用户使用门槛。也能够在移动端使用,并且能够对搜索数据进行充分地表达。由于从自然语言搜索语句到生成sql过程无需用户操作,所以能够有效提高sql的生成效率。
39.所以发明人基于上述的创造性发现,提出了本发明实施例的技术方案。下面对本发明实施例提供的基于关系型数据库的数据查询方法的网络结构及应用场景进行介绍。
40.如图1所示,本发明实施例提供的基于关系型数据库的数据查询方法对应的网络架构中包括:电子设备1及多个关系型数据库。如在图1中可包括三个关系型数据库。分别为oracle数据库2,mysql数据库3及hive数据库4。各个关系型数据库可存储在服务器中。电子设备1可访问每个关系型数据库。在电子设备1上具有基于关系型数据库的数据查询方法对应的客户端,或者可通过浏览器搜索到基于关系型数据库的数据查询方法对应网页页面。用户通过客户端或网页页面可输入自然语言查询语句。在电子设备1接收到用户输入的自
然语言查询语句,并点击搜索组件后,根据本发明实施例提供的基于关系型数据库的数据查询方法生成自然语言查询语句对应的目标结构化查询语言sql。采用sql在目标表格标识对应的目标数据库中进行数据的搜索。示例性的,如在图1中,目标数据库为hive数据库4。从hive数据库4获得数据搜索结果,并还可采用预先配置的图表形式进行显示。
41.下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
42.实施例一
43.图2是本发明一实施例提供的基于关系型数据库的数据查询方法的流程示意图,如图2所示,本发明实施例提供的基于关系型数据库的数据查询方法的执行主体为基于关系型数据库的数据查询装置。该基于关系型数据库的数据查询装置位于电子设备中。则本实施例提供的基于关系型数据库的数据查询方法包括以下步骤:
44.步骤201,接收用户输入的自然语言查询语句。
45.本实施例中,电子设备中可装载有本实施例提供的基于关系型数据库的数据查询方法的客户端或者浏览器。通过浏览器可访问到本实施例提供的基于关系型数据库的数据查询方法对应网页页面。用户打开客户端或网页页面。并在客户端或网页页面的搜索框中输入自然语言查询语句。通过点击确认组件后,电子设备接收用户输入的自然语言查询语句。
46.其中,自然语言查询语句是口语化的符合人类表达习惯的语句。并且该自然语言查询语句是为了进行数据查询的语句。示例性地,输入的自然语言查询语句如可以为:某应用程序各地区的访问量是多少。
47.步骤202,根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理,以获得目标切词结果;词典中存储有数据库的表格中词语到字段的映射关系。
48.本实施例中,在至少一个数据库中以表格的形式存储有元数据。元数据中具有各个字段以及各个字段对应的值。本实施例中,先根据每个数据库表格中存储的元数据,构建对应的词典。
49.示例性的,某表格的元数据中存储了某个应用程序各地区的访问量。如表1所示:
50.表1:元数据的示例表
51.area(地区)uv(访问量)北京123四川456
52.那么在构建词典中,可采用键值对(简称:key-value)的方式存储表格中词语到字段的映射关系。可将元数据中的字段确定为词典中的字段。将元数据中字段的值确定为词典中的词语。如对于表1中的元数据,存储到词典中的词语到字段的映射关系可以包括:北京-》a.area,四川-》a.area,访问量-》a.uv。其中,“北京”、“四川”、“访问量”是词语,“a.area”和“a.uv”是字段。
53.具体地,本实施例中,可采用预设的切词算法对自然语言查询语句进行切词处理,获取到初始切词结果。并将初始切词结果与预先构建的数据库对应的词典中的字段进行匹配。若确定初始切词结果与词典中的字段均匹配,则将初始切词结果确定为目标切词结果。
若确定初始切词结果与词典中的字段不均匹配,则可再采用其他切词算法对自然语言查询语句进行切词处理。同理,也将切词结果与词典中的字段进行匹配。进而根据匹配结果确定目标切词结果。
54.可以理解的是,本实施例中,根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理,以获得目标切词结果的实现方式还可以为其他实现方式,本实施例中对此不作限定。
55.步骤203,对目标切词结果进行语法分析,获得语法分析结果。
56.本实施例中,可预先构建语法分析规则,采用预先构建语法分析规则对目标切词结果进行语法分析。获得语法分析结果。
57.其中,在语法分析结果中包括是否存在与语法分析规则匹配的语法片段。若存在与语法分析规则匹配的语法片段,则可将目标切词结果中与语法分析规则匹配的词语进行组合形成语法片段。若不存在与语法分析规则匹配的语法片段,则无需将目标切词结果中的词语进行组合。
58.步骤204,根据语法分析结果生成自然语言查询语句对应的目标语法树。
59.其中,目标语法树是与sql匹配的抽象语法树格式。至少由根节点,多个子节点和子节点的叶子节点构成。
60.本实施例中,根据语法分析结果中是否存在与语法分析规则匹配的语法片段,先确定对目标数据库进行搜索时的操作符和操作数。再根据目标切词结果中匹配的词典中的字段确定出需要进行搜索的数据库中的目标表格和目标字段。根据目标表格,目标字段,操作符和操作数生成自然语言查询语句对应的目标语法树。
61.步骤205,对目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql。
62.本实施例中,在目标语法树中包括有需要搜索的目标表格,需要搜索的目标字段,搜索时需要的操作符和操作数。所以对目标语法树进行遍历后,转化为自然语言查询语句对应的目标结构化查询语言sql。
63.本实施例提供的基于关系型数据库的数据查询方法,通过接收用户输入的自然语言查询语句;根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理,以获得目标切词结果;词典中存储有数据库的表格中词语到字段的映射关系;对目标切词结果进行语法分析,获得语法分析结果;根据语法分析结果生成自然语言查询语句对应的目标语法树;对目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql。由于只需要用户输入自然语言查询语句,就可根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理并进行语法分析后,生成对应的目标语法树,并通过遍历目标语法树就可自动生成sql语言,所以能够有效降低用户使用门槛。也能够在移动端使用,并且能够对搜索数据进行充分地表达。由于从自然语言搜索语句到生成sql过程无需用户操作,所以能够有效提高sql的生成效率。
64.实施例二
65.图3是本发明另一实施例提供的基于关系型数据库的数据查询方法的流程示意图。如图3所示,本实施例提供的基于关系型数据库的数据查询方法在实施例一提供的基于关系型数据库的数据查询方法的基础上,对步骤202的进一步细化,具体包括步骤301-步骤
308。则本实施例提供的基于关系型数据库的数据查询方法包括以下步骤:
66.步骤301,采用预设切词算法对自然语言查询语句进行切词处理,获得初始切词结果。
67.其中,预设切词算法是优先级最高的切词算法。如预设切词算法可以为最大匹配规则切词算法。
68.本实施例中,将自然语言查询语句输入到预设切词算法中。由预设切词算法对对自然语言查询语句进行切词处理,获得初始切词结果,并输出初始切词结果。
69.其中,初始切词结果可以为至少一个。
70.步骤302,将初始切词结果与词典中的词语进行匹配。
71.步骤303,判断初始切词结果是否与词语中的字段匹配。若是,则执行步骤304,否则步骤306。
72.本实施例中,针对每个初始切词结果,查询初始切词结果中的切出来的词语在词典中是否有相匹配的词语。若确定存在,则再进一步判断初始切词结果的个数是一个还是多个。若确定不存在,则采用备用切词算法对自然语言查询语句进行切词处理,获得备用切词结果。
73.其中,备用切词算法的优先级小于预设切词算法的优先级。如备用切词算法可以为最少词语数量规则切词算法。
74.步骤304,判断初始切词结果是否为一个,若是,则执行步骤305,否则执行步骤306。
75.步骤305,将初始切词结果确定为目标切词结果。
76.本实施例中,若确定初始切词结果为一个且初始切词结果与词典中的词语相匹配,则将初始切词结果确定为目标切词结果。
77.具体地,本实施例中,若确定初始切词结果为一个,则说明采用优先级最高的预设切词算法将自然语言搜索语句进行切词处理后,初始切词结果不仅与词典中的词语匹配,并且初始切词结果只有一个,使初始切词结果没有歧义。所以将初始切词结果确定为目标切词结果。
78.步骤306,采用备用切词算法对自然语言查询语句进行切词处理,获得备用切词结果。
79.本实施例中,若确定初始切词结果为多个且初始切词结果与词典中的词语均相匹配,则采用备用切词算法对自然语言查询语句进行切词处理,获得备用切词结果。
80.具体地,本实施例中,若确定初始切词结果为多个,则说明采用优先级最高的预设切词算法将自然语言搜索语句进行切词处理后,初始切词结果虽然均与词典中的词语匹配,但初始切词结果为多个,使初始切词结果有歧义。所以进一步采用优先级较低的备用切词算法对自然语言查询语句进行切词处理,获得备用切词结果。
81.可以理解的是,备用切词算法可以为多个。并且设置的优先级不同。
82.步骤307,将备用切词结果与词典中的词语进行匹配。
83.本实施例中,在采用备用切词结果与词典中的词语进行匹配时,仍然查询备用切词结果中的切出来的词语在词典中是否有相匹配的词语。若确定存在,则再进一步判断备用切词结果的个数是一个还是多个。若确定不存在,则继续采用下一个更低优先级的备用
切词算法对自然语言查询语句进行切词处理,获得备用切词结果。直到备用切词结果为一个为止。
84.步骤308,若确定备用切词结果为一个且备用切词结果与词典中的词语相匹配,则将备用切词结果确定为目标切词结果。
85.本实施例中,若确定备用切词结果为一个,则说明采用优先级较低的备用切词算法将自然语言搜索语句进行切词处理后,备用切词结果不仅与词典中的词语匹配,并且备用切词结果只有一个,使备用切词结果没有歧义。所以将备用切词结果确定为目标切词结果。
86.本实施例提供的基于关系型数据库的数据查询方法,在根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理,以获得目标切词结果时,采用预设切词算法对自然语言查询语句进行切词处理,获得初始切词结果,将初始切词结果与词典中的词语进行匹配;若确定初始切词结果为一个且初始切词结果与词典中的词语相匹配,则将初始切词结果确定为目标切词结果;若确定初始切词结果为多个且初始切词结果与词典中的词语均相匹配,则采用备用切词算法对自然语言查询语句进行切词处理,获得备用切词结果将备用切词结果与词典中的词语进行匹配;若确定备用切词结果为一个且备用切词结果与词典中的词语相匹配,则将备用切词结果确定为目标切词结果。由于在优先级较高的切词算法获得的初始切词结果为多个时,会使切词结果产生歧义,所以为了获得准确地切词结果,在优先级较高的切词算法获得的切词结果不唯一时,采用优先级较低的切词算法继续进行切词处理,直到获得唯一的切词结果,并将唯一的切词结果确定为目标切词结果。能够有效提高切词的准确率。
87.实施例三
88.图4是本发明又一实施例提供的基于关系型数据库的数据查询方法的流程示意图,如图4所示,本实施例提供的基于关系型数据库的数据查询方法在上述任意一个实施例提供的基于关系型数据库的数据查询方法的基础上,还包括了其他步骤,则本实施例提供的基于关系型数据库的数据查询方法包括以下步骤:
89.步骤401,接收用户输入的自然语言查询语句。
90.本实施例提供的步骤401的实现方式与实施例一中步骤201的实现方式类似,在此不再一一赘述。
91.步骤402,根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理,以获得目标切词结果;词典中存储有数据库的表格中词语到字段的映射关系。
92.本实施例中,步骤402的实现方式与实施例一中步骤202或实施例二中步骤301-308的实现方式类似,在此不再一一赘述。
93.步骤403,确定目标切词结果在词典中匹配的目标字段及目标字段所在的目标表格的标识。
94.具体地,本实施例中,由于目标切词结果是采用某种切词算法对自然语言查询语句进行切词处理获得切词结果后,将切词结果与词典中的词语进行匹配后获得的。所以获取目标切词结果在词典中相匹配的词语,并获取与相匹配的词语具有映射关系的字段,并将该具有映射关系的字段确定为目标字段。在词典中也会包括每个字段所属于的表格。所以根据目标字段确定所在的目标表格的标识。
95.步骤404,对目标切词结果进行语法分析,获得语法分析结果。
96.作为一种可选实施方式,本实施例中,步骤404包括以下步骤:
97.步骤4041,将目标切词结果中的词语与预先构建的语法分析规则集中的各语法分析规则的关键词进行匹配。
98.其中,在预设构建的语法分析规则集中包括多种语法分析规则。示例性的,一种语法分析规则是{日期}{到}{日期}。其表示了一个时间范围。
99.其中,各语法分析规则中的关键词可以为语法分析规则中指定位置的词语。如在上述示例中的语法分析规则中,三个位置的词语均为关键词。
100.本实施例中,将目标切词结果中的词语与各语法分析规则的关键词进行匹配,判断是否与某一个或多个语法分析规则的关键词匹配。
101.示例性的,目标切词结果为{6月1日}{到}{6月8日}{的}{访问量}。则该目标切词结果中的{6月1日}{到}{6月8日}与语法分析规则的三个关键词{日期}{到}{日期}相匹配。
102.步骤4042,若确定目标切词结果中的词语与某个语法分析规则中的关键词匹配,则确定语法分析结果中存在语法片段。
103.本实施例中,将目标切词结果中的词语与各语法分析规则的关键词进行匹配,若确定目标切词结果中的词语与某个语法分析规则中的关键词匹配,则说明目标切词结果中相匹配的词语满足这个语法分析规则,则说明在语法分析结果中存在与这个语法分析规则中的关键词相匹配的语法片段。
104.继续上面的举例进行示例性说明。{6月1日}{到}{6月8日}与语法分析规则的三个关键词{日期}{到}{日期}相匹配,所以将{6月1日}{到}{6月8日}组成一个语法片段。
105.步骤4043,若确定目标切词结果中的词语不与任意一个语法分析规则中的关键词匹配,则确定语法分析结果中不存在语法片段。
106.本实施例中,将目标切词结果中的词语与各语法分析规则的关键词进行匹配,若确定目标切词结果中的词语不与任意一个语法分析规则中的关键词匹配,则说明目标切词结果没有连续的几个词满足任何的语法分析规则,则说明在语法分分析结果中不存在与这个语法分析规则中的关键词相匹配的语法片段,无需再将目标切词结果中的词语进行任何形式的组合。
107.步骤405,根据语法分析结果、目标切词结果对应的目标表格及目标字段生成自然语言查询语句对应的目标语法树。
108.本实施例中,步骤405是步骤204的一种可选实施方式。
109.作为一种可选实施方式,步骤405包括以下步骤:
110.步骤4051,将目标表格标识确定为目标语法树的根节点。
111.本实施例中,由于在步骤403中确定出目标切词结果在词典中匹配的目标字段所在的目标表格的标识。所以将目标表格标识确定为目标语法树的根节点,来表示自然语言搜索语句所需要搜索的表格的标识。
112.其中,目标表格的标识可以为目标表格的名称,在目标数据库中的序号等信息。
113.示例性的,如图5所示,在自然语言搜索语句为“四川的访问量是多少”时,目标表格为表a,则目标语法树的根节点为“表a”。
114.步骤4052,将目标字段确定为根节点的子节点。
115.本实施例中,目标字段表示在对自然语言搜索语句进行搜索时,在对应目标表格中应该搜索的字段。为了便于对自然语言搜索语句顺利转化为sql。在目标语法树中,将目标字段作为根节点的子节点。
116.示例性的,如图5所示,根节点的子节点为目标字段为“a.area”和“a.uv”。
117.步骤4053,将与目标切词结果匹配的目标词语或目标切词结果中的语法片段确定为子节点的叶子节点。
118.本实施例中,在确定出目标字段后,需要确定出操作数和操作符。其中,操作数为与目标切词结果匹配的至少一个目标词语或目标切词结果中的语法片段中的至少一个词语。操作符是目标切词结果匹配的至少一个目标词语或目标切词结果中的语法片段中的至少一个词语,或通过目标切词结果匹配的至少一个目标词语或目标切词结果中的语法片段中的至少一个词语转化来的。
119.示例性的,继续上面的举例说明。由于在上述的举例中没有语法片段,所以操作数为“四川”,操作符为通过“的”转化而来的,为“=”。
120.示例性的,对于包括语法片段的情况,如{6月1日}{到}{6月8日},则操作数为“6月1日”和“6月8日”,操作符为“到”。
121.本实施例中,在目标切词结果中包括与词典中匹配的词语和与匹配的词语具有映射关系的目标字段。所以在目标语法树中给出目标字段后,再给出与目标字段具有映射关系的目标词语。
122.步骤4054,根据根节点,根节点的子节点及子节点的叶子节点生成自然语言查询语句对应的目标语法树。
123.本实施例中,按照根节点,根节点的子节点及子节点的叶子节点的顺序将各节点的内容进行添加,并通过连线建立各个节点间的关系,来生成自然语言查询语句对应的目标语法树。
124.示例性的,在图5中,目标语法树中,根节点为“表a”。作为根节点的子节点为“a.area”和“a.uv”。作为“a.area”的叶子节点为“操作数”“操作符”。操作数为“四川”,操作符为“=”。
125.步骤406,对目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql。
126.本实施例中,由于目标语法树为抽象语法树的格式。抽象语法树与sql之间是按照固定规则转化的。转换时会使用到目标语法树中的节点信息。所以对目标语法树进行遍历后,获取到目标语法树中的各节点信息,添加到sql中的预设位置后,即可生成sql。
127.如在上面的示例性说明中,对应的sql可表示为:select a.area,a.uv from a where a.area=

四川’。
128.步骤407,采用sql在目标表格标识对应的目标数据库中进行数据的搜索。
129.本实施例中,在sql中包括目标表格标识,所以获取目标表格所在的目标数据库,通过访问目标数据库,采用sql进行自然语言搜索语句对应答案的搜索,获得数据搜索结果。在目标数据库搜索到结果后,将数据搜索结果反馈给电子设备。
130.步骤408,获得数据搜索结果,并采用预先配置的图表形式进行显示。
131.本实施例中,用户可在基于关系型数据库的数据查询方法的客户端或网页页面中
可预先对数据搜索结果的显示形式进行配置。在获得数据搜索结果后,将数据搜索结果转换为预先配置的图表形式,并进行显示。
132.其中,预先配置的显示形式可以为图表格式。例如可以为柱状图,折线图,饼图,漏斗图,地图等。
133.本实施例提供的基于关系型数据库的数据查询方法,在根据语法分析结果、目标切词结果对应的目标表格及目标字段生成自然语言查询语句对应的目标语法树时,将目标表格标识确定为目标语法树的根节点;将目标字段确定为根节点的子节点;将与目标切词结果匹配的目标词语或目标切词结果中的语法片段确定为子节点的叶子节点;根据根节点,根节点的子节点及子节点的叶子节点生成自然语言查询语句对应的目标语法树。能够在目标语法树中充分的展示搜索时所需要的数据,并且目标语法树为抽象语法树的形式,所以在对目标语法树进行遍历后,就可自动生成对应的sql。进一步提高了sql的生成效率。
134.本实施例提供的基于关系型数据库的数据查询方法,在对目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql之后,采用sql在目标表格标识对应的目标数据库中进行数据的搜索;获得数据搜索结果,并采用预先配置的图表形式进行显示。由于数据搜索结果能够按照预先配置的图表形式进行显示,所以能够使数据搜索结果的显示方式更加符合用户的需求。
135.可选地,在用户采用本发明实施提供的基于关系型数据库的数据查询方法查询数据之前,还可对数据库的访问权限进行配置。在用户输入自然语言查询语句时,获取用户标识信息,并对自然语言查询语句进行处理后,确定目标数据库。根据预先配置的权限信息确定用户是否有对目标数据库的访问权限,在用户有对目标数据库的访问权限后,显示数据搜索结果。若用户没有对目标数据库的访问权限,则反馈未有访问权限的通知,能够有效保证数据库中数据的安全性。
136.实施例四
137.图6是本发明一实施例提供的基于关系型数据库的数据查询装置的结构示意图,如图6所示,本实施例提供的基于关系型数据库的数据查询装置位于电子设备中。则本实施例提供的基于关系型数据库的数据查询装置60包括:接收模块61,切词模块62,分析模块63,生成模块64,遍历模块65。
138.其中,接收模块61,用于接收用户输入的自然语言查询语句。切词模块62,用于根据预先构建的数据库对应的词典对自然语言查询语句进行切词处理,以获得目标切词结果;词典中存储有数据库的表格中词语到字段的映射关系。分析模块63,用于对目标切词结果进行语法分析,获得语法分析结果。生成模块64,用于根据语法分析结果生成自然语言查询语句对应的目标语法树。遍历模块65,用于对目标语法树进行遍历,以生成自然语言查询语句对应的目标结构化查询语言sql。
139.本实施例提供的基于关系型数据库的数据查询装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果与图2所示方法实施例类似,在此不再一一赘述。
140.可选地,切词模块62,具体用于:
141.采用预设切词算法对自然语言查询语句进行切词处理,获得初始切词结果;将初始切词结果与词典中的词语进行匹配;若确定初始切词结果为一个且初始切词结果与词典中的词语相匹配,则将初始切词结果确定为目标切词结果。
142.可选地,切词模块62,还用于:
143.若确定初始切词结果为多个且初始切词结果与词典中的词语均相匹配,则采用备用切词算法对自然语言查询语句进行切词处理,获得备用切词结果;将备用切词结果与词典中的词语进行匹配;若确定备用切词结果为一个且备用切词结果与词典中的词语相匹配,则将备用切词结果确定为目标切词结果;备用切词算法的优先级小于预设切词算法的优先级。
144.可选地,切词模块62,还用于:
145.若确定初始切词结果与词典中的词语不匹配,则执行采用备用切词算法对自然语言查询语句进行切词处理,获得备用切词结果的步骤。
146.可选地,本实施例提供的基于关系型数据库的数据查询装置,还包括:
147.确定模块,用于确定目标切词结果在词典中匹配的目标字段及目标字段所在的目标表格的标识。
148.可选地,分析模块63,具体用于:
149.将目标切词结果中的词语与预先构建的语法分析规则集中的各语法分析规则的关键词进行匹配;若确定目标切词结果中的词语与某个语法分析规则中的关键词匹配,则确定语法分析结果中存在语法片段;若确定目标切词结果中的词语不与任意一个语法分析规则中的关键词匹配,则确定语法分析结果中不存在语法片段。
150.可选地,生成模块64,具体用于:
151.根据语法分析结果、目标切词结果对应的目标表格及目标字段生成自然语言查询语句对应的目标语法树。
152.可选地,生成模块64,在根据语法分析结果、目标切词结果对应的目标表格及目标字段生成自然语言查询语句对应的目标语法树时,具体用于:
153.将目标表格标识确定为目标语法树的根节点;将目标字段确定为根节点的子节点;将与目标切词结果匹配的目标词语或目标切词结果中的语法片段确定为子节点的叶子节点;根据根节点,根节点的子节点及子节点的叶子节点生成自然语言查询语句对应的目标语法树。
154.可选地,本实施例提供的基于关系型数据库的数据查询装置,还包括:
155.搜索模块,用于采用sql在目标表格标识对应的目标数据库中进行数据的搜索。显示模块,用于获得数据搜索结果,并采用预先配置的图表形式进行显示。
156.本实施例提供的基于关系型数据库的数据查询装置可以执行图3-图4所示方法实施例的技术方案,其实现原理和技术效果与图3-图4所示方法实施例类似,在此不再一一赘述。
157.实施例五
158.本发明实施例八提供一种电子设备,至少一个处理器及存储器。
159.具体地,存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上述任意一个实施例提供的基于关系型数据库的数据查询方法。
160.实施例六
161.图7是用来实现本发明实施例的基于关系型数据库的数据查询方法的电子设备的
框图,如图7所示,本实施例提供的电子设备可以为表示各种形式的数字计算机。诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。还可以为移动设备。如移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
162.电子设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(i/o)接口712,传感器组件714,以及通信组件716。
163.处理组件702通常控制电子设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
164.存储器704被配置为存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
165.电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
166.多媒体组件708包括在电子设备700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当电子设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
167.音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(mic),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
168.i/o接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
169.传感器组件714包括一个或多个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700一个组件的位置改变,用户与电子设备700接触的存在或不存在,电子设备700方位
或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
170.通信组件716被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件716还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
171.在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
172.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述方法。例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
173.一种非临时性计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述电子设备的基于关系型数据库的数据查询方法。
174.在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述任意一个实施例中的基于关系型数据库的数据查询方法。
175.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
176.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献