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

知识图谱的查询方法及装置与流程

2022-06-05 07:23:17 来源:中国专利 TAG:


1.本技术涉及查询技术领域,特别是涉及一种知识图谱的查询方法及装置。


背景技术:

2.随着互联网应用的发展,利用知识图谱进行信息查询的技术受到越来越多的关注。但是目前利用知识图谱进行信息查询的方法效率较低。


技术实现要素:

3.本技术提供一种知识图谱的查询方法及装置,可以利用索引迅速定位到更多的对象,提升了语句的查询性能。
4.为达到上述目的,本技术提供一种知识图谱的查询方法,该方法包括:
5.获取到与自然语句相匹配的查询图,并确定查询图中的查询意图点;
6.以查询意图点为拆分点,将查询图拆分成至少两个子图;
7.基于每个子图生成每个子查询语句;
8.确定每个子查询语句的查询结果;
9.将所有子查询语句的查询结果的交集作为自然语句的查询结果。
10.其中,以查询意图点为拆分点,将查询图拆分成至少两个子图的步骤包括:
11.在查询图中与查询意图点连接的边的数量为n的情况下,以查询意图点为拆分点,将查询图拆分成n个子图,且每个子图均包括查询意图点;
12.其中,n≥2。
13.其中,基于每个子图生成每个子查询语句的步骤包括:
14.将子图中的且在自然语句中出现的所有实体对象和所有实体关系对象中数量占比最低的对象,作为子图的子查询语句的起始对象而构建出子图的子查询语句。
15.其中,对象的数量占比为对象在知识图谱中的总数量与知识图谱中所有对象的数量总和的比值。
16.其中,将子图中的且在自然语句中出现的所有实体对象和所有实体关系对象中数量占比最低的对象,作为子图的子查询语句的起始对象而构建出子图的子查询语句的步骤包括:
17.基于起始对象确定出子图的对象连接的完整链路;
18.按照子图的对象连接的完整链路依次读取每个对象的信息,以构成子图的子查询语句。
19.其中,构建出子图的子查询语句的步骤包括:
20.在自然语句的查询结果有数量限制条件的情况下,将数量限制条件加到子图的子查询语句中。
21.其中,构建出子图的子查询语句的步骤包括:
22.若子图中存在名字长度大于长度阈值的地名的情况下,对大于长度阈值的地名进
行分词处理;基于分词后的地名生成子图的子查询语句。
23.其中,获取到与自然语句相匹配的查询图,并确定查询图中的查询意图点的步骤包括:
24.确定获得的查询图中是否有查询意图点;和/或,确定查询意图点是否与自然语句相匹配;
25.方法还包括:
26.在获得的查询图中没有查询意图点、和/或查询意图点与自然语句不相匹配的情况下,重新执行获取到与自然语句相匹配的查询图,并确定查询图中的查询意图点的步骤。
27.其中,获取到与自然语句相匹配的查询图,并确定查询图中的查询意图点的步骤之后包括:
28.对查询图中的实体和实体关系进行解析;
29.在解析过程中,优先解析查询图中的实体关系的信息。
30.其中,优先解析查询图中的实体关系的信息的步骤包括:
31.在实体关系的第一属性与实体的第一属性相同的情况下,仅加载实体关系的第一属性,或仅加载实体的第一属性。
32.为达到上述目的,本技术还提供一种电子设备,该电子设备包括处理器;处理器用于执行指令以实现上述方法。
33.为达到上述目的,本技术还提供一种计算机可读存储介质,其用于存储指令/程序数据,指令/程序数据能够被执行以实现上述方法。
34.本技术知识图谱的查询方法中,将基于自然语句获得的查询图,以查询意图点为拆分点进行拆分而得到至少两个子图,继而确定出每个子图的子查询语句,这样无需对知识图谱进行复杂的查询语句的求解,只需要从知识图谱中获得简单的子查询语句的结果,然后将所有子查询语句的结果的交集作为复杂的自然语句的结果,提高了查询语句的查询性能,且在保证自然语句的结果的准确性的情况下提高了查询语句的结果获得效率;而且可以利用索引迅速定位到更多的对象的id,提升了语句的查询性能。
附图说明
35.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
36.图1是本技术知识图谱的查询方法一实施方式的流程示意图;
37.图2是本技术知识图谱的查询方法中查询图的结构示意图;
38.图3是本技术由图2所示的查询图拆分得到的子图一的结构示意图;
39.图4是本技术由图2所示的查询图拆分得到的子图二的结构示意图;
40.图5是本技术电子设备一实施方式的结构示意图;
41.图6是本技术计算机可读存储介质一实施方式的结构示意图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于
本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。另外,除非另外指明(例如,“或另外”或“或在替代方案中”),否则如本文所使用的术语“或”指代非排他性的“或”(即,“和/或”)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施例可以与一个或多个其它实施例组合以形成新的实施例。
43.目前利用知识图谱进行信息查询的方案的步骤可以包括:利用自然语句从知识图谱获取查询图;继而对查询图中的实体和实体关系进行对象组装,以生成查询图的查询语句,进而通过执行查询图的查询语句,以确定自然语句的结果,在自然语句较为复杂的情况下,基于自然语句获得的查询图也会较为复杂,继而利用查询图生成的查询语句也更为复杂,这样查询语句的匹配起来就会较慢,且因为只有查询语句起始对象才可以用索引迅速定位到id,需要通过遍历才能定位到其余对象,查询语句的查询性能较低。
44.基于此,在自然语句较为复杂,例如自然语句可以拆分成至少两个简单的子问句的情况下,本技术将基于自然语句获得的查询图,以查询意图点为拆分点进行拆分而得到至少两个子图,继而确定出每个子图的子查询语句,这样无需对知识图谱进行复杂的查询语句的求解,只需要从知识图谱中获得简单的子查询语句的结果,然后将所有子查询语句的结果的交集作为复杂的自然语句的结果,提高了查询语句的查询性能,且在保证自然语句的结果的准确性的情况下提高了查询语句的结果获得效率;而且可以利用索引迅速定位到更多的对象的id,综合提升了语句的查询性能。
45.基于上述步骤得到查询点和查询意图点之后,可以以查询意图点为拆分点,将查询图拆分成至少两个子图,使得基于子图生成的子查询语句相对简单,可以提高利用查询语句查询自然语句结果的性能,提高复杂多跳的查询图的查询效率。
46.具体如图1所示,本实施方式的知识图谱的查询方法包括以下步骤。需要注意的是,以下步骤编号仅用于简化说明,并不旨在限制步骤的执行顺序,本实施方式的各步骤可以在不违背本技术技术思想的基础上,任意更换执行顺序。
47.s101:获取到与自然语句相匹配的查询图,并确定查询图中的查询意图点。
48.可以先获取到与自然语句相匹配的查询图,并确定查询图中的查询意图点,以便后续基于查询意图点将查询图拆分成至少两个子图,以便基于至少两个子图快速查询而快速得到自然语句的结果。
49.可选地,可以对自然语句进行分词,以识别出自然语句中包含的实体、实体属性、实体关系和/或实体关系的属性,然后利用识别出的自然语句中的实体、实体属性、实体关系和/或实体关系的属性从知识图谱中获取到与自然语句相关联的查询图。在获得查询图的情况下,可以将查询图和自然语句中的实体、实体属性、实体关系和/或实体关系的属性进一步匹配,以确定出自然语句的结果在查询图中的位置(即查询意图点)。
50.具体地,在步骤s101中,可以利用词典工具及知识图谱中预先构建的图结构对自然语句进行分词,并利用从自然语句中识别出的实体、实体属性、实体关系和/或实体关系的属性从知识图谱中获取到与自然语句相匹配的查询图,进而确定出查询图中查询意图点的位置。
51.在获得查询图后,可以对查询图进行校验,以确定获得的查询图是否出错;在确认获得的查询图出错的情况下,可以重新执行步骤s101,以重新生成查询图。具体地,可以通
过下述方式对查询图进行校验。
52.其一,可以确定查询意图点是否为空,即可以理解成确认查询图中是否有查询意图点;若查询意图点为空,则确认获得的查询图出错。
53.其二,还可以确定查询意图是否在识别出的实体列表中,即可以理解成确认目标结果的类别属性和意图结果点的类别属性是否匹配;在目标结果的类别属性和查询意图点的类别属性不匹配的情况下,确认获得的查询图出错。例如在意图结果点的类别属性为手机,但自然语句的目标结果的类别属性为人的情况下,意图结果点的类别属性和自然语句的目标结果的类别属性就不匹配,此时就可确认获得的查询图出错。
54.其三,还可确认查询意图是否在识别出的实体与实体之间的连接关系列表中,即可以理解成确认查询图是否与自然语句相匹配,若不匹配,则确认获得的查询图出错。例如,在查询图显示的是人和事件之间的关系,但是自然语句中提问的是人的手机号为什么,则可以确认查询图和自然语句不相匹配,则可以确认获得的查询图出错。
55.在获取到与自然语句相匹配的查询图之后,可以对查询图进行解析和优化,以组装成相应的点对象和边对象。
56.在解析查询图的过程中,可以优先解析查询图的边的信息,其次解析点的信息,这样可以提升基于查询图生成的查询语句性能和提升图信息容错性。其中,查询图中的边对应于实体与实体之间的连接关系(即实体关系),查询图中的点对应于实体。
57.其中,点信息可以包括点对象自身对应的索引名、属性、实体名及其数量占比。边信息可以包括边对象自身对应的起始点名、结束点名、边关系名、属性和/或数量占比。
58.具体地,优先解析查询图的边的信息可以包括:在点的一属性与边的一属性相同的情况下,可以仅将该相同的属性加载在边上,或仅将该相同的属性加载在点上,能够避免查询图信息内冗余属性重复加载。
59.优选地,可以将该相同的属性加载在边上,因为在执行查询语句时过滤边上的属性时无需进行多跳转,而过滤点上的属性时需要进行跳转操作,因而通过将冗余的属性加载在边上可以减少筛选条件的耗时,提高查询效率。
60.另外,在解析查询图的过程中,若解析后的点对象不在边对象中,可以将该点对象作为错误对象处理,不进行加载,且生成的查询语句中也不会包含该对象,以提升查询图信息容错性。
61.s102:以查询意图点为拆分点,将查询图拆分成至少两个子图。
62.基于上述步骤得到查询点和查询意图点之后,可以以查询意图点为拆分点,将查询图拆分成至少两个子图,使得基于子图生成的子查询语句相对简单,可以提高利用查询语句查询自然语句结果的性能,提高复杂多跳的查询图的查询效率。
63.需要注意的是,以查询意图点为拆分点拆分得到的所有子图均包含查询意图点,以便利用子图构建出查询结果包括自然语句的结果的子查询语句,从而保证查询结果的准确性。
64.可选地,在步骤s102中,可以确定查询图中与查询意图点连接的边的数量,在与查询意图点连接的边的数量为n(n≥2)的情况下,以查询意图点为拆分点,将查询图拆分成n个子图,以便后续针对每个子图依次确定子图的子查询语句的起始对象、组装子图的子查询语句、以及对子图的子查询语句进行子查询等步骤,最终将所有子查询语句的查询结果
的交集作为自然语句的结果。另外,在与查询意图点连接的边的数量为1时则无需对查询图进行拆分。
65.例如,在查询意图点为图2所示的填充点—person2时,可以以填充点—person2为拆分点,将图2所示的查询图拆分成两个子图,其中一个子图的结构如图3所示,另一个子图的结构如图4所示。
66.s103:基于由每个子图生成每个子查询语句,确定每个子查询语句的查询结果。
67.基于上述步骤将自然语句的查询图拆分成至少两个子图后,在步骤s103中,可以确定每个子图对应的子查询语句,进而确定每个子查询语句的查询结果。
68.在基于子图生成该子图对应的子查询语句的过程中,可以先确定子查询语句的起始对象,然后从子查询语句的起始对象开始依次遍历该子图中的其余对象,以组成该子图中对象连接的完整链路,最终得到该子图的子查询语句。
69.例如,假设,如图4所示的子图的子查询语句的起始对象为peerevent,则如图4所示的子图的对象连接的完整链路为:peerevent

