掌桥专利:专业的专利平台
掌桥专利
首页

一种知识图谱数据压缩解压方法及系统

文献发布时间:2024-04-18 19:52:40


一种知识图谱数据压缩解压方法及系统

技术领域

本发明涉及知识图谱数据压缩解压技术领域,尤其是涉及一种知识图谱数据压缩解压方法及系统。

背景技术

近年来,知识图谱在越多越多的领域得到应用,图数据规模也越来越大,如何高效地处理知识图谱数据已经成为一个重要的课题,大部分课题目前都聚焦在知识图谱数据的生成、清洗和展示环节,对知识图谱数据在处理过程中出现的数据膨胀情况缺乏关注。相关的知识图谱查询动作中,预先将知识图谱的数据存储在图数据库中,当需要查询图数据库中的知识图谱数据时,利用图数据库查询知识图谱数据,图数据库返回的结果数据通常包含一个子图,该子图包含若干条路径,每条路径又由多个实体数据和关系数据组成。同一个实体或关系会成为不同路径的组成部分。

基于上述原因,导致结果数据中包含大量重复的实体和关系数据,出现明显的数据膨胀,进而影响后续对知识图谱数据的传输和计算处理效率。

因此,亟需一种能够将返回的知识图谱数据压缩,从而提升知识图谱数据的计算和处理效率。

发明内容

本发明的目的在于提供一种知识图谱数据压缩解压方法,该知识图谱数据压缩解压方法能够解决数据库返回的结果中存在大量重复的实体和关系数据,导致返回的结果数据膨胀,影响计算和处理效率。

本发明第一方面提供一种知识图谱数据压缩解压方法,方法包括:

获取知识图谱查询请求,将查询请求发送至图数据库,并记录所述知识图谱的查询条件;

所述压缩程序响应于所述图数据库的返回结果,构成第一知识图谱,其中,所述第一知识图谱包括若干路径构成的由实体和关系组成的知识图谱数据;

根据所述压缩程序去除所述第一知识图谱数据中的实体和关系的重复数据,得到第二知识图谱,其中,所述第二知识图谱表示经去除重复后的实体集合和关系集合;

根据获取知识图谱查询请求的查询条件,对所述第二知识图谱进行处理;

根据解压程序将所述第二知识图谱,重新构建所述第一知识图谱的实体和关系信息;

根据所述压缩程序以及记录知识图谱的查询条件,解析出所述第一知识图谱的实体和关系的所有路径,形成所述第一知识图谱。

可实施的一种方式中,所述获取知识图谱查询请求,将查询请求发送至图数据库,并记录知识图谱的查询条件的步骤,所述查询条件包括:知识图谱的查询起点以及遍历深度。

可实施的一种方式中,所述压缩程序响应于所述图数据库的返回结果的步骤,所述压缩程序包括Java构成的压缩程序。

可实施的一种方式中,所述根据所述压缩程序去除所述第一知识图谱数据中的实体和关系的重复数据,得到第二知识图谱的步骤,包括:

所述压缩程序遍历所述第一知识图谱数据,获取每条路径中的实体和关系;

根据主键字段值的顶点及边缘对所述实体和关系去重,以使每个实体和关系均保留一份;

将去重后的所有实体建立实体数据集,以及关系建立关系数据集。

可实施的一种方式中,所述根据获取知识图谱查询请求的查询条件,对所述第二知识图谱进行处理的步骤,包括:

根据获取知识图谱查询请求的查询条件,确定所需的传输和处理方式;

根据所述传输和处理方式,对所述第二知识图谱中的实体和关系进行属性标记和数据过滤。

可实施的一种方式中,所述根据解压程序将所述第二知识图谱,重新构建所述第一知识图谱的实体和关系信息的步骤,包括:

获取经过属性标记和数据过滤的第二知识图谱;

根据所述解压程序,重新构建所述第一知识图谱的实体和关系信息,其中,所述解压程序表示jgrapht图算法库。

可实施的一种方式中,所述根据所述压缩程序以及记录知识图谱的查询条件,解析出所述第一知识图谱的实体和关系的所有路径,形成所述第一知识图谱的步骤,包括:

通过所述jgrapht图算法库、记录知识图谱的查询条件,以及第一知识图谱的实体和关系信息,解析出所述第一知识图谱的实体和关系的路径信息。

本申请第二方面提供一种知识图谱数据压缩解压系统,包括前述的一种知识图谱数据压缩解压方法,系统包括:

获取单元,用于获取知识图谱查询请求,将查询请求发送至图数据库,并记录所述知识图谱的查询条件;

