數據分析告訴你,韋小寶跟他七個老婆哪個最親?

金庸的「飛雪連天射白鹿,笑書神俠倚碧鴛」,唯獨《鹿鼎記》寫的最是香艷動人,年少時閱此書,每每春心蕩漾,心裡如鑽進小鹿。

刁蠻任性的建寧公主、天香國色的阿珂、溫柔懂事的雙兒,在當時年少的我心中,真是得一個足矣。

作者在寫小說時,往往會將自己代入到書中主角,因此金庸寫韋小寶,往往是在寫他自己,或者說是期望的自己。

因此要看韋小寶與七個老婆誰最親,可以看書中韋小寶與七個老婆誰的互動最多。

首先下載《鹿鼎記》整本小說的txt。

韋小寶一聽大喜,心想:「原來你名叫阿珂,終於給我知道了。」他隨伴白衣尼多日,知她喜人恭謹謙讓,在她面前,越是吃虧,越有好處,忙道:「師太,姑娘這兩腳原是該踢的,實在是我不對,真難怪姑娘生氣。她便再踢我一千一萬下,那也是小的該死。」爬起身來,雙手托住下顎,只痛得眼淚也流了出來。這倒不是做作,實在那一腳踢得不輕。

然後我們定義這樣的指標:

七個老婆名字與韋小寶在同一段落一起出現的次數,作為 親密度 指標,如以上段落,韋小寶和阿珂的親密度+1。

找到七個老婆的名詞:

阿珂

蘇荃/洪夫人

建寧公主/建寧

雙兒

沐劍屏/郡主

方怡/方姑娘

曾柔/曾姑娘

將《鹿鼎記》txt按照段落,分割成11581個txt文件。

分割文件的python代碼:

s = open(d:/lu/lu.txt,r)q = s.read()f = q.split(
)x=1for i in f: b = open(d:/lu/+str(x)+.txt,w) b.write(i) x+=1 print xs.close

然後用python的結巴分詞包,去匹配每個名字在每個段落是否有出現,出現標記為1,否則為0.

x=1result={xiaobao:[],ake:[],suquan:[],jianning:[],shuanger:[],junzhu:[],fangyi:[],zengrou:[]}while x<=11581: a={word:[],count:[]} f=open(d:/lu/+str(x)+.txt,r).read() words=list(jieba.cut(f)) if u韋小寶 in words: result[xiaobao].append(1) else: result[xiaobao].append(0) if u阿珂 in words: result[ake].append(1) else: result[ake].append(0)...

再兩兩計算在段落里一同出現的次數。

result2={role:[],xiaobao:[],ake:[],suquan:[],jianning:[],shuanger:[],junzhu:[],fangyi:[],zengrou:[]}for a in b.columns.values: x=xiaobao=ake=suquan=jianning=shuanger=junzhu=fangyi=zengrou=0 while x<=11580: if b.iloc[x][a]==1: if b.iloc[x][xiaobao]==1: xiaobao+=1 if b.iloc[x][ake]==1: ake+=1... x+=1 result2[role].append(a) result2[xiaobao].append(xiaobao) result2[ake].append(ake) result2[suquan].append(suquan) result2[jianning].append(jianning) result2[shuanger].append(shuanger) result2[junzhu].append(junzhu) result2[fangyi].append(fangyi) result2[zengrou].append(zengrou)o=pd.DataFrame(result2)o.to_csv(d:/lu/lu2.csv,mode=w,encoding=UTF-8)

最後生成這樣一份矩陣的csv文件。

由以上矩陣可以得出韋小寶跟七個老婆的親密度如下:

韋小寶&雙兒:327

韋小寶&沐劍屏:278

韋小寶&阿珂:203

韋小寶&方怡:147

韋小寶&蘇荃:135

韋小寶&建寧公主:47

韋小寶&曾柔:28

實際以上不僅算出韋小寶跟七個老婆的親密度,還算出了七個老婆兩兩之間的親密度。

我們將以上矩陣丟進Gephi(一款畫關係矩陣的可視化軟體),以散點的大小代表名字出現的頻次,以線的粗細代表親密度的大小,得到這樣一張圖。

所以,是雙兒笑到了最後

最喜歡周星馳版的雙兒 (~﹁~)

同理,我還做了《還珠格格》的關係圖

計算了包括小燕子、紫薇、乾隆、爾康、五阿哥、金鎖、爾泰、皇后、令妃、塞婭、柳青、柳紅在內的親密度,發現《還珠格格》原來講的是小燕子、紫薇和乾隆三角戀的故事,其他角色都是打醬油的 ╮( ̄▽  ̄)╭

所以,姜還是皇阿瑪的辣

最後,手把手教你怎麼用Gephi畫關係圖。

1、首先,從官網下載Gephi;

2、文件-導入表格,根據數據形式選擇類型,本文是選擇矩陣;

3、耐心調整數據,包括結點、邊的顏色和大小(選完記得點應用),結點的標籤要點T才能展示,然後一些lable要在數據資料那裡賦值才能展示出來;

4、最後,預覽,刷新,然後輸出圖片。

這裡有用E-charts畫關係圖的教程

使用Echarts呈現天善用戶的關係圖 - 天善智能:專註於商業智能BI和數據分析、大數據領域的垂直社區平台?

ask.hellobi.com圖標

如果要更深入一些,涉及數據挖掘和AI,可以學這個教程

三個月教你從零入門人工智慧!!| 深度學習精華實踐課程 (免費)?

edu.hellobi.com圖標

覺得有用的,給我點個贊哦 ?(???????)?


推薦閱讀:

解密互聯網大佬飯局:菜名太有講究,座次也費心思
崩潰和幽靈CPU漏洞:你需要知道的
盤點機床行業人士不得不知的數控加工知識
奧特曼格鬥進化3奧特模式在哪?
技術主導好還是服務主導好?

TAG:數據分析 | 互聯網 | 小說 |