三国演义人物出场统计代码含义_实例2之《三国演义》人物出场统计
大家好,我是人间富贵花下的贫穷草,简称人间富贵草。
jieba(结巴)作为一个优秀的第三方中文分词函数库,今天我们就把它拉出来溜溜。
《三国演义》txt文本下载地址:
https://www.shutxt.com/e/DownSys/doaction.php?enews=DownSoft&classid=18&id=750&pathid=0&pass=3db1f2cfcfe0f9b563d489e0498444b1&p=:::www.shutxt.com
鸿篇巨制《三国演义》到底谁的出场次数最多呢?
#《三国演义》人物出场统计,把此py文件和《三国演义》文本放在同一文件夹
import jieba
#打开txt文件并且读取全部文本
file = open("三国演义.txt","r+",encoding='utf-8').read()
#jieba精确模式分词,返回列表words
words =jieba.lcut(file)#核心思路如下,把人名当做字典key,出场次数当做value
dict_counts = {}
for word in words:if len(word) == 1: #排除单一字符如“的/地/也“的干扰continueelse: #dict_counts.get(word,0)+1表示已存在word则返回对应value值并+1,不存在就返回0再+1dict_counts[word] = dict_counts.get(word,0)+1 #d.get()的用法可见上篇文章items = list(dict_counts.items())
#按出场次数降序排序
items.sort(key=lambda x:x[1],reverse=True)
#输出top20名
for i in range(20):word,count = items[i]print("人物:{0:<10}出场次数:{1:>5}".format(word,count))
>>>
========== RESTART: D:/Program Files/Python/Python_Files/jieba/f_print.py ==========
人物:曹操 出场次数: 936
人物:孔明 出场次数: 831
人物:将军 出场次数: 772
人物:却说 出场次数: 657
人物:玄德 出场次数: 570
人物:关公 出场次数: 509
人物:丞相 出场次数: 491
人物:二人 出场次数: 468
人物:不可 出场次数: 441
人物:荆州 出场次数: 421
人物:不能 出场次数: 387
人物:孔明曰 出场次数: 385
人物:玄德曰 出场次数: 383
人物:如此 出场次数: 378
人物:张飞 出场次数: 348
人物:商议 出场次数: 346
人物:如何 出场次数: 341
人物:主公 出场次数: 330
人物:军士 出场次数: 312
人物:吕布 出场次数: 300
[Finished in 10.7s]
曹贼开头,吕布收尾,好家伙!
啪!
啪啪啪!
但是仔细一看,除了曹操、孔明,还有将军、却说、如此等不是人物名字的词语,也有重复的如玄德和玄德曰、孔明和孔明曰等应该合并在一起的。
好,晓得了晓得了,有了基本盘,我们根据需求来修改代码。
#《三国演义》人物出场统计,把此py文件和《三国演义》文本放在同一文件夹
import jieba
#创建删除词语集合
del_words = ["将军","却说","二人","不可","荆州","不能","如此","商议","如何","主公","军士"]
#打开txt文件并且读取全部文本
file = open("三国演义.txt","r+",encoding='utf-8').read()
#jieba精确模式分词,返回列表words
words =jieba.lcut(file)
dict_counts = {}
for word in words:if len(word)==1: #排除单一字符如“的/地/也“的干扰continueelif word == "诸葛亮" or word == "孔明曰":rword = "孔明"elif word == "关公" or word == "云长":rword = "关羽"elif word == "玄德曰" or word == "玄德":rword = "刘备"elif word == "丞相" or word == "孟德":rword = "曹操"else:rword = worddict_counts[rword] = dict_counts.get(rword,0)+1 #d.get()的用法可见上篇文章
for i in del_words:del dict_counts[i]
items = list(dict_counts.items())#按出场次数降序排序
items.sort(key=lambda x:x[1],reverse=True)
#输出top20名
for i in range(20):word,count = items[i]print("人物:{0:<10}出场次数:{1:>5}".format(word,count))
>>>
========== RESTART: D:/Program Files/Python/Python_Files/jieba/f_print.py ==========
人物:曹操 出场次数: 1434
人物:孔明 出场次数: 1373
人物:刘备 出场次数: 1224
人物:关羽 出场次数: 779
人物:张飞 出场次数: 348
人物:吕布 出场次数: 300
人物:左右 出场次数: 298
人物:军马 出场次数: 290
人物:引兵 出场次数: 277
人物:次日 出场次数: 276
人物:大喜 出场次数: 273
人物:孙权 出场次数: 265
人物:天下 出场次数: 257
人物:于是 出场次数: 256
人物:赵云 出场次数: 255
人物:东吴 出场次数: 252
人物:今日 出场次数: 246
人物:不敢 出场次数: 244
人物:魏兵 出场次数: 243
人物:陛下 出场次数: 231
[Finished in 9.0s]
还有影响词语,我们再来操作一番。
#《三国演义》人物出场统计,把此py文件和《三国演义》文本放在同一文件夹
import jieba
#创建删除词语集合
del_words = ["将军","却说","二人","不可","荆州","不能","如此","商议","如何",
"主公","军士","左右","军马","引兵","次日","大喜","天下","于是","东吴","今日",
"不敢","魏兵","陛下","人马","不知","一人","都督","汉中"]
#打开txt文件并且读取全部文本
file = open("三国演义.txt","r+",encoding='utf-8').read()
#jieba精确模式分词,返回列表words
words =jieba.lcut(file)
dict_counts = {}
for word in words:if len(word)==1: #排除单一字符如“的/地/也“的干扰continueelif word == "诸葛亮" or word == "孔明曰":rword = "孔明"elif word == "关公" or word == "云长":rword = "关羽"elif word == "玄德曰" or word == "玄德":rword = "刘备"elif word == "丞相" or word == "孟德":rword = "曹操"else:rword = worddict_counts[rword] = dict_counts.get(rword,0)+1 #d.get()的用法可见上篇文章
for i in del_words:del dict_counts[i]
items = list(dict_counts.items())#按出场次数降序排序
items.sort(key=lambda x:x[1],reverse=True)
#朕乏了,改成top10吧嘻嘻嘻
for i in range(10):#朕乏了,改成top10吧嘻嘻嘻word,count = items[i]print("人物:{0:<10}出场次数:{1:>5}".format(word,count))
>>>
========== RESTART: D:/Program Files/Python/Python_Files/jieba/f_print.py ==========
人物:曹操 出场次数: 1434
人物:孔明 出场次数: 1373
人物:刘备 出场次数: 1224
人物:关羽 出场次数: 779
人物:张飞 出场次数: 348
人物:吕布 出场次数: 300
人物:孙权 出场次数: 265
人物:赵云 出场次数: 255
人物:司马懿 出场次数: 221
人物:周瑜 出场次数: 217
[Finished in 8.9s]
好,一波操作终于猛如虎,让我们恭喜曹贼同学,祝贺孔明同学,同时安慰刘备同学!
我们单独給曹同学一个见面礼!
print("{0:-^20}".format("下面揭晓本场的最佳人气奖"))
print()
top1_word,top1_count = items[0]
print("本场最佳人气奖是{0:^4}同志!".format(top1_word))
print()
print("{:-^20}".format("颁奖结束,大家欢呼!"))
>>>
========== RESTART: D:/Program Files/Python/Python_Files/jieba/f_print.py ==========
----下面揭晓本场的最佳人气奖----本场最佳人气奖是 曹操 同志!-----颁奖结束,大家欢呼!-----
>>> print("{:-^20}".format("编写结束"))
--------编写结束--------
三国演义人物出场统计代码含义_实例2之《三国演义》人物出场统计相关推荐
- 统计代码放在网站php,网站添加简单访客统计代码
都知道,网站的来访量的多少只有网站主自己知道,是因为在后台安装统计工具,访客想要知道某个网站有多少来访量怎么办呢?其实还可以通过添加代码在网站的前端显示哦,那么今天明星就来说说网站如何添加访客统计代码 ...
- matlab 统计数组频数_利用MATLAB进行频率分析(统计数组中元素个数)
在日常计算,工作中使用MATLAB经常会遇到这样的一个问题:如何统计数组中各数字(元素)出现的频数.频率和累积频率?本文就按照案例演示的方式做一个总结. 第一种方法:调用MATLAB自带的函数tabu ...
- 三国演义人物出场统计代码含义_Python分析《三国演义》人物出场次数,孔明第二,赵云第五...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. import jieba excludes = {"将军", ...
- retext代码高亮_实例简介Markdown格式
简介 Markdown 是一种轻量级标记语言,由John Gruber和Aaron Swartz创建,使其成为可读性最大并可再发行的可输入输出的格式. Markdown 并不是为了取代 Html,因为 ...
- python计算营业额代码_python计算营业额的代码_python 统计代码行数简单实例
python 统计代码行数简单实例 送测的时候,发现需要统计代码行数 于是写了个小程序统计自己的代码的行数. #calclate_code_lines.py import os def afileli ...
- 从统计代码来谈JS加载的优化
我有这么一个职业病,每次发现页面很卡,不管谁的网站,都会F12调出Chrome控制台来调试,看看是什么原因导致. 原因其实不外乎这几种: 1.页面文档的加载 2.css/js 的加载 这边就 js 说 ...
- 网站底部的统计代码HTML
原文链接: 网站底部的统计代码HTML – Rookie diary好用的Html网页统计代码,添加后可如图例显示....https://tuyogf.top/%e7%bd%91%e7%ab%99%e ...
- 隐藏51la、cnzz统计图标方法及隐藏统计代码方法
cnzz统计代码如下: <!-- 统计开始--> cnzz统计代码 <!-- 统计结束--> 这个是会显示官方图标的:现在只要用DIV给隐藏掉就OK了,代码前加<div ...
- CSDN博客添加量子恒道统计代码步骤
CSDN博客添加量子恒道统计代码步骤. 1. 去量子恒道网站统计 注册账户: 2. 添加已有的CSDN博客地址: 3. 添加博客后恒道代码里面会给你一个JavaScript脚本,记下里面的一串数字: ...
最新文章
- JSR338(Java Persistence)
- 修改maven本地仓库位置
- Linxu用户登录监测
- mysql创建用户以及授权
- java占用提示_Java显示使用或已经覆盖了api为啥?
- 最佳实践 | 数据库迁云解决方案选型 流程全解析
- sysbench的框架实现介绍
- linux fork脚本,在Shell脚本中调用另一个脚本的三种方式讲解
- 零基础带你学习MySQL—日期函数(十五)
- 将Excel VBA封装成exe程序[老贴收藏]
- apt-get update : pulic key error
- 软件项目管理 project 实验
- DevOps落地实践:通讯行业系列:NTT COMWARE之Devaas
- 一寸照纯红色底图片_红底证件照换成蓝色背景,边缘怎样处理,才能让照片更自然呢?...
- 图形化开发(五)041-Three.js之Camera相机——target焦点和lookAt()方法、OrthographicCamera正交相机、PerspectiveCamera透视相机、相机插件
- RAID独立冗余磁盘列阵
- 开始LeetCode刷题的第一天
- entsel约束条件lisp_autolisp函数
- Linux命令查看压缩包文件目录
- 学习太极创客 — MQTT(五)发布、订阅和取消订阅