新浪博客

水浒传里谁是主角Python帮你找答案

2020-02-06 16:49阅读:
作为四大名著之一,水浒传人人皆知。它是一部描写水泊梁山108位好汉史迹的长篇小说。书中人物个个形象鲜明,栩栩如生。可是,究竟哪些人物是书中的主角呢?梁山领头大哥宋江当仁不让,肯定是男一号了。其他还有哪些呢?一时也让人答不上来。
让我们请Python来帮忙吧。Python是一种计算机语言,当前十分流行。其应用领域非常广泛,特别是在涉及人工智能方面。有人称它为人工智能语言。
通常认为,一部小说中出场次数最多的人物就是作品中的主角。因此,根据作品文本中人物出现的频度,按照从大到小的顺序排列,就可以判断出谁是主角谁是次要角色了。然而, 水浒传全文近百万字。用人工统计的方法将是十分繁琐的。但是,使用Python语言,编写40余行程序,运行半分钟就可以完成这个任务。
水浒传里谁是主角Python帮你找答案
水浒传里谁是主角Python帮你找答案

下面是步骤:
1. 获取水浒传文本
可以从网上搜索获得,需要使用TXT格式文本。
2. 预处理
汉字不像英文,单词之间没有用空格隔开。单词的要根据上下文来判断,这叫做分词。分词工作很麻烦,有专门的软件来完成。这里使用的是jieba(结巴)。
3. 无用词过滤
在统计词频时,有些频繁使用的单词,例如因为所以 但是而且之类,必须忽略。此项工作由Python程序完成。
4. 同义词归并
有时,一个人物有几个称呼,例如,“宋江”也叫宋公明”“宋押司 鲁智深又叫鲁达”“鲁提辖等等。因此,这些不同的人名应该归并到一个人名,以确保统计准确。此任务以及下面第5项和第6项任务也由Python完成。
5. 词频统计
6. 排序
对人名出现频率统计以后,按照从多到少的顺序排序。最前面的就可以认为是主要人物了。
最后的结果出来了。和你的预想一样吗?
水浒传里谁是主角Python帮你找答案
本文使用软件环境:windows7 Python v3.8.1 PyCharm 2019.3.1(社区版)

我的更多文章

下载客户端阅读体验更佳

APP专享