快捷导航

利用GooSeeker分词、Ucient和NetDraw进行社会网络分析

2018-5-12 15:56| 发布者: Fuller| 查看: 300| 评论: 0

摘要: 社会网络是一个关系与关系之间的网络,进行社会网络分析,我们要弄清楚的是网络中包含哪些具有相互联系的节点,这些节点之间又具有怎样的关系,以及每个节点在整个网络中占有何种地位。准备数据需要用到GooSeeker集 ...

社会网络是一个关系与关系之间的网络,进行社会网络分析,我们要弄清楚的是网络中包含哪些具有相互联系的节点,这些节点之间又具有怎样的关系,以及每个节点在整个网络中占有何种地位。

而有关这方面节点的数据都是在做关系图之前需要准备好的。

本文包含两个案例,第一个案例详细列出步骤便于理解,第二个案例为演练。

第一个案例中用到的软件有Ucinet和NetDraw(文末提供软件安装包),其用途为:

  • Ucinet:输出用于NetDraw分析的矩阵数据
  • NetDraw:绘制社会网络

第二个案例中用到GooSeeker分词软件,主要目的是生成词频统计表。

案例一:社交网分析

首先,我自己在Excel准备了一份简单的数据。

这份数据很好理解,第一行和第一列代表人物,若他们之间有联系,那么人物A与人物B对应的单元格数字为1,无联系则为0。比如:张三和王五、陈七、杨九有联系,与其他人无联系。

先用Ucinet输出用于NetDraw分析的矩阵数据,打开Ucinet,选择数据>输入>Excel矩阵。

输入文件路径选择前面准备的Excel共现矩阵表,其他可不改动,选择确定。

接着Ucinet会进行处理,弹出处理日志,并在与输入相同的路径中输出.##h矩阵文件。

数据准备完毕,打开NetDraw准备绘制,选择file>open>ucinet dataset>network。

在弹窗中选择刚刚Ucinet生成的.##h矩阵文件,点击OK。

社会网络图绘制完毕。

然后NetDraw会进行绘制,绘制的社会网络图如下:

这个数据比较简单,通过上图可以直接看出杨九是核心人物,如果数据量较大较复杂的话,肉眼是比较难看出来的,可以通过节点中心性分析来进行研究,让NetDraw绘制出节点大小与中心度正相关的社会网络图。

在NetDraw选择analysis>centrality measures。

然后在弹出界面的set node size by下选择degree,点击ok。

接着NetDraw重绘制,结果图如下:

从上图来看,杨九的中心节点大小最大,与最多的人相联系,可以将他理解为该社交网的中心人物。

度中心性(Degree Centrality)是在网络分析中刻画节点中心性(Centrality)的最直接度量指标。一个节点的节点度越大就意味着这个节点的度中心性越高,该节点在网络中就越重要。

对度中心性计算原理感兴趣的同学可以自行去了解,从结论来说,节点越大就意味着越重要。另外,度中心性只是衡量节点中心性的指标之一,还有三个衡量节点中心性的主要指标有

  • 接近中心性(Closeness Centrality)、
  • 中介中心性/中间中心性(Between Centrality)和
  • 特征向量中心性(Eigenvector Centrality)。

这里就不进行赘述了。


案例二:微博研究主题共词分析

前面我的一篇文章《毕业论文写什么——微博数据挖掘相关的论文》其中有一块对微博数据挖掘相关论文的研究主题进行分析,下面就详细讲解一下对微博主题进行共词分析的具体操作方法

数据:知网微博数据挖掘的论文-“论文主题”字段数据

数据进行共享了,有兴趣的话可以自己试验一下。


1,先用GooSeeker分词软件提取词频统计表

进入GooSeeker分词软件,新建任务,将实验数据导入进去。

如下部分数据截图所示,每篇论文主题关键词之间其实已经通过空格进行分隔了,所以我希望分词软件能够以空格为间隔,将这些关键词分离出来。但不管通过哪个分词软件,它们本身是有一个词库的,如果通过软件自身词库来切词的话,切词的粒度会更精细,这样就破坏了一些词语的完整性。比如“社会网络分析”可能会切分成“社会”、“社会网络”、“分析”等词语,因为在这个分析场景下,主要是研究微博挖掘相关论文研究的主题,所以我更希望不进行切分,直接保留为“社会网络分析”。

用分词软件自身的切词不能达到我的切词目的,所以我事先用Excel的分列功能,将这些关键词分离出来。部分截图如下图所示。

回到GooSeeker分词软件,第一步“导入数据”之后,跳过第二步“筛选词语”,因为后面我的词频统计结果是基于我刚刚通过Excel分列得到的词语, 而GooSeeker分词软件是支持自定义词语手动补充的。所以直接来到第三步“选词结果”,点击“添加词语”

将Excel分列去重后的关键词导入。

然后点击“下载”,将结果文件导出。

结果文件中,表名为“选词结果”是后面我们将用到的。


2,用Excel构建共词矩阵表

