CN109710633A - 中间人信息的确定方法、装置及智能终端 - Google Patents
中间人信息的确定方法、装置及智能终端 Download PDFInfo
- Publication number
- CN109710633A CN109710633A CN201811530793.2A CN201811530793A CN109710633A CN 109710633 A CN109710633 A CN 109710633A CN 201811530793 A CN201811530793 A CN 201811530793A CN 109710633 A CN109710633 A CN 109710633A
- Authority
- CN
- China
- Prior art keywords
- contact person
- object contact
- dimensional array
- level
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种中间人信息的确定方法、装置及智能终端,包括:当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;其中,社群关系表存储有不同联系人之间的直接联系关系;基于社群关系表,确定用于描述社群关系的二维数组;启动与二维数组对应的GPU多线程,并通过各线程对二维数组进行单层的关联关系搜索,通过多次迭代搜索得到各层级对应的关系集合;构建与各层级对应的关系集合对应的逆向映射字典;根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。本发明可以高效的对密集型大规模的社群关联关系人的路径进行查找,减少中间联系人信息的获取时间,进而提高用户的体验。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种中间人信息的确定方法、装置及智能终端。
背景技术
随着技术的发展,我们拥有了更多的方法获取社群的通联关系,目前常用方法是基于CPU(Central Processing Unit,中央处理器)的逻辑处理来获取社群的通联关系,基于CPU的逻辑处理虽实现更简单,但大量的循环或递归调用已难以在处理时间上满足客户的友好体验。在社群关系密集或规模较大时,基于CPU的逻辑计算耗时较长,中间人获取的效率较低,导致用户体验较差。
发明内容
有鉴于此,本发明的目的在于提供一种中间人信息的确定方法、装置及智能终端,可以高效的对密集型大规模的社群关联关系人的路径进行查找,减少中间联系人信息的获取时间,进而提高用户的体验。
第一方面,本发明实施例提供了一种中间人信息的确定方法,包括:当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;其中,社群关系表存储有不同联系人之间的直接联系关系;基于社群关系表,确定用于描述社群关系的二维数组;启动与二维数组对应的GPU多线程,并通过各线程对二维数组进行单层的关联关系搜索,通过多次迭代搜索得到各层级对应的关系集合;构建与各层级对应的关系集合对应的逆向映射字典;根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述基于社群关系表,确定用于描述社群关系的二维数组的步骤,包括:根据社群关系表建立关系矩阵,并将关系矩阵转换为用于描述社群关系的二维数组。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述通过各线程对二维数组进行指定层级的搜索,得到各层级对应的关系集合的步骤,包括:查找第一目标联系人的标识在二维数组的第一位置,以及第二目标联系人的标识在二维数组的第二位置;从第一位置起,逐级搜索与第一目标联系人具有直接或间接联系的中间人的信息,直至指定层级;得到指定层级联系人对应的第一集合;其中,指定层级与第二位置相邻一级;从第二位置搜索与第二目标联系人具有直接联系的中间人的信息,得到第二集合。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述根据逆向映射字典,确定与第一目标联系人和第二目标联系人之间的目标中间人的步骤,包括:确定第一集合与第二集合的交集;根据逆向映射字典和交集,从第二位置起逐级搜索与第二目标联系人具有直接或间接联系的中间人的信息,直至第一位置,以确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述方法还包括:当CPU接收第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;并基于社群关系表,确定用于描述社群关系的二维数组;通过二维数组,启动与二维数组对应的GPU多线程,并通过各线程对二维数组进行多次迭代层级的搜索,得到各层级对应的关系集合;将所述GPU多线程搜索得到的各层级对应的关系集合返回到CPU,并构建与各层级对应的关系集合对应的逆向映射字典;通过CPU根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
第二方面,本发明实施例还提供一种中间人信息的确定装置,包括:关系表获取模块,用于当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;其中,社群关系表存储有不同联系人之间的直接联系关系;数组确定模块,用于基于社群关系表,确定用于描述社群关系的二维数组;搜索模块,用于启动与二维数组对应的GPU多线程,并通过各线程对二维数组进行单层的关联关系搜索,通过多次迭代搜索得到各层级对应的关系集合;构建模块,用于构建与各层级对应的关系集合对应的逆向映射字典;中间人信息确定模块,用于根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上述数组确定模块还用于:根据社群关系表建立关系矩阵,并将关系矩阵转换为用于描述社群关系的二维数组。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,上述搜索模块还用于:查找第一目标联系人的标识在二维数组的第一位置,以及第二目标联系人的标识在二维数组的第二位置;从第一位置起,逐级搜索与第一目标联系人具有直接或间接联系的中间人的信息,直至指定层级;得到指定层级联系人对应的第一集合;其中,指定层级与第二位置相邻一级;从第二位置搜索与第二目标联系人具有直接联系的中间人的信息,得到第二集合。
第三方面,本发明实施例还提供一种智能终端,包括处理器和存储器;存储器上存储有计算机程序,计算机程序在被处理器运行时执行如第一方面至第一方面的第四种可能的实施方式任一项的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面至第一方面的第四种可能的实施方式任一项的方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的中间人信息的确定方法、装置及智能终端,当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表,然后基于社群关系表确定用于描述社群关系的二维数组,并启动与二维数组对应的GPU多线程,通过各线程对二维数组进行指定层级的搜索,得到各层级对应的关系集合,然后基于各层级对应的关系集合构建对应的逆向映射字典,并根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。本发明实施例通过GPU多线程同时对二维数组进行处理,通过牺牲空间换时间的方法来进一步减少搜索目标中间人信息所用的时间,从而提高用户体验。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种中间人信息的确定方法的流程图;
图2为本发明实施例提供的另一种中间人信息的确定方法的流程图;
图3为本发明实施例提供的一种社群关系的示意图;
图4为本发明实施例提供的一种中间人信息的确定装置的结构示意图;
图5为本发明实施例提供的一种智能终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前基于CPU的逻辑处理来获取社群的通联关系,基于CPU的逻辑处理虽实现更简单,但大量的循环或递归调用已难以在处理时间上满足客户的友好体验。在社群关系密集或规模较大时,基于CPU的逻辑计算耗时较长,中间人获取的效率较低,导致用户体验较差,基于此,本发明实施例提供的一种中间人信息的确定方法、装置及智能终端,可以高效的对密集型大规模的社群关联关系人的路径进行查找,减少中间联系人信息的获取时间,进而提高用户的体验。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种中间人信息的确定方法进行详细介绍,参见图1所示的一种中间人信息的确定方法的流程图,该方法包括以下步骤:
步骤S102,当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表。
其中,社群关系表(也即,社群转存图)存储有不同联系人之间的直接联系关系。具体的,社群关系表中存储由各个联系人的标识以及各个联系人之间直接连接关系,标识可以为编号,每个联系人均有与其唯一对应的标识。当接受到用户发送的第一目标联系人的标识和第二目标联系人的标识后,便加载社群关系表。
步骤S104,基于社群关系表,确定用于描述社群关系的二维数组。
因为为了减少搜索中间联系人所用的时间,采用GPU(Graphics ProcessingUnit,图形处理器)并行处理思想,进一步的,为了便于GPU进行并行处理,将社群关系图转换为便于处理的二维数组。具体的,首先将社群关系表通过矩阵表示,然后再将矩阵转换为二维数组。
步骤S106,启动与二维数组对应的GPU多线程,并通过各线程对二维数组进行单层的关联关系搜索,通过多次迭代搜索得到各层级对应的关系集合。
可以理解的,因为GPU并行处理思想是利用多线程同时进行搜索计算,因此应启动与二维数组的行数对应的线程数,利用每个线程分别对数组的各行进行搜索处理。另外,可以由用户自行设置搜索的层数,然后通过各线程对二维数组进行指定层级的搜索,通过多次迭代搜索得到各层级对应的关系集合。进一步的,每得到一个层级的关系集合,便将该关系集合返回至CPU,由CPU进行相应的处理。
步骤S108,构建与各层级对应的关系集合对应的逆向映射字典。
CPU接收各层级对应的关系集合,并根据各层级的关系集合构建逆向映射字典。其中,逆向映射字典即第x(x取值范围0到n-1)层搜索第x+1层的结果,我们通过字典映射存放存在的边,key为x+1层的顶点值,value为对应的x层的顶点值,因key可能和所对应的x层的多个顶点存在边,所以value是一个set集合。
步骤S110,根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
根据逆向映射字典进行倒推,依次推出第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。具体的,假设通过各线程对二维数组进行指定层级的搜索时,是通过第一目标联系人开始搜索的,则此时将从第二目标联系人开始进行搜索,依次得到将与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。在另一种实施方式中,在通过各线程对二维数组进行指定层级的搜索时,是通过第二目标联系人开始搜索的,则此时将从第一目标联系人开始进行搜索,依次得到将与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
本发明实施例提供的中间人信息的确定方法,当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表,然后基于社群关系表确定用于描述社群关系的二维数组,并启动与二维数组对应的GPU多线程,通过各线程对二维数组进行指定层级的搜索,得到各层级对应的关系集合,然后基于各层级对应的关系集合构建对应的逆向映射字典,并根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。本发明实施例通过GPU多线程同时对二维数组进行处理,通过牺牲空间换时间的方法来进一步减少搜索目标中间人信息所用的时间,从而提高用户体验。
为了便于对上述实施例进行理解,本发明实施例还提供了另一种中间人信息的确定方法,参见图2所示的另一种中间人信息的确定方法的流程图,该方法包括以下步骤:
步骤S202,当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表。
步骤S204,根据社群关系表建立关系矩阵,并将关系矩阵转换为用于描述社群关系的二维数组。
首先需要把社群关系转成顶点和边来存储。社群中的每个实体联系人是一个顶点,实体之间存在的直接联系关系称为边。当在社群中实体联系人的个数为N时,可以由顶点和边构成一个N*N的方阵。在N*N方阵中,当各定点之间存在边对应关系时,在方阵中对应位置表示为数值1;当各定点之间不存在边对应关系时,在方阵中对应位置表示为数值0,另外,将主对角线值设置为0。因为社群中的直接联系关系是非有向的属性,所以方阵为对称矩阵,进一步的,将N*N方阵下三角的数值均设为0,只保留N*N方阵上三角的边值。
为了便于GPU进行并行处理,将只保留上三角边值的N*N方阵转换为为M*2的二维数组,其中,M为N*N方阵中存在边关系的个数。进一步的,在M*2的二维数组中,仅保存各条边对应的顶点值,并且二维数组的每行存放一条边。
步骤S206,启动与二维数组对应的GPU多线程。
为了提高二维数组的搜索效率,启动GPU的线程数与二维数组对应的边数M,即每个线程处理一条边。可以理解的,因为M*2二维数组中的每行存放一条边,即二维数组中存在M条边,因此启动M条线程,通过每个线程分别处理一条M*2二维数组中的边。
步骤S208,查找第一目标联系人的标识在二维数组的第一位置,以及第二目标联系人的标识在二维数组的第二位置。
因为用户的目的是查找与第一目标联系人和第二目标联系人存在直接或者间接联系关系的中间人,因此可以直接从第一目标联系人或者第二目标联系人开始继续搜索,进而在搜索之前,需要先确定第一目标联系人的标识在二维数组的第一位置,以及第二目标联系人的标识在二维数组的第二位置。
步骤S210,从第一位置起,逐级搜索与第一目标联系人具有直接或间接联系的中间人的信息,直至指定层级;得到指定层级联系人对应的第一集合。
其中,指定层级与第二位置相邻一级。假设第一目标联系人的标识为a,第二目标联系人的标识为b,并且预先设置指定层级为n。由一个顶点a向下搜索n层,每层均返回顶点对应的边,根据各边生成对应的集合(也即,第一集合),另外,每得到一个层级的集合,便将该集合返回至CPU,由CPU进行相应的存储处理。
进一步的,从第一位置起,逐级搜索与第一目标联系人具有直接或间接联系的中间人的信息时,需要判断各层搜索的结果中是否包含顶点b,当包括顶点b时,为了避免出现搜索环路,应先将顶点b的层级关系存储于逆向映射字典,然后在继续迭代搜索的集合中将顶点b删除。
为了进一步避免出现搜索环路,应当在搜索当前层时,判断当前层的下一层的顶点是否出现在当前层的上一层中,如果存在,则在当前层的下一层中,删除该顶点,也即,先过滤线程对应边的两个顶点是否在前一层的顶点集合中,如果是则直接结束线程,如果不是则判断当前层的顶点集合是否是线程对应边的一个顶点,如果是则记录该边,否则结束线程。
步骤S212,从第二位置搜索与第二目标联系人具有直接联系的中间人的信息,得到第二集合。
当搜索到第n层时,并不是由第n层的顶点集合继续搜索n+1层的顶点集合中是否包含顶点b,而是由顶点b搜索其对应边的顶点集合,得到第二集合。
此时得到一个由顶点a搜索出的集合Sa(也即,前述第一集合),和一个由顶点b搜索出的集合Sb(也即,前述第二集合)。进一步的,如果在集合Sb中存在顶点a,则为了避免搜索重复,应将集合Sb中的顶点a删除。
步骤S214,构建与各关系集合对应的逆向映射字典。
步骤S216,确定第一集合与第二集合的交集。
在一种实施方式中,可以根据集合Sa启用对应数量的GPU线程,每个线程处理一个集合Sa的元素,并且在各线程内循环集合Sb,求集合Sa和集合Sb这两个集合的交集Sab。
另外,为了避免在输出结果(也即,前述各层级对应的关系集合)时GPU通过线程锁将结果压缩,所以需要扩展输出结果的存放空间,具体的,可以将输出结果的存放空间扩展为M。
步骤S218,根据逆向映射字典和交集,从第二位置起逐级搜索与第二目标联系人具有直接或间接联系的中间人的信息,直至第一位置,以确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
具体的,由顶点b、集合Sab以及每层的字典映射即可逆向快速搜索出所有路径。需要注意的是,逆向搜索每层时需要判断字典中是否存在key值为b的情况,如果存在则需增加起点为b的新的起始路径,从而把低于n层的中间人路径全部输出。
本发明实施例提供的中间人信息的确定方法,当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表,然后基于社群关系表确定用于描述社群关系的二维数组,并启动与二维数组对应的GPU多线程,每个线程处理二维数组中的一条边,从第一目标联系人所处的位置起,逐级搜索与第一目标联系人具有直接或间接联系的中间人的信息,直至指定层级;得到指定层级联系人对应的第一集合,然后从第二目标联系人所处的位置搜索与第二目标联系人具有直接联系的中间人的信息,得到第二集合,并基于各层关系集合构建对应的逆向映射字典,并根据逆向映射字典确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。本发明实施例通过GPU多线程同时对二维数组进行处理,通过牺牲空间换时间的方法来进一步减少搜索目标中间人信息所用的时间,从而提高用户体验。
进一步的,本发明在CPU接收第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;并基于社群关系表,确定用于描述社群关系的二维数组,然后通过二维数组,并启动与二维数组对应的GPU多线程,并通过各线程对二维数组进行指定层级的搜索,得到各层级对应的关系集合,其中,GPU每得到一个层级的关系集合,便将该层级的关系集合返回至CPU,由CPU存储各层级对应的关系集合,并构建与各层级对应的关系集合对应的逆向映射字典,最终通过CPU根据各层级对应的关系集合和逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。进而实现CPU与GPU的混合方案。
为了便于理解,本发明实施例还提供了另一种中间人信息的确定的确定方法,如图3所示的一种社群关系的示意图,其中X为第一目标联系人,Y为第二目标联系人,设定搜索层数为4。GPU首先从X逐级向下搜索,其中,X与层L1之间的关系结合如表1所示,层L1与层L2之间的关系如表2所示,层L2与层L3之间的关系如表3所示,以及层L3与层L4之间的关系。当搜索到层L4时,从Y向层L4搜索,得到如表4所示的Y与层L4之间的关系,另外,GPU每搜索一个层级的关系,便将该层级的关系返回至CPU,以使CPU根据上述关系建立对应的逆向映射字典。进一步的,当从层L2向层L3搜索时,需要判断层L3中是否出现了层L1中出现过的中间联系人,如果是,则删除;同理,当从层L3向层L4搜索时,需要判断层L4中是否出现了层L2中出现过的中间联系人,如果是,则删除。
表1
a | X |
b | X |
c | X |
d | X |
Y | X |
表2
e | a |
f | b |
h | b |
i | a,d |
j | c |
k | d |
Y | d |
表3
l | e,f |
m | f |
n | h |
o | i |
p | j |
q | i,k |
r | k |
s | h,k |
t | j |
表4
u | Y |
v | Y |
w | Y |
X | Y |
d | Y |
当正向搜索完成,将层L3搜索得到的层L4的联系人集合为前述集合Sa,并将Y搜索得到的关联关系人集合确定为前述集合Sb,然后求集合Sa和集合Sb的交集,得到集合[u,v,w]。根据Y和集合[u,v,w]进行逆向搜索,得到如表6所示的中间联系人的路径,其中,表5示出了五条中间人路径,包括Y-u-p-j-c-X、Y-v-n-h-b-X、Y-w-n-h-b-X、Y-d-X和Y-X。进一步的,每搜索到一层时,先判断该层是否存在Y,如果存在,则将该层的Y作为一个顶点,继续逐级向下搜索,以得到搜索层数小于指定层数的中间联系人路径。
表5
Y | u | p | j | c | X |
Y | v | n | h | b | X |
Y | w | n | h | b | X |
Y | d | X | |||
Y | X |
综上所述,本发明实施例通过基于GPU的并行处理思想得到中间关系人路径计算,并根据正向映射逆向归约思想,输出最短的中间人路径,本发明有效提升了社群关联的中间人查找的计算时间效率,特别是大规模密集型社群。
对于前述实施例提供的中间人信息的确定方法,本发明实施例还提供了一种中间人信息的确定装置,参见图4所示的一种中间人信息的确定装置的结构示意图,该装置包括以下部分:
关系表获取模块402,用于当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;其中,社群关系表存储有不同联系人之间的直接联系关系。
数组确定模块404,用于基于社群关系表,确定用于描述社群关系的二维数组。
搜索模块406,用于启动与二维数组对应GPU多线程,并通过各线程对二维数组进行指定层级的搜索,得到各层级对应的关系集合。
构建模块408,用于构建与各层级对应的关系集合对应的逆向映射字典。
中间人信息确定模块410,用于根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。
本发明实施例提供的中间人信息的确定装置,当关系表获取模块接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表,然后数组确定模块基于社群关系表确定用于描述社群关系的二维数组,并由搜索模块启动与二维数组对应的GPU多线程,通过各线程对二维数组进行指定层级的搜索,得到各层级对应的关系集合,然后构建模块基于各层级对应的关系集合构建对应的逆向映射字典,并通过中间人信息确定模块根据逆向映射字典,确定与第一目标联系人和第二目标联系人均具有直接或间接联系的目标中间人的信息。本发明实施例通过GPU多线程同时对二维数组进行处理,通过牺牲空间换时间的方法来进一步减少搜索目标中间人信息所用的时间,从而提高用户体验。
进一步的,上述数组确定模块还用于:根据社群关系表建立关系矩阵,并将关系矩阵转换为用于描述社群关系的二维数组。
进一步的,上述搜索模块还用于:查找第一目标联系人的标识在二维数组的第一位置,以及第二目标联系人的标识在二维数组的第二位置;从第一位置起,逐级搜索与第一目标联系人具有直接或间接联系的中间人的信息,直至指定层级;得到指定层级联系人对应的第一集合;其中,指定层级与第二位置相邻一级;从第二位置搜索与第二目标联系人具有直接联系的中间人的信息,得到第二集合。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
该设备为一种智能终端,具体的,该智能终端包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
图5为本发明实施例提供的一种智能终端的结构示意图,该智能终端100包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的中间人信息的确定方法、装置及智能终端的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。
本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种中间人信息的确定方法,其特征在于,包括:
当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;其中,所述社群关系表存储有不同联系人之间的直接联系关系;
基于所述社群关系表,确定用于描述社群关系的二维数组;
启动与所述二维数组对应的GPU多线程,并通过各所述线程对所述二维数组进行单层的关联关系搜索,通过多次迭代搜索得到各层级对应的关系集合;
构建与各所述关系集合对应的逆向映射字典;
根据所述逆向映射字典,确定与所述第一目标联系人和所述第二目标联系人均具有直接或间接联系的目标中间人的信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述社群关系表,确定用于描述社群关系的二维数组的步骤,包括:
根据所述社群关系表建立关系矩阵,并将所述关系矩阵转换为用于描述社群关系的二维数组。
3.根据权利要求1所述的方法,其特征在于,所述通过各所述线程对所述二维数组进行单层的关联关系搜索,通过多次迭代搜索得到各层级对应的关系集合的步骤,包括:
查找所述第一目标联系人的标识在所述二维数组的第一位置,以及所述第二目标联系人的标识在所述二维数组的第二位置;
从所述第一位置起,逐级搜索与所述第一目标联系人具有直接或间接联系的中间人的信息,直至指定层级;得到指定层级的联系人对应的第一集合;其中,所述指定层级与所述第二位置相邻一级;
从所述第二位置搜索与所述第二目标联系人具有直接联系的中间人的信息,得到第二集合。
4.根据权利要求3所述的方法,其特征在于,根据所述所述逆向映射字典,确定与所述第一目标联系人和所述第二目标联系人之间的目标中间人的步骤,包括:
确定所述第一集合与所述第二集合的交集;
根据所述逆向映射字典和所述交集,从所述第二位置起逐级搜索与所述第二目标联系人具有直接或间接联系的中间人的信息,直至所述第一位置,以确定与所述第一目标联系人和所述第二目标联系人均具有直接或间接联系的目标中间人的信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当CPU接收第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;并基于所述社群关系表,确定用于描述社群关系的二维数组;
通过所述二维数组,启动与所述二维数组对应的GPU多线程,并通过各所述GPU多线程对所述二维数组进行多次迭代层级的搜索,得到各层级对应的关系集合;
将所述GPU多线程搜索得到的各层级对应的关系集合返回到所述
CPU,并构建与所述各层级对应的关系集合对应的逆向映射字典;
通过所述CPU根据所述逆向映射字典,确定与所述第一目标联系人和所述第二目标联系人均具有直接或间接联系的目标中间人的信息。
6.一种中间人信息的确定装置,其特征在于,包括:
关系表获取模块,用于当接收到第一目标联系人的标识和第二目标联系人的标识时,获取预设的社群关系表;其中,所述社群关系表存储有不同联系人之间的直接联系关系;
数组确定模块,用于基于所述社群关系表,确定用于描述社群关系的二维数组;
搜索模块,用于启动与所述二维数组对应的GPU多线程,并通过各所述线程对所述二维数组进行单层的关联关系搜索,通过多次迭代搜索得到各层级对应的关系集合;
构建模块,用于构建与所述各层级对应的关系集合对应的逆向映射字典;
中间人信息确定模块,用于根据所述逆向映射字典,确定与所述第一目标联系人和所述第二目标联系人均具有直接或间接联系的目标中间人的信息。
7.根据权利要求6所述的装置,其特征在于,所述数组确定模块还用于:
根据所述社群关系表建立关系矩阵,并将所述关系矩阵转换为用于描述社群关系的二维数组。
8.根据权利要求6所述的装置,其特征在于,所述搜索模块还用于:
查找所述第一目标联系人的标识在所述二维数组的第一位置,以及所述第二目标联系人的标识在所述二维数组的第二位置;
从所述第一位置起,逐级搜索与所述第一目标联系人具有直接或间接联系的中间人的信息,直至指定层级;得到指定层级联系人对应的第一集合;其中,所述指定层级与所述第二位置相邻一级;
从所述第二位置搜索与所述第二目标联系人具有直接联系的中间人的信息,得到第二集合。
9.一种智能终端,其特征在于,包括处理器和存储器;
所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811530793.2A CN109710633B (zh) | 2018-12-13 | 2018-12-13 | 中间人信息的确定方法、装置及智能终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811530793.2A CN109710633B (zh) | 2018-12-13 | 2018-12-13 | 中间人信息的确定方法、装置及智能终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710633A true CN109710633A (zh) | 2019-05-03 |
CN109710633B CN109710633B (zh) | 2021-01-12 |
Family
ID=66255826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811530793.2A Active CN109710633B (zh) | 2018-12-13 | 2018-12-13 | 中间人信息的确定方法、装置及智能终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710633B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111815359A (zh) * | 2020-07-09 | 2020-10-23 | 北京字节跳动网络技术有限公司 | 一种目标人群确定方法、装置、电子设备和存储介质 |
CN112231488A (zh) * | 2020-09-22 | 2021-01-15 | 京东城市(北京)数字科技有限公司 | 数据处理的方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120089678A1 (en) * | 2009-07-08 | 2012-04-12 | Xobni Corporation | Locally Hosting a Social Network Using Social Data Stored on a User's Computer |
US20140317699A1 (en) * | 2013-03-15 | 2014-10-23 | Brian A. Truong | User authentication using unique hidden identifiers |
CN104838410A (zh) * | 2015-02-11 | 2015-08-12 | 深圳市仁盟互动网络科技有限公司 | 基于信任推荐的社交网络建立好友的方法及系统 |
CN105894118A (zh) * | 2016-04-01 | 2016-08-24 | 丁伟明 | 一种人际关系路径的选择方法及装置 |
US9600590B2 (en) * | 2013-09-13 | 2017-03-21 | International Business Machines Corporation | Interoperable social services |
CN106548405A (zh) * | 2016-11-10 | 2017-03-29 | 北京锐安科技有限公司 | 人际关系推算方法及装置 |
-
2018
- 2018-12-13 CN CN201811530793.2A patent/CN109710633B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120089678A1 (en) * | 2009-07-08 | 2012-04-12 | Xobni Corporation | Locally Hosting a Social Network Using Social Data Stored on a User's Computer |
US20140317699A1 (en) * | 2013-03-15 | 2014-10-23 | Brian A. Truong | User authentication using unique hidden identifiers |
US9600590B2 (en) * | 2013-09-13 | 2017-03-21 | International Business Machines Corporation | Interoperable social services |
CN104838410A (zh) * | 2015-02-11 | 2015-08-12 | 深圳市仁盟互动网络科技有限公司 | 基于信任推荐的社交网络建立好友的方法及系统 |
CN105894118A (zh) * | 2016-04-01 | 2016-08-24 | 丁伟明 | 一种人际关系路径的选择方法及装置 |
CN106548405A (zh) * | 2016-11-10 | 2017-03-29 | 北京锐安科技有限公司 | 人际关系推算方法及装置 |
Non-Patent Citations (1)
Title |
---|
李天立: "社交网络中好友推荐技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111815359A (zh) * | 2020-07-09 | 2020-10-23 | 北京字节跳动网络技术有限公司 | 一种目标人群确定方法、装置、电子设备和存储介质 |
CN111815359B (zh) * | 2020-07-09 | 2024-05-24 | 北京火山引擎科技有限公司 | 一种目标人群确定方法、装置、电子设备和存储介质 |
CN112231488A (zh) * | 2020-09-22 | 2021-01-15 | 京东城市(北京)数字科技有限公司 | 数据处理的方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109710633B (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
CN110378413A (zh) | 神经网络模型处理方法、装置以及电子设备 | |
CN104462260B (zh) | 一种基于k-核的社交网络中的社区搜索方法 | |
CN104392010B (zh) | 一种子图匹配的查询方法 | |
CN108959244A (zh) | 地址分词的方法和装置 | |
CN108388642A (zh) | 一种子图查询方法、装置及计算机可读存储介质 | |
CN104915717A (zh) | 数据处理方法、知识库推理方法及相关装置 | |
CN109710633A (zh) | 中间人信息的确定方法、装置及智能终端 | |
CN106227751A (zh) | 一种存储文件的扫描方法和扫描设备 | |
CN105677837A (zh) | 一种关联规则的挖掘方法和关联规则的挖掘装置 | |
CN108572999A (zh) | 兴趣面aoi轮廓的搜索方法及装置 | |
WO2023169095A1 (zh) | 数据处理方法、装置、设备以及介质 | |
CN114485611B (zh) | 基于北斗网格码的三维空间最短路径规划方法和装置 | |
US20220027427A1 (en) | Business searching methods and apparatuses, electronic devices and storage media | |
CN106599004A (zh) | 一种地图数据的显示方法及装置 | |
CN106156245A (zh) | 一种电子地图中的线要素合并方法及装置 | |
CN115779424B (zh) | 一种导航网格寻路方法、装置、设备及介质 | |
CN117009411A (zh) | 一种基于点云数据网格化空间存储与索引方法、装置及计算机可读存储介质 | |
CN109523634A (zh) | 优化网格的方法及装置 | |
CN110347676A (zh) | 基于关系r树的不确定性时态数据管理与查询方法 | |
CN109359224A (zh) | 一种材质的数据处理方法、装置、电子设备及存储介质 | |
CN115114289A (zh) | 一种数据查询方法、装置及电子设备 | |
CN109558521A (zh) | 大规模关键词多模匹配方法、装置以及设备 | |
CN109739839A (zh) | 数据空值处理方法、装置及终端设备 | |
CN101145967B (zh) | 一种快捷的网管资源的选择方法以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |