加入收藏 | 设为首页 | 会员中心 | 我要投稿 滨州站长网 (https://www.0543zz.cn/)- CDN、边缘计算、物联网、云计算、运营!
当前位置: 首页 > 大数据 > 正文

文本挖掘:社交网络、社群划分

发布时间:2021-02-21 07:46:03 所属栏目:大数据 来源:网络整理
导读:作者:Matt ? 自然语言处理实习生 http://blog.csdn.net/sinat_26917383/article/details/51444536 回复此公众号 “ 社交网络 ”获取word版原文查看。向小编咨询问题,联系 微信:hai299014 一、关系网络数据类型 关系网络需要什么样子的数据呢? ? ?笔者接

这个函数有这么几个参数:


data,是两列关系数据,前面已经讲过了,只能两列,而且要同等长度;

dir,逻辑值,T代表有向图,F无向图;

rem.multi,逻辑,T删除重复变量并更新线权重weight,F不删除并且线权重为1。
使用方法直接init.igraph(data,dir=T,rem.multi=T)即可。


2、文本型数据

一般数据结构都可以套用上面的函数,包括平行关系型的有向、无向;文本型。其中对于文本矩阵型数据还有一个办法,参考于统计词画番外篇(一):谁共我,醉明月?

利用igragh包中的graph_from_adjacency_matrix函数。


  1. adjm?<-?matrix(sample(0:1,?100,?replace=TRUE,?prob=c(0.9,0.1)),?nc=10)??

  2. g1?<-?graph_from_adjacency_matrix(?adjm?,weighted=TRUE,mode="undirected")??

  3. ??

  4. ???##?给稀疏矩阵行列进行命名??

  5. rownames(adjm)?<-?sample(letters,?nrow(adjm))??

  6. colnames(adjm)?<-?seq(ncol(adjm))??

  7. g10?<-?graph_from_adjacency_matrix(adjm,?weighted=TRUE,?add.rownames="row",add.colnames="col")??


代码解读:adjm是随便构造的一个矩阵,函数;


graph_from_adjacency_matrix中,

weighted=TRUE,是否需要加入权重;
mode有directed,undirected,upper,lower,max,min,plus有这么几种,min代表把无向图中,只选取最小数字的线(1,1)与(1,2)只选择(1,1)。具体请参看函数官方解释。

add.rownames以及add.colnames,因为前面的自编译函数init.igraph可以自定义标签,这里定义名称,可以用add.rownames加入标签列,这样你可以用V(g10)$row以及V(g10)$col直接看到标签。其中还可以自己定义名字,row,col都是笔者自己定义的。


三、一些基本操作

关系网络中,每一个点的信息存放在V中,每一个线的信息存放在E中。并且通过自编译的init.igraph函数,V(g)$label以及E(g)$weight都是自带的属性。

可以生成一个空的关系网络。

并且关系网络生成之后,R里面就不是用真实的名字来做连接,是采用编号的。例如(小明-小红)是好朋友,在R里面就显示为(1-2),所以需要单独把名字属性加到序号上。


  1. g<-graph.empty(directed=F)??


1、关系网络中的点集V

点集就是网络中所有的点,如有向文本型那个数据格式,包括了14个点;7条线。

(1)点集属性

点集与数据框的操作很相似,属性是可以自己赋上去的,比如V(g)$label就是赋上去的,你还可以给点集加上颜色(V(g)$color)、加上每个点的尺寸(V(g)$size),加上分类(V(g)$member)

点集的选择跟数据框操作一样,比如我要选择群落为1的点集,就是V(g)[which(V(g)$member==1)]

比如我要选择点度数大于1的点集,V(g)[degree(g)>1]

如果我想知道一下这两个点之间是否有关系,可以用edge.connectivit函数,edge.connectivity(g,4,9) ?代表着第四个点与第九个点之间是否有连接关系。返回的0/1。0是没有线,1代表有线。


(2)点集加减操作


我想在原来的基础上加入一些点,用add.vertices


  1. g<-add.vertices(g,length(labels))#关系网络中加入“点”??

如果我想减去点度数为0的点


  1. (编辑:滨州站长网)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读