金庸到底最喜欢自己写的哪个女性角色?

浪潮工作室

这是一个no zuo no die的经历。。。我,一个菜鸟编程初学者,经过各种bug终于得出了结论。

一切都要从两天前看的一篇文章说起。[告别金庸,我们整理了100件往事【浪潮工作室】

64、金庸对自己小说中的女性角色非常博爱,并且喜好飘忽不定。2004年,金庸在四川参加论坛时说,最喜欢的女性角色是《神雕侠侣》里的郭襄;2007年在北大演讲时说,最喜欢的是《雪山飞狐》的程灵素;但金庸在《倚天屠龙记》后记中说,自己心中最爱小昭。

然后昨晚上自学python课程的时候刚好学到jieba库(中文分词)的使用,课程案例是《三国演义》的人物出场次数统计以及英文小说《哈姆雷特》的词频统计。

一边看mooc的我突然灵光一闪,这不是就是传说中人物出场次数统计吗!!!不走寻常路的我怎么可以分析什么三国演义!我要分析金庸小说!全集!发现金庸的秘密!

我妈的爱豆王力宏!他不是有句歌词!脑袋都是你!心里都是你!

最喜欢的当然是出现最多的角色!!!真是太厉害了我!

于是乎。。。。。

苦逼的编程开始了。这里省去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部小说文本逐一分解为一个个词语,并利用计算机强大的计算速度和能力,对每个词语进行词频统计。(还好金庸先生只写了15部武侠小说就封笔了,要不然还不会爬虫的我可能会猝死在下载小说的过程中)

由于金庸先生多年笔耕不辍,常年在《明报》上连载小说,码了好多字。导致文本数据过大,每次运行程序都要好几分钟。

后来,我惊喜的发现网上有网友总结的金庸人名全集(感谢这个网友!不然我可能写代码写到通宵。。。),并且将这个文本也同时进行了分词,添加到我的jieba词库中,并建立了金庸人物姓名列表。

顺便科普一波,由于金庸先生的小说广受读者好评,世界各地涌现出许多研究金庸小说的人,并将研究金庸小说的学问称为“金学”。(ps:在我国,最著名的小说研究领域当属红楼梦的“红学”了)但金庸本人对“金学”并不感冒,觉得自己的小说没什么好研究的。

机智的我,利用姓名库对词语进行了筛选,如果词语不在金庸小说姓名列表中,就直接跳过这个词语,不对它进行出现次数的统计。由此一来,程序只对金庸小说中出现的人名进行统计,此举大大提高了程序运行的速度~~撒花!!

罗里吧嗦了那么多,所以金庸到底最喜欢哪个女主角???以下是金庸笔下出场频率最多的前100名(因为每部小说长短不一,为了科学起见,我将频率定义为【出场次数/小说全篇字数】),由上至下分别是第1名至100名。



怎么左对齐不了。。。。

结果不言而喻,答案是金老先生最喜欢的女性角色是双儿。

具体苦逼编程过程且听下回分解~

现在是凌晨2:22

乏了乏了,碎觉去。

(本篇文章其实有很多不足的地方,比如jieba库只能进行句子切分,而不能根据语义分析上下文,小说中很多代词例如“她、他、他们”都无法进行精确的人物定位和出场次数统计,所以以上结果仅供参考。ps韦小宝的出场频率为啥这么高?我怀疑程序出了一些我无法发现的bug= =如果有大佬发现欢迎指正。)

最后,写这篇文章主要是想以不一样的形式向金庸先生表示敬意。希望大家都能够享受金庸的小说~~~。

你可能感兴趣的:(金庸到底最喜欢自己写的哪个女性角色?)