CN108846543B - 一种非重叠社区集合质量度量指标的计算方法及装置 - Google Patents

一种非重叠社区集合质量度量指标的计算方法及装置 Download PDF

Info

Publication number
CN108846543B
CN108846543B CN201810386263.9A CN201810386263A CN108846543B CN 108846543 B CN108846543 B CN 108846543B CN 201810386263 A CN201810386263 A CN 201810386263A CN 108846543 B CN108846543 B CN 108846543B
Authority
CN
China
Prior art keywords
community
key
lidlist
tag data
calculating
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.)
Active
Application number
CN201810386263.9A
Other languages
English (en)
Other versions
CN108846543A (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.)
Shenzhen University
Original Assignee
Shenzhen 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 Shenzhen University filed Critical Shenzhen University
Priority to CN201810386263.9A priority Critical patent/CN108846543B/zh
Publication of CN108846543A publication Critical patent/CN108846543A/zh
Application granted granted Critical
Publication of CN108846543B publication Critical patent/CN108846543B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06393Score-carding, benchmarking or key performance indicator [KPI] analysis
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06395Quality analysis or management

Abstract

本发明提供一种非重叠社区集合质量度量指标的计算方法及装置,通过获取社区集合X、Y中各社区中的元素得到顶点集合V,根据顶点集合V中各顶点vi,分别遍历社区集合X、Y,构建社区标签数据集合LidList,之后基于对LidList的key取模的分组策略,再对集合LidList进行按key切分并分发到各进程,由各进程进行计算,得到计算各指标的所需数值,最后将其合并至单一进程进行运算,得到社区集合X、Y的度量指标。该方法采用并行分布式计算框架MPI并利用社区标签对计数加速社区集合度量指标的运算速度,同时通过该社区集合质量度量指标计算方法可同时计算出更多的度量指标,适用于大规模社区集合质量度量指标的计算。

Description

