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

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

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

注意:生成共词矩阵表、社交网络图、词云图都可以用集搜客分词和分析平台自动生成,本文讲解另一种方法:用Excel生成共词矩阵表的方法,目的是为了让大家清楚计算原理。

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

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

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

第一个案例中用到的软件有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构建共词矩阵表

注释:GooSeeker分词和文本分析软件有一键导出共词矩阵的功能,这里讲解用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数据集文件即可。


软件安装包

参考文献


22

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (22 人)

相关阅读

发表评论

最新评论

评论 Fuller 2022-3-19 17:58
如果一个excel文件中有多张表,那么可以跨表选取单元格。Excel界面上最下面显示每张表的名字。这个例子说明其中有张表的名字是“数据”
czq0504: =SUMIFS($B:$B,数据!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*") 请问可否告知“数据!”是什么意思?谢谢! ...
评论 czq0504 2022-3-19 17:06
=SUMIFS($B:$B,数据!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*") 请问可否告知“数据!”是什么意思?谢谢!
评论 Fuller 2020-8-20 15:51
绿皮大甜梨: 社会网络图能做出来,但中心度做不出来,圆心都是一样大小。很郁闷。无法分析啊,也看不出来线的粗细。
导出的矩阵表,列的数量和行的数量是一样的,对角线的数字是词出现的文档数,非对角线的数字是两个不同词同时出现的文档数,观察一下这张表,数字应该有大有小,而且基于对角线对称的。你导出的矩阵数字有变化吗?
评论 绿皮大甜梨 2020-8-20 15:23
社会网络图能做出来,但中心度做不出来,圆心都是一样大小。很郁闷。无法分析啊,也看不出来线的粗细。
评论 绿皮大甜梨 2020-8-20 15:20
是导出来的,导出来的是社会网络excel表
评论 Fuller 2020-8-20 11:21
绿皮大甜梨: n您好,刚才做中心度分析,为啥显示Centrality measures calculated and added to node attribute database。不明白是什么意思,请指教 ...
现在分词软件可以直接导出矩阵表了,你使用的是导出的矩阵表?还是自己统计出来的?
评论 内容分析应用 2020-8-20 11:21
绿皮大甜梨: n您好,刚才做中心度分析,为啥显示Centrality measures calculated and added to node attribute database。不明白是什么意思,请指教 ...
这个信息应该是正常执行完成后的提示信息。我确认一下
评论 绿皮大甜梨 2020-8-20 10:57
n您好,刚才做中心度分析,为啥显示Centrality measures calculated and added to node attribute database。不明白是什么意思,请指教
评论 ym 2020-3-26 17:28
Fern_7: 请问为什么我把GooSeeker 导出的共词矩阵表输入进Ucinet 的时候失败了,弹出“不能转换(Dispatch)类型变量到类型(Double)”的窗口? ...
矩阵表的单元格值不能有null或空字符串,你从分词平台里重新下载一遍共词矩阵表就可以了
评论 Fuller 2020-3-26 17:17
Fern_7: 请问为什么我把GooSeeker 导出的共词矩阵表输入进Ucinet 的时候失败了,弹出“不能转换(Dispatch)类型变量到类型(Double)”的窗口? ...
输入前编辑过数据表吗?检查一下数据表中有没有空的单元格。建议加入集搜客qq群:645638422 ,把你要导入的表格发给管理员,我们检查一下这个数据文件中是否有无效数据。也可以发email: info@gooseeker.com
评论 Fern_7 2020-3-26 16:55
请问为什么我把GooSeeker 导出的共词矩阵表输入进Ucinet 的时候失败了,弹出“不能转换(Dispatch)类型变量到类型(Double)”的窗口?
评论 Fuller 2019-12-24 21:50
因为大家觉得自己用excel的函数生成共词矩阵有些麻烦,所以,GooSeeker文本分析软件增加了社交网络分析功能,可以一键导出共词矩阵。请访问:https://www.gooseeker.com/res/softdetail_13.html

查看全部评论(12)

GMT+8, 2024-12-19 03:44