CN112052400A - 一种社交网络社区的索引和查询方法 - Google Patents

一种社交网络社区的索引和查询方法 Download PDF

Info

Publication number
CN112052400A
CN112052400A CN202010856250.0A CN202010856250A CN112052400A CN 112052400 A CN112052400 A CN 112052400A CN 202010856250 A CN202010856250 A CN 202010856250A CN 112052400 A CN112052400 A CN 112052400A
Authority
CN
China
Prior art keywords
vertex
node
social network
core
tree
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
Application number
CN202010856250.0A
Other languages
English (en)
Other versions
CN112052400B (zh
Inventor
徐建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202010856250.0A priority Critical patent/CN112052400B/zh
Publication of CN112052400A publication Critical patent/CN112052400A/zh
Application granted granted Critical
Publication of CN112052400B publication Critical patent/CN112052400B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种社交网络社区的索引和查询方法。本发明步骤如下:步骤(1)、社交网络的抽象;步骤(2)、k‑核心社区的树形索引的构建;步骤(3)、建立社交网络图顶点‑树节点的对应关系;步骤(4)、用户顶点u所属社区的查询。本发明通过对社交网络中的社区建立索引结构,提高了查询特定结点所属社区的效率,这对大规模社交网络中的社区检索技术发展具有积极意义。本发明通过构建一个社交网络中所有社区的树形结构,用树形结构存储社区之间的嵌套关系。在一次性构建了整个社交网络的社区索引结构以后,就可以高效快捷地进行针对某个用户结点的所属社区查询。

Description

一种社交网络社区的索引和查询方法
技术领域
本发明属于计算机应用技术领域,涉及社交网络应用中一种社区索引和查询的方法,特别适用于大规模社交网络中的社区检索查询,例如大规模社交网络中输入一个用户,查询其所属的社区等。
背景技术
随着计算机网络的普及,社交网络应用已经进入人们的日常生活。在众多的社交网络应用服务中,社区(Communities)是理解社交网络构成的基石,网络中的社区检索查询是其中一种关键的服务,它是许多其它服务的基础。但由于社交网络应用的用户数量数以万计,进行快捷地所属社区查询是十分困难的。
本发明给定一个社交网络G(V,E),V是这个社交网络中所有用户的集合,E是网络中用户之间的联系(边)。社交网络G(V,E)包含有多个社交网络社区。
本发明所指的社交网络社区是指k-核心社区。本发明的k-核心社区定义为社交网络G(V,E)中的一个连通子图,而且社区中的用户顶点满足一定的紧密性标准,即符合下两个条件:
1.k-核心社区C中所有的用户顶点至少有k(k是非负整数)个邻接顶点,也即该顶点的度数大于等于k;
2.k-核心社区C中的任意两个用户顶点之间都存在一条路径,也即社区中任意两个用户之间是连通的。
本发明涉及的用户所属社区查询,是指输入一个用户顶点q,检索其所属的所有k-核心社区{C},返回检索到的所有k-核心社区{C}中规模最大(用户数最多)的k-核心社区CMax
在查询一个用户所属社区的过程中,需要遍历用户所属的所有社区,计算并比较它们的大小,在大规模社交网络中,这个过程计算复杂。因此降低此类计算的复杂度具有很大的迫切性。由社区紧密性标准的条件,可知社区定义具有嵌套特性。给定两个整型数i,j,如果i<j,那么在一个j-核心社区中,由于其所有用户顶点的度都大于等于j,显然他们也大于i,因此该社区也符合i核心社区的定义。
发明内容
本发明的目的在于克服现有技术中的不足,针对社交网络中用户所属社区的查询特点,根据社区之间存在的嵌套关系构建树形索引结构,提供一种高效的检索方法。其创造性在于构建索引结构以后,以后的查询中不需要再次遍历用户所属的所有社区,通过访问树形索引即可返回查询结果。
本发明的方法具体步骤如下:
步骤(1)、社交网络的抽象;
将一个社交网络图G(V,E)中的所有用户及用户之间的关系抽象,用顶点的集合V表示用户;用户之间的关系表示为两个顶点之间的边,用边的集合E来表示。
步骤(2)、k-核心社区的树形索引的构建;
对于社交网络图G(V,E)中的任一顶点v,顶点v的核心号码是在所有包含顶点v的k-核心社区中,将最大的k值作为该顶点v的核心号码。
树形索引的构建步骤包括社交网络图G中k-核心社区的解构,即分解社交网络图G,获得社交网络图G中所有顶点的核心号码。然后从根节点的0-核心社区出发,依次构建树形索引。
所述的根节点是没有邻接顶点的顶点;
具体过程如下:
2-1社交网络图G中k-核心社区的解构;
k-核心社区的解构的基本过程是在社交网络图G中,按照顶点的度数,迭代删除所有度数小于k的顶点,以及该顶点相邻的边,那么剩下的图就是k-核心社区。
所述剩下的图所包含的顶点的核心号码就至少大于等于k。也就是说,当一个顶点从社交网络图G中被删除时,其度数就是它的核心号码。所述的度数是指该顶点包含的邻接顶点的个数,即与当前顶点相连的边的条数。
2-1-1使用列表Core表示每个顶点的核心号码,列表Core中元素格式为(v,ck),其中v表示顶点,ck表示顶点v的核心号码;初始化列表Core为空。
使用数组degree存储遍历到的顶点的当前度数,例如degree[v]表示遍历到的顶点v的当前度数;
2-1-2统计社交网络图G中所有顶点的度数;并对所有顶点根据其度数进行升序排序;
2-1-3若社交网络图G非空,取社交网络图G中升序排序后度数最小的顶点v,进行以下操作:
将当前顶点v的当前度数degree[v]赋值到顶点v的核心号码ck,***Core列表,即在Core列表中***(v,degree[v]);
对于顶点v的每个邻接顶点u进行以下操作:
如果degree[u]>degree[v]则degree[u]=degree[u]-1,即确定顶点v的核心号码后,其邻接顶点u的度数减1;
从社交网络图G中删除顶点v,重新对顶点集合V中所有顶点按度数排序,重复步骤2-1-3。
2-2构建k-核心社区的树形索引;
2-2-1将Core列表按每个元素的核心号码进行升序排序;
2-2-2初始化根节点root,根节点包含信息(0,Vk0,Vk0-else)。其中,0表示根节点的k值为0,Vk0是社交网络图G中所有k-核心号码为0的顶点集合,Vk0-else为所有k-核心号码非0的顶点集合;
初始化临时树节点node,节点包含信息(q,Vkq,Vkq-else)。其中,q表示临时树节点node的k核心号码值为q,Vqk是社交网络图G中所有k-核心号码为q的顶点集合,Vkq-else为所有k-核心号码非q的顶点集合;
2-2-3初始化队列nodeQueueA;
2-2-4将根节点root推入队列nodeQueueA中,即:
nodeQueueA.push(root);
2-2-5当队列nodeQueueA非空时,进行以下操作:
使用临时树节点node保存队列弹出的头部元素nodeQueueA.pop();
对树节点node包含的节点集合node.Vk-else中所有节点,在社交网络图G中查找由这些顶点构成的连通子图,得到连通子图集合{Gsub1,Gsub2,…Gsubn};
对连通子图集合{Gsub1,Gsub2,…Gsubn}中子图根据顺序进行以下操作:
①取子图Gsubi中所有顶点,并将所有顶点按其k-核心号码进行排序;其中i为自然数,取值为1,2…n中的一个值;
②将所以顶点中的最小k-核心号码值,设置为临时变量i;
生成一个新的树节点node-sub,该树节点node-sub包含信息(i,Vki,Vki-else),此处树节点node-sub的i值就是前述最小k-核心号码值,集合Vki包含子图Gsubi中核心号码为i的所有顶点,集合Vki-else包含这个连通子图中核心号码非i的顶点;
③将新生成树节点node-sub置为树节点node的子节点;
④然后将树节点node-sub推入队列nodeQueueA.push(node-sub)。
对上述所有子图进行步骤①~步骤④的操作,将树节点node包含的顶点集合node.Vk-else置空。
步骤(3)、建立社交网络图顶点-树节点的对应关系;
使用一个有序列表MAP存储社交网络图顶点-树节点的对应关系,对步骤(2)中构建的树形索引进行深度优先遍历,获得社交网络图顶点-树节点的对应关系后,向列表MAP添加该对应关系;
从根节点root出发对树形索引进行深度优先遍历,具体实现为:
3-1初始化堆栈nodeStack;
3-2初始化临时树节点node;
3-3将根节点root压入堆栈,即nodeStack.push(root)
/*循环遍历以节点root为根的树,堆栈nodeStack为空时结束*/
3-4当堆栈nodeStack非空时执行以下操作:
3-4-1使用临时树节点node保存堆栈顶部值nodeStack.top;
3-4-2遍历临时树节点node中社交网络图的顶点,为每个顶点在列表MAP中添加社交网络图顶点-树节点对应关系;
3-4-3弹出堆栈顶部元素:nodeStack.pop();
3-4.4遍历临时树节点node的孩子节点,如果一个序号为i的孩子节点childi非空,则压入堆栈nodeStack:nodeStack.push(node->childi);
3-5完成遍历以后,以顶点ID为关键字对列表MAP进行排序。
步骤(4)、用户顶点u所属社区的查询。
4-1初始化临时树节点node;
4-2查询列表MAP,获得顶点u在树形索引中的节点位置,并将该节点位置赋予临时树节点node;
4-3对临时树节点node进行广度优先遍历,返回以临时树节点node为根节点的子树中包含的所有顶点的并集,执行以下操作:
4-3-1初始化队列nodeQueue;
4-3-2初始化临时树节点node;
4-3-3初始化返回值k=node.k;
4-3-4初始化返回的顶点集合
Figure BDA0002646455180000051
4-3-5将临时树节点node推入队列nodeQueue:nodeQueue.push(node);
/*循环遍历以临时树节点node为根的树,队列nodeQueue为空时结束*/
4-3-6当队列nodeQueue非空时执行以下操作:
使用临时树节点node保存弹出的队列头部元素nodeQueue.pop();
合并临时树节点node包含的顶点至集合Vu
遍历临时树节点node的孩子节点,如果一个序号为i的孩子节点childi非空,则压入队列nodeQueue:nodeQueue.push(node->childi);
4-4返回顶点u的k值和所属的社区所包含的顶点集合Vu
本发明有益效果如下:
本发明通过对社交网络中的社区建立索引结构,提高了查询特定用户顶点所属社区的效率,这对大规模社交网络中的社区检索技术发展具有积极意义。
本发明通过构建一个社交网络中所有社区的树形结构,用树形结构存储社区之间的嵌套关系。在一次性构建了整个社交网络的社区索引结构以后,就可以高效快捷地进行针对某个用户顶点的所属社区查询。
附图说明
图1一个包含11个顶点的图G;
图2 k-核心社区的嵌套关系;
图3 k-核心社区的树形索引;
图4本发明的查询过程示意图。
表1各顶点的度数;
表2各顶点按度数排序;
表2-A各顶点按度数排序;
表2-C各顶点按度数排序;
表2-J各顶点按度数排序;
表3各顶点的k-核心号码;
表4顶点存储位置映射表;
具体的实施方式
下面结合附图和实施例对本发明作进一步说明。
图1是一个包含11个顶点的图G,以下以该图为例简述一次实施。
表1是图G中各顶点的度数。
表2是各顶点按度数排序。
表3是各顶点的k-核心号码,由本发明步骤2-1执行所得。
例如顶点A、C、J的k-核心社区的解构过程如下:
取图G中升序排序后度数最小的顶点A,进行以下操作:
向Core列表***(A,0);
对于顶点A的每个邻接顶点u(即u∈Neighbors(A))进行以下操作:
顶点A度数为零,无邻接顶点,此处不需操作;
从图G中删除顶点A,重新对顶点集合V中所有顶点按度数排序。排序后如表2-A所示;
取图G中升序排序后度数最小的顶点C,进行以下操作:
Core列表***(C,1);
对于顶点C的每个邻接顶点E(即E∈Neighbors(C))进行以下操作:
由于degree[E]=3>degree[C]=1因此
degree[E]=degree[E]–1=2(C顶点的邻接顶点的度数减1);
从图G中删除顶点C,重新对顶点集合V中所有顶点按度数排序。排序后如表2-C所示;
取图G中升序排序后度数最小的顶点J,进行以下操作:
Core列表***(J,1);
对于顶点J的每个邻接点L(即L∈Neighbors(J))进行以下操作:
由于degree[L]=3>degree[J]=1因此
degree[L]=degree[L]–1=2(J邻接顶点的度数减1);
从图G中删除J顶点,重新对V中所有顶点按度数排序。排序后如表2-J所示;
对图G剩余顶点重复A、C、J的操作过程,得到表3所示各顶点的k-核心号码。
表1各顶点的度数
A B C D E F G H I J L
0 2 1 2 3 3 4 3 4 1 3
表2顶点按度数排序
A C J B D E F H L I G
0 1 1 2 2 3 3 3 3 4 4
表2-A顶点按度数排序
C J B D E F H L I G
1 1 2 2 3 3 3 3 4 4
表2-C顶点按度数排序
J B D E F H L I G
1 2 2 2 3 3 3 4 4
表2-J顶点按度数排序
B D E L F H I G
2 2 2 2 3 3 4 4
表3顶点的k-核心号码
A C J L B D E F G H I
0 1 1 2 2 2 2 3 3 3 3
表4顶点存储位置映射
A B C D E F G H I J L
N0 N3 N1 N3 N3 N5 N5 N5 N5 N2 N4
图2是一个k-核心社区的嵌套关系例子,显然顶点集合{F,G,H,I,J,L}构成一个连通子图,其最小k-核心号码为1,它依次包含{F,G,H,I,L}和{F,G,H,I},这三个k-核心社区存在嵌套关系;
图3k-核心社区的树形索引,由本发明步骤2-2执行所得。
初始化根节点root,包含信息(0,Vk0,Vk0-else),其中,根节点的k值为0,Vk0包含图G中所有k-核心号码为0的节点{A},Vk0-else包含所有k-核心号码非0的节点集合{C,J,L,B,D,E,F,G,H,I};
将根节点推入队列;
当队列非空时,取队列首部一个节点node,进行以下操作:
对node节点包含的集合node.Vk-else中所有节点,在图G中查找由这些顶点构成的连通子图,得到连通子图集合{Gsub1,Gsub2,…Gsubn},此处为{C,B,D,E}和{J,L,F,G,H,I};
对顶点集合{C,B,D,E}进行以下操作:
生成一个新的树节点node-sub,包含信息(1,{C},{B,D,E}),此处树节点node-sub的i值就是这个顶点最小k-核心号码值1,集合Vki包含子图Gsubi中核心号码为1的所有顶点{C},集合Vki-else包含这个连通子图中核心号码非1的顶点{B,D,E};
将新生成树节点node-sub置为树节点node的子节点;
将树节点node-sub推入队列;
对顶点集合{J,L,F,G,H,I}进行同样的操作:
将node节点的node.Vk-else集合置空。
对队列中所有元素进行同样的操作,直至队列为空,得到图3的k-核心社区的树形索引右侧所示树形索引。
表4图顶点-树节点存储位置映射表,是执行步骤(3),即建立社交网络图顶点-树节点对应关系后得到的;
使用一个有序列表MAP存储社交网络图顶点-树节点的对应关系,对步骤(2)中构建的树形索引结构进行深度优先遍历,获得社交网络图顶点-树节点的对应关系后,添加该对应关系至MAP列表。
图4详细描述了图1网络的一次社区搜索过程:
例如查询顶点J所属的最大k-核心社区,从表4所示的图顶点-树节点存储位置映射表查到对应的树节点N2后,对以节点N2为根的子树进行广度优先遍历,返回该子树中所有树节点所包含的图顶点的并集,如{J,L,F,G,H,I},然后返回该结果。

Claims (7)

1.一种社交网络社区的索引和查询方法,其特征在于针对社交网络中用户所属社区的查询特点,通过构建树形索引结构,提供一种高效的检索方法,在构建索引结构后,之后的查询中不需要再次遍历用户所属的所有社区,通过访问树形索引即可返回查询结果;具体步骤如下:步骤(1)、社交网络的抽象;步骤(2)、k-核心社区的树形索引的构建;步骤(3)、建立社交网络图顶点-树节点的对应关系;步骤(4)、用户顶点u所属社区的查询。
2.根据权利要求1所述的一种社交网络社区的索引和查询方法,其特征在步骤(1)所述的社交网络的抽象,具体实现如下:
将一个社交网络图G(V,E)中的所有用户及用户之间的关系抽象,用顶点的集合V表示用户;用户之间的关系表示为两个顶点之间的边,用边的集合E来表示。
3.根据权利要求1或2所述的一种社交网络社区的索引和查询方法,其特征在于步骤(2)所述的k-核心社区的树形索引的构建,具体实现如下:
对于社交网络图G(V,E)中的任一顶点v,顶点v的核心号码是指在所有包含顶点v的k-核心社区中,最大的k值作为该顶点v的核心号码;
树形索引的构建步骤包括社交网络图G中k-核心社区的解构,即分解社交网络图G,获得社交网络图G中所有顶点的核心号码;然后从根节点的0-核心社区出发,依次构建树形索引。
4.根据权利要求3所述的一种社交网络社区的索引和查询方法,其特征在于所述的社交网络图G中k-核心社区的解构的具体实现如下:
k-核心社区的解构的基本过程是在社交网络图G中,按照顶点的度数,迭代删除所有度数小于k的顶点,以及该顶点相邻的边,那么剩下的图就是k-核心社区;
所述剩下的图所包含的顶点的核心号码就至少大于等于k;
2-1-1使用列表Core表示每个顶点的核心号码,列表Core中元素格式为(v,ck),其中v表示结点,ck表示顶点v的核心号码;初始化列表Core为空;
使用数组degree存储遍历到的顶点的当前度数,例如degree[v]表示遍历到的顶点v的当前度数;
2-1-2统计社交网络图G中所有顶点的度数;并对所有顶点根据其度数进行升序排序;
2-1-3若社交网络图G非空,取社交网络图G中升序排序后度数最小的顶点v,进行以下操作:
将当前顶点v的当前度数degree[v]赋值到顶点v的核心号码ck,***Core列表,即在Core列表中***(v,degree[v]);
对于顶点v的每个邻接顶点u进行以下操作:
如果degree[u]>degree[v]则degree[u]=degree[u]-1,即确定顶点v的核心号码后,其邻接顶点u的度数减1;
从社交网络图G中删除顶点v,重新对顶点集合V中所有顶点按度数排序,重复步骤2-1-3。
5.根据权利要求4所述的一种社交网络社区的索引和查询方法,其特征在于所述的构建k-核心社区的树形索引的具体实现如下:
2-2-1将Core列表按每个元素的核心号码进行升序排序;
2-2-2初始化根节点root,根节点包含信息(0,Vk0,Vk0-else);其中,0表示根节点的k值为0,Vk0是社交网络图G中所有k-核心号码为0的顶点集合,Vk0-else为所有k-核心号码非0的顶点集合;
初始化临时树节点node,节点包含信息(q,Vkq,Vkq-else);其中,q表示临时树节点node的k核心号码值为q,Vqk是社交网络图G中所有k-核心号码为q的顶点集合,Vkq-else为所有k-核心号码非q的顶点集合;
2-2-3初始化队列nodeQueueA;
2-2-4将根节点root推入队列nodeQueueA中;
2-2-5当队列nodeQueueA非空时,进行以下操作:
使用临时树节点node保存队列弹出的头部元素nodeQueueA.pop();
对树节点node包含的节点集合node.Vk-else中所有节点,在社交网络图G中查找由这些顶点构成的连通子图,得到连通子图集合{Gsub1,Gsub2,…Gsubn};
对连通子图集合{Gsub1,Gsub2,…Gsubn}中子图根据顺序进行以下操作:
①取子图Gsubi中所有顶点,并将所有顶点按其k-核心号码进行排序;其中i为自然数,取值为1,2…n中的一个值;
②将所以顶点中的最小k-核心号码值,设置为临时变量i;
生成一个新的树节点node-sub,该树节点node-sub包含信息(i,Vki,Vki-else),此处树节点node-sub的i值就是前述最小k-核心号码值,集合Vki包含子图Gsubi中核心号码为i的所有顶点,集合Vki-else包含这个连通子图中核心号码非i的顶点;
③将新生成树节点node-sub置为树节点node的子节点;
④然后将树节点node-sub推入队列;
对上述所有子图进行步骤①~步骤④的操作,将树节点node包含的顶点集合node.Vk-else置空。
6.根据权利要求5所述的一种社交网络社区的索引和查询方法,其特征在于所述步骤(3)建立社交网络图顶点-树节点的对应关系,具体实现如下:
使用一个有序列表MAP存储社交网络图顶点-树节点的对应关系,对步骤(2)中构建的树形索引进行深度优先遍历,获得社交网络图顶点-树节点的对应关系后,向列表MAP添加该对应关系;
从根节点root出发对树形索引进行深度优先遍历,具体实现为:
3-1初始化堆栈nodeStack;
3-2初始化临时树节点node;
3-3将根节点root压入堆栈;
3-4当堆栈nodeStack非空时执行以下操作:
3-4-1使用临时树节点node保存堆栈顶部值nodeStack.top;
3-4-2遍历临时树节点node中社交网络图的顶点,为每个顶点在列表MAP中添加社交网络图顶点-树节点对应关系;
3-4-3弹出堆栈顶部元素:nodeStack.pop();
3-4-4遍历临时树节点node的孩子节点,如果一个序号为i的孩子节点childi非空,则压入堆栈nodeStack:nodeStack.push(node->childi);
3-5完成遍历以后,以顶点ID为关键字对列表MAP进行排序。
7.根据权利要求6所述的一种社交网络社区的索引和查询方法,其特征在于所述步骤(4)所述的用户顶点u所属社区的查询,具体实现如下:
4-1初始化临时树节点node;
4-2查询列表MAP,获得顶点u在树形索引中的节点位置,并将该节点位置赋予临时树节点node;
4-3对临时树节点node进行广度优先遍历,返回以临时树节点node为根节点的子树中包含的所有顶点的并集,执行以下操作:
4-3-1初始化队列nodeQueue;
4-3-2初始化临时树节点node;
4-3-3初始化返回值k=node.k;
4-3-4初始化返回的顶点集合
Figure FDA0002646455170000041
4-3-5将临时树节点node推入队列nodeQueue;
4-3-6当队列nodeQueue非空时执行以下操作:
使用临时树节点node保存弹出的队列头部元素nodeQueue.pop();
合并临时树节点node包含的顶点至集合Vu
遍历临时树节点node的孩子节点,如果一个序号为i的孩子节点childi非空,则压入队列nodeQueue:nodeQueue.push(node->childi);
4-4返回顶点u的k值和所属的社区所包含的顶点集合Vu
CN202010856250.0A 2020-08-24 2020-08-24 一种社交网络社区的索引和查询方法 Active CN112052400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010856250.0A CN112052400B (zh) 2020-08-24 2020-08-24 一种社交网络社区的索引和查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010856250.0A CN112052400B (zh) 2020-08-24 2020-08-24 一种社交网络社区的索引和查询方法

Publications (2)

Publication Number Publication Date
CN112052400A true CN112052400A (zh) 2020-12-08
CN112052400B CN112052400B (zh) 2021-12-28

Family

ID=73599160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010856250.0A Active CN112052400B (zh) 2020-08-24 2020-08-24 一种社交网络社区的索引和查询方法

Country Status (1)

Country Link
CN (1) CN112052400B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332475A1 (en) * 2009-06-25 2010-12-30 University Of Tennessee Research Foundation Method and apparatus for predicting object properties and events using similarity-based information retrieval and modeling
US20130227104A1 (en) * 2012-02-28 2013-08-29 Samsung Electronics Co., Ltd. Topic-based community index generation apparatus and method and topic-based community searching apparatus and method
CN104462260A (zh) * 2014-11-21 2015-03-25 深圳大学 一种基于k-核的社区搜索算法
CN105956024A (zh) * 2016-04-25 2016-09-21 华中科技大学 一种社交网络用户关系搜索方法
CN107145545A (zh) * 2017-04-18 2017-09-08 东北大学 一种基于位置的社交网络中Top‑k区域用户文本数据推荐方法
CN111177578A (zh) * 2019-12-16 2020-05-19 杭州电子科技大学 一种用户周边最具影响力社区的搜索方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332475A1 (en) * 2009-06-25 2010-12-30 University Of Tennessee Research Foundation Method and apparatus for predicting object properties and events using similarity-based information retrieval and modeling
US20130227104A1 (en) * 2012-02-28 2013-08-29 Samsung Electronics Co., Ltd. Topic-based community index generation apparatus and method and topic-based community searching apparatus and method
CN104462260A (zh) * 2014-11-21 2015-03-25 深圳大学 一种基于k-核的社区搜索算法
CN105956024A (zh) * 2016-04-25 2016-09-21 华中科技大学 一种社交网络用户关系搜索方法
CN107145545A (zh) * 2017-04-18 2017-09-08 东北大学 一种基于位置的社交网络中Top‑k区域用户文本数据推荐方法
CN111177578A (zh) * 2019-12-16 2020-05-19 杭州电子科技大学 一种用户周边最具影响力社区的搜索方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JIAN XU等: ""Personalized top-n influential community search over large social networks"", 《WORLD WIDE WEB》 *
岳灵茜: ""多层网络中的连通k-核社区发现和搜索问题研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
陈健琦: ""大规模数据图上的影响力社区发现方法研究"", 《中国优秀硕士学位论文全文数据库 基础科学辑》 *

Also Published As

Publication number Publication date
CN112052400B (zh) 2021-12-28

Similar Documents

Publication Publication Date Title
Sharathkumar et al. Algorithms for the transportation problem in geometric settings
Akutsu et al. On the approximation of largest common subtrees and largest common point sets
CN111309979A (zh) 一种基于邻居向量的RDF Top-k查询方法
CN109241355A (zh) 有向无环图的可达性查询方法、***及可读存储介质
CN105808729B (zh) 基于论文间引用关系的学术大数据分析方法
Behnezhad et al. Parallel graph algorithms in constant adaptive rounds: Theory meets practice
Kock Polynomial functors and combinatorial Dyson–Schwinger equations
CN112052400B (zh) 一种社交网络社区的索引和查询方法
Elkin A new compressed cover tree for k-nearest neighbour search and the stable-under-noise mergegram of a point cloud
Blelloch et al. Succinct representations of separable graphs
Katriel et al. Elementary graph algorithms in external memory
CN106933844B (zh) 面向大规模rdf数据的可达性查询索引的构建方法
CN107077481B (zh) 信息处理装置、信息处理方法和计算机可读存储介质
CN114691958A (zh) 一种基于用户地理位置多样性的社区检索方法
Balliu et al. On the node-averaged complexity of locally checkable problems on trees
Chakraborty et al. Indexing graph search trees and applications
Nakano et al. A new approach to graph recognition and applications to distance-hereditary graphs
Snyder et al. Worst‐case greedy matchings in the unit d‐cube
Ganapathy et al. On contract-and-refine transformations between phylogenetic trees
CN114490799A (zh) 单个图的频繁子图挖掘方法及装置
CN112328543A (zh) 一种基于标签属性图结构的ifc数据高效存储方法
Anderson et al. Deterministic and Work-Efficient Parallel Batch-Dynamic Trees in Low Span
Pe'er et al. On minimum spanning trees
CN108768718B (zh) 基于mRNA/miRNA节点的二分网络模块识别方法、***及存储介质
Jansson et al. A Faster Algorithm for Constructing the Frequency Difference Consensus Tree

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