Gephi社会网络分析-基于马蜂窝游记文本以词语间距为筛选条件的共词矩阵 ...

2024-2-7 11:04| 发布者: Fuller| 查看: 1491| 评论: 0

摘要: 在Jupyter Notebook中使用python做的网络图,想美化和调整样式比较麻烦和困难,我们今天基于修改后的共词矩阵表在Gephi中画出网络图进行更直观的观察

上周我们在Jupyter Notebook中使用python做了几个实验(其中使用游记文本的实验记录在《马蜂窝游记文本分词后以词语间距为筛选条件生成共词矩阵和社会网络图》),主要实验步骤是:

  1. 实验的样本数据是使用GooSeeker网络爬虫采集到的马蜂窝游记文本,
  2. 把这些文本导入GooSeeker文本分词和情感分析软件,经自动分词、人工选词、共词网络计算后,导出“分词效果表”、“选词结果表”、“选词矩阵表”、“共词矩阵表”这几张数据结果表;
  3. 然后使用python对选词矩阵表、选词结果表和共词矩阵表进行词语间距过滤,也就是保留某个间距值以内的选词和共现关系,对于大于预设间距值的选词和共现关系进行滤除,引入词语间距作为过滤条件,有助于研究者对于不同类型的文本和不同的研究方向进行多角度的观察。
  4. 实验最后基于修改后的共词矩阵表在python中画出了网络图进行更直观的观察:

 

在Jupyter Notebook中使用python做的网络图,想美化和调整样式比较麻烦和困难,我们今天就是用Gephi来做进一步的观察。

【注释】前面提到的马蜂窝游记文本处理的Jupyter Notebook没有实现将新生成的共词矩阵存成excel的功能。对python和pandas不熟悉的同学可以看这一篇《知乎话题文本用词间距筛选后生成共词矩阵并画图和存成excel》,从这一篇可以将存excel的代码借用过来。今天我们做实验用的共词矩阵就是这样生成的。

有关Gephi的下载安装、Gephi外观设置、Gephi统计、Gephi布局等功能的介绍和使用,初次访问和想温故而知新的同学可以参考之前已发布的文章:

1. 实验目的

为什么GooSeeker分词工具导出的数据在Jupyter Notebook中做实验后我们还要使用Gephi做进一步的实验?

因为Gephi是一款专业的网络图分析软件。Gephi提供了对网络图进行多种过滤的手段,使研究者能对数据从网络整体、节点或者边进行过滤操作,从而帮助分析人员生成一个更美观更直观的网络图,便于探索和分析。

对于一些研究,我们直接使用GooSeeker分词工具生成的词云图和网络图进行分析就能达到观察的目的:

 

而对于另一些研究,用Gephi进行更进一步的网络图观察是非常有益的。比如下图是使用Gephi官网提供的素材(小说《悲惨世界》人物关系)生成的一张网络图示例,借助网络图可以更直观和清晰的分析人物直接的关系:

 

下面我们将实验一下,是否能做成上图那样直观漂亮的游记话题的社会网络图。

2. 实验数据

使用快捷采集马蜂窝游记采集_列表马蜂窝游记采集_详情,采集实际的游记文本数据。通过GooSeeker分词和文本分析软件进行自动分词、人工选词、共词网络计算后,导出“分词效果表”、“选词结果表”、“选词矩阵表”、“共词矩阵表”这几张数据结果表。然后使用python对选词矩阵表、选词结果表和共词矩阵表进行词语间距过滤,保存修改后的数据表。

前述过程详见Jupyter Notebook《马蜂窝游记文本分词后以词语间距为筛选条件生成共词矩阵和社会网络图》)。今天我们就在Gephi进行如下2种观察:

  • 观察一. 使用GooSeeker分词和文本分析软件生成的未经过滤的共词矩阵表生成网络图
  • 观察二. 在Jupyter Notebook中对GooSeeker分词和文本分析软件生成的共词矩阵表进行词语间距过滤,保存后在Gephi中生成网络图