压缩单元,用于所述压缩程序响应于所述图数据库的返回结果,构成第一知识图谱,其中,所述第一知识图谱包括若干路径构成的由实体和关系组成的知识图谱数据;

去重单元,用于根据所述压缩程序去除所述第一知识图谱数据中的实体和关系的重复数据,得到第二知识图谱,其中,所述第二知识图谱表示经去除重复后的实体集合和关系集合;

处理单元,用于根据获取知识图谱查询请求的查询条件,对所述第二知识图谱进行处理;

解压单元,用于根据解压程序将所述第二知识图谱,重新构建所述第一知识图谱的实体和关系信息;

还原单元,用于根据所述压缩程序以及记录知识图谱的查询条件,解析出所述第一知识图谱的实体和关系的所有路径,形成所述第一知识图谱。

本申请第三方面提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述的一种知识图谱数据压缩解压方法的步骤。

本申请第四方面一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现前所述的一种知识图谱数据压缩解压方法的步骤。

本发明有益效果:

获取知识图谱查询请求,并将查询请求发送至图数据库,记录知识图谱的查询条件。压缩程序响应于图数据库的返回结果;将图数据库返回结果中的实体和关系的重复数据,利用压缩程序去除,从而得到第二知识图谱。接下来,根据知识图谱查询请求的查询条件,对第二知识图谱进行处理,以便压缩后的第二知识图谱能够根据查询条件,形成的返回结果被识别。这样,可以利用解压程序将第二知识图谱重新构建第一知识图谱的实体和关系信息。最后,再利用压缩程序以及记录知识图谱的查询条件,解析出第一知识图谱的实体和关系的所有路径,形成由多条路径构成的第一知识图谱。

附图说明

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

图1为本发明一种知识图谱数据压缩解压方法的流程图;

图2为本发明一种知识图谱数据压缩解压方法的知识图谱示例;

图3为本发明一种知识图谱数据压缩解压方法中删除重复的实体和关系的流程图;

图4为本发明一种知识图谱数据压缩解压方法中根据主键字段值去重的示意图;

图5为本发明一种知识图谱数据压缩解压方法中对第二知识图谱进行处理的流程图;

图6为本发明一种知识图谱数据压缩解压方法中JSON图数据库中数据压缩前后对比的示意图;

图7为本发明一种知识图谱数据压缩解压方法中构建图对象的流程图;

图8为本发明一种知识图谱数据压缩解压方法中实施例的示意图。

具体实施方式

在本发明实施例的描述中,所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。

上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存(Flash Memory)、光纤、光盘只读存储器(CD-ROM)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。

上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(Radio Frequency,RF)或者以上任意合适的组合。

可以以汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,例如:Java、Smalltalk、C++,还包括常规的过程式程序设计语言,例如:C语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(LAN)或广域网(WAN),可以连接到用户计算机,也可以连接到外部计算机。

本发明实施例通过流程图和/或方框图描述所提供的方法、装置、电子设备。

应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。

也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。

也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。

本发明实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。

在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。

下面对本申请中出现的名词进行解释:

jgrapht图算法库,jgrapht是一个由Java编写的开源库,专注于数据结构和算法。

如图1所示,本申请第一方面提供一种知识图谱数据压缩解压方法,方法包括:

S100:获取知识图谱查询请求,将查询请求发送至图数据库,并记录知识图谱的查询条件。

其中,根据获得的知识图谱查询请求,图数据库响应于查询请求,并在图数据库中记录图查询的起点以及遍历深度等,以便能够根据查询的起点以及遍历深度返回查询结果。

具体地,查询条件包括知识图谱的查询起点以及遍历深度。

如图2所示,需要说明地是,查询起点表示了知识图谱想要查询内容的起点,遍历深度表示基于该起点,要查询的内容深度。示例性地,图2中,将H点为起点,遍历深度为2度的情况下,得到的遍历结果为H-I,H-G,H-D,H-B和H-A,若以A点为起点,遍历深度为2度的情况下,得到的遍历结果为A-I和A-B。若以J为起点,遍历深度为3度的情况下,得到的遍历结果为J-I-A和J-I-H。

S200:压缩程序响应于图数据库的返回结果。

其中,第一知识图谱包括若干路径构成的由实体和关系组成的知识图谱数据。

具体地,压缩程序Java构成的压缩程序。数据库向Java压缩程序返回由若干路径构成的第一知识图谱。路径中包含了实体和关系。可以理解地是,压缩程序并不限于Java程序,还可以如C++、Python等程序开发的程序向图数据库发起知识图谱查询请求,并记录图查询起点、遍历深度等查询条件。