haspeerevent

person1—haspeerevent—peerevent

haspeere vent

person2(其中,
“→”
表示连接,“—”表示回溯)。
70.又例如,假设,如图4所示的子图的子查询语句的起始对象为person1,则如图4所示的子图的对象连接的完整链路为:person1

haspeerevent

peerevent

haspeerevent

person2。
71.其中,子查询语句的起始对象的选择对查询语句的查询性能起着关键性的作用,起始命中实体对象或实体关系对象越少,子查询语句需要遍历的次数就会越少,从而查询性能越高,因此较为优选的是,可以将子图中的且在自然语句中出现的所有实体对象和所有实体关系对象中数量占比最少的对象作为子图的子查询语句的起始对象,使得该子图的子查询语句需要遍历的次数的变少,进而提高查询性能,避免了由于起始对象选择不当导致查询效率低下的情况出现。例如,在确定图4所示的子图的查询语句的起始对象时,若自然语句包括“person1的同伴是谁”的内容,则可以确定person1、haspeerevent、peerevent中哪个对象的数量占比最少,假设确定person1的数量占比最少,则可以person1为图4所示的子图的子查询语句的起始对象。
72.其中,在数据导入图数据库时可按标签按属性进行多维度分组计数统计,以确定各对象的数量占比。子图中对象的数量占比具体可等于知识图谱中该对象的总数量与知识图谱中所有对象(包括实体对象和实体关系对象)的总数的比值。其中,基于数量占比的计算公式可知,对象的数量占比可随着知识图谱中导入数据的变化而动态更改。
73.具体地,可以通过优先级体现各个对象的数量占比,这样通过优先级即可快速地确定子查询语句的起始对象。在一实施例中,各个对象的数量占比越小,优先级越高;反之则越低;这样就可将子图中优先级最高的对象作为子图的子查询语句的起始对象。
74.进一步地,在确定子查询语句的起始对象时还可参考查询经验。例如,通过分析大量查询语句和实际各阶段耗时作为种子,确定如姓名、身份证号、手机号、车牌号等精准匹配的属性、标签查询效果较优,则可以对这些属性和标签给予高优先级。
75.基于上述方案确定子查询语句的起始对象后,可以从子查询语句的起始对象开始依次遍历该子图中的其余对象,以组成该子图中对象连接的完整链路,保证了查询路径的
完整和最优查询路径。
76.具体地,若起始对象为点对象,则任选一条包含该起始对象的边作为起始边,然后按照子图中的边对象的拼接顺序依次遍历子图中的其余对象,以组成该子图中对象连接的完整链路。
77.若起始对象为边对象,后续边对象的拼接过程采用前序边对象中的结束节点作为后续边对象中的起始节点的原则进行拼接;若后续边对象的起始节点与结束节点在前序边对象中都不存在则直接舍弃不进行拼接。具体地,假设,如图4所示的子图的子查询语句的起始对象为haspeerevent,则如图4所示的子图的对象连接的完整链路为:haspeerevent

