數據分析告訴你,韋小寶跟他七個老婆哪個最親?
金庸的「飛雪連天射白鹿,笑書神俠倚碧鴛」,唯獨《鹿鼎記》寫的最是香艷動人,年少時閱此書,每每春心蕩漾,心裡如鑽進小鹿。
刁蠻任性的建寧公主、天香國色的阿珂、溫柔懂事的雙兒,在當時年少的我心中,真是得一個足矣。
作者在寫小說時,往往會將自己代入到書中主角,因此金庸寫韋小寶,往往是在寫他自己,或者說是期望的自己。
因此要看韋小寶與七個老婆誰最親,可以看書中韋小寶與七個老婆誰的互動最多。
首先下載《鹿鼎記》整本小說的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和數據分析、大數據領域的垂直社區平台如果要更深入一些,涉及數據挖掘和AI,可以學這個教程
三個月教你從零入門人工智慧!!| 深度學習精華實踐課程 (免費)覺得有用的,給我點個贊哦 ?(???????)?
推薦閱讀:
※解密互聯網大佬飯局:菜名太有講究,座次也費心思
※崩潰和幽靈CPU漏洞:你需要知道的
※盤點機床行業人士不得不知的數控加工知識
※奧特曼格鬥進化3奧特模式在哪?
※技術主導好還是服務主導好?