用爬虫和 Gephi 研究微博好友二度人脉分析

作者 Marlous 日期 2019-04-06
用爬虫和 Gephi 研究微博好友二度人脉分析

一 处理数据

  1. 使用图数据结构处理社交网络数据:
  • 每个节点就是一个人。
  • 每个节点的度表示关系数。
  1. 为 Gephi 数据可视化软件准备数据:
  • 节点 csv 文件:node.csv(列标题:id、label;值分别是微博用户 uid、微博用户名。)
  • 边 csv 文件:edge.csv(列标题:source、target、weight;值分别是微博用户 id、微博用户 id、权值。权值可以是人脉度数)
  1. Gephi 的处理操作:
    Gephi 的处理操作
  • 注意:边文件中的权值可以设置差异大些,这样在 Gephi 中可以容易看出自己(研究用户)的点
  • 背景颜色
  • 节点 - 颜色 - Ranking(度)
  • 节点 - 大小 - Ranking(度)
  • 边 - 颜色 - Ranking(权重)- 换个颜色
  • 边权重尺度
  • 找到自己的点
  • 格式刷(扩散可选没有、邻居)
  • 字体设置为微软雅黑
  • 调整好中心点的位置
  • 布局使用 Force Atlas(斥力 600),也可用其它布局
  • 右侧统计计算平均度,然后用过滤,通过设置度(范围)为 2 及以上的节点保留,来分析自己圈子中的二度好友关系(这样可以看的更清晰)。

二 数据可视化细节

数据可视化细节
数据可视化细节
数据可视化细节
数据可视化细节
数据可视化细节
数据可视化细节

三 结论小结

以下结论只在比较重度使用微博,或人际关系网在微博上的用户成立。

  • 红点表示自己。与之直接相连的节点为一度人脉(直接好友)。

  • 除去直接与自己相连的,其它全部为二度人脉。

  • 蓝点越大颜色越深表示其相互关注的好友数量越多。

  • 二度人脉节点度为 1 的,表示大概率不属于自己的圈子。/ 二度人脉节点度不为 1 的,表示大概率可能是自己的好友(好友间共同的朋友),或有相同的兴趣爱好。

  • 所有节点除去节点的度为 1 的(假设没有一个一度人脉只关注了自己,没任何其它好友)。剩下的是好友圈子里的二度人脉,表示介于一度好友们之间的人,他们在直接的一度好友间起到了桥梁的作用。/ 注意:只能分析到第二度人脉,路径深度为二,但无法分析第二度人脉之间的关系!

  • 对于一度人脉来说:
    其除去度为 1 的节点外,连线分为与一度好友的连线、与二度好友的连线。/ 与一度好友的连线越多、与二度好友的连线越少,表示在一度好友圈子里的关系越紧密,与自己关系越大。/ 相反的,与一度好友的连线越少、与二度好友的连线越多,表示越偏离自己的圈子,与二度好友圈子约亲密。

  • 对于二度人脉来说:
    其除去度为 1 的节点外,连线越多,表示在好友间的关系越复杂,与自己朋友圈越亲密。

  • 重要结论:如果一个非一度人脉节点,与自己一度人脉连接 >= 2 则是一个圈子的(至少两个共同好友),连接数越多,与自己圈子越亲密。

四 补充说明

  • 抓二度人脉数据,即人脉深度为二(图深度为二)。/ 只能分析出第二度人脉与第一度人脉间的关系。

  • 只能完整分析一度人脉好友,无法分析第二度人脉的好友(无法分析朋友的朋友与其间的关系。)。

五 基本数据的扩展分析

通过基本数据,可以分析出一些有意思的结果。此项目的 mysql_query.py 模块已经将分析过程定义写成了 MySQL 语句,直接在主菜单使用 detail 命令即可看到所有相关统计结果。
GitHub:WFACat

  1. 查询(tools 模块):
  • 通过微博用户名查某用户基本信息

  • 通过 uid 查某用户基本信息

  • 通过微博用户名查某用户的互关好友列表及其好友信息

  • 通过微博用户名查某一度好友能通过圈内二度好友认识的一度好友

  • 所有一度好友信息

  1. 统计(mysql query 模块):
  • 总体概况:总人数、一度好友数、圈内二度好友数、二度好友数

  • 能关联最多一度好友的圈内二度好友(取 10 条排序),能关联谁

  • 一度好友中与其他一度好友互关最多的人(排序)、与圈内二度好友互关最多的人;分别是哪些人

  • 一度好友 / 圈内二度好友 / 二度好友中认证情况统计

  • 一度好友地理位置统计、性别统计、关注数、粉丝数、状态数、点赞数、微博创建时间、互关好友总数、客户端

  • 圈内二度好友地理位置统计、性别统计、关注数、粉丝数、状态数、点赞数、微博创建时间、互关好友总数、客户端

  • 二度好友地理位置统计、性别统计、关注数、粉丝数、状态数、点赞数、微博创建时间、互关好友总数、客户端

  1. 推测:
    根据统计的结果做出一些有趣的推测(如统计手机客户端型号等)。