一种社区发现方法及装置制造方法及图纸

技术编号:21404892 阅读:86 留言:0更新日期:2019-06-19 08:44
本发明专利技术提供一种社区发现方法及装置,包括获得网络数据中每两个社区节点合并的模块度变化量,判断模块度变化量中的最大值是否为负数。若最大值为非负数,则将模块度变化量为最大值的至少两个社区节点合并成一个社区节点;若最大值为负数,则停止社区发现。本发明专利技术实现一次性对多个社区节点的合并,从而减少合并的迭代次数,提高社区发现的效率。

【技术实现步骤摘要】
一种社区发现方法及装置
本专利技术涉及互联网通信领域,尤其涉及一种社区发现方法及装置。
技术介绍
社区结构,即由一组内部连接紧密,与外部连接稀疏的节点集合构成的结构,广泛的存在于真实的复杂网络中。比如,在社交网络中,一个社区对应着一个朋友圈;在万维网中,一个社区中的网页都蕴含相同的主题。研究社区结构对认识节点内部关联、信息传播、兴趣点推荐等都具有重要的意义。目前比较经典的几种社区发现算法有基于图算法的社区发现算法,基于启发式的社区发现算法和基于模块度优化的社区发现算法。在实现本专利技术过程中,专利技术人发现现有典型的基于模块度优化的社区发现方法CNM和fastnewman在进行每轮迭代时,只能合并两个社区节点,社区发现过程中迭代的次数较多,需要花费较多时间。
技术实现思路
有鉴于此,本专利技术实施例所解决的技术问题之一在于提供一种社区发现方法及装置,用以克服现有技术中每轮迭代只能合并两个社区节点,合并效率较低的缺陷,达到减少迭代次数,节省时间的效果。本专利技术实施例提供一种社区发现方法,所述方法包括:获得网络数据中每两个社区节点合并的模块度变化量;判断所述模块度变化量中的最大值是否为负数;若所述最大值为非负数,则将所述模块度变化量为所述最大值的至少两个社区节点合并成一个社区节点。可选地,在本专利技术一具体实施例中,所述方法还包括:若所述最大值为负数,则停止社区发现。可选地,在本专利技术一具体实施例中,所述获得网络数据中每两个社区节点合并的模块度变化量的步骤包括:从所述网络数据中,获得所述网络的边数信息和社区节点数量信息;根据所述网络的边数信息,获得每两个社区节点合并的模块度变化量。可选地,在本专利技术一具体实施例中,在所述从所述网络数据中,获得所述网络的边数信息和社区节点数量信息的步骤之前,还包括:利用GraphX加载网络数据。可选地,在本专利技术一具体实施例中,所述若所述最大值为非负数,则将所述模块度变化量为所述最大值的至少两个社区节点合并成一个社区节点的步骤之后,还包括:更新所述网络数据中每两个社区节点合并的模块度变化量。可选地,在本专利技术一具体实施例中,所述更新所述网络数据中每两个社区节点合并的模块度变化量的步骤包括:利用合并前的所述网络数据中每两个社区节点合并的模块度变化量,更新合并后的所述网络数据中每两个社区节点合并的模块度变化量。本专利技术还提供一种社区发现装置,所述装置包括:获得模块,用于获得网络数据中每两个社区节点合并的模块度变化量;判断模块,用于判断所述模块度变化量中的最大值是否为负数;合并模块,用于若所述最大值为非负数,则将所述模块度变化量为所述最大值的至少两个社区节点合并成一个社区节点。可选地,在本专利技术一具体实施例中,所述装置还包括:停止模块,用于若最大值为负数,则停止社区发现。可选地,在本专利技术一具体实施例中,所述获得模块包括:信息获得单元,用于从所述网络数据中,获得所述网络的边数信息和社区节点数量信息;第一计算单元,用于根据所述网络的边数信息,获得每两个社区节点合并的模块度变化量。可选地,在本专利技术一具体实施例中,所述装置还包括:更新模块,用于更新网络数据中每两个社区节点合并的模块度变化量。可选地,在本专利技术一具体实施例中,所述装置还包括:加载模块,用于利用GraphX加载网络数据。可选地,在本专利技术一具体实施例中,所述更新模块还包括第二计算单元,用于利用合并前的所述网络数据中每两个社区节点合并的模块度变化量,更新合并后的所述网络数据中每两个社区节点合并的模块度变化量。由以上技术方案可见,本专利技术实施例提供的社区发现方法及装置,通过获得网络数据中每两个社区节点合并的模块度变化量,判断模块度变化量中的最大值是否为负数。若最大值为非负数,则将模块度变化量为最大值的至少两个社区节点合并成一个社区节点。可实现一次性对多个社区节点的合并,从而减少合并的迭代次数,提高社区发现的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本专利技术一实施例的社区发现方法的流程示意图;图2为本专利技术另一实施例的社区发现方法的流程示意图;图3为本专利技术一实施例的社区发现装置的结构框图;图4为本专利技术另一实施例的社区发现装置的结构框图。具体实施方式为了使本领域的人员更好地理解本专利技术实施例中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术实施例一部分实施例,而不是全部的实施例。基于本专利技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本专利技术实施例保护的范围。图1是本专利技术一实施例的社区发现方法流程示意图,如图1所示,一种社区发现方法包括:步骤S101,获得网络数据中每两个社区节点合并的模块度变化量。本实施例中,网络的图结构中包含多个社区节点,可将所有社区节点进行两两组合,形成多个社区节点对;分别计算出每两个节点合并前和合并后的网络模块度,两者之间的差值即为每两个社区节点合并的模块度变化量。具体的,计算模块度的方法不限。模块度也称模块化度量值,是目前常用的一种衡量网络社区结构强度的方法,计算方法有多种,例如MarkNewMan提出的基于贪心思想提出的贪心算法FN,以及VincentBlondel等人提出的快速模块度优化算法。步骤S102,判断模块度变化量中的最大值是否为负数。本实施例中,模块度值的大小主要取决于网络的社区划分情况,可以用来定量的衡量网络社区划分质量,其值越接近1,表示网络划分出的社区结构的强度越强,也就是划分质量越好。因此当模块度变化量为负数时,表明社区划分质量已经达到最优,可停止社区发现;反之当模块度变化量为非负数时,可通过合并社区节点来优化社区划分质量。步骤S103,若最大值为非负数,则将模块度变化量为最大值的至少两个社区节点合并成一个社区节点。本实施例中,根据定理“在任何无向图中,必定存在两个或两个以上的节点的度完全相同”,可在网络中查找出一对或者多对具有最大模块度变化量的社区节点,并将模块度变化量为最大值的至少两个社区节点合并成一个社区节点,以优化社区划分质量。由以上本专利技术实施例可见,本专利技术可以获得网络数据中每两个社区节点合并的模块度变化量,判断模块度变化量中的最大值是否为负数。若最大值为非负数,则将模块度变化量为最大值的至少两个社区节点合并成一个社区节点。因此本专利技术实施例可以通过判断模块度变化量,实现一次性对多个社区节点的合并,从而减少合并的迭代次数,提高社区发现的效率。图2是本专利技术另一实施例的社区发现流程示意图,如图2所示,一种社区发现方法包括:步骤S201,利用GraphX加载网络数据。本实施例中,可利用Spark平台的GraphX加载复杂网络数据。Spark是一种新型的可扩展分布式数据分析平台,允许将数据全部缓存到内存当中,并且支持任何变量的广播,在交互式计算和迭代计算上具有非常大的优势。因此基于Spark平台,可解决大规模的复杂网络节点数目庞大、关系复杂所带来的难题,有助于提升大规模复杂网络社区发现的正确性和效率。步骤S202,本文档来自技高网...

