當水滸傳人物來到互聯網時代,他們竟然是這樣social的!

當水滸傳人物來到互聯網時代,他們竟然是這樣social的!

來自專欄 Python社區

據說,由108位精兵強將組成的水泊梁山互聯網有限公司成立了!該公司經營包括酒店、武館、寺廟等多項產業。今天,數據俠徐麟就要用Python+Gephi,帶我們去一探這家神秘公司內部員工社交網路的秘密~

▍前言

最近看到了一些社交網路分析的文章,對此產生了興趣,也開始進行相關的學習。本次文章我們將水滸傳這一名著與互聯網公司組織架構相結合,用Python+Gephi完成本次的分析,讓大家能夠以一種不同的視角了解社交網路以及社群發現。

▍PART1:獲得數據

由108位精兵強將組成的水泊梁山互聯網有限公司內部高效運轉,經營包括酒店、武館、寺廟等多項產業,我們今天來探秘公司內部員工的社交網路。

作為上市公司,財報需要定期對公眾披露,所以此次數據無需爬蟲獲得,直接可以從最新「財報「《水滸傳》中獲得,我們從中獲取員工的有效信息,以CEO宋江為例。

with open("水滸傳全文.txt", encoding=gb18030) as file: shuihu = file.read()shuihu = shuihu.replace(
,)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在招人時顯然是考慮了這點。通過招聘具有親密關係的應聘者,提高員工工作幸福感,有效降低離職率


推薦閱讀:

整數對象實現原理和比較-python面試題 171120
【翻譯】《利用Python進行數據分析·第2版》第3章(中)Python的數據結構、函數和文件
神經網路從庫到架構(二)
python3 print輸出到文件
集智第六期培訓班

TAG:Python | 數據 | 數據分析 |