一种基于Floyd-Warshall的互联网社区检测算法

文档序号:9217282阅读:274来源:国知局
一种基于Floyd-Warshall的互联网社区检测算法
【技术领域】
[0001] 本发明涉及互联网社区检测算法领域,提高了一种基于Floyd-Warshall的互联 网社区检测算法。
【背景技术】
[0002] 从互联网社区概念的提出到现在的十多年中,各国的研宄者对互联网社区检测的 相关技术和研宄给予了很多关注,取得了很多实质性的进展。
[0003] 研宄者首先对互联网的拓扑结构进行了更加深入的分析。与人们的设想不同,互 联网和其他很多网络的相互关联并不完全是随机的,并不能完全用随机图来描述互联网社 区的结构。尤其是在对越来越多互联网数据进行分析后,随机图结构的概念受到严重的冲 击。互联网的实际结构远比我们想象得要复杂得多,链接、网站、页面、用户、管理者之间的 关系也是多样化的。在互联网中有很多区域内部联系紧密同外部的联系较弱,这些区域就 是互联网社区,互联网社区的结构特征是无法用随机图描述清楚的。
[0004] 随着互联网社区概念的提出和相关研宄的深入展开,开发者们设计了各种不同类 型的的互联网社区检测算法对其进行结构检测,并根据实验结果不断地对算法进行改进和 优化。随着研宄的深入开展,对互联网社区进行检测的算法也在不断地被优化改进。
[0005] 与传统方法相比,现在的算法大多能够充分考虑到网络运行的并行性、实时性和 可扩展性等来解决物理上的限制。比如Sadi等人提出的用并行的蚂蚁找圈的社区检测方 法。这样可以在不影响结果效果的前提下,压缩互联网结构图直至一个稳定的大小以降低 算法运行的成本,从而完成对大规模网络的处理。也有Leung等人提出的对标签传播算法 进行改进,并加入启发式教育法的方法对大规模网络进行实时的社区检测。针对不同的互 联网社区检测方法,Leskovec等人对现有的一些方法进行研宄比较,发现大规模网络社区 检测问题并不是一个简单算法就能解决的,是一个非常复杂的问题,要考虑到网络结构、数 据分布、网络爬行效果等多方面的问题。随着检测技术的不断成熟,互联网社区检测有效度 也在不断提升,同传统的蛮力算法相比较,社区检测技术已经越来越成为一种艺术。作为社 区检测一个新兴的方向,将会对互联网结构挖掘做出巨大影响。

【发明内容】