person1—haspeerevent

peerevent

haspeerevent

person2。
78.确定子图中对象连接的完整链路之后,可以按照子图中对象连接的完整链路依次读取每个对象的条件过滤属性,以得到子图的子查询语句。具体地,可通过调用点边对象的tostring方法读取各个对象的条件过滤属性。
79.在生成子查询语句的过程中,可以对子图的初始查询语句进行优化,以在不改变子图顺序的前提下,基于某些特定场景对初始查询语句进行调整,以使子图的最终子查询语句达到最优的查询性能。
80.具体地,可以确认是否有其余限制条件,若有,则可以将该限制条件加入到子查询语句中。具体地,若查询结果有数量限制条件,则需要将数量限制条件加到子查询语句中。
81.例如,查询结果的数量存在上限,即存在分页要求,则可以在子查询语句中添加range step,range step位置越靠前查询性能越高,但要保证分页返回的数据都满足range step后续的过滤操作。其中,一种可参考的range step位置如下:若要在点对象后加range step,需保证不存在与该点对象连接的边;若要在边对象后加range step,需保证该边对象连接的点对象不存在属性过滤条件。
82.另外,若自然语句中存在地理位置,且自然语句中的地理位置较长,则可以对地理位置进行适当的分词处理,然后基于分词后的地理位置生成子查询语句,这样在执行子查询语句时就无需拿完整的地理位置进行匹配,可以分段匹配,以提高匹配效率,进而提高查询效率。具体地,可按照业务的场景选择合适的分词器进行分词。
83.另外,基于上述方案得到子查询语句后,可以对生成的子查询语句进行校验,以验证子查询语句是否有误;在确认生成的子查询语句为错误语句的情况下,可以重新生成子图的子查询语句,以通过校验和优化查询语句的方法强有力地拦截错误语句的产生。
84.具体地,可以判断生成的查询语句中是否有v()或e(),若没有,则说明生成的子查询语句为错误语句,需要调用查询语句生成模块重新生成子查询语句。
85.另外,还可判断生成的查询语句中是否有过滤条件;若没有,则说明生成的查询语句无法借助索引提高性能,效率低下,应重新生成。具体地,在判定生成的查询语句中v()或e()后面没有has条件过滤step,则说明生成的查询语句中没有过滤条件。
86.s104:将所有子查询语句的查询结果的交集作为自然语句的查询结果。
87.在本实施方式中,将基于自然语句获得的查询图,以查询意图点为拆分点进行拆分而得到至少两个子图,继而确定出每个子图的子查询语句,这样无需对知识图谱进行复杂的查询语句的求解,只需要从知识图谱中获得简单的子查询语句的结果,然后将所有子查询语句的结果的交集作为复杂的自然语句的结果,提高了查询语句的查询性能,且在保
证自然语句的结果的准确性的情况下提高了查询语句的结果获得效率;而且可以利用索引迅速定位到更多的对象的id,综合提升了语句的查询性能。
88.下面为更好说明本技术知识图谱的查询方法,提供以下知识图谱的查询的具体实施例来示例性说明:
89.1.获得并校验查询图
90.自然语句为“与张三同行手机号为13343345335的人”,则与自然语句相匹配的查询图的结构如图2所示。
91.2.解析并优化查询图
92.对图2的查询图进行解析,可得到以下信息。
93.(1)点对象信息如下:
94.(person1,name,张三);
95.(phone,number,13343345335);
96.(person2,[],[]);
[0097]
(peerevent,tag,同行);
[0098]
(2)边对象信息如下:
[0099]
(person1,haspeerevent,peerevent);
[0100]
(peerevent,haspeerevent,person2);
[0101]
(person2,hasphone,phone);
[0102]
(3)查询意图点:person2。
[0103]
3.查询图信息拆分
[0104]
根据边对象信息可知查询图中存在两条与查询意图点person2(图2中填充点)连接的边,故以person2为基准点进行查询图拆分,拆分为图3和图4所示的两个子查询图。以便后续基于两个子查询图各生成一个子查询语句,分别为手机号为13343345335的人和与张三同行的人。这样最终就可取两个子查询语句的查询结果的交集,并将该交集作为自然语句的最终查询结果。
[0105]
4.确定子图的子查询语句起始对象
[0106]
利用预置的点边对象的数量占比,经计算后发现:图3的子图中手机号为13343345335的手机的点优先级最高,就可将手机号为13343345335的手机的点作为图3的子图的子查询语句的起始对象;图4的子图中姓名为张三的人的点优先级最高,就可将姓名为张三的人的点作为图4的子图的子查询语句的起始对象。
[0107]
5.组装查询子图顺序
[0108]
根据子图信息确定子图起始边对象顺序,从图3所示的子图以及图4所示的子图的边对象信息中分别选择一条包含起始对象的边。图3所示的子图的起始边对象为:(person1,hasphone,person2);图4所示的子图的起始边对象为:(person1,haspeerevent,peerevent);按照边对象拼接规则进行查询子图顺序组装。组装后子图顺序为:
[0109]
图3所示的子图:phone

