加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2020-02-06 16:49:51)
标签:

python

词频统计

水浒传

人工智能

程序

分类: python

作为四大名著之一,水浒传人人皆知。它是一部描写水泊梁山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(社区版)

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有