金庸到底最喜歡自己寫的哪個女性角色?

浪潮工作室

這是一個no zuo no die的經(jīng)歷。。。我,一個菜鳥編程初學(xué)者,經(jīng)過各種bug終于得出了結(jié)論。

一切都要從兩天前看的一篇文章說起。[告別金庸,我們整理了100件往事【浪潮工作室】

64、金庸對自己小說中的女性角色非常博愛,并且喜好飄忽不定。2004年,金庸在四川參加論壇時說,最喜歡的女性角色是《神雕俠侶》里的郭襄;2007年在北大演講時說,最喜歡的是《雪山飛狐》的程靈素;但金庸在《倚天屠龍記》后記中說,自己心中最愛小昭。

然后昨晚上自學(xué)python課程的時候剛好學(xué)到j(luò)ieba庫(中文分詞)的使用,課程案例是《三國演義》的人物出場次數(shù)統(tǒng)計以及英文小說《哈姆雷特》的詞頻統(tǒng)計。

一邊看mooc的我突然靈光一閃,這不是就是傳說中人物出場次數(shù)統(tǒng)計嗎?。。〔蛔邔こB返奈以趺纯梢苑治鍪裁慈龂萘x!我要分析金庸小說!全集!發(fā)現(xiàn)金庸的秘密!

我媽的愛豆王力宏!他不是有句歌詞!腦袋都是你!心里都是你!

最喜歡的當(dāng)然是出現(xiàn)最多的角色!?。≌媸翘珔柡α宋?!

于是乎。。。。。

苦逼的編程開始了。這里省去10000字。

對有可能看到這篇文章的編程大佬,我先貼上自己的代碼為敬。

#JinYong.py

import os

import jieba

num=15

bookpath=[]

def name(path):

? ? namelist=open(path,"r",encoding="utf-8").read()

? ? global names

? ? names=namelist.split()

? ? print(names[0:10])

? ? for name in names:

? ? ? ? jieba.add_word(name)

def getfilepath(path):

? ? a=os.listdir(path)

? ? global bookpath

? ? for i in a:

? ? ? ? bookpath.append(os.path.join(path,i))

name("D:\\name.txt")

getfilepath("D:\\books")

for i in bookpath:

? ? txt=open(i,"r",encoding="utf-8").read()

? ? words = jieba.lcut(txt)

? ? counts = {}

? ? p = {}

? ? for word in words:

? ? ? ? if word not in names:

? ? ? ? ? ? continue

? ? ? ? else:

? ? ? ? ? ? counts[word] = counts.get(word,0)+1

? ? ? ? ? ? p[word] =p.get(word,0)+ counts[word]/len(txt)

? ? print(i+"\n======================分詞完成======================")

items = list(p.items())

items.sort(key=lambda x:x[1],reverse=True)

for i in range(100):

? ? word,p=items[i]

? ? print("{0:<10}{1:>.5%}".format(word,p))


不是編程大佬,看不懂?你只需要做出這種表情,這種姿勢:

簡而言之,利用python語言的第三方中文分詞庫jieba,我將金庸全部的15部小說文本逐一分解為一個個詞語,并利用計算機強大的計算速度和能力,對每個詞語進行詞頻統(tǒng)計。(還好金庸先生只寫了15部武俠小說就封筆了,要不然還不會爬蟲的我可能會猝死在下載小說的過程中)

由于金庸先生多年筆耕不輟,常年在《明報》上連載小說,碼了好多字。導(dǎo)致文本數(shù)據(jù)過大,每次運行程序都要好幾分鐘。

后來,我驚喜的發(fā)現(xiàn)網(wǎng)上有網(wǎng)友總結(jié)的金庸人名全集(感謝這個網(wǎng)友!不然我可能寫代碼寫到通宵。。。),并且將這個文本也同時進行了分詞,添加到我的jieba詞庫中,并建立了金庸人物姓名列表。

順便科普一波,由于金庸先生的小說廣受讀者好評,世界各地涌現(xiàn)出許多研究金庸小說的人,并將研究金庸小說的學(xué)問稱為“金學(xué)”。(ps:在我國,最著名的小說研究領(lǐng)域當(dāng)屬紅樓夢的“紅學(xué)”了)但金庸本人對“金學(xué)”并不感冒,覺得自己的小說沒什么好研究的。

機智的我,利用姓名庫對詞語進行了篩選,如果詞語不在金庸小說姓名列表中,就直接跳過這個詞語,不對它進行出現(xiàn)次數(shù)的統(tǒng)計。由此一來,程序只對金庸小說中出現(xiàn)的人名進行統(tǒng)計,此舉大大提高了程序運行的速度~~撒花?。?/p>

羅里吧嗦了那么多,所以金庸到底最喜歡哪個女主角???以下是金庸筆下出場頻率最多的前100名(因為每部小說長短不一,為了科學(xué)起見,我將頻率定義為【出場次數(shù)/小說全篇字?jǐn)?shù)】),由上至下分別是第1名至100名。



怎么左對齊不了。。。。

結(jié)果不言而喻,答案是金老先生最喜歡的女性角色是雙兒。

具體苦逼編程過程且聽下回分解~

現(xiàn)在是凌晨2:22

乏了乏了,碎覺去。

(本篇文章其實有很多不足的地方,比如jieba庫只能進行句子切分,而不能根據(jù)語義分析上下文,小說中很多代詞例如“她、他、他們”都無法進行精確的人物定位和出場次數(shù)統(tǒng)計,所以以上結(jié)果僅供參考。ps韋小寶的出場頻率為啥這么高?我懷疑程序出了一些我無法發(fā)現(xiàn)的bug= =如果有大佬發(fā)現(xiàn)歡迎指正。)

最后,寫這篇文章主要是想以不一樣的形式向金庸先生表示敬意。希望大家都能夠享受金庸的小說~~~。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容