【技术保护点】
1.一种社区发现方法,其特征在于,所述方法包括:获得网络数据中每两个社区节点合并的模块度变化量;判断所述模块度变化量中的最大值是否为负数;若所述最大值为非负数,则将所述模块度变化量为所述最大值的至少两个社区节点合并成一个社区节点。

【技术特征摘要】
1.一种社区发现方法,其特征在于,所述方法包括:获得网络数据中每两个社区节点合并的模块度变化量;判断所述模块度变化量中的最大值是否为负数;若所述最大值为非负数,则将所述模块度变化量为所述最大值的至少两个社区节点合并成一个社区节点。2.根据权利要求1所述的社区发现方法,其特征在于,所述方法还包括:若所述最大值为负数,则停止社区发现。3.根据权利要求1所述的社区发现方法,其特征在于,所述获得网络数据中每两个社区节点合并的模块度变化量的步骤包括:从所述网络数据中,获得所述网络的边数信息和社区节点数量信息;根据所述网络的边数信息,获得每两个社区节点合并的模块度变化量。4.根据权利要求1所述的社区发现方法,其特征在于,在所述从所述网络数据中,获得所述网络的边数信息和社区节点数量信息的步骤之前,还包括:利用GraphX加载网络数据。5.根据权利要求1所述的社区发现方法,其特征在于,所述若所述最大值为非负数,则将所述模块度变化量为所述最大值的至少两个社区节点合并成一个社区节点的步骤之后,还包括:更新所述网络数据中每两个社区节点合并的模块度变化量。6.根据权利要...

【专利技术属性】
技术研发人员:刘芬林文辉
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1