一种非重叠社区集合质量度量指标的计算方法及装置
技术领域
本发明属于计算机技术领域,尤其涉及一种非重叠社区集合质量度量指标的计算方法及装置。
背景技术
一般情况下,社交网络图可以抽象为节点和边构成的集合,其中节点表示网络中的个体,而边表示个体与个体之间的某种关联关系。社交网络图具有社区结构,其中,社区是由网络图中紧密连接节点构成,社区之间则通过稀疏的节点进行连接。社区发现即为对一个网络进行社区结构的刻画和划分,社区发现的结果则被称为社区集合。若社区集合中的节点仅属于一个社区,则该社区集合则被称为非重叠社区集合,否则被称为重叠社区集合。需要理解的是,通过不同的社区发现算法产生的社区集合是不同的,获知某一算法得到的社区集合与标准社区集合之间相似性或差异性,可通过计算相应的社区集合质量度量指标进行度量。对于非重叠社区集合,其度量指标有多个,具体分成为Measures based onCounting Pairs(基于计数对的度量),Measures based on Cluster Matching(基于簇匹配的度量)和Measures based on Mutual Information(基于交互信息的度量)三类。在现有的算法中,存在串行算法和于2014年提出的一种基于MPICH并行分布式框架的算法(简称MPI-2014算法),但是串行算法和该MPI-2014算法计算得到的度量指标仅为三类度量指标中的部分指标,同时由于现有算法无法适用于大规模社区集合,且算法效率较低,因此,提供一种适用于大规模社区集合的度量指标计算方法是亟需解决的。
发明内容
本发明的主要目的在于提供一种非重叠社区集合质量度量指标的计算方法及装置,旨在解决现有算法不适用于大规模社区集合质量度量指标计算的技术问题。
本发明提供的一种非重叠社区集合质量度量指标的计算方法包括:
步骤1、获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含所述社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合 X、Y以及顶点集合V中的元素个数;
步骤2、根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合 X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;
步骤3、按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;
步骤4、基于对LidList的key取模的分组策略,对所述社区标签数据集合 LidList进行按key切分,并将切分得到的元素分发至多个进程;由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值;
步骤5、将所述各进程得到的所述计算各指标的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。
可选的,在步骤4中,所述基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList进行按key切分,并将切分得到的元素分发至多个进程的步骤包括:
构建各进程对应的新建社区标签数据集合NewLidList;
基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList按 key进行划分至各进程对应的新建社区标签数据集合NewLidList。
可选的,在步骤4中,所述由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值的步骤包括:
将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value出现的次数;
根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指标的所需数值。
进一步地,本发明还提供了一种非重叠社区集合质量度量指标计算装置,所述非重叠社区集合质量度量指标计算装置包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的非重叠社区集合质量度量指标计算程序,所述非重叠社区集合质量度量指标计算程序包括:
获取模块,用于获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含所述社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;
处理模块,用于根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、 Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;
添加模块,用于按照元素类型(key,value),将各顶点vi对应的 ((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述 key为(key,value)类型的复合key;所述j为社区标签笛卡尔乘积数据集DicList[i] 中元素的标签;
分发模块,基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程;
运算模块,用于将所述各进程的所述计算各指标的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。
可选的,分发模块还用于构建各进程对应的新建社区标签数据集合 NewLidList;
基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList按 key进行划分至各进程对应的新建社区标签数据集合NewLidList。
可选的,分发模块还用于将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value出现的次数;
根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指标的所需数值。
有益效果
本发明提供一种非重叠社区集合质量度量指标计算方法及装置,通过获取社区集合X、Y中各社区中的元素得到顶点集合V,根据顶点集合V中各顶点vi,分别遍历社区集合X、Y,记录各顶点vi在社区集合X、Y中所属社区的标签,并构建社区标签数据集合LidList,之后基于对LidList的key取模的分组策略,将 LidList集合中的元素按key切分并分发至各个进程,由各进程运算处理得到计算各指标的所需数值,最后合并计算各指标的所需数值至单一进程进行运算,得到关于社区集合X、Y的度量指标。由于该社区集合质量度量指标计算方法采用并行算法,从而可加速社区集合质量度量指标的运算速度,同时通过该社区集合质量度量指标计算方法计算出的度量指标更加丰富,从而适用于大规模社区集合质量度量指标的计算。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明实施例提供的非重叠社区集合质量度量指标计算方法流程图;
图2为本发明实施例提供的非重叠社区集合质量度量指标计算方法与现有度量指标计算方法,在不同数据上ARI指标运行时间的比较示意图;
图3为本发明实施例提供的非重叠社区集合质量度量指标计算装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在介绍本发明社区集合质量度量指标的计算方法之前,先在此对各个指标进行介绍:需要理解的是,社区集合的度量指标分为非重叠社区集合质量度量指标和重叠社区集合质量度量指标,其中,非重叠社区集合质量度量指标分为 Measures based on CountingPairs,Measures based on Cluster Matching和 Measures based on MutualInformation三类,下面将对不同类型的度量指标进行介绍:
需要理解的是,社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的元素Xk、Yk'分别表示社区集合X、Y中的各个社区,其中K、K'分别表示社区集合X、Y中元素的个数,即社区的个数。集合社区集合X、Y中各个社区的顶点vi可以得到顶点集合,以V={v1,v2,...vn}表示,其中n表示顶点集合V中元素的个数,即顶点的个数,i为大于0小于n的整数。
对于非重叠社区集合的度量,其度量指标分为三类,具体的介绍如下:
第一类:Measures based on Counting Pairs(基于计数对的度量)
对于该类度量指标,其度量社区集合相似度的方法为计算同时在两个社区集合中以相同方式“分类”的顶点对的个数,具体的表示方法如下:
N11表示在X和Y中,被划分到一个社区中的定点对的个数;
N10(N01)表示在X(Y)中被划分到一个社区,而在Y(X)中则不被划分到一个社区的节点对的个数;
N00表示在X和Y中,不被划分到一个社区中的定点对的个数;
第一类具体有四种度量指标,包括:
1.1、统计所有被正确分类的顶点对的个数指标Rand Index(RI):
Figure GDA0003197590130000061
1.2、基于RI的改进指标Adjusted Rand Index(ARI):
Figure GDA0003197590130000062
Figure GDA0003197590130000063
1.3、排除所有顶点对在两个社区集合中都分别不属于相同集合的度量指标Jaccard Index(JI):
Figure GDA0003197590130000064
1.4、层次聚类指标Fowlkes–Mallows Index(FMI):
Figure GDA0003197590130000065
第二类:Measures based on Cluster Matching(基于簇匹配的度量)
这类指标的方法核心在于为社区集合中的每个社区找到在另一个社区集合中满足最佳匹配的社区,该最佳匹配往往是指这两个集合的交集的大小是最大的。第二类指标具体有三种,包括:
2.1、最早是在文本聚类中用于估计聚类的精确度的指标F-Measure:
Figure GDA0003197590130000071
2.2、由Van Dongen提出的一种对称式的度量方案,Normalized Van Dongen-Measure(NVD):
Figure GDA0003197590130000072
需要理解的是,Xr、Ys分别表示社区集合X、Y中的社区,其中Xr、Ys分别表示在社区集合X、Y中的第r个社区和第s个社区。
第三类:Measures based on Mutual Information(基于交互信息的度量)
该类指标是基于信息论中的熵,当应用在社区中时。其先假设V中所有的顶点都有相同的概率被随机选中,则每个顶点被放进社区Xr中的概率为 P(r)=|Xr|/|V|,而每个顶点被同时放进社区Xr和Ys中的概率为 P(r,s)=|Xr∪Ys|/|V|,Xr∈X,Yr∈Y。社区集合信息熵H(X)、互信息I(X,Y)的计算公式如下:
Figure GDA0003197590130000073
Figure GDA0003197590130000074
第三类度量指标包括:
3.1、归一化互信息指标Normalized Mutual Information(NMI):
Figure GDA0003197590130000075
3.2、信息变化指标Variation of Information(VI):
VI(X,Y)=H(X)+H(Y)-2I(X,Y)
基于上述各度量指标的计算公式,提出本发明方法各个实施例。
第一实施例
现有计算非重叠社区集合质量度量指标的计算方法有多种,包括igraph(复杂网络分析库)、scikit-learn(基于python的机器学习模块)、MPI-2014(基于MPI标准的算法)等,但是这些算法仅能计算出部分的指标,基于此,本发明新提出了一种非重叠社区集合质量度量指标的计算方法 MPI-PNCMC(MPI-Parallel Non-overlapping Community MetricComputation),基于MPI标准的并行社区度量计算),该算法是并行分布式框架的算法,相比现有的算法,本发明的计算方法速度更快,能计算的指标更加丰富。
本发明第一实施例所提供的非重叠社区集合质量度量指标的计算方法的流程图可参见图1,具体包括:
步骤1、获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含社区集合X、 Y中各社区的顶点集合V={v1,v2,...vn}。
需要理解的是,社区集合的数据是以文件存储的,因此在获取到社区集合后,可以直接获取到社区集合中,各社区的顶点,因此可以直接获取到顶点集合V。在该步骤中,所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数。
步骤2、根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合 X={X1,X2, ...,XK}、Y={Y1,Y2, ...,YK'}中的各社区,记录各顶点vi在社区集合X、Y 中所属社区的标签,得到标签Xid[i]、Yid[i]。
在本实施例中,将以Xr、Ys表示为社区集合X、Y中的社区进行解释说明,其中的r、s分别表示Xr社区、Ys社区在社区集合X、Y中的社区标签,在此进行举例说明,第一例子:若顶点v3在社区集合X、Y中的社区X2、Y1中,则在遍历社区集合X、Y后可得到标签Xid[3]=2、Yid[3]=1。i为大于0小于n的整数。后文所述的第一例子即指该处顶点v3的例子。
步骤3、按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key。
社区标签数据集合LidList中的元素类型为(key,value),其中的key为复合 key,其类型也为(key,value)。承接第一例子,顶点v3对应的社区标签数据集合 LidList={((2,0),1),((1,1),2)}。
步骤4、基于对LidList的key取模的分组策略,对所述社区标签数据集合 LidList按key进行切分,并将切分得到的元素分发至多个进程;由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值。
具体的,该步骤4中,基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList进行切分,并将切分得到的元素分发至多个进程的步骤包括:
构建各进程对应的新建社区标签数据集合NewLidList;
基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList进行划分至各进程对应的新建社区标签数据集合NewLidList。
其中,步骤4由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值的步骤包括:
将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计具有相同key的元素个数;
根据所述新建社区标签数据集合NewLidList中的元素以及所述元素个数进行运算处理,得到计算各指标的所需数值。
可以理解的是,在MPICH编程模型中,一个算法程序拥有多个进程,每个进程可以独立的处理数据。在本实施例中步骤4切分及分发的过程为:算法程序中的各进程构建其NewLidList,并独立的通过Network File System(NFS,网络文件系统)读取LidList中所有的元素,之后基于对LidList的key取模的分组策略,将符合的元素加入进程的NewLidList中,之后每个进程将NewLidList中的各个元素对key按字典序降序排序,并计数相同元素的个数,并进一步的对 NewLidList中的元素以及计算得到的相同元素的个数进行运算处理,得到计算各指标的所需数值。需要理解的是分组策略指的是,按照每个进程处理的数据量大小趋于相同的策略进行切分分组。
一般情况下字典序指按照字母顺序,或者数值小大顺序进行排列,本发明实施例中所述的字典序为数字小大顺序进行排序。社区标签数据集合LidList中的元素类型为(key,value),因此此处的对key按字典序降序排序的含义为:将元素的key值按照数值小大顺序进行降序排列。需要注意的是,社区标签数据集合 LidList中元素类型的key为(key,value)类型的复合key,在排序时是依次对复合key,即(key,value)中的key、value进行排序。继续沿用上述第一例子进行解释说明:对顶点v3对应的社区标签数据集合LidList={((2,0),1),((1,1),2)}对key按字典序降序排序的结果为:((1,1),2)、((2,0),1)。
在排序之后,统计具有相同复合key的元素的个数,最后根据NewLidList中的元素以及元素个数进行运算处理,得到计算各指标的所需数值。该处运算得到计算各指标的所需数值的算法可根据现有的计算算法计算得到,在此不再赘述。需要理解的是,该处的计算各指标的所需数值表示一个进程根据NewLidList 中的元素而计算得到的多个计算指标所需的数值,该处的指标所需数值表示计算度量指标所需要的数值,例如:若想要计算得到指标ARI(X,Y),则需要计算出N11、N00、N10、N01以及M,进一步带入公式
Figure GDA0003197590130000101
中,即可计算得到ARI(X,Y),在本例中,各指标所需数值即为N11、N00、N10、N01以及 M。
步骤5、将所述各进程的所述各指标所需数值发送至单一进程,由单一进程进行运算,输出所述社区集合X、Y的度量指标。
通过步骤4的计算,各个进程将能计算出多个指标所需数值,此时将各进程计算得到计算各指标的所需数值发送至单一进程,最后由单一进程按照预定算法进行计算,得到社区集合X、Y的度量指标。例如,进程1计算得到N10(1),进程2计算得到一个N10(2),此时进程3获取进程1与进程2的计算结果,将N10(1) 与N10(2)求和即可得到最终计算指标的所需数值N10
参见图2,图2展示了本文提出的算法MPI-PNCMC和scikit-learn,igraph 和mpi-2014在不同非重叠社区数据集上的比较,其中纵坐标是对数标度(log scale);横坐标表示不同非重叠社区数据集,包括:
DBLP:数据库系统与逻辑编程数据集。
Amazon:亚马逊数据集。
Youtube:Youtube数据集。
Wiki:多人协作的写作系统数据集。
Orkut:社交服务网络数据集。
LiveJournal:综合型SNS交友网站数据集。
Friendster:社交网站数据集。
需要理解的是,图2中的红叉表示该算法在在对应的数据集下,无法在 10000秒以内计算出结果。由图2中可知本文提出的算法效果显著,在所有的数据集下都比其他算法要快。
进一步的,本发明的算法与现有算法MPI-2014、scikit-learn、igraph所能计算的度量指标种类的比较如表1所示,且由表1可知,本发明提出的社区集合质量度量指标计算方法能计算的指标更加丰富。
表1.各类算法可计算指标比较
Figure GDA0003197590130000111
Figure GDA0003197590130000121
第二实施例
本发明所提供的非重叠社区集合质量度量指标计算装置可参见图3所示,其包括处理器301、存储器302及通信总线303,其中:
通信总线303用于实现处理器301和存储器302之间的连接通信;
处理器301用于执行存储器302中存储的非重叠社区集合质量度量指标计算程序,所述非重叠社区集合质量度量指标计算程序包括:
获取模块,用于获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;
处理模块,用于根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、 Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;
添加模块,用于按照元素类型(key,value),将各顶点vi对应的 ((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;
分发模块,用于基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程;
运算模块,用于将所述各进程的所述计算各指标的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。
在本实施例的另外一些示例中,分发模块还用于构建各进程对应的新建社区标签数据集合NewLidList;基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList进行划分至各进程对应的新建社区标签数据集合 NewLidList。
在本实施例的另外一些示例中,分发模块还用于将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value 出现的次数;根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指标的所需数值。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (6)

1.一种非重叠社区集合质量度量指标的计算方法,其特征在于,该方法包括以下步骤:
步骤1、获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含所述社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;
步骤2、根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;
步骤3、按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;
步骤4、基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程;由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值;
步骤5、将所述各进程计算得到的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。
2.如权利要求1所述的非重叠社区集合质量度量指标的计算方法,其特征在于,在步骤4中,所述基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程的步骤包括:
构建各进程对应的新建社区标签数据集合NewLidList;
基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList按key进行划分至各进程对应的新建社区标签数据集合NewLidList。
3.如权利要求2所述的非重叠社区集合质量度量指标的计算方法,其特征在于,在步骤4中,所述由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值的步骤包括:
将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value出现的次数;
根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指标的所需数值。
4.一种非重叠社区集合质量度量指标的计算装置,其特征在于,所述非重叠社区集合质量度量指标计算装置包括处理器,存储器及通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的连接通信;
所述处理器用于执行所述存储器中存储的非重叠社区集合质量度量指标计算程序,所述非重叠社区集合质量度量指标计算程序包括:
获取模块,用于获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;
处理模块,用于根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;
添加模块,用于按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;
分发模块,用于基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程;由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值;
运算模块,用于将所述各进程的所述计算各指标的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。
5.如权利要求4所述的非重叠社区集合质量度量指标计算装置,其特征在于,所述分发模块还用于构建各进程对应的新建社区标签数据集合NewLidList;
基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList按key进行划分至各进程对应的新建社区标签数据集合NewLidList。
6.如权利要求5所述的非重叠社区集合质量度量指标计算装置,其特征在于,所述分发模块还用于将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value出现的次数;
根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指标的所需数值。
CN201810386263.9A 2018-04-26 2018-04-26 一种非重叠社区集合质量度量指标的计算方法及装置 Active CN108846543B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810386263.9A CN108846543B (zh) 2018-04-26 2018-04-26 一种非重叠社区集合质量度量指标的计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810386263.9A CN108846543B (zh) 2018-04-26 2018-04-26 一种非重叠社区集合质量度量指标的计算方法及装置

Publications (2)

Publication Number Publication Date
CN108846543A CN108846543A (zh) 2018-11-20
CN108846543B true CN108846543B (zh) 2021-10-29

Family

ID=64212285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810386263.9A Active CN108846543B (zh) 2018-04-26 2018-04-26 一种非重叠社区集合质量度量指标的计算方法及装置

Country Status (1)

Country Link
CN (1) CN108846543B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111814944A (zh) * 2019-04-12 2020-10-23 北京百度网讯科技有限公司 顶点对社区的分配方法、装置以及终端

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929942A (zh) * 2012-09-27 2013-02-13 福建师范大学 一种基于集成学习的社会网络重叠社区发现方法
CN103413027A (zh) * 2013-07-22 2013-11-27 北京航空航天大学 一种社会网络重叠社区发现方法的评价方法
CN103455612A (zh) * 2013-09-07 2013-12-18 西安电子科技大学 基于两阶段策略的非重叠与重叠网络社区检测方法
CN103729475A (zh) * 2014-01-24 2014-04-16 福州大学 一种社交网络中的多标签传播重叠社区发现方法
CN105069039A (zh) * 2015-07-22 2015-11-18 山东大学 一种基于spark平台的内存迭代的重叠社区并行发现方法
CN107103053A (zh) * 2017-04-10 2017-08-29 南京信息工程大学 基于重叠节点的复杂网络社区发现方法
CN107885765A (zh) * 2017-09-25 2018-04-06 南京航空航天大学 基于烟花算法和局部双环的社区划分方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342854B2 (en) * 2013-05-08 2016-05-17 Yahoo! Inc. Identifying communities within a social network based on information propagation data
US9418142B2 (en) * 2013-05-24 2016-08-16 Google Inc. Overlapping community detection in weighted graphs

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929942A (zh) * 2012-09-27 2013-02-13 福建师范大学 一种基于集成学习的社会网络重叠社区发现方法
CN103413027A (zh) * 2013-07-22 2013-11-27 北京航空航天大学 一种社会网络重叠社区发现方法的评价方法
CN103455612A (zh) * 2013-09-07 2013-12-18 西安电子科技大学 基于两阶段策略的非重叠与重叠网络社区检测方法
CN103729475A (zh) * 2014-01-24 2014-04-16 福州大学 一种社交网络中的多标签传播重叠社区发现方法
CN105069039A (zh) * 2015-07-22 2015-11-18 山东大学 一种基于spark平台的内存迭代的重叠社区并行发现方法
CN107103053A (zh) * 2017-04-10 2017-08-29 南京信息工程大学 基于重叠节点的复杂网络社区发现方法
CN107885765A (zh) * 2017-09-25 2018-04-06 南京航空航天大学 基于烟花算法和局部双环的社区划分方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A RESTful Web Service for Non-Overlapping Community Quality Assessment with MPI;Yuhong Feng 等;《International Conference on Web Services》;20180619;第280-294页 *
基于Hadoop平台的重叠社区发现算法研究;李金朋;《中国优秀硕士学位论文全文数据库 基础科学辑》;20141015(第10(2014)期);第A002-86页 *
融入影响力的重叠社区发现算法研究;董莹莹;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140215(第02(2014)期);第I138-5页 *
面向非重叠社区质量评估的RESTful Web服务;佘松;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190715(第07(2019)期);第I139-63页 *

Also Published As

Publication number Publication date
CN108846543A (zh) 2018-11-20

Similar Documents

Publication Publication Date Title
WO2019238109A1 (zh) 一种故障根因分析的方法及装置
CN111612041B (zh) 异常用户识别方法及装置、存储介质、电子设备
CN111612039B (zh) 异常用户识别的方法及装置、存储介质、电子设备
TW201839628A (zh) 一種基於網路媒體資料流程發現並跟蹤熱點話題的方法、系統和裝置
CN104239553A (zh) 一种基于Map-Reduce框架的实体识别方法
CN108874916A (zh) 一种层叠组合协同过滤推荐方法
CN104077723A (zh) 一种社交网络推荐系统及方法
Santoro et al. Algorithmic complexity of multiplex networks
WO2023155508A1 (zh) 一种基于图卷积神经网络和知识库的论文相关性分析方法
CN108460499A (zh) 一种融合用户时间信息的微博客用户影响力排名方法
Giancristofaro et al. Predicting sentiment toward transportation in social media using visual and textual features
WO2022188646A1 (zh) 图数据处理方法、装置、设备、存储介质及程序产品
CN111460315A (zh) 社群画像构建方法、装置、设备及存储介质
CN108846543B (zh) 一种非重叠社区集合质量度量指标的计算方法及装置
Liu et al. How much topological structure is preserved by graph embeddings?
CN108898264B (zh) 一种重叠社区集合质量度量指标的计算方法及装置
CN114490667A (zh) 多维度的数据分析方法、装置、电子设备及介质
CN103793504A (zh) 一种基于用户偏好与项目属性的聚类初始点选择方法
CN110175220B (zh) 一种基于关键词位置结构分布的文档相似性度量方法及系统
Qiu et al. Tibetan Weibo user group division based on user behaviors for analyzing health problems
CN107391533A (zh) 生成图形数据库查询结果的方法及装置
CN106934489B (zh) 一种面向复杂网络的时序链路预测方法
CN112131486A (zh) 一种基于图卷积神经网络和相似性的电商网络平台用户社区发现方法
CN116244612B (zh) 一种基于自学习参数度量的http流量聚类方法及装置
Vo et al. MRAttractor: Detecting communities from large-scale graphs

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