加入收藏 | 设为首页 | 会员中心 | 我要投稿 宿州站长网 (https://www.0557zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

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

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. g<-g-V(g)[degree(g)==0]???


(3)相邻点的集合——neighbors(很重要)



  1. neighbors(g.zn,v=which(V(g.zn)$label=="会计"))??

  2. V(g.zn)$label[neighbors(g.zn,v=which(V(g.zn)$label=="取向"),mode="total")]??

  3. ???#默认mode设置是out,还有?in,total;其中V(g.zn)$label和V(g.zn)一个返回标签,一个返回值??

eighbors可以找出标签如果是“会计”的点,与之有关系的点的序号是啥;不过你也可以通过V(g.zn)$label让临近点的标签一起筛选出来


其中mode代表点出度(out)以及点入度(in),还有两个都有的点度(total)。
该函数可以对于点集,做附近的画像,比较好用。


2、关系网络中的线集E


(1)线集的类型

关系网络中线的关系比较多,loop线就是循环到自己的点,1-2-1;multiple代表线的重叠。

  1. which_loop(g)??#线是否能够指回自己,1-1就是指回自己??

  2. which_multiple(g)??#是否有重复线,后面1-1与前面1-1重复了??

(2)线集属性

线的属性中,自编译函数能够拿到线权重,E(g)$weight。但是没有标签项,这时候需要用set_vertex_attr加入线标签。


  1. g<-set_vertex_attr(g,"name",value=V(g)$label)??

原理就是把点集的标签,打到线集上来,name是默认的设置。
线集的属性中也可以跟数据集一样进行筛选操作。

  1. temp<-E(g)[order(E(g)$weight>25000)]??

(3)线集加减

线集的加减可以用add.edges以及-来实现


  1. g<-add.edges(g,t(edges))??#edges需要先转置??

  2. g<-g-E(g)[(weight>1)]??#删除部分线??


其中需要注意,add.edges中,需要把列数据,转置为行数据,平放id与词条。

同时线集也会有重复性的问题,见下文count.multiple(g) 以及simplify函数。


还有一些特别的函数,diameter(g)可以做到最长的链接经过了多少根线。


4、关系网络的重复性问题


在关系网络中,重复是常见的,而且无向线中1-2与2-1是重复的,重复线的数量也可以作为线的权重。也就是E(g)$weight。其中igrarh包中笔者看到两个函数跟重复性问题有关。count.multiple(g) 以及simplify函数。


(1)count.multiple(g) 函数


可以获得网络中线的重复情况。不重复是1,重复一次+1。比如:无向网络(1-2,2-3,2-1)就是(2,1,2)

等价于E(g)$weight


(2)simplify函数

函数常规式:simplify(g,remove.multiple = TRUE,remove.loops = TRUE,edge.attr.comb = "mean")

其中loops是指是否循环回自己,比如1-2-1就是一个循环到自己;multiple是指重复比如1-2,2-1。


  1. h?<-?graph(?c(1,2,1,3,4)?);h?????

  2. is_simple(h)??

  3. simplify(h,?remove.loops=FALSE)???#线重复,删除a->b,a->b删掉??

  4. simplify(h,?remove.loops=TRUE)????#在线方向性重复基础上删掉点重复,a->a,b->b??

  5. simplify(h,?remove.multiple=FALSE)#删掉点重复??

  6. simplify(h,?remove.multiple=TRUE)#删掉点重复同时,删除线a->b,a->b??

  7. simplify(h,?remove.multiple=TRUE,remove.loops=TRUE)?#删掉线重复、点重复??


simplify函数识别了两种重复方式,一种是线重复,比如1-2,2-1,;一种是点重复比如1-1,2-2就是点重复。

remove.multiple=TRUE,把重复的线删除
edge.attr.comb,使用重复次数来更新线权重E(g)$weight


SNA社会关系网络分析中,关键的就是通过一些指标的衡量来评价网络结构稳定性、集中趋势等。主要有中心度以及中心势两大类指标。

? ? 以下的代码都是igraph包中的。


中心度指标的对比


一、中心度


中心度指标有四类点度中心度、接近中心度、中间中心度、特征向量中心度。

1、点度中心度——点出度、点入度、相对点中心度、点度频率

有两个部分:绝对中心度+相对中心度。是最基本的概念,就是在某个点上,有多少条线。比如以下这个数列,“小明”这个点,有三个度(小明-小红,小白-小明,小明-小胖)。

绝对中心度中,在有向图中还有点出度、点入度之分。比如“小明”这个点,有两个点出度(小明-小红,小明-小胖);一个点入度(小白-小明)。

相对点中心度中,相对点中心度=绝对点中心度/最大度数(可以作为不同网络结构的比较,相对数与绝对数的区别),此时小明的相对点中心度就是3/3=1。

id1 di2 ?
小明 ?小红 ?
小张 ?小白 ?
小红 ?小胖 ?
小胖 ?小蓝 ?
小白 ?小明 ?
小白 ?小张 ?
小明 ?小胖 ?


  1. degree(g,mode="in")??????#mode=in点入度;out=点出度;total点度中心度,三者统称绝对点中心度??

  2. (编辑:宿州站长网)

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

热点阅读