这个也是学习过程中的一个成果吧,希望大家能批评指正。

红楼梦人物出场次数统计。亮点在于,考虑了人物的别称,以及有较为丰富的排除词库。如凤姐的称谓就有许多,凤辣子,凤姐,王熙凤等等,还有黛玉,有林黛玉,林妹妹,林丫头等等。很多人如果不把这些考虑在内,就容易导致错误的结果。

不得不说,宝玉是绝对的主角。人们通常认为黛玉是第二主角,宝黛恋是全文的绝对主线。结果出场次数最多的除了宝玉,却是贾母、凤姐和王夫人。接下来才是黛玉。挺吃惊的,不是吗?

标题

下面上代码:

这个也是学习过程中的一个成果吧,希望大家能批评指正。

#CalDreamsV1.py

import jieba

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

excludes = {"什么", "一个", "我们", "那里", "如今", "你们", "说道", "知道", "起来", "这里", \

"出来","姑娘","他们","众人","奶奶","自己","一面","只见","两个", \

"怎么","不是","不知","这个","听见","这样","进来","咱们","告诉","就是" ,\

"东西","回来","大家","没有","只是","这样","进来","咱们","告诉","就是" }

words = jieba.lcut(txt)

counts = {}

for word in words:

if len(word) == 1:

continue

elif word == "老太太" or word == "太太" or word == "老祖宗" or word == "史太君":

rword = "贾母"

elif word == "老爷":

rword = "贾政"

elif word == "宝二爷":

rword = "宝玉"

elif word == "王熙凤" or word == "熙凤" or word == "凤辣子":

rword = "凤姐"

elif word == "林黛玉" or word == "潇湘妃子" or word == "林丫头" or word == "林妹妹":

rword = "黛玉"

elif word == "宝姑娘" or word == "宝丫头" or word == "蘅芜君" or word == "宝姐姐":

rword = "宝钗"

else:

rword = word

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

for word in excludes :

del counts[word]

items = list(counts.items())

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

print("《红楼梦》人物出场次数")

for i in range(10):

word , count = items[i]

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

python统计红楼梦人物出场次数_《红楼梦》人数统计,人物,出场,次数相关推荐

  1. 统计123出现次数_如何使用 count 统计词条出现次数?

    如何获取数据最多的3个分类?如何使用count统计词条出现次数?今天番茄加速跟大家讲一下. 如何快速拿到数据最多的 3 个分类? 读入数据: df = pd.read_csv("IMDB-M ...

  2. java 记录微信转发次数_微信分享朋友圈记录分享次数统计实现

    业余时间研究微信的接口方法.记录下微信分享朋友圈记录分享次数统计实现:1.引入JS文件 2.通过config接口注入权限验证配置 3.通过ready接口处理成功验证 4.通过error接口处理失败验证 ...

  3. java统计每个单词单词出现的次数_(java)统计若干段英文中的单词数量,并统计每个单词出现的次数按降序排序。...

    注1(1)注2 !!!!! 10 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre ...

  4. 达梦数据库删除用户_达梦数据库的表空间及用户管理

    一.达梦数据库表空间的管理 1.达梦数据库表空间介绍 Select tablespace_name from dba_tablespace; 1)SYSTEM表空间--> 系统表空间有很多的数据 ...

  5. 7-6 统计字符串中数字字符的个数_洛谷 || 标题统计(C语言)

    点击上方「蓝字」关注"程序员Bob" 每天与你不见不散! 每日一句,送给最珍贵的你: Happy people focus on what they have, unhappy p ...

  6. 达梦数据库操作记录_达梦数据库常用功能及命令记录 -- 持续更新

    达梦数据库常用功能及命令记录 -- 持续更新 达梦数据库常用功能及命令记录 达梦数据库语句的使用总体来说跟 oracle 很接近的, 这篇文章主要是把常用的情况和语句做了记录, 并且后续还会不断的持续 ...

  7. java gc 次数_浅谈如何减少GC的次数

    GC会stop the world.会暂停程序的执行,带来延迟的代价.所以在开发中,我们不希望GC的次数过多. 本文将讨论如何在开发中改善各种细节,从而减少GC的次数. (1)对象不用时最好显式置为 ...

  8. 达梦数据库删除用户_达梦数据库的操作手册.docx

    达梦数据库操作手册2013年12月15日达梦数据库安装服务器安装数据库安装注意问题数据库的安装路径不要直接放在操作系统的/目录相同的磁盘上,可以安装在/dmdb/dm,但是/dmdb要单独挂载在一块硬 ...

  9. 字符串查找字符出现次数_查找字符串作为子序列出现的次数

    字符串查找字符出现次数 Description: 描述: It's a popular interview question based of dynamic programming which ha ...

  10. 华山全敏还是全劲_一梦江湖华山加点_一梦江湖华山加点推荐2020_攻略

    一梦江湖是网易首款高自由度武侠游戏,在游戏里面,有五大门派,其中华山是近战输出,具有很强的团队辅助以及输出能力.鉴于这个门派的属性,许多玩家对此或多或少都有些疑虑.这个门派的缺点真的让人一言难尽,就是 ...

最新文章

  1. 算术表达式求解背景_1.8 C++算术运算符与表达式
  2. MATLAB 人脸定位
  3. Amazon S3和Swift鉴权机制分析
  4. 元旦好礼50份免费送:示波器、开发板、焊台等!
  5. 聊一聊Elasticsearch和MySQL的常用操作
  6. require_once的用法
  7. greenplum vacuum清理删除数据命令
  8. oracle数据库连接名是什么,连接到Oracle数据库的几种命名方式
  9. Mac安装nmap及常用命令【亲测有用】
  10. 微课系列(一):Python列表remove()方法工作原理
  11. js 取得input绑定的datalist中的值_原生JS写一个ToDo Demo
  12. respond是空的_httpClient 获取response 中的 content 为空的原因(急求)
  13. Python图像纹理分割
  14. 关于代码家(干货集中营)共享android端知识点综合整理
  15. 如何加声调口诀_拼音声调口诀
  16. RPLIDAR十分钟极速入门教程
  17. 解密“互联网流量”生意本质
  18. sdcard/DCIM/.thumbnails文件夹里的庞然大物 是这样来的
  19. java代码设置路由
  20. principal java_CAS 单点登录服务端 如何获取到principal

热门文章

  1. 在线gif图片压缩,如何压缩gif动图大小
  2. android view.isshown,关于android:View getVisibility()isShown()返回不正确的可见性
  3. 大数据时代的安全威胁
  4. 解决谷歌的but your computer or network may be sending automated queries
  5. MD5加密解密算法 MD5Utils
  6. 新浪微博html5手机版,新浪微博手机版2018
  7. BMFont制作字体
  8. 键盘鼠标是计算机标准输入输出设备,微型计算机输入输出设备之键盘和鼠标(ppt 32页).ppt...
  9. java map 缓存数据_java使用hashMap缓存保存数据的方法
  10. html svg波浪,CSS实现svg图片水纹波浪流动效果