gephi和python_介绍用Gephi进行数据可视化

前提介绍:首先感谢 @崔斯特 在抓取数据中对我的协助。

这篇文章介绍的是数据可视化(Data visualization)的一些具体应用。

主要用到的工具 Python (抓取数据和分析数据), Gephi (数据可视化软件)

(另外: 我会介绍到两个在Facebook (Netvizz v1.42) 上抓取数据的app)先上图:

这是以五月天Fan-mily(原May Day Fan-mily) Facebook Group 为收集数据的来源制作的 社交网络关系图。

而这幅图是从《哈利波特与魔法石》中提取制作的 人物关系图。

好!我们正式开始!!

首先,我们看看如何获得数据。

这里主要分两种数据获取的模式:

1, 从网络直接获取的数据

2, 通过数据分析获得的数据

那第一种从网络直接获取的数据的方式有很多啦。像流行的Python爬虫 或者从 网站开放的API获取。

这里介绍的Netvizz 就是Facebook 开放API 提取数据的app.

可以翻墙的同学可以直接在Facebook 的搜索栏直接输入 Netvizz 就可以找到了。

图1

但有一点需要注意,为了保证用户隐私 Facebook 已经关闭了个人用户的API接口数据提取的服务。

所以,我们现在只能获得小组和页面的数据。

图2

选择小组数据(Group data)后,我们会进入一个选项页面 (图3)。在这里我们要填写小组id (group id),那小组ID怎么获得呢? 点击旁边的 find group ids here。进入http://Lookup-id.com,将选择的FB小组的连接填入,就会得到一串数字,那就是小组ID(图5)。

(注意哦,Data to get 的勾勾要去掉)

图3

图4

图5

然后回到Netvizz页面。将ID输入,然后就可以进行抓取了。

下载文件中会有个 .gdf 的文件夹,用Gehpi将其打开就可以见到初始化的画面。

图6

控制面板的左边是:

Node(节点):控制画面中的小点点。

Edges(边):连接点的线。

Layout(布局):依据算法改变这个点与线的分布。

样式大家可以自由发挥啦,难度也不大。想学精细点的同学可以上Gephi官网上看看,那有很多具体的教程。

图7

以我这次讲Node中的Attribute 设置成为 Comment_count,Layout 选择Fruchterman Reingold 算法,关于这些布局算法(force-directed layout algorithm)的详情,其基本思想是通过移动节点和改变它们之间的力,以尽量减少系统的能量。其他几个算法大家可以在wiki上搜索下。于是黑黑的网格就变成富有结构和色彩了。

图8

右边是统计相关的数据,很多意思我也不懂啦,也在学习中,这里就不多介绍了。

关于 哈利波特与魔法石 的那幅图是怎么做出来的问题?

首先要从网上找到 哈利波特与魔法石 的文本并下载下来。

这一部分的爬虫是 @崔斯特 帮助我完成的,在这里再度表示感谢!

把小说弄到手后。

这就需要用到Python 对整本书进行文本分析。

在进行分析前,我们首先要创建一个人物名称的list。

从百度搜索 哈利波特的 人物表 制作成txt 如下:

这里选择用 jieba 进行分词

然后定义3个关系

之后按照字典类型names保存人物,该字典的键为人物名称,值为该人物在全文中出现的次数。字典类型relationships保存人物关系的有向边,该字典的键为有向边的起点,值为一个字典edge,edge的键是有向边的终点,值是有向边的权值,代表两个人物之间联系的紧密程度。lineNames是一个缓存变量,保存对每一段分词得到当前段中出现的人物名称,lineNames[i]是一个列表,列表中存储第i段中出现过的人物。

得到node.txt 和 edge.txt, 之后导入Gephi。选 Import spreadsheet, 分别导入 node.txt (选项中选择节点图) 和 edge.txt (

选项中选择边表图)。

之后的美化和用算法调整布局,大家就可以自由发挥啦。

最后,在介绍几个社交网络分析的概念吧。

第一:网络密度 (Network Density)

一个网络的密度是在一个给定的网络中的关系(边)的数目在网络中的节点之间的可能的关系的总数的比率

这是一个常用的措施,以确定如何连接良好的网络

一个完全连通的网络密度为1

而下面的网络举例显示密度为0.83

公式: 可观测到的实际联系/全部潜在的联系=关系密度

如图,可见关系数为(5),可能关系数(6),所以关系密度 5/6

密度是一个有用的措施互相比较网络

密度测度与跟踪诸如信息扩散(如思想、谣言、疾病传播等)的现象有关。

这是因为它假定,在紧密连接的网络中,信息的传播速度更快,达到更广泛的节点集

网络密度越大,越有可能被认为是一个有凝聚力的社区(即社会支持和有效传播的来源)

第二:层 (Degree)

指特定行动者对网络其他成员持有的关系的数量和类型

主要分: 单方向性关系 (directed relationship)和 对称关系 (symmetric relationship)

In-Degree

特定节点与他人的关系

Out-Degree

表明节点1和2之间的往复运动

基本上是一个衡量领带强度,这是同样相关的分析整个网络 (Weight Degree )

测量权重可以:互动频率、交换项目数、个体对关系强度的感知

3,结构洞 (Structural Holes)

结构空洞的思想描述了网络密度的相反,即缺乏连接。

结构孔归因于节点,否则连接密集的网络部分,是分成重要的连接节点。连接网络部分的这些节点被称为“Brokers”。

例如那几个大点点。

弱联系的概念与结构空洞的概念密切相关

类似于结构孔,弱关系在网络中嵌入较少。

尽管如此,他们承担重要的职能:

他们促进信息流之间的集群(即从遥远的部分网络)

弱联系有助于整合社会系统,否则将支离破碎和语无伦次

4. 集群 (Clustering)

计算和识别网络中的集群,特别是大型网络可能很麻烦

预定义的算法有助于识别集群,因此网络内的社区

Force Atlas 和 Force Altas 2:最常用的一种算法来确定在大型网络社区(在Gephi为例)

使用的算法的优势:没有现有的知识图理论需要可视化和分析集群网络

缺点:他们的准确性是高度依赖于我们正在分析的网络类型。

Reference:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值