注意:生成共词矩阵表、社交网络图、词云图都可以用集搜客分词和分析平台自动生成,本文讲解另一种方法:用Excel生成共词矩阵表的方法,目的是为了让大家清楚计算原理。 社会网络是一个关系与关系之间的网络,进行社会网络分析,我们要弄清楚的是网络中包含哪些具有相互联系的节点,这些节点之间又具有怎样的关系,以及每个节点在整个网络中占有何种地位。 而有关这方面节点的数据都是在做关系图之前需要准备好的。 本文包含两个案例,第一个案例详细列出步骤便于理解,第二个案例为演练。 第一个案例中用到的软件有Ucinet和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)的最直接度量指标。一个节点的节点度越大就意味着这个节点的度中心性越高,该节点在网络中就越重要。 对度中心性计算原理感兴趣的同学可以自行去了解,从结论来说,节点越大就意味着越重要。另外,度中心性只是衡量节点中心性的指标之一,还有三个衡量节点中心性的主要指标有
这里就不进行赘述了。 案例二:微博研究主题共词分析 前面我的一篇文章《毕业论文写什么——微博数据挖掘相关的论文》其中有一块对微博数据挖掘相关论文的研究主题进行分析,下面就详细讲解一下对微博主题进行共词分析的具体操作方法 数据进行共享了,有兴趣的话可以自己试验一下。 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版本不支持Excel文件直接导入,所以上面的案例中要先通过Ucinet输出用于NetDraw分析的矩阵数据。 2, 社会网络图的储存格式? 绘制完成的社会网络图,可以选择两种方式输出,一是以图片的形式导出,可以选择jpeg、emf、bmp等三种图元文件格式,无法再修改。 另一种是以可以再修改的文件格式保存。 3, 怎么在Ucinet中查看之前保存的共词矩阵? 点击Ucinet第二个表格图标,在弹出的窗口中选择“文件>打开”,选择之前保存的.##h数据集文件即可。 软件安装包 参考文献 |
czq0504: =SUMIFS($B:$B,数据!$A:$A,"*"&$C2&"*",$A:$A,"*"&D$1&"*") 请问可否告知“数据!”是什么意思?谢谢! ...
绿皮大甜梨: 社会网络图能做出来,但中心度做不出来,圆心都是一样大小。很郁闷。无法分析啊,也看不出来线的粗细。
绿皮大甜梨: n您好,刚才做中心度分析,为啥显示Centrality measures calculated and added to node attribute database。不明白是什么意思,请指教 ...
绿皮大甜梨: n您好,刚才做中心度分析,为啥显示Centrality measures calculated and added to node attribute database。不明白是什么意思,请指教 ...
Fern_7: 请问为什么我把GooSeeker 导出的共词矩阵表输入进Ucinet 的时候失败了,弹出“不能转换(Dispatch)类型变量到类型(Double)”的窗口? ...
Fern_7: 请问为什么我把GooSeeker 导出的共词矩阵表输入进Ucinet 的时候失败了,弹出“不能转换(Dispatch)类型变量到类型(Double)”的窗口? ...