网页数据抓取(数据可视化(Datavisualization)中提取制作的人物关系图)

优采云 发布时间: 2022-02-12 22:12

  网页数据抓取(数据可视化(Datavisualization)中提取制作的人物关系图)

  前提介绍:首先感谢@drizzt 协助我爬取数据。

  本文章介绍了数据可视化的一些具体应用。

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

  (另外:我将介绍两个在Facebook上抓取数据的应用程序(Netvizz v1.42))第一张图:

  

  这是五一粉丝-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?点击next找到组ids here. 回车,填写所选FB组的连接,会得到一串数字,即组ID(图5).

  

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

  图 3

  

  图 4

  

  图 5

  然后返回 Netvizz 页面。输入 ID,您就可以抓取了。

  下载文件里面会有一个.gdf文件夹,用Gehpi打开就可以看到初始化画面了。

  

  图 6

  控制面板的左侧是:

  节点(node):控制屏幕中的小圆点。

  边:连接点的线。

  布局:根据算法改变点和线的分布。

  风格自由发挥,难度不大。想了解更多的同学可以去Gephi官网,里面有很多具体的教程。

  

  图 7

  正如我这次所说,Node中的Attribute设置为Comment_count,Layout选择Fruchterman Reingold算法。对于这些布局算法(force-directed layout algorithm)的细节,其基本思想是移动节点并改变它们之间的力以尽量减少系统能量。您可以在 wiki 上搜索其他算法。然后黑色网格变得富有结构和色彩。

  

  图 8

  右侧是统计相关数据。我不明白很多意思。我还在学习,这里就不介绍了。

  哈利波特与魔法石的画面是怎么来的?

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

  爬虫的这一部分是由@drizzt 为我完成的,再次感谢!

  

  拿到小说后。

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

  在分析之前,我们首先需要创建一个人名列表。

  百度搜索哈利波特的字符表制作成txt如下:

  

  这里选择使用jieba进行分词

  

  然后定义3个关系

  

  然后根据字典类型名称保存字符,字典的key是字符名,value是字符在全文中出现的次数。字典类型关系保存了字符之间关系的有向边。字典的key是有向边的起点,value是一条字典边,边的key是有向边的终点,value是有向边的权重,代表两个的接近度人物之间的联系。lineNames 是一个缓存变量,用于存储每个段的当前段落中出现的字符名称。lineNames[i] 是一个存储出现在第 i 段中的字符的列表。

  

  获取node.txt和edge.txt,然后导入Gephi。选择导入电子表格,导入node.txt(在选项中选择节点图)和edge.txt(

  选项,选择边表图)。

  

  美化和算法调整布局后,大家可以自由发挥了。

  最后,让我们介绍一些社交网络分析的概念。

  第一:网络密度

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

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

  全连接网络的密度为 1

  下面的网络示例显示了 0.83 的密度

  公式:可观察到的实际连接数/总潜在连接数 = 关系密度

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

  密度是一种有用的衡量网络相互比较的方法

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

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

  网络越密集,就越有可能被认为是一个有凝聚力的社区(即社会支持和有效沟通的来源)

  第二:层(度)

  指特定参与者与网络的其他成员所拥有的关系的数量和类型

  要点:单向关系(directed relationship)和对称关系(symmetric relationship)

  

  

  学位

  

  特定节点与其他节点之间的关系

  出度

  

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

  基本上是联系强度的一种度量,与分析整个网络同样相关(权重度)

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

  3.结构孔

  结构孔的想法描述了网络密度的对立面,即缺乏连接。

  

  结构洞归因于节点,否则网络的密集连接部分被划分为重要的连接节点。这些连接网络部分的节点称为“经纪人”。

  和大的一样。

  

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

  与结构洞相似,弱关系在网络中的嵌入较少。

  尽管如此,它们仍执行重要的功能:

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

  弱联系有助于整合原本支离破碎且不连贯的社会系统

  4. 聚类

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

  预定义算法有助于识别网络中的集群和社区

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

  所用算法的优点:不需要现有的知识图论来可视化和分析集群网络

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

  

  参考:

  对于算法内容,可以从这个文章Force Atlas开始:ForceAtlas2,一个为Gephi软件设计的便捷网络可视化的连续图布局算法

  Python基于同现提取《釜山行》人物关系教程完成:Python基于同现提取《釜山行》人物关系 - 侯景仪的博客 - 博客频道 - CSDN.NET

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线