第一个案例的共词矩阵是自己随机造的一个,现在第二个案例数据量较大,分出的词语有四千多个,要形成共词矩阵,我们要借助Excel的公式来进行计算了。
先说下公式的原理,如下图所示,左边为样例数据,右上为共词矩阵,假设需要构造矩阵的词组有(“微时代”、“媒体”、“文化”、“微博”、“社交网络”、“传播”),词组行和列相交的单元格填入公式

          (=SUMIFS($B:$B,数据!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*"))

公式理解:在A列表查找,看是否包含C2(微时代)和D1(微时代),如果有就统计该包含这两个字符所在行的另外一列的数进行求和。

回到案例二,新建一个Excel,将词语粘贴至第一行和第一列,词语相交的单元格套用刚刚的公式,其他单元格自动拉公式,然后让Excel自行运行计算即可。共词矩阵部分结果如下图所示。


3,合并同义词和提取高频词

有了共词矩阵表之后,不要着急将数据导入着手绘制。要知道这是一个4349*4349的共词矩阵,可以设想,直接导入Ucinet和NetDraw绘制出来就是一团黑影,最重要的是,没有必要将全部矩阵导入,因为很多词语是没有价值的,因为有些词语作为论文的主题可能就少数出现过。所以在绘图之前,先进行合并同义词和提取高频词。

1)    合并同义词

同义词即词语含义相同的,比如“微博”和“微博客”,因为案例而的目的是论文研究主题,所以先创建一个同义词组表。部分截图如下:

根据同义词组表,将共词矩阵表中的同义词进行合并计算处理,将同义词组中每个词的数字求和作为一组同义词组的最终结果值,如下图所示(部分截图):


2)    提取高频词

用同样的方法将同义词处理完毕后,同时用根据同义词组表更新最开始在GooSeeker分词软件下载的词频统计表。

接着根据词频统计表将高频词提取出来,本次实验我提取了前100个,根据这100个高频词形成100*100的共词矩阵表。


4,将共词矩阵表导入Ucinet

完成上面的步骤之后就可以开始导入数据绘制了。第一个案例是通过Ucinet导入共词矩阵Excel表,下面用另一种方法导入,就是直接复制。点击Ucinet第二个表格图标,如下图红框所示。

弹出一个表格,然后将在上一步Excel里完成的共词矩阵表CRTL+C、CRTL+V直接复制进去,结果如下图所示。记得点击保存一份,一方面拿来接下来绘图,另一方面防止以后调整数据的时候需要。


5,通过Netdraw绘制微博主题关系图

最后打开NetDraw打开.##h文件准备绘制并进行度中心性分析,不知道怎么操作倒回去看案例一的操作过程。

绘制结果图如下所示:

从NetDraw生成的可视化关键词网络结构图可以看出,“社交网络、爬虫、舆情、话题、传播、推荐、影响力、营销、媒体”等关键词的中心度较高,这些是人们比较关注的微博研究主题,处于边缘位置主题表示对其研究的关注度较低,但从中可以看出微博数据挖掘多元话的研究方向。

假如说跳过前面合并同义词的步骤,并且我只选取词频为前100的词语形成共词矩阵表,绘制的结果图如下,可以看到密密密麻麻的一片。所以如果既不进行同义词合并也不进行词频提取,那绘制出来的结果图就可想而知了。


6,拓展—词云图制作

我用PPT的插件Pro Word Cloud制作中文词云,使用方法可以参看我原来的文章《用PPT自带的Pro Word Cloud制作中文词云》。

结果图如下:

微博数据挖掘的关键词云图一目了然,最后吐槽一下,词云图比NetDraw绘制的图好看多了。当然,分析目的不一样,用的工具自然不同。

在分析的过程中,数据的准备和处理是最花时间的,工欲善其事,必先利其器。有分析思路固然重要,利用好的工具进行数据处理则能够事半功倍。

总的来说,上面两个案例都比较简单,本篇文章重点讲解3个工具的操作过程,大家可以找一些其他数据进行分析。


常见问题:

1,    Excel矩阵数据可以直接导入NetDraw中绘制吗?
NetDraw支持两种外部数据导入方式,一是导入描述有节点信息的记事本文件,另外一种是导入当前使用较为普遍的社会网络分析软件输出的相应格式的文件(如:Ucinet、Pajek)。

我所使用的NetDraw版本不支持Excel文件直接导入,所以上面的案例中要先通过Ucinet输出用于NetDraw分析的矩阵数据。

2,    社会网络图的储存格式?

绘制完成的社会网络图,可以选择两种方式输出,一是以图片的形式导出,可以选择jpeg、emf、bmp等三种图元文件格式,无法再修改。

另一种是以可以再修改的文件格式保存。

3,    怎么在Ucinet中查看之前保存的共词矩阵?

点击Ucinet第二个表格图标,在弹出的窗口中选择“文件>打开”,选择之前保存的.##h数据集文件即可。


软件安装包

参考文献



鲜花

握手

雷人

路过

鸡蛋

最新评论

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2018-5-26 04:40