[发明专利]重叠社区并行发现的方法及系统在审
| 申请号: | 201410302016.8 | 申请日: | 2014-06-27 |
| 公开(公告)号: | CN105302823A | 公开(公告)日: | 2016-02-03 |
| 发明(设计)人: | 徐敏;周修庄;刘卉;吴敏华;周丽娟 | 申请(专利权)人: | 首都师范大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京科龙寰宇知识产权代理有限责任公司 11139 | 代理人: | 孙皓晨;朱世定 |
| 地址: | 100037 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 重叠 社区 并行 发现 方法 系统 | ||
技术领域
本发明涉及复杂网络领域,具体而言,涉及一种基于MapReduce(Map,映射;Reduce,化简;MapReduce是Google提出的一个软件架构,用于大规模数据集的并行运算)的重叠社区并行快速发现的方法及系统。
背景技术
虚拟社区是指基于互联网的社会群聚现象,它构成了一定规模的个体关系网络,在虚拟的网络中聚合了相同兴趣的用户,使他们能够相互提出,表达,交换自己的观点,不同社区的用户也可能交互。社区可以为用户提供及时的、可靠的、有价值的信息,同时还也有利于商家准确地找到客户。然而社区一般都是隐藏在众多繁杂的关系和连接背后,并不是显性存在的,这就需要研究人员使用相关方法和技术把隐藏的社区发现和挖掘出来,继而可以利用发现的社区关系为所有个体提供个性化的应用和服务。
近年来随着网络技术的高速发展和普及应用,社区发现已经发展成为一个跨学科的研究热点问题,社会学、教育学、心理学等多个学科的研究人员从不同角度对它展开了系列研究。从更广义的角度来看,现实世界的大部分系统都可以通过网络来描述,网络是由节点的集合和这些节点的关系,也就是连接节点的边集合所组成。大量实际数据都表明复杂网络通常都是异构的,也就是说它是由各种不同类型的节点所构成,其中同一类型的节点之间关联较多,而属于不同类型的节点之间连接相对较少。
对于大型复杂网络,常规社区发现方法的设计原理和工作模式无法快速实时完成。
发明内容
本发明提供一种基于MapReduce的重叠社区并行发现方法及系统,用以快速检索大型复杂网络中的社区。
为达到上述目的,本发明提供了一种重叠社区并行快速发现方法,包括以下步骤:
S1:从数据集文件中读取节点分布网络图;创建社区集合;将所述节点分布网络图与所述社区集合相关联;
S2:设定初始社区的个数为n;计算所述节点分布网络图中每个节点的度数,并获取前n个节点度数最高的节点分别作为n个初始社区的中心节点;此时每个初始社区的聚集度为0;n个初始社区储存于所述社区集合;其中n为大于或等于1的自然数;
S3:对上述n个初始社区的每一个同时执行以下程序:将所述中心节点的直接相邻节点选为该社区的候选成员节点,并将所述候选成员节点加入该社区的候选成员集合;依次判断所述候选成员集合中的所述候选成员节点是否属于该社区,将属于该社区的节点并入该社区,对属于该社区的节点的直接相邻节点选为该社区的候选成员节点,重复该步骤;对不属于该社区的节点移出所述候选成员集合并不作处理;将该社区数据存入所述社区集合;
S4:判断所述节点分布网络图中是否有节点未并入任何社区,若是,则对未并入任何社区的节点重复执行步骤S2、S3、S4,直至所述节点分布网络图中的所有节点都属于一个社区;
S5:对所述社区集合中的所有社区两两计算其社区重叠度,若两个社区的所述社区重叠度大于设定阈值,则将该所述社区重叠度大于设定阈值的两个社区合并为一个社区,并更新所述社区集合的相应数据;
S6:对所述社区集合中任意两个具有公共节点的社区,计算将其合并为一个新社区的新社区聚集度,将该新社区聚集度分别与合并前该两个具有公共节点的社区的所述社区聚集度进行对比,若该新社区聚集度分别大于合并前该两个具有公共节点的社区的所述社区聚集度,则将该两个具有公共节点的社区合并为一个新社区,该新社区聚集度为该两个具有公共节点的社区合并后的新社区的社区聚集度,并更新所述社区集合的相应数据。
其中,步骤S3中,对上述n个初始社区的每一个同时执行的程序以多线程并行方式实现,判断所述候选成员集合中的节点是否属于该社区的方法是:计算每个所述候选成员节点的节点贡献度;将所述节点贡献度为1的节点并入该社区,并计算该社区的初始社区聚集度;对于所述节点贡献度不为1的节点,根据其所述节点贡献度由高到底进行排序,并从其中所述节点贡献度最高的节点开始,依次假设所述候选成员集合中的节点属于该社区并计算该社区的第一中间社区聚集度,假设不将所述候选成员集合中的节点并入时该社区的聚集度为初始聚集度,该社区若该第一中间社区聚集度大于该初始社区聚集度,则将相应节点并入该社区;若该第一中间社区聚集度小于该初始社区聚集度,则相应节点及其后面的节点不并入该社区,当没有所述第一中间社区聚集度大于该初始社区聚集度时判断为该社区发现完毕,该初始社区聚集度即为该社区的社区聚集度。
其中,步骤S3中,对上述n个初始社区的每一个同时执行的程序在MapReduce框架下实现,判断所述候选成员集合中的节点是否属于该社区的方法是:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410302016.8/2.html,转载请声明来源钻瓜专利网。





