公开/公告号CN112860912A
专利类型发明专利
公开/公告日2021-05-28
原文格式PDF
申请/专利权人 北京字节跳动网络技术有限公司;
申请/专利号CN202110185453.6
申请日2021-02-10
分类号G06F16/36(20190101);
代理机构11710 北京开阳星知识产权代理有限公司;
代理人唐博
地址 100041 北京市石景山区实兴大街30号院3号楼2层B-0035房间
入库时间 2023-06-19 11:08:20
技术领域
本发明涉及数据处理技术领域,尤其涉及一种更新知识图谱的方法及装置。
背景技术
知识图谱的本质是一种语义网络(Semantic Network)的知识库,其由节点(Point)和边(Edge)组成,旨在以语义网络的形式描述客观世界中的实体及实体间的关系,每个节点表示现实世界中存在的实体,每条边为实体与实体之间的关系。
构建知识图谱的过程是一个融合多个数据源的数据的过程,机器构建的知识图谱中可能会存在错误,因此对知识图谱进行纠偏十分必要。知识图谱的干预是一种对知识图谱进行纠偏的行为,其可以通过干预数据修正知识图谱中存在错误。目前,普遍使用的知识图谱干预方式为直接将干预数据写入知识图谱所在数据库。即,在最终生成的知识图谱上对存在的错误进行修改。干预数据作为图谱构建的重要环节,其数据必须可追溯,可回放,可用于图谱的迭代。然而,干预数据不参与数据融合过程,仅仅是把所有的增加、删除、修改操作直接作用在知识图谱上,因此现有知识图谱干预方式中的干预数据不具备追溯、回放的能力的问题。
发明内容
有鉴于此,本发明提供了一种更新知识图谱的方法及装置,用于解决现有知识图谱干预方式中的干预数据不具备追溯、回放的能力的问题。
为了实现上述目的,本发明实施例提供技术方案如下:
第一方面,本发明的实施例提供了更新知识图谱的方法,包括:
获取目标属性值,所述目标属性值为第一实体的第一属性的属性值;
根据所述目标属性值和图谱属性值生成至少一条干预数据,所述图谱属性值为知识图谱中所述第一实体的所述第一属性的属性值;
根据所述至少一条干预数据更新干预数据库中的干预数据;
根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成更新后的知识谱图。
作为本发明实施例一种可选的实施方式,所述根据所述目标属性值和图谱属性值生成至少一条干预数据,包括:
若所述目标属性值中包含第一属性值,且所述图谱属性值中不包含所述第一属性值,则生成用于向所述知识图谱中增加所述第一属性值的干预数据;
若所述目标属性值中不包含第二属性值,且所述图谱属性值中包含所述第二属性值,则生成用于从所述知识图谱中删除所述第二属性值的干预数据。
作为本发明实施例一种可选的实施方式,所述根据所述至少一条干预数据更新干预数据库中的干预数据,包括:
判断所述干预数据库中是否包含各干预数据的冲突数据;任一干预数据的冲突数据为与该干预数据的语义相反的干预数据;
若所述干预数据库中包含第一干预数据的冲突数据,则将所述第一干预数据的冲突数据从所述干预数据库中删除;
若所述干预数据库中不包含第二干预数据的冲突数据,则将所述第二干预数据写入所述干预数据库中。
作为本发明实施例一种可选的实施方式,所述方法还包括:
在所述干预数据库中包含第一干预数据的冲突数据的情况下,将所述第一干预数据写入所述干预数据库中。
作为本发明实施例一种可选的实施方式,任一干预数据包括:实体、属性、属性值以及状态信息;所述状态信息为正或负,当所述状态信息为正时,对应的干预数据的语义为增加对应的属性值,当所述状态信息为负时,对应的干预数据的语义为删除对应的属性值;
所述判断所述干预数据库中是否包含各干预数据的冲突数据,包括:
判断所述干预数据库是否包含与各干预数据的实体、属性、属性值相同且状态信息相反的干预数据;
若所述干预数据库包含与第一干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中包含所述第一干预数据的冲突数据;
若所述干预数据库不包含与第二干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中不包含所述第二干预数据的冲突数据。
作为本发明实施例一种可选的实施方式,所述方法还包括:
在将至少两个实体融合为一个实体群组,且选取所述第一实体为所述实体群组的主实体的情况下,将待融合干预数据和待融合源数据的实体修改为所述第一实体,所述待融合源数据包括所述从数据源中提取的源数据中实体为所述实体群组的非主实体的各个源数据,所述待融合干预数据包括所述干预数据库中实体为所述实体群组的非主实体的各个干预数据;
根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱。
作为本发明实施例一种可选的实施方式,在将待融合干预数据和待融合源数据的实体修改为所述第一实体之后,所述方法还包括:
判断所述干预数据库中是否包含语义相反的干预数据;
若第三干预数据和第四干预数据的语义相反,则获取所述第三干预数据和所述第四干预数据的时间戳;
获取目标干预数据,所述目标干预数据为所述第三干预数据和所述第四干预数据中时间戳在后的干预数据;
在根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱的过程中,控制所述目标干预数据生效。
作为本发明实施例一种可选的实施方式,所述干预数据的生效优先级高于从数据源中提取的源数据的生效优先级。
第二方面,本发明实施例提供了一种更新知识图谱的装置,包括:
获取单元,用于获取目标属性值,所述目标属性值为第一实体的第一属性的属性值;
生成单元,用于根据所述目标属性值和图谱属性值生成至少一条干预数据,所述图谱属性值为知识图谱中所述第一实体的所述第一属性的属性值;
更新单元,用于根据所述至少一条干预数据更新干预数据库中的干预数据;
构建单元,用于根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成更新后的知识谱图。
作为本发明实施例一种可选的实施方式,所述更新单元,具体用于在所述目标属性值中包含第一属性值,且所述图谱属性值中不包含所述第一属性值的情况下,生成用于向所述知识图谱中增加所述第一属性值的干预数据;在所述目标属性值中不包含第二属性值,且所述图谱属性值中包含所述第二属性值的情况下,则生成用于从所述知识图谱中删除所述第二属性值的干预数据。
作为本发明实施例一种可选的实施方式,所述更新单元,还用于判断所述干预数据库中是否包含各干预数据的冲突数据;若所述干预数据库中包含第一干预数据的冲突数据,则将所述第一干预数据的冲突数据从所述干预数据库中删除;若所述干预数据库中不包含第二干预数据的冲突数据,则将所述第二干预数据写入所述干预数据库中;
其中,任一干预数据的冲突数据为与该干预数据的语义相反的干预数据。
作为本发明实施例一种可选的实施方式,所述更新单元,还用于在所述干预数据库中包含第一干预数据的冲突数据的情况下,将所述第一干预数据写入所述干预数据库中。
作为本发明实施例一种可选的实施方式,任一干预数据包括:实体、属性、属性值以及状态信息;所述状态信息为正或负,当所述状态信息为正时,对应的干预数据的语义为增加对应的属性值,当所述状态信息为负时,对应的干预数据的语义为删除对应的属性值;
所述更新单元,具体用于判断所述干预数据库是否包含与各干预数据的实体、属性、属性值相同且状态信息相反的干预数据;若所述干预数据库包含与第一干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中包含所述第一干预数据的冲突数据;若所述干预数据库不包含与第二干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中不包含所述第二干预数据的冲突数据。
作为本发明实施例一种可选的实施方式,所述更新单元,还用于在将至少两个实体融合为一个实体群组,且选取所述第一实体为所述实体群组的主实体的情况下,将待融合干预数据和待融合源数据的实体修改为所述第一实体,所述待融合源数据包括所述从数据源中提取的源数据中实体为所述实体群组的非主实体的各个源数据,所述待融合干预数据包括所述干预数据库中实体为所述实体群组的非主实体的各个干预数据;
所述构建单元,还用于根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱。
作为本发明实施例一种可选的实施方式,所述更新单元,还用于在将待融合干预数据和待融合源数据的实体修改为所述第一实体之后,判断所述干预数据库中是否包含语义相反的干预数据;若第三干预数据和第四干预数据的语义相反,则获取所述第三干预数据和所述第四干预数据的时间戳;获取目标干预数据,所述目标干预数据为所述第三干预数据和所述第四干预数据中时间戳在后的干预数据;在根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱的过程中,控制所述目标干预数据生效。
作为本发明实施例一种可选的实施方式,所述干预数据的生效优先级高于从数据源中提取的源数据的生效优先级。
第三方面,本发明实施例提供一种电子设备,其特征在于,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行第一方面或第一方面任一项所述的更新知识图谱的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面或第一方面任一项所述的更新知识图谱的方法。
第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面或第一方面任一种可选的实施方式所述的更新知识图谱的方法。
本发明实施例提供的更新知识图谱的方法先获取第一实体的第一属性的目标属性值,然后根据知识图谱中所述第一实体的第一属性的属性值和目标属性值生成至少一条干预数据,再根据生成的干预数据对更新干预数据库中的干预数据,最后根据干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成更新后的知识谱图。由本发明实施例中的干预数据均保存于干预数据库中,且干预数据库会作为独立数据源参与知识图谱的构建,因此本发明实施例提供的更新知识图谱的方法可以使干预数据具备追溯、回放的能力,解决现有知识图谱干预方式中的干预数据不具备追溯、回放的能力的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的更新知识图谱的方法的步骤流程图之一;
图2为本发明实施例提供的更新知识图谱的方法的步骤流程图之二;
图3为本发明实施例提供的干预状态转换示意图;
图4为本发明实施例提供的更新知识图谱的方法的步骤流程图之三;
图5为本发明实施例提供的更新知识图谱的装置的结构示意图;
图6为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面将对本发明的方案进行进一步描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但本发明还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本发明的一部分实施例,而不是全部的实施例。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本发明实施例提供了一种更新知识图谱的方法,具体的,参照图1所示,本发明实施例提供的更新知识图谱的方法包括如下步骤:
S101、获取目标属性值。
其中,所述目标属性值为第一实体的第一属性的属性值。
示例性的,当想要将钢管的分类属性修改为:建筑材料和武器装备时,则可以针对第一实体(钢管)的第一属性值(分类)输入目标属性值(建筑材料、武器装备)。
S102、根据所述目标属性值和图谱属性值生成至少一条干预数据。
其中,所述图谱属性值为知识图谱中所述第一实体的所述第一属性的属性值。
示例性的,本发明实施例中的干预数据可以为干预SPO。其中,SPO是知识图谱中的一个基本概念,用于通过{主语(subject),谓语(predicate),宾语(object)}的三元组标识实体与实体之间的关系,例如:A的妻子是B,则可以通过{A,妻子,B}的SPO来表达。干预SPO则可以根据干预想要执行的操作的语义分为两种,一种为:添加某一SPO的干预SPO,这种干预SPO称为正干预SPO,其对应的干预操作称为正干预。另一种为:想要删除某一SPO的干预SPO,这种干预操作称为负干预SPO,其对应的干预操作称为负干预。
作为本发明实施例一种可选的实施方式:所述根据所述目标属性值和图谱属性值生成至少一条干预数据,包括:
若所述目标属性值中包含第一属性值,且所述图谱属性值中不包含所述第一属性值,则生成用于向所述知识图谱中增加所述第一属性值的干预数据;
若所述目标属性值中不包含第二属性值,且所述图谱属性值中包含所述第二属性值,则生成用于从所述知识图谱中删除所述第二属性值的干预数据。
例如:图谱属性值包括实体A的分类属性B,目标属性值包括实体A的分类属性C,则根据所述目标属性值和图谱属性值生成两条干预数据,一条为用于向所述知识图谱中增加实体A的分类属性C的正干预数据;另一条为用于从所述知识图谱中删除实体A的分类属性B的负干预数据。干预数据为干预SPO时,生成的两条干预SPO分别为{实体A,类别,C,正干预}、{实体A,类别,B,负干预}。
再例如:目标属性值包括“钢”的分类属性“武器装备”和“建筑材料”,图谱属性值包括“钢”的分类属性“建筑材料”和“机械配件”,因为目标属性值中包括“武器装备”,而图谱属性值不包括“武器装备”,所以需要生成用于向所述知识图谱中增加“武器装备”的干预数据,又因为目标属性值中不包括“机械配件”,而图谱属性值包括“机械配件”,所以需要生成从所述知识图谱中删除所述第二属性值的干预数据。干预数据为干预SPO时,生成的两条干预SPO分别为{钢,类别,武器装备,正干预}、{钢,类别,机械配件,负干预}。
S103、根据所述至少一条干预数据更新干预数据库中的干预数据。
示例性的,可以将生成的干预数据均添加至干预数据库中,以更新干预数据库中的干预数据。
S104、根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成更新后的知识谱图。
由于更新后的知识谱图是根据干预数据库中的干预数据和从数据源中提取的源数据构建的知识图谱,因此更新后的知识谱图中第一属性的属性值为所述目标属性值。
可选的,所述干预数据的生效优先级高于从数据源中提取的源数据的生效优先级。
本发明实施例提供的更新知识图谱的方法先获取第一实体的第一属性的目标属性值,然后根据知识图谱中所述第一实体的第一属性的属性值和目标属性值生成至少一条干预数据,再根据生成的干预数据对更新干预数据库中的干预数据,最后根据干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成更新后的知识谱图。由本发明实施例中的干预数据均保存于干预数据库中,且干预数据库会作为独立数据源参与知识图谱的构建,因此本发明实施例提供的更新知识图谱的方法可以使干预数据具备追溯、回放的能力,解决现有知识图谱干预方式中的干预数据不具备追溯、回放的能力的问题。
在根据新生成的干预数据对干预数据库中的干预数据进行更新时,若直接将新生成的干预数据添加到干预数据库中,则在知识图谱迭代过程中,非常可能会出现干预数据的语义不清晰的问题。例如:某一次对干预数据库中的干预数据进行更新时,向干预数据库中添加了语义为增加关系A的干预数据,由在另一次对干预数据库中的干预数据进行更新时,又向干预数据库中添加了语义为删除关系A的干预数据,此时,干预数据库中同时包括增加关系A的干预数据和删除关系A的干预数据,进而导致干预数据语义不清晰。为了解决上述问题,本发明实施例提供了另一种更新知识图谱的方法,参照图2所示,在上述步骤S101至S104的基础上,上述步骤S103(根据所述至少一条干预数据更新干预数据库中的干预数据)包括:
S201、判断所述干预数据库中是否包含各干预数据的冲突数据。
其中,任一干预数据的冲突数据为与该干预数据的语义相反的干预数据。
可选的,任一干预数据包括:实体、属性、属性值以及状态信息;所述状态信息为正或负,当所述状态信息为正时,对应的干预数据的语义为增加对应的属性值,当所述状态信息为负时,对应的干预数据的语义为删除对应的属性值;
所述判断所述干预数据库中是否包含各干预数据的冲突数据,包括:
判断所述干预数据库是否包含与各干预数据的实体、属性、属性值相同且状态信息相反的干预数据;
若所述干预数据库包含与第一干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中包含所述第一干预数据的冲突数据;
若所述干预数据库不包含与第二干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中不包含所述第二干预数据的冲突数据。
即,任一正干预SPO的冲突干预SPO为与该正干预SPO对应的SPO相同的负干预SPO;任一负干预SPO的冲突干预SPO为与该负干预SPO对应的SPO相同的正干预SPO。
例如:生成的至少一条干预SPO包括正干预SPO{A,妻子,B,正干预},由于该正干预SPO对应的SPO为{A,妻子,B},因此判断所述干预数据库中是否包含各干预数据的冲突数据的方式可以为:判断干预数据库中是否包含负干预SPO{A,妻子,B,负干预}。
再例如:生成的至少一条干预SPO包括负干预SPO{C,分类,D,负干预},由于该负干预SPO对应的SPO为{C,分类,D},因此判断所述干预数据库中是否包含各干预数据的冲突数据的方式可以为:判断干预数据库中是否包含正干预SPO{C,分类,D,正干预}。
在上述步骤S201中,若所述干预数据库中包含第一干预SPO的冲突干预SPO,则执行如下步骤S202,若所述干预数据库中不包含第一干预SPO的冲突干预SPO,则执行如下步骤S203。
S202、将所述第一干预数据的冲突数据从所述干预数据库中删除。
S203、将所述第二干预数据写入所述干预数据库中。
即,在本发明实施例中,干预操作包括正干预和负干预2种语义,分别对应的干预SPO为正干预SPO和负干预SPO,而对干预SPO本身由可以执行添加或删除2种操作,因此干预SPO包括由2种语义(正干预SPO和负干预SPO)和2种操作(添加干预SPO和删除干预SPO)构成的4种干预状态,该4种干预状态分别为:添加正干预、删除正干预、添加负干预以及删除负干预,且以SPO为粒度进行干预状态转换时,4种干预状态之间的转换关系如图3所示,包括:对空干预添加正干预,则得到正干预;对正干预删除正干预则得到空干预;对空干预添加负干预,则得到负干预;对负干预删除负干预,则得到空干预。
上述实施例对根据所目标属性值和图谱属性值生成的每一条干预数据进行判断,如果干预数据库中包含其冲突数据,则删除干预数据库中其冲突干预数据,而若干预数据库中不包含其冲突数据,则将其写入干预数据库。由于上述实施例在干预数据库中包含某一干预数据的冲突数据的情况下,会删除该干预数据的冲突数据,而不是该干预数据写入干预数据库,使干预数据库同时包含该干预数据和其冲突数据,因此本发明实施例可以避免干预数据库中的干预数据语义不清晰。
以下以干预数据、源数数据均为SPO为例如对上述实施例提供的更新知识图谱的方法进行举例说明。
示例1、实体“X”的分类,在T1-T4时刻,干预数据库中的干预SPO以及从数据源中提取的SPO如下:
T1时刻:
数据源1提供X的分类包括A和B,因此可以从数据源1中提取两个SPO,该两个SPO分别为:{X,分类,A}和{X,分类,B}。干预未介入,干预数据库为空,图谱属性值为:A、B。
T2时刻:
干预介入,目标属性值为:A、C。由于图谱属性值为:A、B,因此首先基于干预操作生成2条干预SPO,该两个干预SPO分别为:{X,分类,B,负干预}和{X,分类,C,正干预}。由于当前干预数据库为空,不包含干预SPO,不包含{X,分类,B,负干预}和{X,分类,C,正干预}的冲突干预SPO,因此将{X,分类,B,负干预}和{X,分类,C,正干预}写入干预数据库中。T2时刻后,干预数据库中包括{X,分类,B,负干预}和{X,分类,C,正干预}2条干预SPO。
T3时刻:
数据源2提供X的分类包括F,因此可以从数据源2中提取1个SPO,该SPO为:{X,分类,F},图谱属性变为A、C、F。T3时刻后,干预数据库中的干预SPO不变,仍是包括:{X,分类,B,负干预}和{X,分类,C,正干预}2条干预SPO。
T4时刻:
干预再次介入,目标属性值为:F。由于图谱属性变为A、C、F,因此首先基于干预操作生成2条干预SPO,该两个干预SPO分别为:{X,分类,A,负干预}和负干预{X,分类,C,负干预}。其次,对于{X,分类,A,负干预},由于干预数据库中不包含其冲突干预SPO,因此将{X,分类,A,负干预}写入干预数据库中,对于{X,分类,C,负干预},由于干预数据库中包含其冲突干预SPO{X,分类,C,正干预},因此将{X,分类,C,正干预}从干预数据库中删除。T4时刻后,干预数据库中包括{X,分类,A,负干预}、{X,分类,B,负干预}2条干预SPO。
最终,干预数据库中的干预SPO包括:
{X,分类,A,负干预};
{X,分类,B,负干预}。
数据源中提取的SPO包括:
{X,分类,A},来自数据源1;
{X,分类,B},来自数据源1;
{X,分类,F},来自数据源2;
由于干预数据库中的干预SPO的优先级高于从数据源中提取的SPO,因此最终构建的知识图谱中,X的分类为F。
示例2、实体“钢”的分类,在T1-T4时刻,干预数据库中的干预SPO以及从数据源中提取的SPO如下:
T1时刻:
数据源1提供“钢”的分类包括“机械配件”和“武器装备”,因此可以从数据源1中提取两个SPO,该两个SPO分别为:{钢,分类,机械配件}和{钢,分类,武器装备}。干预未介入,干预数据库为空,图谱属性值为:“机械配件”、“武器装备”。
T2时刻:
干预介入,目标属性值为:“武器装备”、“建筑材料”。由于图谱属性值为:“机械配件”、“武器装备”,因此首先基于干预操作生成2条干预SPO,该两个干预SPO分别为:{钢,分类,武器装备,负干预}和{钢,分类,建筑材料,正干预}。由于当前干预数据库为空,不包含干预SPO,因此将{钢,分类,武器装备,负干预}和{钢,分类,建筑材料,正干预}写入干预数据库中。T2时刻,干预数据库中包括{钢,分类,武器装备,负干预}和{钢,分类,建筑材料,正干预}2条干预SPO。
T3时刻:
数据源2提供“钢”的分类包括“金属”,因此可以从数据源2中提取1个SPO,该SPO为:{钢,分类,金属},图谱属性变为:“武器装备”、“建筑材料”、“金属”。T3时刻,干预数据库中的干预SPO不变,仍是包括:{钢,分类,武器装备,负干预}和{钢,分类,建筑材料,正干预}2条干预SPO。
T4时刻:
干预再次介入,目标属性值为“金属”。由于当前图谱属性变为:“武器装备”、“建筑材料”、“金属”,因此首先基于干预操作生成2条干预SPO,该两个干预SPO分别为:{钢,分类,武器装备,负干预}和负干预{钢,分类,建筑材料,负干预}。其次,对于{钢,分类,武器装备,负干预},由于干预数据库中不包含其冲突干预SPO,因此将{钢,分类,武器装备,负干预}写入干预数据库中,对于{钢,分类,建筑材料,负干预},由于干预数据库中包含其冲突干预SPO{钢,分类,建筑材料,正干预},因此将{钢,分类,建筑材料,正干预}从干预数据库中删除。T4时刻,干预数据库中包括{钢,分类,机械配件,负干预}、{钢,分类,武器装备,负干预}2条干预SPO。
最终,干预数据库中的干预SPO包括:
{钢,分类,机械配件,负干预};
{钢,分类,武器装备,负干预}。
数据源中提取的SPO包括:
{钢,分类,机械配件},来自数据源1;
{钢,分类,武器装备},来自数据源1;
{钢,分类,金属},来自数据源2;
由于干预数据库中的干预SPO的优先级高于所述从数据源中提取的SPO,因此最终构建的知识图谱中,钢的分类属性为金属。
作为本发明实施例一种可选的实施方式,参照图4所示,在上述步骤S201至S203的从基础上,本发明实施例提供的方法还包括:在上述步骤S201(判断所述干预数据库中是否包含各干预数据的冲突数据)中,若所述干预数据库中不包含第一干预SPO的冲突干预SPO,则执行上述步骤S202(将所述第一干预数据的冲突数据从所述干预数据库中删除),并在执行上述步骤S202之后,执行如下步骤S401。
S401、将所述第一干预数据写入所述干预数据库中。
示例性的,在上述示例1的T4时刻,在将{X,分类,C,正干预}从干预数据库中删除后,还会将{X,分类,C,负干预}写入干预数据库,这样T4时刻后,干预数据库中包括{X,分类,A,负干预}、{X,分类,B,负干预}以及{X,分类,C,负干预}3条干预SPO。
示例性的,在上述示例2的T4时刻,在将{钢,分类,建筑材料,正干预}从干预数据库中删除后,还会将{钢,分类,建筑材料,负干预}写入干预数据库,这样T4时刻后,干预数据库中包括{钢,分类,机械配件,负干预}、{钢,分类,武器装备,负干预}以及{钢,分类,建筑材料,正干预}3条干预SPO。
上述实施例在删除干预数据库中某一干预SPO的冲突干预SPO之后,将该干预SPO写入所述干预数据库,由于干预数据库中存在该干预SPO,且干预数据库中的干预SPO的优先级高于从数据源中提取的SPO,因此即便后续从其他数据源提取了与干预SPO语义冲突的SPO。从其他数据源提取的SPO也会被该干预SPO覆盖而不生效在知识图谱中,进而可以避免后续从数据源中提取的SPO影响知识图谱的准确性。
例如:在上述示例2的基础上,在T5时刻又从数据源3中提取了SPO{钢,分类,建筑材料},若干预数据库不包括{钢,分类,建筑材料,负干预},则最终构建的知识图谱中,钢的分类属性为金属和建筑材料。然而建筑材料是想要通过干预删除的分类,因此构建的知识图谱不准确。上述实施例进一步将{钢,分类,建筑材料,负干预}写入干预数据库中,从数据源3中提取的SPO{钢,分类,建筑材料}会被干预SPO{钢,分类,建筑材料,负干预}所覆盖,因此从数据源3中提取的SPO{钢,分类,建筑材料}不会生效到最终构建的图谱中。最终构建的知识图谱中,钢的分类属性为金属。
作为本发明实施例一种可选的实施方式,各个干预SPO在MYSQL数据库中以SP为索引进行存储。
即,干预数据库为MYSQL数据库,且干预SPO在干预数据库中以SP为索引进行存储。
以下以构建的知识图谱为实体小明的生肖为例对上述实施例进行举例说明。T1时刻,数据源1中提供小明的生肖为羊,干预未介入。T2时刻干预介入将小明的生肖修改为虎。T3时刻干预再次介入将小明的生肖修改为牛。T4时刻干预又一次介入将小明的生肖修改回羊,则各个时刻的干预操作、基于干预操作生成的干预SPO、干预数据库中的干预SPO以及用于构建知识图谱的SPO表如下表1所示:
表1
如上表1所示,
T1时刻,干预未介入,生成的干预SPO、对干预数据库的操作以及干预数据库中的SPO均为空。
T2时刻,目标属性值为:虎,图谱属性值为:羊,因此生成的干预SPO包括:{小明,生肖,羊,负干预}和{小明,生肖,虎,正干预}。由于干预数据库不包含生成的干预SPO的冲突干预SPO,因此对干预数据库的操作包括2个步骤,步骤1为:写入干预SPO{小明,生肖,羊,负干预},步骤2为:写入干预SPO{小明,生肖,虎,正干预}。干预数据库中包括2条干预SPO,分别为:{小明,生肖,羊,负干预}和{小明,生肖,虎,正干预}。
T3时刻,目标属性值为:牛,图谱属性值为:虎,因此生成的干预SPO包括:{小明,生肖,虎,负干预}和{小明,生肖,牛,正干预}。由于干预数据库包含{小明,生肖,虎,负干预}的冲突干预SPO,不包含{小明,生肖,牛,正干预}的冲突干预SPO,因此对干预数据库的操作包括3个步骤,步骤1为:删除干预SPO{小明,生肖,虎,正干预},步骤2为:写入干预SPO{小明,生肖,虎,负干预},步骤3为:写入干预SPO{小明,生肖,牛,正干预}。干预数据库中包括3条干预SPO,分别为:{小明,生肖,羊,负干预}、{小明,生肖,虎,负干预}、{小明,生肖,牛,正干预}。
T4时刻,目标属性值为:羊,图谱属性值为:牛,因此生成的干预SPO包括:{小明,生肖,牛,负干预}和{小明,生肖,羊,正干预}。由于干预数据库包含{小明,生肖,牛,负干预}的冲突干预SPO,且包含{小明,生肖,羊,正干预}的冲突干预SPO,因此对干预数据库的操作包括4个步骤,步骤1为:删除干预SPO{小明,生肖,牛,正干预},步骤2为:写入干预SPO{小明,生肖,牛,负干预},步骤3为:删除干预SPO{小明,生肖,羊,负干预},步骤4为:写入干预SPO{小明,生肖,羊,正干预}。
作为本发明实施例一种可选的实施方式,所述方法还包括:
在将至少两个实体融合为一个实体群组,且选取所述第一实体为所述实体群组的主实体的情况下,将待融合干预数据和待融合源数据的实体修改为所述第一实体,所述待融合源数据包括所述从数据源中提取的源数据中实体为所述实体群组的非主实体的各个源数据,所述待融合干预数据包括所述干预数据库中实体为所述实体群组的非主实体的各个干预数据;
根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱。
具体的,在融合多个数据源的数据构建知识图谱的过程中,数据源可能会存在名称不同但标示相同实体的实体,这种情况下会将这些名称不同但代表相同实体的实体融合为一个实体群组,且选取其中的一个实体作为该实体群组的主实体。例如:对于土豆、洋芋、薯仔,虽然名称不同,但表示的实体相同,因此可以将土豆、洋芋、薯仔融合为一个实体群组,并选取土豆作为主实体。
进一步的,在将待融合干预数据和待融合源数据的实体修改为所述第一实体之后,所述方法还包括:
判断所述干预数据库中是否包含语义相反的干预数据;
若第三干预数据和第四干预数据的语义相反,则获取所述第三干预数据和所述第四干预数据的时间戳;
获取目标干预数据,所述目标干预数据为所述第三干预数据和所述第四干预数据中时间戳在后的干预数据;
在根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱的过程中,控制所述目标干预数据生效。
承上示例所述,由于在将干预数据写入干预数据库之前会先判断是否存在其冲突数据,若存在,则先删除其冲突数据,然后再将干预数据写入预数据库,因此对于同一实体,干预数据库中必然不会存在互为冲突数据的干预数据。然而,构建知识图谱过程中可能需要将多个实体融合为同一实体群组,融合后实体群组中每一个实体对应的干预数据的实体名称都会修改为该实体群组的主实体名称,且作用于实体群组中的每一个实体,此时就可能会导致干预数据库中存在互为实体群组的冲突数据的干预数据。例如:将土豆、洋芋、薯仔融合为同一实体群组,并选举土豆为该实体群组的主实体。在T1时刻,给该实体群组增加一条干预SPO{土豆,分类,蔬菜,正干预}。在T2时刻,该实体群组加入马铃薯,并选举马铃薯为该实体群组的主实体。在T3时刻,给该实体群组增加另一条干预SPO{马铃薯,分类,蔬菜,负干预},由于干预SPO{土豆,分类,蔬菜,正干预}对应的SPO{土豆,分类,蔬菜},干预SPO{马铃薯,分类,蔬菜,负干预}对应的SPO{马铃薯,分类,蔬菜}不同,因此不会执行先删除再写入的步骤流程,而干预SPO{土豆,分类,蔬菜,正干预}和干预SPO{马铃薯,分类,蔬菜,负干预}在进行融合后会变为{土豆,分类,蔬菜,正干预}、{土豆,分类,蔬菜,负干预},进而导致干预数据语义不清楚。
对于上述会导致干预数据语义不清楚的问题,由于干预数据库感知不到实体群组内的实体变化和主实体变化,因此上述实施例通过各个干预数据的时间戳标识各干预数据的先后顺序,在实体融合的时,语义彼此冲突的干预数据,以控制时间戳在最后的干预数据生效,因此上述实施例可以在不破坏干预数据的语义的情况下,解决实体群组对应的干预数据中可能存在的语义不清楚的问题。
基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了一种更新知识图谱的装置,该装置实施例与前述方法实施例对应,为便于阅读,下述装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的更新知识图谱的装置能够执行前述方法实施例中的各个步骤,并实现相应的效果。
图5为本发明实施例提供的客户端的结构示意图,如图5所示,本实施例提供的更新知识图谱的装置500包括:
获取单元51,用于获取目标属性值,所述目标属性值为第一实体的第一属性的属性值;
生成单元52,用于根据所述目标属性值和图谱属性值生成至少一条干预数据,所述图谱属性值为知识图谱中所述第一实体的所述第一属性的属性值;
更新单元53,用于根据所述至少一条干预数据更新干预数据库中的干预数据;
构建单元54,用于根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成更新后的知识谱图。
作为本发明实施例一种可选的实施方式,所述更新单元53,具体用于在所述目标属性值中包含第一属性值,且所述图谱属性值中不包含所述第一属性值的情况下,生成用于向所述知识图谱中增加所述第一属性值的干预数据;在所述目标属性值中不包含第二属性值,且所述图谱属性值中包含所述第二属性值的情况下,则生成用于从所述知识图谱中删除所述第二属性值的干预数据。
作为本发明实施例一种可选的实施方式,所述更新单元53,还用于判断所述干预数据库中是否包含各干预数据的冲突数据;若所述干预数据库中包含第一干预数据的冲突数据,则将所述第一干预数据的冲突数据从所述干预数据库中删除;若所述干预数据库中不包含第二干预数据的冲突数据,则将所述第二干预数据写入所述干预数据库中;
其中,任一干预数据的冲突数据为与该干预数据的语义相反的干预数据。
作为本发明实施例一种可选的实施方式,所述更新单元53,还用于在所述干预数据库中包含第一干预数据的冲突数据的情况下,将所述第一干预数据写入所述干预数据库中。
作为本发明实施例一种可选的实施方式,任一干预数据包括:实体、属性、属性值以及状态信息;所述状态信息为正或负,当所述状态信息为正时,对应的干预数据的语义为增加对应的属性值,当所述状态信息为负时,对应的干预数据的语义为删除对应的属性值;
所述更新单元53,具体用于判断所述干预数据库是否包含与各干预数据的实体、属性、属性值相同且状态信息相反的干预数据;若所述干预数据库包含与第一干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中包含所述第一干预数据的冲突数据;若所述干预数据库不包含与第二干预数据的实体、属性、属性值相同且状态信息相反的干预数据,则确定所述干预数据库中不包含所述第二干预数据的冲突数据。
作为本发明实施例一种可选的实施方式,所述更新单元53,还用于在将至少两个实体融合为一个实体群组,且选取所述第一实体为所述实体群组的主实体的情况下,将待融合干预数据和待融合源数据的实体修改为所述第一实体,所述待融合源数据包括所述从数据源中提取的源数据中实体为所述实体群组的非主实体的各个源数据,所述待融合干预数据包括所述干预数据库中实体为所述实体群组的非主实体的各个干预数据;
所述构建单元54,还用于根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱。
作为本发明实施例一种可选的实施方式,所述更新单元53,还用于在将待融合干预数据和待融合源数据的实体修改为所述第一实体之后,判断所述干预数据库中是否包含语义相反的干预数据;若第三干预数据和第四干预数据的语义相反,则获取所述第三干预数据和所述第四干预数据的时间戳;获取目标干预数据,所述目标干预数据为所述第三干预数据和所述第四干预数据中时间戳在后的干预数据;在根据所述干预数据库中的干预数据和从数据源中提取的源数据进行知识图谱的构建,生成融合所述至少两个实体后的知识图谱的过程中,控制所述目标干预数据生效。
作为本发明实施例一种可选的实施方式,所述干预数据的生效优先级高于从数据源中提取的源数据的生效优先级。
基于同一发明构思,本发明实施例还提供了一种电子设备。图5为本发明实施例提供的电子设备的结构示意图,如图5所示,本实施例提供的电子设备包括:存储器51和处理器52,存储器51用于存储计算机程序;处理器52用于在调用计算机程序时执行上述实施例提供的更新知识图谱的方法的各个步骤。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述实施例提供的更新知识图谱的方法的各个步骤。
本领域技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
机译: 一种基于知识图谱的多用户游戏服务提供方法及其装置
机译: 一种用于完成和/或更新数字路线图的方法,一种用于机动车辆的装置和一种机动车辆
机译: 一种基于更新索引的终端查询结果索引更新方法及装置