需要说明地是,第一知识图谱即为知识图谱查询请求中想要获得的知识图谱,但是由于第一知识图谱为图数据库中的原始知识图谱,其中包含了较多重复的实体以及关系,数显了明显的数据膨胀,此种知识图谱将会影响后续对知识图谱数据的传输和计算处理效率。因此,需要对知识图谱数据进行压缩。

S300:根据压缩程序去除第一知识图谱数据中的实体和关系的重复数据,得到第二知识图谱。

其中,第二知识图谱表示经去除重复后的实体集合和关系集合。

具体地,利用压缩程序对得到的第一知识图谱数据进行相应下压缩,在压缩的过程中将实体中重复的内容删除,以及将关系中重复的内容删除。删除步骤包括S301至S303。

如图3所示,S301:压缩程序遍历第一知识图谱数据,获取每条路径中的实体和关系。

其中,压缩程序遍历第一知识图谱数据,还可以根据获取知识图谱查询请求中查询条件所要求的遍历深度,遍历第一知识图谱数据,通过对第一知识图谱的遍历,得到每条路径中的实体和关系。

S302:根据主键字段值的顶点及边缘对实体和关系去重,以使每个实体和关系均保留一份。

如图4所示,其中,根据顶点vertex_id以及边缘edge_id,对第一知识图谱中的进行去重。示例性地,在图数据库中以vertex1为起点,查找所有的2度以内的邻居实体及关系,与vertex1相邻的2度以内的邻居分别为vertex2和vertex3,其中,vertex1与vertex2的关系为Edge1_2,vertex1与vertex3的关系为Edge1_3,vertex2和vertex3的关系为Edge2_3。所有的路径包括Path1、Path2和Path3,具体地,Path1路径为vertex1与vertex2关系为Edge1_2;Path2路径依次为vertex1至vertex2的关系为Edge1_2,vertex2和vertex3的关系为Edge2_3;Path3的路径为vertex1与vertex3的关系为Edge1_3。

需要说明地是,压缩程序并不限于Java程序,也可以使用其它语言(如C++、Python等)开发的程序根据主键值对图数据库返回的实体和关系进行去重,完成图数据的压缩操作。亦可以理解地是,不局限于根据主键进行去重,也可以使用每条数据所有属性值或md5值等方式,对图数据库返回的实体和关系进行去重。本实施例并不加以限定。

S303:将去重后的所有实体建立实体数据集,以及关系建立关系数据集。

其中,根据前述内容中得到的实体和关系,去除重复的内容,建立实体数据集和关系数据集。

本实施例中,利用压缩程序将第一知识图谱中的重复的数据剔除,仅保留一份,用于分别建立实体数据集和关系数据集,其中,实体数据集可以表示为Set,关系数据集可表示为Set

需要说明地是,剔除重复的实体和关系后,在呈现给使用者时还需要进行还原,以便使用者能够查询到知识图谱数据,通过如下步骤实现。

S400:根据获取知识图谱查询请求的查询条件,对第二知识图谱进行处理。

其中,根据步骤S100中的获取知识图谱查询请求中记录知识图谱的查询条件,例如,当发出知识图谱查询请求时,会对返回的数据如传输方式和计算处理方式具有相应的要求,以便方便对返回知识图谱的使用,即进行业务所需的传输和计算处理。

具体地,对第二知识图谱进行处理的步骤包括S401和S402。

如图5所示,S401:根据获取知识图谱查询请求的查询条件,确定所需的传输和处理方式。

其中,获取知识图谱查询请求的查询条件中需要包括返回的传输方式以及处理方式,传输方式为数据在信道上传送所采取的方式,处理方式为在实体数据集和关系数据集中抽取出有价值的信息,即数据转换成信息的过程。

S402:根据传输和处理方式,对第二知识图谱中的实体和关系进行属性标记和数据过滤。

如图6所示,进一步地,传输和处理方式表示的是对实体数据集和关系数据集中的实体和关系进行属性标记和数据过滤,通过上述方式即可通过实体和关系的属性进行定位查找,并且设定数据过滤调节,筛选掉非使用的实体和关系。

本实施例中,通过传输和处理方式形成的第二知识图谱相较于第一知识图谱数据相比,能够明显降低对网络、CPU、内存等硬件资源的消耗。

S500:根据解压程序将第二知识图谱,重新构建第一知识图谱的实体和关系信息。

其中,利用解压程序还原第一知识图谱的实体和关系信息之前,先要对构建出图对象,图对象表示为org.jgrapht.Graph。

具体地,构建图对象的步骤包括S501和S502。

如图7所示,S501:获取经过属性标记和数据过滤的第二知识图谱。

