本申请涉及信息技术领域,尤其涉及一种关系图更新方案。
背景技术:
随着大数据时代到来,为情报分析提供了更多的信息资源保障和技术支持,促使情报分析产生重大的革新。大数据分析是大数据时代的典型特征,在巨大的数据量驱动下,情报分析面临着对大数据进行分析的强大的潜在需求,大数据情报分析正在成为一种新的服务内容和服务方式。企业和组织的调查分析人员在分析情报的时候也面临越来越多的挑战。
针对这种情况,涌现出一批专门为调查分析人员设计的可视化数据分析工具,这类可视化数据分析工具主要以关系图为主,基于关系图可以循序渐进挖掘出有用的信息。
通常,在大数据基础上循序渐进地扩展关系图,对原有的关系图重新布局并展示一个最新的关系图。当关系图发生变化时,需要对新的关系图中的节点进行布局,此时图中的节点需要发生位置的变动。
现有技术中,会让各个节点直接从原位置移动到新位置,当节点数量较多时可能会出现整个节点在整个图中满屏乱动或者节点在运动过程中出现过多交叉运动的情况,这将使得用户难以获知图中的节点是如何由原位置变化至新的位置。由于节点的变化过程表示的是关系网络中特定对象的关系的前后变化,若用户难以获知图中的节点的变化过程,将造成用户不能基于变化前后的关系图,保持关系分析的上下文联系,降低分析效率。
申请内容
本申请的一个目的是提供一种关系图更新方法及设备,用以解决关系图在变化时用户难以获知节点变化过程的问题。
为实现上述目的,本申请提供了一种关系图更新方法,该方法应用于关系图对应的数据发生变化时,关系图的更新中,该方法包括:
确定关系图中需要删除的被删除节点,以及新增节点,并在所述关系图中删除所述被删除节点;
在所述关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置;
在所述关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点。
本申请还提供了另一种关系图更新方法,该方法应用于关系图对应的数据发生变化时,关系图的更新中,该方法包括:
确定关系图中的待更新节点,其中,所述待更新节点为发生变化的数据所对应的节点;
根据所述待更新节点对应的数据的变化情况,对所述关系待更新节点执行更新动作,所述更新动作包括:节点的删除、节点的添加或节点的移动。
基于本申请的另一方面,还提供了一种关系图更新设备,该设备应用于关系图对应的数据发生变化时,关系图的更新中,该设备包括:
节点删除装置,用于确定关系图中需要删除的被删除节点,以及新增节点,并在所述关系图中删除所述被删除节点;
节点移动装置,用于在所述关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置;
节点添加装置,用于在所述关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点。
本申请还提供了另一种关系图更新设备,该设备应用于关系图对应的数据发生变化时,关系图的更新中,该设备包括:
节点确定装置,用于确定关系图中的待更新节点,其中,所述待更新节点为发生变化的数据所对应的节点;
节点更新装置,用于根据所述待更新节点对应的数据的变化情况,对所述关系待更新节点执行更新动作,所述更新动作包括:节点的删除、节点的添加或节点的移动。
此外,本申请还提供了一种关系图更新设备,该设备应用于关系图对应的数据发生变化时,关系图的更新中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:确定关系图中需要删除的被删除节点,以及新增节点,并在所述关系图中删除所述被删除节点;在所述关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置;在所述关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点。
本申请还提供了另一种关系图更新设备,该设备应用于关系图对应的数据发生变化时,关系图的更新中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:确定关系图中的待更新节点,其中,所述待更新节点为发生变化的数据所对应的节点;根据所述待更新节点对应的数据的变化情况,对所述关系待更新节点执行更新动作,所述更新动作包括:节点的删除、节点的添加或节点的移动。
本申请提供的实现节点运动的方案中,首先确定关系图中需要删除的被删除节点,以及新增节点,并在所述关系图中删除所述被删除节点,然后,在所述关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置,最后在所述关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点,由此当关系图对应的数据发生变化而引起关系图更新时,关系图中的各个节点不会直接从原位置移动到新位置,当节点数量较多时不会出现整个节点在整个图中满屏乱动或者节点在运动过程中出现过多交叉运动的情况,使得用户可以准确的获知关系图中的节点的变化过程,从而保持关系分析的上下文联系,提高分析效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例中所涉及的关系图;
图2为本申请实施例提供的一种在关系图更新方法的流程图;
图3为图1的关系图进行变化后的示意图;
图4为在对图1的关系图更新时被删除节点删除后的示意图;
图5为本申请实施例中所涉及的多个关系图;
图6为本申请实施例提供的另一种关系图更新方法的流程图;
图7为图5的多个关系图进行合并后的示意图;
图8为对图5的多个关系图进行合并时被删除节点删除后的示意图;
图9为对图5的多个关系图进行合并时重新布局保留节点后的示意图;
图10为对图5的多个关系图进行合并时添加新增节点的示意图;
图11为本申请实施例提供的另一种关系图更新方法的处理流程图;
图12为本申请实施例提供的一种关系图更新设备的结构示意图;
图13为本申请实施例提供的另一种关系图更新设备的结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,设备均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
在大数据处理中,在需要向客户或用户提供分析数据时往往会提供关系图,以体现关系图中各个节点所标识的信息之间的关联关系。由于数据的变化,关系图中的节点也会随之产生变动,例如单个关系图中的节点数量、位置等发生变化,由如图1的关系图变化为图3的关系图,还如多个独立的关系图因其节点之间生成新的关联关系而合并为一个关系图,如图5的关系图变化为图7的关系图等,或者也可以是一个关系图因节点间的关系发生变化而拆分为多个关系图。本申请实施例提供了一种在关系图中呈现节点变化信息的方法,该方法能够逐步呈现关系图中节点变化的过程。在一个关系图中,所有节点均存在直接或者间接的关联关系,其实现形式可以是所有节点均存在直接或者间接通过连线等关系标记连接在一起,例如图1即为一个关系图。节点之间的关联关系可以是用于分析的任意关系,例如用户在特定时间段内通过手机进行通话的关系,相互之间的进行交易、转账的关系等等。
图2示出了本申请实施例提供的一种关系图更新方法,用于向用户提供单个关系图中的节点数量、位置等发生变化的过程,包括以下处理步骤:关系图
步骤s101,确定关系图中需要删除的被删除节点,以及新增节点,并在关系图中删除被删除节点。其中,被删除节点是指在变化之前的关系图中存在,而在发生变化之后的关系图中不存在的节点,相对地,新增节点是指在变化之前的关系图中不存在,而在发生变化之后的关系图中存在的节点。例如图1和图3分别是某一个关系图在发生变化前后的示意图,在由图1变化得到的图3时,节点7、节点8和节点9即为被删除节点,节点10和节点11即为新增节点。
在删除关系图关系图中的被删除节点时,可以先在关系图中保留节点中确定与被删除节点对应的第二关键节点。其中,保留节点是指在变化前后的关系图中均存在的节点,例如在由图1变化得到的图3时,节点1~6均为保留节点。
在删除关系图中的被删除节点时,可以首先在关系图中保留节点中确定与被删除节点对应的第二关键节点。由于关系图实际所反映的内容是各个节点之间的关联关系,对于每个被删除节点,均存在一个对应的第二关键节点。与被删除节点之间的相关度最高的节点,即为该被删除节点所对应的第二关键节点,由此可知,该被删除节点与其对应的第二关键节点之间的相关度高于该被删除节点与其它任意节点之间的相关度。
在实际场景中,各个节点之间关系标记(例如节点之间的连线)以及相对位置会在一定程度上表现关联关系的相关度。两个节点之间存在一条直接相连的连线,即表示两者存在直接的关联关系,其相关度较高,例如图1中的节点7和节点2,若两个节点之间不存在直接相连的连线,而是需要通过其它节点的连接才存在间接的关联关系,则表示两者之间的相关度相对较低,例如图1中的节点1和节点7。
对于都存在直接的关联关系的多组节点,可以进一步基于节点之间的相对位置来比较相关度。在关系图中,节点之间的相对位置可以采用欧氏距离(欧几里德距离)来量化,例如,图1中的节点7和节点2以及节点7和节点5两组节点,均存在一条直接相连的连线,若节点7和节点2之间的欧氏距离d12小于节点7和节点5之间的欧氏距离d15,若相对位置越接近表示相关度越高,则在图1中节点7和节点2之间的相关度高于节点7和节点5之间的相关度。
例如图1所示的关系图可以表示一周之内用户之间的通话关系图,每个节点表示一个用户,节点之间直接存在直接的连线表示用户之间的进行过直接的通话,此外,对于存在直接通话的用户之间的关联关系的相关度可以基于通话次数、通话时长等因素来确定,即存在直接连线的节点之间的欧氏距离可以基于上述因素具体确定,例如通话次数越多、通话时长越长表示两者的相关度越高,其欧氏距离越近。
以图1为例,对在保留节点中确定第二关键节点的方式进行详细说明。在图1中,被删除节点为节点7~9,保留节点为1-6,首先根据节点之间的连线数量确定与每个被删除节点之间的最短路径步长最少的节点。其中,节点之间连线的步长是指节点之间连线的数量,若节点之间的存在直接的连线,则节点之间的最短路径步长为1;若节点之间的不存在直接的连线,需要通过另一节点间接相连,即节点之间最少的连线数量为2,则节点之间的最短路径步长为2;若节点之间的不存在直接的连线,需要通过另外两个节点间接相连,即节点之间最少的连线数量为3,则节点之间的最短路径步长为3。
由此可知,在图1中,对于节点7,其与节点1~6之间的最短路径步长分别为2、1、3、3、1、3,即节点7的第二关键节点可能是节点2或者节点5,由此,进一步比较节点7和节点2之间的欧氏距离d12以及节点7和节点5之间的欧氏距离d15,则可以最终确定节点7的第二关键节点为节点2。此外,对于节点8和节点9通过比较最短路径步长即可确定其第二关键节点分别为节点5和节点9。
在确定被删除节点对应的第二关键节点之后,可以在关系图中将被删除节点移动至第二关键节点的位置后,删除被删除节点。删除的方式可以采用节点合并的方式,即在关系图中将被删除节点向第二关键节点的位置移动,在达到第二关键节点的位置后,隐藏被删除节点,使得两个节点变为一个节点。在移动过程中,首先需要根据被删除节点的位置和其对应的第二关键贡献节点的位置,在关系图中确定被删除节点的移动路径。对于采用连线作为关系标记的关系图,移动路径可以是被删除节点的初始位置(变化前的关系图中的位置)至第二关键节点的初始位置(变化前的关系图中的位置)的直线。在确定移动路径之后,在关系图中,根据移动路径将被删除节点移动至其对应的第二关键贡献节点的位置。以图1所示的关系图为例,被删除节点删除之后如图4所示。
步骤s102,在关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置。保留节点的更新位置是指保留节点在变化后的关系图中的位置,若保留节点的位置在变化后的关系图中发生了改变,则表示该保留节点与其它节点之间的相关度发生了变化。以前述通话关系的场景为例,例如两个用户之间的通话次数和通话时间发生了变化,代表这两个用户的节点之间的欧氏距离也将发生变化。在实际场景中,会根据初始(变化前)的数据和最终(变化后)的数据确定保留节点的更新位置。
在将保留节点移动至对应的更新位置时,首先基于保留节点的初始位置和更新位置,在关系图中确定保留节点的移动路径,然后在关系图中,根据移动路径将保留节点移动到对应的更新位置。与移动被删除节点时类似,保留节点的移动路径也可以是保留节点的初始位置(变化前的关系图中的位置)至更新位置(变化后的关系图中的位置)的直线。
步骤s103,在关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点。
新增节点的更新位置是指新增节点在变化后的关系图中的位置,而第一关键节点是指与新增节点的相关度最高的保留节点,其确定方式分别与与保留节点的更新位置、第二关键节点类似,此处不再赘述。
以前述通话关系的场景为例,对于其中节点3所表示的用户,在第一周中该用户仅与1个用户进行过通话(仅与节点1存在连线)。若在第二周该用户还与其它两个用户进行过通话,则在根据第二周的数据变化关系图时,需要增加两个新增节点(节点10、节点11)来表示这两个新增的用户。由于节点10和节点11可能还存在与其它节点之间的关联关系,例如节点10所代表的用户还与节点6和节点4所代表的用户进行过通话,在具体确定节点10的第一关键节点,仍需要基于节点10与节点3、4和6之间的相关度来确定。
本申请实施例在添加新增节点时,首先根据新增节点对应的第一关键节点的位置和新增节点的更新位置,在关系图中确定新增节点的移动路径,然后在关系图中的第二关键节点处生成对应的新增节点,并沿移动路径移动新增节点至对应的更新位置。与移动被删除节点和保留节点时类似,新增节点的移动路径也可以是第一关键节点的位置至新增节点的更新位置的直线。
由于完整的关系图中除了节点之外,还包括连接各个节点的、表示节点之间关联关系的连线。在对关系图进行变化的过程中,作为关系标记的连线可以在相关节点移动之前或者相关节点完成移动之后进行生成或者删除,也可以在随着相关节点的移动实时进行生成或者删除,在实际场景中可以根据显示效果的需要选取任意的方式。
例如,以图1和图3所示的关系图为例,对于被删除节点8,其与节点5之间的连线可以是在被删除节点8沿其移动路径向节点5移动的过程中,随着被删除节点8的移动实时删除。而对于被删除节点7,其与节点2和节点5之间均存在连线,可以在移动之前先保留第二关键节点5之间的连线,而删除与节点2之间的连线,并在移动过程中实时删除与节点5之间的连线。而对于新增节点10,需要生成其与节点3、4和6之间的连线。若其第一关键节点为节点6,则在新增节点10沿其移动路径由节点6的位置移动至其更新位置的过程中,随着新增节点10的移动实时生成该条连线,然后在完成移动之后再生成新增节点10与节点3、4之间的连线。
对于关系图合并或者拆分的场景,由于在关系图更新的过程中,保留节点之间的关系会发生变化,因此其处理流程如图6所示,包括:
步骤s201,确定关系图中需要删除的被删除节点,以及新增节点,并在关系图中删除被删除节点。
在关系图合并或者拆分的场景中,需要删除的被删除节点是指每个关系图中的非关联节点,由于多个子图最终需要变化为一个关系图,因此各个子图中至少有一个节点在关系图发生变化后,会与其它子图中的节点生成新的关联关系(生成新的连线),而与其它子图不生成关联关系的节点即为非关联节点。相应地,与其它子图生成关联关系的节点即为关联节点,而在多张关系图合并的场景中,关系图中的保留节点为这些关联节点。例如图5和图7分别为两个关系图在合并前后的示意图,由此可知,节点3~5、节点7和节点9即为被删除节点(非关联节点),而节点1、节点2、节点6、节点8和节点10为保留节点(关联节点)。
在图5中,被删除节点3、4、5的第二关键节点为节点1,非关联节点7的第二关键节点为节点8。对于被删除节点9,由于与相关度最高的节点7同样为被删除节点,因此可以将节点7的第二关键节点作为被删除节点9的第二关键节点。以图5所示的关系图为例,被删除节点删除之后如图8所示。
步骤s202,在关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置。
步骤s203,基于保留节点之间的关系,在关系图中更新保留节点之间的关系标记。由于涉及到保留节点之间的关系变化,例如新增或者删除两个保留节点之间的关系,需要在关系图中更新这些保留节点之间的关系标记,使得用户能够清楚节点关系的变化。
例如,在多个关系图合并的场景中,由图8变化为图9时,增加了多个关系标记,这一过程所表示的信息为:节点2和节点6之间产生了新的关系,节点1和节点8之间产生了新的关系,节点2和节点8之间产生了新的关系,节点2和节点10之间产生了新的关系,节点6和节点10之间产生了新的关系,从而使得多个关系图合并为一个。而对于一个关系图拆分为多个关系图的场景,在更新保留节点之间的关系标记时,会通过删除保留节点之间的关系标记,来向用户呈现关系图数据变化情况。
步骤s204,在关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点。在关系图合并或者拆分的场景中,若非关联节点在合并或者拆分后与其对应的第二关键节点之间的关系并未发生变化,那么重新生成的部分或者全部新增节点可以是原来的非关联节点。图10示出了添加新增节点后的示意图。
此外,该方法还包括:为关系图中执行更新动作中的节点添加标记,其中,更新动作是指在关系图更新过程中使得节点发生变化的处理操作,例如可以包括节点的删除、节点的添加和节点的移动等。添加标记的方式可以包括改变这些节点的色彩、形状、大小等方式,使这些节点在执行更新动作的过程中与其它节点区别显示,便于用户了解关系图的更新过程。
在实际场景中,一次关系图的更新过程中,由于数据的变化情况不同,关系图中可能仅有节点新增的情况、或者仅有节点删除的情况、还或者仅有节点的位置关系发生变化。由此,本申请实施例还提供了一种关系图更新方法,该方法应用于关系图对应的数据发生变化时,关系图的更新中,该方法首先确定关系图中的待更新节点,其中,所述待更新节点为发生变化的数据所对应的节点,根据数据变化情况的不同,待更新节点可能是需要删除的被删除节点,也可能是新增节点,还有可能是保留节点中位置发生变化的节点。在确定待更新节点之后,可以根据这些待更新节点对应的数据的变化情况,根据所述待更新节点对应的数据的变化情况,对所述关系待更新节点执行更新动作,若是被删除节点,则更新动作为节点的删除,若是新增节点,则更新动作为节点的添加,若是位置发生变化的保留节点,则更新动作为节点的移动。
图11示出了本申请实施例提供的一种关系图的更新方法,该方法的处理步骤包括:
步骤s301,判断是否涉及关系图的图数据变化。如果图数据变化仅涉及单个关系图的变化,则可以按照步骤302~305进行分步运动保持节点运动的稳定性,如果图数据变化仅涉及关系图的合并或者拆分,则可以按照步骤306~309进行分步运动保持节点运动的稳定性。
步骤s302,确定关系图中的被删除节点和保留节点。
步骤s303,计算被删除节点的移动路径并合并。
步骤s304,重新布局节点,计算保留节点的移动路径,并移动保留节点。
步骤s305,计算新增节点的移动路径,并添加新增节点。
步骤s306,确定关系图中的被删除节点和保留节点。
步骤s307,计算被删除节点的移动路径并合并。
步骤s308,重新布局节点,计算保留节点的移动路径,并移动保留节点,更新保留节点间的关系标记。
步骤s309,计算新增节点的移动路径,并添加新增节点。
基于同一发明构思,本申请实施例中还提供了关系图更新设备,该设备对应的方法是前述实施例中关系图更新方法,并且其解决问题的原理与该方法相似。
本申请实施例提供的关系图更新设备的结构如图12所示,包括节点删除装置1210、节点移动装置1220和节点添加装置1230。其中,节点删除装置1210用于确定关系图中需要删除的被删除节点,以及新增节点,并在关系图中删除被删除节点。节点移动装置1220用于在关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置。节点添加装置1230用于在关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点。
其中,被删除节点是指在变化之前的关系图中存在,而在发生变化之后的关系图中不存在的节点,相对地,新增节点是指在变化之前的关系图中不存在,而在发生变化之后的关系图中存在的节点。例如图1和图3分别是某一个关系图在发生变化前后的示意图,在由图1变化得到的图3时,节点7、节点8和节点9即为被删除节点,节点10和节点11即为新增节点。
在删除关系图关系图中的被删除节点时,节点删除装置可以先在关系图中保留节点中确定与被删除节点对应的第二关键节点。其中,保留节点是指在变化前后的关系图中均存在的节点,例如在由图1变化得到的图3时,节点1~6均为保留节点。
在删除关系图中的被删除节点时,可以首先在关系图中保留节点中确定与被删除节点对应的第二关键节点。由于关系图实际所反映的内容是各个节点之间的关联关系,对于每个被删除节点,均存在一个对应的第二关键节点。与被删除节点之间的相关度最高的节点,即为该被删除节点所对应的第二关键节点,由此可知,该被删除节点与其对应的第二关键节点之间的相关度高于该被删除节点与其它任意节点之间的相关度。
在实际场景中,各个节点之间关系标记(例如节点之间的连线)以及相对位置会在一定程度上表现关联关系的相关度。两个节点之间存在一条直接相连的连线,即表示两者存在直接的关联关系,其相关度较高,例如图1中的节点7和节点2,若两个节点之间不存在直接相连的连线,而是需要通过其它节点的连接才存在间接的关联关系,则表示两者之间的相关度相对较低,例如图1中的节点1和节点7。
对于都存在直接的关联关系的多组节点,可以进一步基于节点之间的相对位置来比较相关度。在关系图中,节点之间的相对位置可以采用欧氏距离(欧几里德距离)来量化,例如,图1中的节点7和节点2以及节点7和节点5两组节点,均存在一条直接相连的连线,若节点7和节点2之间的欧氏距离d12小于节点7和节点5之间的欧氏距离d15,若相对位置越接近表示相关度越高,则在图1中节点7和节点2之间的相关度高于节点7和节点5之间的相关度。
例如图1所示的关系图可以表示一周之内用户之间的通话关系图,每个节点表示一个用户,节点之间直接存在直接的连线表示用户之间的进行过直接的通话,此外,对于存在直接通话的用户之间的关联关系的相关度可以基于通话次数、通话时长等因素来确定,即存在直接连线的节点之间的欧氏距离可以基于上述因素具体确定,例如通话次数越多、通话时长越长表示两者的相关度越高,其欧氏距离越近。
以图1为例,对在保留节点中确定第二关键节点的方式进行详细说明。在图1中,被删除节点为节点7~9,保留节点为1-6,首先根据节点之间的连线数量确定与每个被删除节点之间的最短路径步长最少的节点。其中,节点之间连线的步长是指节点之间连线的数量,若节点之间的存在直接的连线,则节点之间的最短路径步长为1;若节点之间的不存在直接的连线,需要通过另一节点间接相连,即节点之间最少的连线数量为2,则节点之间的最短路径步长为2;若节点之间的不存在直接的连线,需要通过另外两个节点间接相连,即节点之间最少的连线数量为3,则节点之间的最短路径步长为3。
由此可知,在图1中,对于节点7,其与节点1~6之间的最短路径步长分别为2、1、3、3、1、3,即节点7的第二关键节点可能是节点2或者节点5,由此,进一步比较节点7和节点2之间的欧氏距离d12以及节点7和节点5之间的欧氏距离d15,则可以最终确定节点7的第二关键节点为节点2。此外,对于节点8和节点9通过比较最短路径步长即可确定其第二关键节点分别为节点5和节点9。
在确定被删除节点对应的第二关键节点之后,节点删除装置可以在关系图中将被删除节点移动至第二关键节点的位置后,删除被删除节点。删除的方式可以采用节点合并的方式,即在关系图中将被删除节点向第二关键节点的位置移动,在达到第二关键节点的位置后,隐藏被删除节点,使得两个节点变为一个节点。在移动过程中,首先需要根据被删除节点的位置和其对应的第二关键贡献节点的位置,在关系图中确定被删除节点的移动路径。对于采用连线作为关系标记的关系图,移动路径可以是被删除节点的初始位置(变化前的关系图中的位置)至第二关键节点的初始位置(变化前的关系图中的位置)的直线。在确定移动路径之后,在关系图中,根据移动路径将被删除节点移动至其对应的第二关键贡献节点的位置。以图1所示的关系图为例,被删除节点删除之后如图4所示。
保留节点的更新位置是指保留节点在变化后的关系图中的位置,若保留节点的位置在变化后的关系图中发生了改变,则表示该保留节点与其它节点之间的相关度发生了变化。以前述通话关系的场景为例,例如两个用户之间的通话次数和通话时间发生了变化,代表这两个用户的节点之间的欧氏距离也将发生变化。在实际场景中,会根据初始(变化前)的数据和最终(变化后)的数据确定保留节点的更新位置。
在将保留节点移动至对应的更新位置时,节点移动装置首先基于保留节点的初始位置和更新位置,在关系图中确定保留节点的移动路径,然后在关系图中,根据移动路径将保留节点移动到对应的更新位置。与移动被删除节点时类似,保留节点的移动路径也可以是保留节点的初始位置(变化前的关系图中的位置)至更新位置(变化后的关系图中的位置)的直线。
新增节点的更新位置是指新增节点在变化后的关系图中的位置,而第一关键节点是指与新增节点的相关度最高的保留节点,其确定方式分别与与保留节点的更新位置、第二关键节点类似,此处不再赘述。
以前述通话关系的场景为例,对于其中节点3所表示的用户,在第一周中该用户仅与1个用户进行过通话(仅与节点1存在连线)。若在第二周该用户还与其它两个用户进行过通话,则在根据第二周的数据变化关系图时,需要增加两个新增节点(节点10、节点11)来表示这两个新增的用户。由于节点10和节点11可能还存在与其它节点之间的关联关系,例如节点10所代表的用户还与节点6和节点4所代表的用户进行过通话,在具体确定节点10的第一关键节点,仍需要基于节点10与节点3、4和6之间的相关度来确定。
本申请实施例在添加新增节点时,节点添加装置首先根据新增节点对应的第一关键节点的位置和新增节点的更新位置,在关系图中确定新增节点的移动路径,然后在关系图中的第二关键节点处生成对应的新增节点,并沿移动路径移动新增节点至对应的更新位置。与移动被删除节点和保留节点时类似,新增节点的移动路径也可以是第一关键节点的位置至新增节点的更新位置的直线。
由于完整的关系图中除了节点之外,还包括连接各个节点的、表示节点之间关联关系的连线。在对关系图进行变化的过程中,作为关系标记的连线可以在相关节点移动之前或者相关节点完成移动之后进行生成或者删除,也可以在随着相关节点的移动实时进行生成或者删除,在实际场景中可以根据显示效果的需要选取任意的方式。
例如,以图1和图3所示的关系图为例,对于被删除节点8,其与节点5之间的连线可以是在被删除节点8沿其移动路径向节点5移动的过程中,随着被删除节点8的移动实时删除。而对于被删除节点7,其与节点2和节点5之间均存在连线,可以在移动之前先保留第二关键节点5之间的连线,而删除与节点2之间的连线,并在移动过程中实时删除与节点5之间的连线。而对于新增节点10,需要生成其与节点3、4和6之间的连线。若其第一关键节点为节点6,则在新增节点10沿其移动路径由节点6的位置移动至其更新位置的过程中,随着新增节点10的移动实时生成该条连线,然后在完成移动之后再生成新增节点10与节点3、4之间的连线。
在本申请的另一实施例中,对于关系图合并或者拆分的场景,由于在关系图更新的过程中,保留节点之间的关系会发生变化。因此,节点删除装置1210用于确定关系图中需要删除的被删除节点,以及新增节点,并在关系图中删除被删除节点。
在关系图合并或者拆分的场景中,需要删除的被删除节点是指每个关系图中的非关联节点,由于多个子图最终需要变化为一个关系图,因此各个子图中至少有一个节点在关系图发生变化后,会与其它子图中的节点生成新的关联关系(生成新的连线),而与其它子图不生成关联关系的节点即为非关联节点。相应地,与其它子图生成关联关系的节点即为关联节点,而在多张关系图合并的场景中,关系图中的保留节点为这些关联节点。例如图5和图7分别为两个关系图在合并前后的示意图,由此可知,节点3~5、节点7和节点9即为被删除节点(非关联节点),而节点1、节点2、节点6、节点8和节点10为保留节点(关联节点)。
在图5中,被删除节点3、4、5的第二关键节点为节点1,非关联节点7的第二关键节点为节点8。对于被删除节点9,由于与相关度最高的节点7同样为被删除节点,因此可以将节点7的第二关键节点作为被删除节点9的第二关键节点。以图5所示的关系图为例,被删除节点删除之后如图8所示。
节点移动装置1220在关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置,并且基于保留节点之间的关系,在关系图中更新保留节点之间的关系标记。由于涉及到保留节点之间的关系变化,例如新增或者删除两个保留节点之间的关系,需要在关系图中更新这些保留节点之间的关系标记,使得用户能够清楚节点关系的变化。
例如,在多个关系图合并的场景中,由图8变化为图9时,增加了多个关系标记,这一过程所表示的信息为:节点2和节点6之间产生了新的关系,节点1和节点8之间产生了新的关系,节点2和节点8之间产生了新的关系,节点2和节点10之间产生了新的关系,节点6和节点10之间产生了新的关系,从而使得多个关系图合并为一个。而对于一个关系图拆分为多个关系图的场景,在更新保留节点之间的关系标记时,会通过删除保留节点之间的关系标记,来向用户呈现关系图数据变化情况。
节点添加装置1230在关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点。在关系图合并或者拆分的场景中,若非关联节点在合并或者拆分后与其对应的第二关键节点之间的关系并未发生变化,那么重新生成的部分或者全部新增节点可以是原来的非关联节点。图10示出了添加新增节点后的示意图。
此外,本申请的另一实施例中,关系图更新设备还可以包括一节点标记装置,用于为关系图中执行更新动作中的节点添加标记,其中,更新动作是指在关系图更新过程中使得节点发生变化的处理操作,例如可以包括节点的删除、节点的添加和节点的移动等。添加标记的方式可以包括改变这些节点的色彩、形状、大小等方式,使这些节点在执行更新动作的过程中与其它节点区别显示,便于用户了解关系图的更新过程。
在实际场景中,一次关系图的更新过程中,由于数据的变化情况不同,关系图中可能仅有节点新增的情况、或者仅有节点删除的情况、还或者仅有节点的位置关系发生变化。由此,本申请实施例还提供了一种关系图更新设备,该设备应用于关系图对应的数据发生变化时,关系图的更新中,包括节点确定装置和节点更新装置。在处理过程中,首先,由节点确定装置确定关系图中的待更新节点,其中,所述待更新节点为发生变化的数据所对应的节点,根据数据变化情况的不同,待更新节点可能是需要删除的被删除节点,也可能是新增节点,还有可能是保留节点中位置发生变化的节点。在确定待更新节点之后,节点更新装置可以根据这些待更新节点对应的数据的变化情况,根据所述待更新节点对应的数据的变化情况,对所述关系待更新节点执行更新动作,若是被删除节点,则更新动作为节点的删除,若是新增节点,则更新动作为节点的添加,若是位置发生变化的保留节点,则更新动作为节点的移动。
综上所述,本申请提供的实现节点运动的方案中,首先确定关系图中需要删除的被删除节点,以及新增节点,并在所述关系图中删除所述被删除节点,然后,在所述关系图中未删除的保留节点中,确定保留节点的更新位置并移动到对应的更新位置,最后在所述关系图中保留节点中确定与新增节点对应的第一关键节点,并基于该第一关键节点与新增节点的关系,确定新增节点的更新位置并添加新增节点,由此当关系图对应的数据发生变化而引起关系图更新时,关系图中的各个节点不会直接从原位置移动到新位置,当节点数量较多时不会出现整个节点在整个图中满屏乱动或者节点在运动过程中出现过多交叉运动的情况,使得用户可以准确的获知关系图中的节点的变化过程,从而保持关系分析的上下文联系,提高分析效率。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个如图13所示实现节点运动的设备,该设备包括用于存储计算机程序指令的存储器1320和用于执行程序指令的处理器1310,其中,当该计算机程序指令被该处理器执行时,触发该设备运行基于前述根据本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。