最近看到了一些社交网络分析的文章,对此产生了兴趣,也开始进行相关的学习。本次文章我们将水浒传这一名著与互联网公司组织架构相结合,用Python+Gephi完成本次的分析,让大家能够以一种不同的视角了解社交网络以及社群发现。
PART1:获得数据
由108位精兵强将组成的水泊梁山互联网有限公司内部高效运转,经营包括酒店、武馆、寺庙等多项产业,我们今天来探秘公司内部员工的社交网络。
作为上市公司,财报需要定期对公众披露,所以此次数据无需爬虫获得,直接可以从最新“财报“《水浒传》中获得,我们从中获取员工的有效信息,以CEO宋江为例。
with open("水浒传全文.txt", encoding='gb18030') as file:
shuihu = file.read()
shuihu = shuihu.replace('\n','')
shuihu_set = shuihu.split(' ')
shuihu_set=[k for k in shuihu_set if k!='']
songjiang_set=[k for k in shuihu_set if '宋江' in k]
haohan = pd.read_excel('水浒人物.xlsx')
haohan['出场段落']=0
PART2:员工收入情况
作为能够长期运作的互联网公司,在员工收入分配方面始终员工KPI(出场段落数量)相挂钩,我们来看一下年薪TOP10和BOTTOM10
看来水泊梁山大家的年收入差距两头分化比较严重,比较符合目前互联网公司发展趋势,杜绝“吃大锅饭”的发展思路,代码如下:
haohan.sort_values('出场段落',ascending=False,inplace=True)
attr = haohan['姓名'][0:10]
v1 = haohan['出场段落'][0:10]
bar = Bar("水泊梁山年收入TOP10")
bar.add("年收入(万)", attr, v1, is_stack=True,is_label_show=True)
bar.render('水泊梁山年收入TOP10.html')
haohan.sort_values('出场段落',ascending=True,inplace=True)
attr = haohan['姓名'][0:10]
v1 = haohan['出场段落'][0:10]
bar = Bar("水泊梁山年收入BOTTOM10")
bar.add("年收入(万)", attr, v1, is_stack=True,is_label_show=True)
bar.render('水泊梁山年收入BOTTOM10.html')
PART3:员工社交网络
我们调取了员工的聊天记录(同时出现的段落),每出现一次聊天记录,我们将员工之间的关联权重加一,统计代码如下:
net_df = pd.DataFrame(columns=['Source','Target','Weight','Source_Ratio','Target_Ratio'])
for i in range(0,107):
for j in range(i+1,108):
this_weight = len([k for k in shuihu_set if haohan['使用名'][i] in k and haohan['使用名'][j] in k])
net_df=net_df.append({'Source':haohan['姓名'][i],'Target':haohan['姓名'][j],
'Weight':this_weight,
'Source_Ratio':this_weight/haohan['出场段落'][i],
'Target_Ratio':this_weight/haohan['出场段落'][j]},
ignore_index=True)
print(str(i)+':'+str(j))
我们在去除一些社交网络节点数据(聊天总数较少或聊天数量占一方数量比例过少)的情况后,用Gephi软件绘制出了整体的社交网络图如下:
可以看出的社交网络是围绕着总裁宋江展开,其他的一些总裁办成员如吴用、李逵等也在社交网络中占据重要位置。林冲、鲁智深、李俊等高级领导则起到连接高层与基层员工的作用。值得一提的是副总裁卢俊义虽然职级很高,但是在公司的话语权似乎不是强,毕竟卢俊义也是作为空降兵来到的公司。
PART4:员工社区发现
Gephi软件自带社区发现函数,我们实现后用不同颜色划分出不同的社群,整体效果如下:
我们下面逐一来看一下各个社区的成员,首先是CEO宋江、CTO吴用等人所在的总裁办:
下面来看一下花荣、林冲等日常工作与代马(码)这件事情息息相关的开发组:
之后是由鲁智深、孙二娘等人组成的数据组,需要日常分析梁山酒店等产业运营状况:
产品、运营团队则分别由精通水性,能够协调好各个部门的李俊和执行力极强,善于推动项目进行的李逵带领:
最后看一下一些人数较少的社群:
这些社群基本上都是由夫妻、亲兄弟、铁哥们组成,具有很强的亲密度,水泊梁山的HR在招人时显然是考虑了这点。通过招聘具有亲密关系的应聘者,提高员工工作幸福感,有效降低离职率。
原文发布时间为:2018-07-02
本文作者:数据森麟
本文来自云栖社区合作伙伴“Python爱好者社区”,了解相关信息可以关注“Python爱好者社区”。