[0006] 本发明的目的在于通过社区检测的概念,可以较好地描述并检测出网络社区这样 的网络结构并加以应用。
[0007] 一种基于Floyd-Warshall的互联网社区检测算法,其特征在于包括如下步骤:
[0008] 步骤1、数据获取:为了从给定的起始博客链接出发获得跟它相关的博客链接信 息,通过Spider对相关数据进行爬取,并将得到博客关系图用矩阵表示;
[0009] 步骤2、特征提取:选定图中任意两点的最小距离作为特征值,为了从图中提取最 小距离作为聚类的特征基础,使用Floyd-Warshall算法对图中任意两点的最小距离进行 计算。
[0010] 步骤3、聚类分割:为了按一定特征异同将网络划分为不同的社区,以最小距离作 为特征进行聚类分割,得到指定个数的聚类结果。
[0011] 步骤4、影响力排名:为了判断每个聚类中哪些节点有更高的影响力,使用 PageRank对每个聚类进行排名;
[0012] 步骤5、结果可视化:为了直观形象地表达结果,使用GraphViz对结果可视化表 达。
[0013] Spider包括如下步骤:
[0014] 步骤2-1、添加起始链接至待分析链表;
[0015] 步骤2-2、如链表不为空,进行步骤2-3,否则结束;
[0016] 步骤2-3、从链表中取出最前链接分析其内容;
[0017] 步骤2-4、如存在下一个链接,进行步骤2-5,否则进行步骤2-2 ;
[0018] 步骤2-5、链接处理,是否为目标连接,是则更新数据,否则进行步骤2-4。
[0019] 连接处理包括如下步骤:
[0020] 步骤3-1、判断连接是否满足格式一,如果满足则进行步骤3-4,否则进行步骤 3-2 ;
[0021] 步骤3-2、判断连接是否满足格式二,如个满足则去掉连接中"m/"部分,并进行步 骤3-4,否则进行步骤3-2;
[0022] 步骤3-3、判断连接是否满足格式三,如果满足则进行步骤3-4,记录当前连接不 是目标连接,进行步骤3-5;
[0023] 步骤3-4、记录当前连接是目标连接;
[0024] 步骤3-5、结束。
[0025] 更新数据包括如下步骤:
[0026] 步骤4-1、判断当前链接是否已插入数据库,如已插入则进行步骤步骤4-3,否则 进行步骤4-2 ;
[0027] 步骤4-2、判断已存目标连接数未超过最大,如未超过则将链接插入待分析链表, 并将链接插入数据库,否则结束;
[0028] 步骤4-3、将链接关系插入数据库,结束。
[0029] 本发明因为采用以上技术方案,因此具备以下有益效果:
[0030] 本发明通过社区检测的概念,可以较好地描述并检测出网络社区这样的网络结构 并加以应用。
【附图说明】
[0031] 图1为本发明的整体流程;
[0032] 图2为本发明的Spider需要爬取的链接图示;
[0033] 图3为本发明的Spider流程图;
[0034] 图4为本发明的Spider链接处理子流程流程图
[0035] 图5为本发明的Spider更新数据子流程流程图
[0036] 图6为本发明的数据库中两个链接关系
[0037] 图7为本发明的Floyd-Warshall算法流程;
[0038] 图8为本发明的k-means算法流程图;
[0039] 图9为本发明的PageRank算法流程图。
【具体实施方式】
[0040] 本文提出一种基于Floyd-Warshall的互联网社区检测算法并应用于博客社区检 测中。
[0041] 如图1所示,算法分为五个步骤:
[0042] 数据获取:为了从给定的起始博客链接出发获得跟它相关的博客链接信息,我在 实验中通过实现一个WebSpider程序对相关数据进行爬取,并将得到博客关系图用矩阵表 不〇
[0043] 特征提取:实验选定图中任意两点的最小距离作为特征值。本过程为了从图中提 取最小距离作为聚类的特征基础,使用Floyd-Warshall算法对图中任意两点的最小距离 进行计算。
[0044] 聚类分割:为了按一定特征异同将网络划分为不同的社区,以最小距离作为特征 进行聚类分割,得到指定个数的聚类结果。
[0045] 影响力排名:为了判断每个聚类中哪些节点有更高的影响力,使用PageRank对每 个聚类进行排名。
[0046] 结果可视化:为了直观形象地表达结果,使用GraphViz对结果可视化表达。
[0047] 下面小节对程序流程中主要过程使用的算法进行说明。
[0048] 数据获取
[0049] 实验是以新浪博客为对象进行社区检测,所以针对新浪博客网页及网页所设置的 链接做了相关的观察和分析,一个博客所设置的链接可能分成不同的区域,每一个链接可 能为新浪博客,也可能为其他网站的链接。如图2所示。红色箭头指向的红色边框区域是 当前博客所设置的友情链接区域,其中,这些区域中用红线标出的是满足爬取要求的新浪 博客。所以爬虫要做的主要工作就是从网页的所有链接中,筛选出满足要求的部分。
[0050] 通过分析,满足要求的链接可以有以下几种格式:
[0051] 格式1 :http://blog. sina. com. cn/xxx,其中xxx是数字和英文字母的组合;
[0052] 格式2. :http://blog. sina. com. cn/m/xxx,其中xxx也是数字和英文字母的组 合,现在这样类型的链接会直接被转到http://blog. sina. com. cn/xxx ;
[0053] 格式 3 :http://blog. sina. com. cn/u/number,其中 number 代表的是数字的组合。
[0054] Spider从起始博客链接出发,采用广度优先的遍历方法实现数据爬取。广度优先 的遍历爬虫即以起始链接为树的根部,按照网页的链接形成树的结构,按照树的宽度进行 遍历。由此可以得到针对新浪博客的爬虫的主要算法的流程图,如图3
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1