其中,根据属性标记和数据过滤,得到第二知识图谱中实体数据集和关系数据集中对应得到实体和关系数据。

S502:根据解压程序,重新构建第一知识图谱的实体和关系信息,其中,解压程序表示为jgrapht图算法库。

其中,利用jgrapht图算法库,将第一知识图谱的实体和关系信息重新构建,形成图对象org.jgrapht.Graph,以便后续步骤中还原路径时,将图对象org.jgrapht.Graph作为路径上的信息。

需要说明地是,解压程序不局限于使用jgrapht图算法库,也可以使用其它图算法库(如Guava com.google.common.graph、Apache commons graph等)或其它方式根据压缩后的图数据构建出图对象。

S600:根据压缩程序以及记录知识图谱的查询条件,解析出第一知识图谱的实体和关系的所有路径,形成第一知识图谱。

其中,根据得到的图对象org.jgrapht.Graph,以及步骤S100中获取知识图谱查询请求的查询条件,还原(重构)第一知识图谱,以便请求者使用。

具体地,通过jgrapht图算法库、记录知识图谱的查询条件,以及第一知识图谱的实体和关系信息,解析出第一知识图谱的实体和关系的路径信息。

需要说明地是,不局限于使用jgrapht图算法库,也可以使用其它图算法库(如Guava com.google.common.graph、Apache commons graph等)将原始的图查询条件(起点、遍历深度),从压缩后的图对象中提取出路径信息。

需要说明地是,一个知识图谱包括了实体、关系及路径,在步骤S 500中得到实体和关系,在步骤S600中得到路径,在将得到的实体、关系和路径结合即可还原(重构)第一知识图谱,即想要通过步骤S100中发出查询请求者想要得到的知识图谱。

实施例

如图8所示,本申请提供一种知识图谱数据压缩解压方法,包括如下步骤:

步骤一:使用Java程序向图数据库发起知识图谱查询请求,并记录图查询起点、遍历深度等查询条件。

步骤二:图数据库向Java程序返回由若干路径构成的原始知识图谱数据(第一知识图谱)结果。

步骤三:使用Java应用程序遍历上一步获得的原始知识图谱结果数据,取出每条路径中的实体数据Vertex和关系数据Edge,分别根据主键字段值vertex_id和edge_id进行去重操作,每个实体和关系均保留一份,得到去重后的实体数据集合Set和关系数据集合Set(第二知识图谱)。

步骤四:将上一步骤压缩得到的第二知识图谱的实体数据集合Set和关系数据集合Set进行业务所需的传输和计算处理,如进行属性标记、数据过滤等,并与直接处理原始路径数据相比,能够明显降低对网络、CPU、内存等硬件资源的消耗。

步骤五:使用jgrapht图算法库将上一步处理后的实体数据集合Set和关系数据集合Set在内存中重新构建出图对象org.jgrapht.Graph。

步骤六:使用jgrapht图算法库结合步骤一记录的图查询起点、遍历深度等查询条件,可通过上一步构建出的图对象org.jgrapht.Graph,重新解析出所有的路径信息。

本申请第二方面提供一种知识图谱数据压缩解压系统,其特征在于,包括前述的一种知识图谱数据压缩解压方法,系统包括:

获取单元,用于获取知识图谱查询请求,将查询请求发送至图数据库,并记录知识图谱的查询条件;

压缩单元,用于压缩程序响应于图数据库的返回结果,构成第一知识图谱,其中,第一知识图谱包括若干路径构成的由实体和关系组成的知识图谱数据;

去重单元,用于根据压缩程序去除第一知识图谱数据中的实体和关系的重复数据,得到第二知识图谱,其中,第二知识图谱表示经去除重复后的实体集合和关系集合;

处理单元,用于根据获取知识图谱查询请求的查询条件,对第二知识图谱进行处理;

解压单元,用于根据解压程序将第二知识图谱,重新构建第一知识图谱的实体和关系信息;

还原单元,用于根据压缩程序以及记录知识图谱的查询条件,解析出第一知识图谱的实体和关系的所有路径,形成第一知识图谱。

本申请第三方面提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,处理器执行计算机程序时实现前述的一种知识图谱数据压缩解压方法的步骤。

本申请第四方面提供一种计算机存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现前述的一种知识图谱数据压缩解压方法的步骤。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 一种基于BFS森林的社交网络中的知识图谱数据布局方法
  • 一种基于数据图谱、信息图谱、知识图谱和智慧图谱关联架构的分类问答系统设计方法
  • 投入决定的基于数据图谱、信息图谱和知识图谱的物联网监控系统设计方法
技术分类

06120116330417