CN112052400A - 一种社交网络社区的索引和查询方法 - Google Patents
一种社交网络社区的索引和查询方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000001174 ascending effect Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social 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-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-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。
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)
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 | 杭州电子科技大学 | 一种用户周边最具影响力社区的搜索方法 |
-
2020
- 2020-08-24 CN CN202010856250.0A patent/CN112052400B/zh active Active
Patent Citations (6)
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)
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 |