hasphone

person2
[0110]
图4所示的子图:person1

haspeerevent

peerevent

haspeerevent

person2。
[0111]
6.查询语句优化、生成与校验
[0112]
按照步骤5确定的子图顺序,依次调用点边对象的tostring方法,即可生成子图的子查询语句。
[0113]
其中,子查询语句可以为gremlin语句,当然不限于此。
[0114]
7.执行子查询语句
[0115]
得到子查询语句后,可以执行子查询语句,以得到子查询语句的查询结果,继而基于子查询语句的查询结果得到自然语句的查询结果。
[0116]
请参阅图5,图5是本技术电子设备20一实施方式的结构示意图。本技术电子设备20包括处理器22,处理器22用于执行指令以实现本技术上述任一实施方式的方法及任意不冲突的组合所提供的方法。
[0117]
电子设备20可为摄像装置或服务器等设备,在此不做限定。
[0118]
处理器22还可以称为cpu(central processing unit,中央处理单元)。处理器22可能是一种集成电路芯片,具有信号的处理能力。处理器22还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器,或者该处理器22也可以是任何常规的处理器等。
[0119]
电子设备20还可进一步包括存储器21,用于存储处理器22运行所需的指令和数据。
[0120]
请参阅图6,图6为本技术实施方式中计算机可读存储介质的结构示意图。本技术实施例的计算机可读存储介质30存储有指令/程序数据31,该指令/程序数据31被执行时实现本技术上述方法任一实施例以及任意不冲突的组合所提供的方法。其中,该指令/程序数据31可以形成程序文件以软件产品的形式存储在上述存储介质30中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质30包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等设备。
[0121]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0122]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0123]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0124]
以上仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

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

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

相关文献