3. 实验一:在Gephi中使用原始共词矩阵数据

Gephi支持导入矩阵数据,我们在Gephi中直接导入包含如下矩阵数据的文件:

3.1 Gephi导入共词矩阵

点击菜单项:【文件】【导入电子表格】,选择要导入的共词矩阵文件

 

如果“导入为”选项下面不是“矩阵”,则手工选择“矩阵”

页面上有提示日期类型,直接点击下一步,选择图的类型为“无向图”。

可以看到节点数是295, 边的数量有43323

下图就是导入后生成的初始的网络图

一开始节点的位置都是随机的,所以相同的操作看到的初始图不一定是相同的。

3.2 调整网络图外观

这部分可以参考文章《Gephi社会网络分析-网络图的外观设置

下图标注了几个外观设置相关的功能按钮:

3.2.1节点颜色设置

在左上角外观功能区选择“节点”,“颜色”,按“度”的排名给节点不同的颜色

3.2.2节点大小设置

根据中介中心性值(根据研究需要选择其它指标)来设置节点大小

第一步:在右侧的统计区,找到“平均路径长度”,点击运行

第二步:根据中介中心性设置节点大小

3.2.3节点标签设置

3.2.4节点分区设置

第一步:运行统计区的模块化功能

第二步:设置节点分区显示颜色

3.3 运行网络图布局- Fruchterman Reingold布局

在布局区选择Fruchterman Reingold布局, 点击运行

看看目前网络图的显示:

观察这个初步的网络图,节点和边的数量非常多,由于屏幕大小不够大,图挤在一堆不太容易看清楚。可以继续调整节点和边的大小,同时Gephi提供了过滤的功能(参考《Gephi社会网络分析-网络图的过滤器(滤波)》),可以根据不同指标来过滤节点和边,有兴趣的同学可以试试。

4. 实验二:在Gephi中使用经过词语间距过滤的共词矩阵

基本的步骤和实验一是一样的,这里只记录几点不同。

由于实验二使用的数据是经过词语间距筛选的,导入后可以看到节点和边的数量少了很多:

调整后的初步网络图:

使用ForceAtlas布局,网络图似乎更直观些:

由于按词语距离进行了过滤,实验二的节点和边的数量大减,在网络图上我们可以很清晰根据颜色看到不同社区的节点。

另外上图中有一些同义的词语对,比如“武大”和“武汉大学”,“长江大桥”和“武汉长江大桥”,合并成一个词会更有意义,使用GooSeeker分词工具提供的同义词合并功能就可以完成。

还有,上面示例并没有确定分析目的,所以,在GooSeeker文本分词和情感分析软件中选词原则是比较随意的,主要根据词频排序。读者可以根据特定目的,选择特定词性的词语,让网络图呈现更佳的语义。

5. 总结

今天的文章记录了怎样使用Gooseeker分词工具导出的原始共词矩阵数据,及使用经词语间距过滤的共词矩阵数据,在Gephi中导入生成网络图,调整网络图的外观后进行观察。

有下面几点总结:

  1. 经词语间距过滤的共词矩阵数据生成的网络图,由于节点和边的数量大幅度减少,提供了一种较简单快速的观察角度。对于节点和边的数据庞大的网络图,要看得清楚,也需要借助Gephi提供的过滤功能进行精简后再观察,同学们可以自己尝试。
  2. 从GooSeeker分词工具导出数据前,可以使用同义词合并功能,对一些同义但有多种不同的表达方式的词进行合并,这样会使后续的研究和观察更准确。
  3. 马蜂窝游记文本比较长,后续我们会尝试使用不同长度的文本比如知乎文本、微博文本、抖音评论文本进行实验,尝试不同的文本在设置不同词语间距过滤阀门值后进行社会网络分析。


鲜花

握手
1

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

最新评论

GMT+8, 2024-4-16 00:22