array([[ 3., 2., 1., 1., 1., 1., 1., 1., 1.],
[ 2., 2., 0., 0., 1., 1., 1., 0., 1.],
[ 1., 0., 1., 1., 0., 0., 0., 1., 0.],
[ 1., 0., 1., 1., 0., 0., 0., 1., 0.],
[ 1., 1., 0., 0., 1., 1., 0., 0., 0.],
[ 1., 1., 0., 0., 1., 1., 0., 0., 0.],
[ 1., 1., 0., 0., 0., 0., 1., 0., 1.],
[ 1., 0., 1., 1., 0., 0., 0., 1., 0.],
[ 1., 1., 0., 0., 0., 0., 1., 0., 1.]])
14. 社会网络分析¶
中国谚语
一块布,以无数种方式相连。 --中国古语
14.1. 介绍¶
14.2. Co-occurrence网络¶
Co-occurrence networks 通常用于提供在书面材料中表示的人员、组织、概念或其他实体之间潜在关系的图形化可视化。随着适于文本挖掘的电子存储文本的出现,Co-occurrence网络的生成和可视化已经成为现实。
14.2.1. 方法论¶
创建Corpus C
基于Corpus C构建文档术语矩阵D
计算术语文档矩阵
邻接矩阵
该算法主要由四部分组成:Corpus C、文档项矩阵D、文档项矩阵
以及邻接矩阵A。在这个演示部分,我将展示如何构建这四个主要组件。考虑到我们有三组朋友,他们是
Corpus C
然后,我们可以基于给定组数据中的唯一元素构建以下语料库:
相应的元素频率:
基于Corpus C(countvectorizer)的文献术语矩阵D
术语文档矩阵
邻接矩阵
14.2.2. 从我的采访中编码拼图¶
问题
随附的UTF-8编码文本文件包含与在线生物医学科学文章相关的标签,格式如下(大小:100000)。每一篇科学文章都由文件中以回车分隔的一行来表示。
编写一个程序,使用这个文件作为输入,生成一组成对的标签,这些标签以任意顺序和位置出现在至少50篇不同的科学文章中。例如,在上面的示例中, [女性] 和 [人类] 一起出现两次,但每隔一对只出现一次。您的程序应该以与输入相同的格式(例如标记1、标记2)将对列表输出到stdout。
我的解决方案
对应的Co-occurrence网络:
然后你会得到数字 Co-occurrence网络
14.3. 附录:PySpark中的矩阵乘法¶
负载测试矩阵
PySpark中矩阵乘法的主函数
使用python版本验证
14.4. 相关网络¶
待办事项