图谱检索方法和装置、电子设备和存储介质与流程

文档序号:32387499发布日期:2022-11-30 06:50阅读:44来源:国知局
图谱检索方法和装置、电子设备和存储介质与流程

1.本技术涉及数据搜索技术领域,尤其涉及一种图谱检索方法和装置、电子设备和存储介质。


背景技术:

2.图谱检索即给定自然语言问题,通过对问题进行语义理解和解析,进而利用知识库进行查询、推理得出答案。图谱检索是搜索和智能问答中常用的技术方案。其中基于信息检索的方法的流程是:首先,根据问题得到若干个候选实体。然后,从知识库中抽取与候选实体相连的关系作为候选查询路径。接着,使用文本匹配模型,选择出与问题相似度最高的候选查询路径。最后,到知识库中检索答案。该方法由于需要从数据库中逐步搜索,而图谱中往往有丰富的实体和关系。使得该步骤有较高的时间消耗。
3.目前,相关技术中采用基于语义解析图谱检索方法使用字典、规则和机器学习直接从问题中解析出实体、关系和逻辑组合,生成可执行语言,直接从图数据库中进行一次搜索,获得答案的方式。但是由于用于提出的问题形式多种多样,人工定义用于图谱检索的模板的成本很高,且泛化性能差。
4.因此,相关技术中存在人工定义用于图谱检索的模板的成本很高,且泛化性能差的问题。


技术实现要素:

5.本技术提供了一种图谱检索方法和装置、电子设备和存储介质,以至少解决相关技术中存在的人工定义用于图谱检索的模板的成本很高,且泛化性能差的问题。
6.根据本技术实施例的一个方面,提供了一种图谱检索方法,包括:
7.获取需要进行答案搜索的问题信息;
8.确定出所述问题信息对应的候选实体,以及所述候选实体的实体类别;
9.按照所述实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,其中,所述目标节点为用于指示所述实体类别的节点;
10.根据所有所述候选路径,以及所述实体类别对应的所述候选实体,生成目标查询图,其中,所述目标查询图中包括所有所述目标节点;
11.按照所述目标查询图解析得到查询语言,并基于所述查询语言查询到所述问题信息对应的答案。
12.可选地,如前述的方法,所述按照所述实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,包括:
13.按照所述实体类别,以及预设的最大跳变次数,在所述模式图中执行至少一轮遍历操作,查询到包含有所述目标节点的至少一个所述候选路径,其中,最大跳变次数用于指示从所述目标节点跳转至最远节点所需经过的节点的个数,所述最远节点是所述候选路径中与所述目标节点之间间隔最多数量其他节点的节点,每轮所述遍历操作中执行的跳变次
数小于或等于所述最大跳变次数,不同的所述候选路径之间至少存在一个不同的节点。
14.可选地,如前述的方法,所述按照所述实体类别,以及预设的最大跳变次数,在所述模式图中执行至少一轮遍历操作,查询到包含有所述目标节点的至少一个所述候选路径,包括:
15.以所述实体类别对应的目标节点作为所述遍历操作的起始节点,在所述模式图中执行n次跳变操作,其中,n为所述最大跳变次数的数值;
16.循环执行以下操作,直至已执行n次跳变操作:在所述n次跳变操作中已执行的跳变操作的总数m次小于n次,且第m+1次跳变操作跳变至的跳变后节点与第m次跳变操作时位于的当前节点之间满足预设关系的情况下,将所述跳变后节点以及所述当前节点作为复实体,并确定已执行m次跳变操作,其中,m为整数,且0≤m《n,所述预设关系包括:所述跳变后节点与所述当前节点中存在一个cvt节点,且所述cvt节点用于描述所述跳变后节点与所述当前节点中除所述cvt节点之外的另一节点的场景;在所述n次跳变操作中已执行的跳变操作的总数m次小于n次,且第m+1次跳变操作跳变至的跳变后节点与第m次跳变操作时位于的当前节点之间不满足所述预设关系的情况下,确定已执行m+1次跳变操作;
17.在已执行n次跳变操作的情况下,按照所述n次跳变操作中每次跳变操作的先后次序,将所述起始节点以及所述n次跳变操作中的每次跳变操作所跳变至的节点相连,得到所述候选路径。
18.可选地,如前述的方法,所述确定出所述问题信息对应的候选实体,以及所述候选实体的实体类别,包括:
19.对所述问题信息进行实体识别,确定出包含于所述问题信息中的第一实体,以及所述第一实体的实体类别;
20.按照所述实体类别,在图数据库中确定与所述第一实体满足预设相关性的第二实体,其中,所述图数据库中预设有多个实体,所述第二实体的实体类别为所述第一实体的实体类别;
21.根据所述第一实体以及所述第二实体确定出所有所述候选实体,并确定出与每个所述候选实体对应的实体类别。
22.可选地,如前述的方法,所述根据所有所述候选路径,以及所述实体类别对应的所述候选实体,生成目标查询图,包括:
23.根据所有所述候选路径,确定出任意两个候选节点之间的关联关系,其中,所述候选节点为所述候选路径中的节点;
24.根据所述实体类别对应的所述候选实体,确定与每个候选节点对应的属性信息;
25.根据所述关联关系、所述候选节点以及与每个候选节点对应的属性信息,得到多个候选查询图,其中,对于每个所述候选查询图,所述候选查询图中包括多个候选节点,所述多个候选节点按照所述关联关系进行连接,且每个所述候选节点具有对应的所述属性信息;
26.按照预设匹配度算法,在所述多个候选查询图中确定出与所述问题信息匹配度最高的所述目标查询图。
27.可选地,如前述的方法,所述按照所述目标查询图解析得到查询语言,并基于所述查询语言查询到所述问题信息对应的答案,包括:
28.根据所述目标查询图中的各个第一目标节点以及各个第一目标节点之间的关联关系,确定出语义表达结构;
29.按照所述语义表达结构生成查询语言;
30.通过所述查询语言在图数据库中进行查询,得到所述答案。
31.可选地,如前述的方法,所述根据所述目标查询图中的各个第一目标节点以及各个第一目标节点之间的关联关系,确定出语义表达结构包括:
32.在所述目标查询图中确定出主链以及支链;
33.确定出所述主链上的所有第二目标节点,所述所有第二目标节点中每个第二目标节点的属性信息,以及任意两个相互连接的所述第二目标节点之间的主链关联关系,其中,所有所述第一目标节点包括第二目标节点;确定出所述支链上的所有第三目标节点,所述所有第三目标节点中每个第三目标节点的属性信息,以及任意两个相互连接的所述第三目标节点之间的支链关联关系,其中,所述支链上的所述所有第三目标节点中存在一个位于所述主链上的第二目标节点,所有所述第一目标节点包括第三目标节点;
34.按照所述第二目标节点的属性信息、所述主链关联关系、所述第三目标节点的属性信息以及所述支链关联关系生成所述语义表达结构。
35.根据本技术实施例的另一个方面,还提供了一种图谱检索装置,包括:
36.获取模块,用于获取需要进行答案搜索的问题信息;
37.确定模块,用于确定出所述问题信息对应的候选实体,以及所述候选实体的实体类别;
38.查询模块,用于按照所述实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,其中,所述目标节点为用于指示所述实体类别的节点;
39.生成模块,用于根据所有所述候选路径,以及所述实体类别对应的所述候选实体,生成目标查询图,其中,所述目标查询图中包括所有所述目标节点;
40.答案确定模块,用于按照所述目标查询图解析得到查询语言,并基于所述查询语言查询到所述问题信息对应的答案。
41.根据本技术实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
42.根据本技术实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
43.本方案可以应用于在数据搜索技术领域进行优化,本技术实施例提供的上述技术方案与现有技术相比具有如下优点:通过按照实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,并且通过根据所有候选路径以及实体类别对应的候选实体,生成目标查询图,提供了基于模式图(即,scheme graph)的方法生成查询图的实现方式,进而可以基于该目标查询图生成查询语言,并基于查询语言查询到问题信息对应的答案,从而无需预先定义有目标查询图也可以查询得到答案。因此,本实施例克服了相关技术中需要人工定义用于图谱检索的模板进而导致成本很高,且泛化性能差的技术问题。
附图说明
44.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
45.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1是根据本技术实施例的一种可选的图谱检索方法的流程示意图;
47.图2是根据相关技术的一种示例中的schema graph的结构示意图;
48.图3是根据本技术实施例的一种可选的schema graph的结构示意图;
49.图4是根据本技术实施例的另一种可选的确定候选实体以及候选查询图生成方法的流程示意图;
50.图5是根据本技术实施例的一种可选的目标查询图转换为语义表达结构的转换示意图;
51.图6是根据本技术实施例的一种可选的data的结构示意图;
52.图7是根据本技术实施例的一种可选的语义表达结构的结构示意图;
53.图8是根据本技术实施例的一种可选的图谱检索装置的框图;
54.图9是根据本技术实施例的一种可选的电子设备的结构框图。
具体实施方式
55.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
56.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
57.根据本技术实施例的一个方面,提供了一种图谱检索方法。可选地,在本实施例中,上述图谱检索方法可以应用于由终端和服务器所构成的硬件环境中。服务器通过网络与终端进行连接,可用于为终端或终端上安装的客户端提供服务(如广告推送服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器提供数据存储服务。
58.上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:wifi(wireless fidelity,无线保真),蓝牙。终端可以并不限定于为pc、手机、平板电脑等。
59.本技术实施例的图谱检索方法可以由服务器来执行,也可以由终端来执行,还可以是由服务器和终端共同执行。其中,终端执行本技术实施例的图谱检索方法也可以是由安装在其上的客户端来执行。
60.以由服务器来执行本实施例中的图谱检索方法为例,图1为本技术实施例提供的一种图谱检索方法,包括如下所述步骤:
61.步骤s101,获取需要进行答案搜索的问题信息;
62.本实施例中的图谱检索方法可以应用于需要在针对用户所要进行搜索的问题信息给出对应的答案的场景,例如:根据问题语句信息给出答案的场景、根据语音问题信息给出答案的场景等,也可以是识别其他问题信息的场景。本技术实施例中以根据问题语句信息给出答案的场景为例说明上述的图谱检索方法,对于其他类型的问题信息,在不矛盾的情况下,上述的图谱检索方法同样适用。
63.以根据问题语句信息给出答案的场景为例,通过对所有问题信息进行处理,以确定问题信息所要查询的问题的答案。
64.在用户需要进行问题搜索的时候,用户可以通过在可操作的客户端上输入问题语句,并生成对应的query(即,问题信息),然后通过客户端将query发送至服务器。进而服务器即可获取得到需要进行答案搜索的问题信息。
65.步骤s102,确定出问题信息对应的候选实体,以及候选实体的实体类别。
66.服务器在获取得到问题信息之后,即可对问题信息所包含的实体进行问题,以得到问题信息对应的候选实体。
67.候选实体可以是问题信息中的包括的实体或者与问题信息中包括的实体相似(满足预设相似度,例如词向量之间的相似度大于或等于预设值,计算相似度的方法可以是:欧氏距离、余弦相似度、jaccard距离、编辑距离等等)的其它实体。
68.在确定出每个候选实体之后,可以确定出候选实体的实体类别,实体类别可以是用于指示候选实体所属类别的信息。例如,实体类别可以包括但不限于:国家、省市、时间、活动等等;当候选实体为“南京市”的时候,对应的实体类别是省市,当候选实体为“6月1号”的时候,对应的实体类别则是时间。
69.步骤s103,按照实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,其中,目标节点为用于指示实体类别的节点。
70.在确定出每个候选实体的实体类别之后,即可按照实体类别在模式图中的所有路径中进行查询。模式图即为schema graph。模式图中可以包括有多个预设路径,每个预设路径中包括多个预设节点,每两个预设节点之间通过有向边进行连接,用于指示两个预设节点之间的联系。
71.预设路径中的每个预设节点可以是用于指示预设实体类别的节点,因此,可以通过在所有预设节点中确定出指示实体类别的目标节点,进而将包括目标节点的预设路径确定为候选路径。
72.步骤s104,根据所有候选路径,以及实体类别对应的候选实体,生成目标查询图,其中,目标查询图中包括所有目标节点。
73.在确定出候选路径之后,可以通过对所有候选路径进行整合,以得到目标查询图。以使得到的目标查询图可以包括所有目标节点。
74.并且,为了使后期能够基于目标查询图进行查询,还需要在目标查询图中记录有每个实体类别对应的候选实体,相当于确定出每个节点对应的属性信息。
75.在一般情况下,目标查询图中包含除了所有目标节点之外的其他节点,并可以将该其他节点所对应的实体类别认定为用户想要获取的答案的实体类别。
76.步骤s105,按照目标查询图解析得到查询语言,并基于查询语言查询到问题信息对应的答案。
77.在得到目标查询图之后,可以通过对目标查询图进行解析,以得到每个实体类别对应的候选实体,以及各个实体类别之间的关联关系,进而得到查询语言。
78.在得到查询语言之后,即可基于该查询语言在相应的图数据库中进行搜索,搜索结果即为问题信息对应的答案。
79.本实施例中的方法,通过按照实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,并且通过根据所有候选路径以及实体类别对应的候选实体,生成目标查询图,提供了基于模式图(即,scheme graph)的方法生成查询图的实现方式,进而可以基于该目标查询图生成查询语言,并基于查询语言查询到问题信息对应的答案,从而无需预先定义有目标查询图也可以查询得到答案。因此,本实施例克服了相关技术中需要人工定义用于图谱检索的模板进而导致成本很高,且泛化性能差的技术问题。
80.作为一种可选的实施例,如前述的方法,所述步骤s103按照实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,包括如下所述步骤:
81.步骤s201,按照实体类别,以及预设的最大跳变次数,在模式图中执行至少一轮遍历操作,查询到包含有目标节点的至少一个候选路径,其中,最大跳变次数用于指示从目标节点跳转至最远节点所需经过的节点的个数,最远节点是候选路径中与目标节点之间间隔最多数量其他节点的节点,每轮遍历操作中执行的跳变次数小于或等于最大跳变次数,不同的候选路径之间至少存在一个不同的节点。
82.为了避免查询得到太多不相关的候选路径以及相关性较低的其它节点,因此,可以预先设定最大跳变次数,以使保证查询得到候选路径中的节点与目标节点的相关性较高。并且,可以将最大跳变次数中用于指示从目标节点跳转至最远节点所需经过的节点的个数中的节点限定为除cvt节点之外的其他节点。
83.最大跳变次数可以2次或3次等等,可以根据实际应用场景进行选择。
84.在确定出实体类别以及最大跳变次数之后,可以在模式图中查找出包含实体类别所对应目标节点的可选路径,然后以目标节点为起点,按照最大跳变次数在可选路径中进行不同的节点之间的跳变,并且记录每次跳变后所在的节点,当执行完最大跳变次数的跳变之后,即可将目标节点以及每次跳变至的节点相连,得到候选路径。
85.并且一般情况下,所有候选路径中的任意两个候选路径中至少存在互不相同的至少一个节点。
86.例如,在最大跳变次数为2次、且目标节点为省市节点的情况下,执行第一次跳变后,所在的节点为时间节点、执行第二次跳变后的节点为品牌节点的时,则得到的候选路径可以是省市节点-时间节点-品牌节点。
87.作为一种可选的实施例,如前述的方法,步骤s201按照实体类别,以及预设的最大跳变次数,在模式图中执行至少一轮遍历操作,查询到包含有目标节点的至少一个候选路
径,包括如下所述步骤:
88.步骤s301,以实体类别对应的目标节点作为遍历操作的起始节点,在模式图中执行n次跳变操作,其中,n为最大跳变次数的数值。
89.在确定候选实体的实体类别,以及实体类别对应的目标节点之后,可以目标节点为起始节点在模式图中执行n次跳变操作。
90.步骤s302,循环执行以下操作,直至已执行n次跳变操作:在n次跳变操作中已执行的跳变操作的总数m次小于n次,且第m+1次跳变操作跳变至的跳变后节点与第m次跳变操作时位于的当前节点之间满足预设关系的情况下,将跳变后节点以及当前节点作为复实体,并确定已执行m次跳变操作,其中,m为整数,且0≤m《n,预设关系包括:跳变后节点与当前节点中存在一个cvt节点,且cvt节点用于描述跳变后节点与当前节点中除cvt节点之外的另一节点的场景;在n次跳变操作中已执行的跳变操作的总数m次小于n次,且第m+1次跳变操作跳变至的跳变后节点与第m次跳变操作时位于的当前节点之间不满足预设关系的情况下,确定已执行m+1次跳变操作。
91.在每次进行跳变之前都可以确定出该轮遍历操作中已执行的跳变操作的总数,因此可以确定出m,并且在m次小于n次的情况下,可以继续执行下一次跳变操作。
92.当确定出第m+1次跳变操作跳变至的跳变后节点与第m次跳变操作时位于的当前节点之间满足预设关系的情况下,即,跳变后节点与当前节点中存在一个cvt节点,且cvt节点是用于将构成某一场景的其他节点关联至跳变后节点与当前节点中除cvt节点外的另一个剩余节点的节点。
93.如图3所示的cvt-活动机制节点即为一种场景下的cvt节点,并且活动节点即为与cvt-活动机制节点满足预设关系的节点,其中的时间节点、省市节点、食物节点以及优惠券节点即为构成该场景的其他节点;因此,活动节点即为与cvt-活动机制节点可构成复实体(如图3中的包括活动节点与cvt-活动机制节点的灰色区域所示),其中,活动节点为复实体的实部,cvt-活动机制节点为复实体的虚部。并在从活动节点跳变至cvt-活动机制节点时,不将该跳变操作记录在n次跳变操作中,即,假设在跳变至cvt-活动机制节点之前已经执行的跳变操作的总数为m次,则跳变至cvt-活动机制节点之后,仍然将已执行的跳变操作的总数记为m次。
94.反之,当第m+1次跳变操作跳变至的跳变后节点与第m次跳变操作时位于的当前节点之间不满足预设关系的情况下,则确定已执行m+1次跳变操作。并且在m+1小于n的情况下,继续执行步骤s302;反之,跳转至步骤s303。
95.步骤s303,在已执行n次跳变操作的情况下,按照n次跳变操作中每次跳变操作的先后次序,将起始节点以及n次跳变操作中的每次跳变操作所跳变至的节点相连,得到候选路径。
96.当已执行n次跳变操作的情况下,则可以确定出每次跳变操作所跳变至的节点,然后按照n次跳变操作中每次跳变操作的先后次序,将各个跳变至的节点相互连接,即可得到候选路径。
97.本实施例中的方法,通过确定出满足预设关系的跳变后节点与当前节点,并将跳变后节点与当前节点确定为复实体,可以有效减少在存在cvt节点的情况下各个节点之间的距离,并且由于在满足预设关系时,不将跳变操作记录于最大跳变次数中,从而能够在即
使减少最大跳变次数一次时也可筛选出存在cvt节点下的路径,由于只针对于满足预设关系时才不将跳变操作记录于最大跳变次数中,进而也能够有效减少不存在cvt节点下的候选路径的数量。
98.作为一种可选的实施例,如前述的方法,所述步骤s102确定出问题信息对应的候选实体,以及候选实体的实体类别,包括如下所述步骤:
99.步骤s401,对问题信息进行实体识别,确定出包含于问题信息中的第一实体,以及第一实体的实体类别。
100.在获取问题信息之后,可以直接对该问题信息进行实体识别,以确定出在问题信息中的第一实体,并确定出第一实体的实体类别。
101.例如,当问题信息是“疯狂星期四在南京有什么优惠”时,则可以进行实体识别,得到第一实体:南京和疯狂星期四;并且确定南京的实体类别为省市,疯狂星期四的实体类别为活动。
102.步骤s402,按照实体类别,在图数据库中确定与第一实体满足预设相关性的第二实体,其中,图数据库中预设有多个实体,第二实体的实体类别为第一实体的实体类别。
103.在确定出第一实体之后,可以对第一实体进行实体链接,通过确定出图数据库中的各个预设实体与第一实体的相关性信息,确定出与第一实体满足预设相关性的第二实体。
104.可选地,确定出相关性信息的方法可以包括但不限于:欧氏距离、余弦相似度、jaccard距离、编辑距离等等。
105.预设相关性可以是预先设定的用于指示可以作为第二实体的相关性阈值,且预设相关性可以根据实际应用场景进行设定,在此不对此进行限定。
106.并且,与第一实体满足预设相关性的第二实体的实体类别即为第一实体的实体类别。
107.例如,在第一实体为“南京”(实体类别为“省市”),则通过实体链接得到的第二实体可以是“南京市”(实体类别为“省市”);在第一实体为“疯狂星期四”(实体类别为“活动”),则通过实体链接得到的第二实体可以是“xxx6月疯狂星期四”(实体类别为“活动”),以及第二实体可以是“yyy疯狂星期四”(实体类别为“活动”)。
108.步骤s402,根据第一实体以及第二实体确定出所有候选实体,并确定出与每个候选实体对应的实体类别。
109.在确定出第一实体以及第二实体之后,即可将所有第一实体以及所有第二实体作为所有候选实体,并确定每个候选实体的实体类别。
110.通过本实施例中的方法,可以基于多种方式确定出候选实体,并得到与每个候选实体对应的实体类别。
111.作为一种可选的实施例,如前述的方法,所述步骤s104根据所有候选路径以及实体类别对应的候选实体,生成目标查询图,包括如下所述步骤:
112.步骤s501,根据所有候选路径,确定出任意两个候选节点之间的关联关系,其中,候选节点为候选路径中的节点。
113.在确定出所有候选路径之后,由于每个候选路径中包括多个候选节点,因此可以确定出任意两个候选节点之间的关联关系。
114.步骤s502,根据实体类别对应的候选实体,确定每个节点的属性信息。
115.在确定出指定候选查询图之后,由于前述实施例中已确定候选实体的实体类别,因此,可以确定出实体类别所对应的候选实体,并且候选查询图中的每个节点均有对应的实体类别,进而,可以基于候选实体得到所对应的节点的属性信息,例如,活动节点的值(属性信息包括值)为实体类别为活动的候选实体,省市节点的值为实体类别是省市的候选实体。
116.步骤s503,根据所述关联关系、所述候选节点以及与每个候选节点对应的属性信息,得到多个候选查询图,其中,对于每个候选查询图,所述查询图中包括多个候选节点,多个候选节点按照所述关联关系进行连接,且每个候选节点具有对应的所述属性信息;
117.在确定出关联关系之后,可以对所有候选节点中的多个按照该关联关系进行连接,以得到多个候选查询图,其中,每个候选查询图中至少包括一个除所有目标节点之外的其他不为cvt节点的候选节点。且候选查询图中的候选节点的属性信息即为该候选节点原来的属性信息。
118.例如,在得到关联关系1:省市节点-cvt节点-时间节点,活动节点-cvt节点-时间节点时,省市节点的属性信息为“省市是南京市”,时间节点的属性信息为“六月1号”,活动节点的属性信息为“疯狂星期四”,则可得到一候选查询图a,并在该候选查询图a中,省市节点、时间节点、活动节点共同连至cvt节点,且该候选查询图a中的省市节点的属性信息仍然为“省市是南京市”,时间节点的属性信息仍然为“6月1号”,活动节点的属性信息仍然为“疯狂星期四”。
119.步骤s504,按照预设匹配度算法,在多个候选查询图中确定出与问题信息匹配度最高的指定候选查询图。
120.在得到多个候选查询图之后,可以按照预设匹配度算法确定出每个候选查询图与问题信息之间的匹配度,可选地,预设匹配度算法包括但不限于:启发式规则和文本相似度算法。
121.在确定出与每个候选查询图对应的匹配度之后,即可在多个候选查询图中确定出与问题信息匹配度最高的目标查询图。
122.作为一种可选的实施例,如前述的方法,所述步骤s105按照目标查询图解析得到查询语言,并基于查询语言查询到问题信息对应的答案,包括如下所述步骤:
123.步骤s601,根据目标查询图中的各个第一目标节点以及各个第一目标节点之间的关联关系,确定出语义表达结构。
124.在确定出如图5所示的目标查询图之后,为了生成用于进行查询的查询语言,可以按照如下所述步骤生成如图7所示的语义表达结构。
125.作为一种可选的实施例,如前述的方法,所述步骤s601根据目标查询图中的各个第一目标节点以及各个第一目标节点之间的关联关系,确定出语义表达结构包括如下所述步骤:
126.步骤s701,在目标查询图中确定出主链以及支链。
127.在确定出目标查询图之后,可以按照预设方式在目标查询图中确定出主链以及支链。
128.例如,确定出目标查询图中最长的链为主链,其余连至该主链的链作为支链。也可
以在目标查询图中随机确定出包括预设节点数量的链为主链,并将其余连至该主链的链作为支链。
129.步骤s702,确定出主链上的所有第二目标节点,所有第二目标节点中每个第二目标节点的属性信息,以及任意两个相互连接的第二目标节点之间的主链关联关系,其中,所有第一目标节点包括第二目标节点;确定出支链上的所有第三目标节点,所有第三目标节点中每个第三目标节点的属性信息,以及任意两个相互连接的第三目标节点之间的支链关联关系,其中,支链上的所有第三目标节点中存在一个位于主链上的第二目标节点,所有第一目标节点包括第三目标节点。
130.在确定出主链以及支链之后,即可确定出该主链上所有的节点,并将其即为第二目标节点。以及确定出连至主链的支链,并确定出支链上的第二目标节点。并且,对于每个支链,支链上的所有第三目标节点中存在一个第二目标节点。如图5所示,活动节点、cvt节点以及时间节点构成主链,并分别为主链上的第二目标节点,省市节点与cvt节点构成支链,并连至主链上,因此省市节点为第三目标节点,cvt节点也为第三目标节点,因此,cvt节点既为第二目标节点也为第三目标节点。
131.在确定出第二目标节点之后,即可确定任意两个相互连接的第二目标节点之间的主链关联关系,例如,对于如图5所示,活动节点和cvt节点之间的主链关联关系则为连接的边所指示的活动机制,cvt节点和时间节点之间的主链关联关系则为连接两者的边所指示的活动机制时间,省市节点和cvt节点之间的支链关联关系则为连接两者的边所指示的活动机制省市。
132.步骤s703,按照第二目标节点的属性信息、主链关联关系、第三目标节点的属性信息以及支链关联关系生成语义表达结构。
133.在确定出第二目标节点的属性信息、主链关联关系、第三目标节点的属性信息以及支链关联关系之后,即可基于第二目标节点的属性信息、主链关联关系、第三目标节点的属性信息以及支链关联关系生成语义表达结构。
134.例如,实体以及其支链上的相关数据存储用data存储,主链上的边(即,主链关联关系)用edge存储。其中data的结构如图6所示。各名词解释:tag-实体类型,properties-实体全部属性,field-属性字段,value-属性值(即,候选实体),sign-符号(可以包括但不限于:大于、小于、属于、包含、等于、不等于、最大、最小、总量),relations-实体相连的全部关系,edge tag-关系类型,intent field-意图字段,表示主链上最后一个节点的属性。属性信息即可包括properties-实体全部属性,field-属性字段,value-属性值,sign-符号。
135.然后即可基于每个data的结构,以及各个data之间的edge所指示的主链关联关系,得到如图7所示的语义表达结构。
136.步骤s602,按照语义表达结构生成查询语言。
137.在确定出语义表达结构之后,即可基于该语义表达结构,生成对应的查询语言,可选地,生成查询语言的方法包括但不限于以下所述方法中的一种或多种:
138.gremlin—最初为apache tinkerpop项目开发的图搜索语言,可实现过程性或声明性查询;
139.cypher—最初由neo4j创建,之后以opencypher的形式得到普及,这种声明性语言可用于搜索匹配特定属性的顶点和边;
140.gql—一项致力于将cyher、gsql以及psql统一起来的标准倡议;
141.sparql—一种为了查询rdf格式知识图谱而建立的标准;
142.pgql—甲骨文的原创语言,用于从符合规范的顶点当中搜索并收集信息;
143.gsql—tigergraph的原创过程语言;
144.aql—arangodb的原创过程语言。
145.进一步的,可以基于图数据库所支持的查询语言类型,采用对应的查询语言生成方式,生成查询语言类型对应的查询语言。
146.步骤s603,通过查询语言在图数据库中进行查询,得到答案。
147.在生成查询语言之后,即可基于该查询语言在图数据库中进行查询,以得到答案。
148.例如,在前述实施例所举示例的基础上,在问题信息为“疯狂星期四在南京有什么优惠”且得到的目标查询图包括省市节点、时间节点、活动节点和cvt节点时,则可以确定出用于进行时间查询的查询语言,进而得到的答案也是用于指示活动“疯狂星期四”在“南京”的时间,例如,“6月1号至6月30号”。
149.如下所示,提供一种应用前述任一实施例的应用例:
150.1.1构建schema graph(即,模式图)
151.在图数据库中,schema表示了各种类型的实体的链接关系,以及实体本身所携带的属性字段。将不同实体之间的链接关系用图结构来存储,得到schema graph。图2是零售领域的schema graph的局部展示。圆圈表示实体,圆圈中的文字表示该实体的类型。线表示实体与实体之间存在关系。其中“cvt-活动机制”是“活动”的cvt节点。
152.由图3可知,由于引入cvt节点,“时间”、“省市”等实体到活动的距离由1跳变为2跳,到品牌的距离由2跳变为3跳。若生成候选查询图的路径从2跳增加为3跳,候选查询图的数量将以指数形式递增。为了解决此问题,本技术通过设置复实体。即存在一个复实体,该复实体对应的节点的实部为实体节点,虚部为其连接的cvt实体节点。如图3为引入复实体后的schema graph,其中灰色为复实体,复实体的实部为“活动”,虚部为“cvt-活动机制”。与实部、虚部相连的实体都连接到复实体节点上。因此从“品牌”到“省市”的距离由3跳变为2跳。有效的减少了候选路径的数量。
153.1.2获得候选实体
154.获得候选实体分为两部分,首先是用预设的模型识别query(即问题信息)中提及到的第一实体并给出实体标签(即,第一实体的实体类别),然后对提及的第一实体进行实体链接,得到其在图数据库中对应的第二实体。如图4中的step1。首先,通过实体识别模型抽取query中包含的第一实体以及对应的实体标签(实体:实体标签):(南京:省市)、(疯狂星期四:活动)。然后,通过实体链接相关技术将上述第一实体映射到图数据库中的第二实体。比如,“南京”对应到图数据库中的第二实体为“南京省”。“疯狂星期四”对应到图数据库中的第二实体包括:“xxx6月疯狂星期四”、“yyy疯狂星期四活动”。
155.1.3生成查询图
156.候选实体的实体类别,即为schema graph里面的实体。以候选实体为核心实体,在schema graph中查询两跳(即,最大跳变次数为2次)以内的路径。生成若干候选路径。除核心实体外的其他实体在路径上进行捆绑,形成候选查询图。如图4中的step2。分别以实体的类型省市和活动为核心实体,在schema graph中获得两跳之内的相关路径,作为查询图的
主链。对于系列相关路径逐一生成查询图。比如,“(活动)-(cvt)-(时间)”是以活动为核心实体(即,活动节点为起始节点)生成相关路径中的一条路径。结合schema graph可知候选实体类型省市可以和cvt节点相连。因此,路径上的cvt节点伸展一条边链接到省市实体。候选查询图中的活动的值为类型为活动的候选实体。省市的值为类型是省市的候选实体。然后基于启发式规则和文本相似度算法计算候选查询图和问题信息的相似度,取最匹配(即,相似度最高)的目标查询图生成查询语言。
157.1.4生成查询语言
158.上述目标查询图需要翻译为适用于特定图数据库的可执行语言才能在图库中搜索获得答案。为了方便翻译为不同图数据库的查询语言,本技术设计了一种查询图语言表达体系。作为查询图到可执行语言的中间结构。
159.按查询图的主链顺序依次对查询图进行解析并用一定的结构进行存储。比如1.3节中的目标查询图可以存储为如图5中以data和edge进行指示的结构。实体以及其支链上的相关数据存储用data存储,边用edge存储。其中data的结构如图6所示。各名词解释:tag-实体类型,properties-实体全部属性,field-属性字段,value-属性值,sign-符号(包括:大于、小于、属于、包含、等于、不等于、最大、最小、总量),relations-实体相连的全部关系,edge tag-关系类型,intent field-意图字段,表示主链上最后一个节点的属性。图7为图5查询图生成的语义表达结构。
160.然后根据目标查询图的语义表达结构生成可执行的查询语言。在相应的图数据库中进行搜索,搜索结果即为query的答案。
161.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
162.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom(read-only memory,只读存储器)/ram(random access memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
163.根据本技术实施例的另一个方面,还提供了一种用于实施上述图谱检索方法的图谱检索装置。图8是根据本技术实施例的一种可选的图谱检索装置的结构框图,如图8所示,该装置可以包括:
164.获取模块1,用于获取需要进行答案搜索的问题信息;
165.确定模块2,用于确定出问题信息对应的候选实体,以及候选实体的实体类别;
166.查询模块3,用于按照实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,其中,目标节点为用于指示实体类别的节点;
167.生成模块4,用于根据所有候选路径,以及实体类别对应的候选实体,生成目标查
询图,其中,目标查询图中包括所有目标节点;
168.答案确定模块5,用于按照目标查询图解析得到查询语言,并基于查询语言查询到问题信息对应的答案。
169.需要说明的是,该实施例中的获取模块1可以用于执行上述步骤s101,该实施例中的确定模块2可以用于执行上述步骤s102,该实施例中的查询模块3可以用于执行上述步骤s103,该实施例中的生成模块4可以用于执行上述步骤s104,该实施例中的答案确定模块5可以用于执行上述步骤s105。
170.此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
171.根据本技术实施例的又一个方面,还提供了一种用于实施上述图谱检索方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
172.根据本技术的另一个实施例,还提供一种电子设备,包括:如图9所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
173.存储器1503,用于存放计算机程序;
174.处理器1501,用于执行存储器1503上所存放的程序时,实现如下步骤:
175.步骤s101,获取需要进行答案搜索的问题信息。
176.步骤s102,确定出问题信息对应的候选实体,以及候选实体的实体类别。
177.步骤s103,按照实体类别,在模式图中查询到包含有至少一个目标节点的候选路径,其中,目标节点为用于指示实体类别的节点。
178.步骤s104,根据所有候选路径,以及实体类别对应的候选实体,生成目标查询图,其中,目标查询图中包括所有目标节点。
179.步骤s105,按照目标查询图解析得到查询语言,并基于查询语言查询到问题信息对应的答案。
180.可选地,在本实施例中,上述的通信总线可以是pci(peripheral component interconnect,外设部件互连标准)总线、或eisa(extended industry standard architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
181.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
182.上述处理器可以是通用处理器,可以包含但不限于:cpu(central processing unit,中央处理器)、np(network processor,网络处理器)等;还可以是dsp(digital signal processor,数字信号处理器)、asic(application specific integrated circuit,专用集成电路)、fpga(field-programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
183.本技术实施例还提供一种计算机可读存储介质,存储介质包括存储的程序,其中,程序运行时执行上述方法实施例的方法步骤。
184.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、rom、ram、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
185.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
186.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
187.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
188.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
189.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
190.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
191.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1