一、安装所需要的第三方库

jieba (jieba是优秀的中文分词第三分库)

pyecharts (一个优秀的数据可视化库)

使用pycharm安装库

打开Pycharm选择【File】下的Settings

出现下面页面,

选择右边的【+】出现下面页面,在此页面顶端搜索想要的库,然后安装就可以了

二、编写代码

import jieba #导入库

import os

print("人物出现次数前十名:")

txt = open('三国演义.txt', 'r' ,encoding='gb18030').read()

words = jieba.lcut(txt)

counts = {}

for word in words:

if len(word) == 1:

continue

elif word == "诸葛亮" or word == "孔明曰":

rword = "孔明"

elif word == "关公" or word == "云长":

rword = "关羽"

elif word == "玄德" or word == "玄德曰":

rword = "刘备"

elif word == "孟德" or word == "丞相":

rword = "曹操" # 把相同意思的名字归为一个人

else:

rword = word

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

items = list(counts.items())

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

for i in range(10):

word, count=items[i]

print("{}:{}".format(word, count)) # 打印前十名名单

结果如下图:

可以看到这里面有很多不是人物的名字,所以咱们要把这些删掉。更改代码如下

import jieba #导入库

import os

print("人物出现次数前十名:")

txt = open('三国演义.txt', 'r' ,encoding='gb18030').read()

remove = {"将军", "却说", "不能", "后主", "上马", "不知", "天子", "大叫", "众将", "不可",

"主公", "蜀兵", "只见", "如何", "商议", "都督", "一人", "汉中", "人马",

"陛下", "魏兵", "天下", "今日", "左右", "东吴", "于是", "荆州", "不能", "如此",

"大喜", "引兵", "次日", "军士", "军马","二人","不敢"} # 这些文字是要排出掉的,多次运行程序所得到的

words = jieba.lcut(txt)

counts = {}

for word in words:

if len(word) == 1:

continue

elif word == "诸葛亮" or word == "孔明曰":

rword = "孔明"

elif word == "关公" or word == "云长":

rword = "关羽"

elif word == "玄德" or word == "玄德曰":

rword = "刘备"

elif word == "孟德" or word == "丞相":

rword = "曹操" # 把相同意思的名字归为一个人

else:

rword = word

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

for word in remove:

del counts[word] #匹配文字相等就删除

items = list(counts.items())

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

for i in range(10):

word, count=items[i]

print("{}:{}".format(word, count)) # 打印前十名名单

运行结果如下图

可以看到现在都是人物名称了

导出数据,代码如下

import jieba #导入库

import os

print("人物出现次数前十名:")

txt = open('三国演义.txt', 'r' ,encoding='gb18030').read()

remove = {"将军", "却说", "不能", "后主", "上马", "不知", "天子", "大叫", "众将", "不可",

"主公", "蜀兵", "只见", "如何", "商议", "都督", "一人", "汉中", "人马",

"陛下", "魏兵", "天下", "今日", "左右", "东吴", "于是", "荆州", "不能", "如此",

"大喜", "引兵", "次日", "军士", "军马","二人","不敢"} # 这些文字是要排出掉的,多次运行程序所得到的

words = jieba.lcut(txt)

counts = {}

for word in words:

if len(word) == 1:

continue

elif word == "诸葛亮" or word == "孔明曰":

rword = "孔明"

elif word == "关公" or word == "云长":

rword = "关羽"

elif word == "玄德" or word == "玄德曰":

rword = "刘备"

elif word == "孟德" or word == "丞相":

rword = "曹操" # 把相同意思的名字归为一个人

else:

rword = word

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

for word in remove:

del counts[word] #匹配文字相等就删除

items = list(counts.items())

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

#导出数据

fo = open("三国人物出场次数.txt", "a", encoding='utf-8')

for i in range(10):

word, count=items[i]

word = str(word)

count = str(count)

fo.write(word)

fo.write(':') #使用冒号分开

fo.write(count)

fo.write('\n') #换行

fo.close() #关闭文件

现在咱们运行看是否导出,运行结果如下图。

可以看到已经生成一个名为三国人物出场次数.txt的文件,而文件里的内容就是咱们刚才的数据。

三、数据可视化

想要可视化首先咱们要有数据,咱们把刚才导出的数据转换为字典形式。代码如下

#将txt文本里的数据转换为字典形式

fr = open('三国人物出场次数.txt', 'r', encoding='utf-8')

dic = {}

keys = [] # 用来存储读取的顺序

for line in fr:

v = line.strip().split(':')

dic[v[0]] = v[1]

keys.append(v[0])

fr.close()

print(dic)

-运行结果如下

使用pyecharts绘图

先倒入模块

from pyecharts import options as opts

from pyecharts.charts import Bar

代码如下

# 绘图

list1=list(dic.keys())

list2=list(dic.values()) #提取字典里的数据作为绘图数据

c = (

Bar()

.add_xaxis(list1)

.add_yaxis("人物出场次数",list2)

.set_global_opts(

xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),

)

.render("人物出场次数可视化图.html")

)

运行程序看到目录下会生成一个名为人物出场次数可视化图.html的文件,如下图

使用浏览器打开,就可以看到数据以图形的方式呈现出来。

三、全部代码呈现

#《三国演义》的人物出场次数Python代码:

import jieba #导入库

import os

from pyecharts import options as opts

from pyecharts.charts import Bar

print("人物出现次数前十名:")

txt = open('三国演义.txt', 'r' ,encoding='gb18030').read()

remove = {"将军", "却说", "不能", "后主", "上马", "不知", "天子", "大叫", "众将", "不可",

"主公", "蜀兵", "只见", "如何", "商议", "都督", "一人", "汉中", "人马",

"陛下", "魏兵", "天下", "今日", "左右", "东吴", "于是", "荆州", "不能", "如此",

"大喜", "引兵", "次日", "军士", "军马","二人","不敢"} # 这些文字是要排出掉的,多次运行程序所得到的

words = jieba.lcut(txt)

counts = {}

for word in words:

if len(word) == 1:

continue

elif word == "诸葛亮" or word == "孔明曰":

rword = "孔明"

elif word == "关公" or word == "云长":

rword = "关羽"

elif word == "玄德" or word == "玄德曰":

rword = "刘备"

elif word == "孟德" or word == "丞相":

rword = "曹操" # 把相同意思的名字归为一个人

else:

rword = word

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

for word in remove:

del counts[word] #匹配文字相等就删除

items = list(counts.items())

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

#导出数据

fo = open("三国人物出场次数.txt", "a", encoding='utf-8')

for i in range(10):

word, count=items[i]

word = str(word)

count = str(count)

fo.write(word)

fo.write(':') #使用冒号分开

fo.write(count)

fo.write('\n') #换行

fo.close() #关闭文件

#将txt文本里的数据转换为字典形式

fr = open('三国人物出场次数.txt', 'r',encoding='utf-8' )

dic = {}

keys = [] # 用来存储读取的顺序

for line in fr:

v = line.strip().split(':')

dic[v[0]] = v[1]

keys.append(v[0])

fr.close()

print(dic)

# 绘图

list1=list(dic.keys())

list2=list(dic.values()) #提取字典里的数据作为绘图数据

c = (

Bar()

.add_xaxis(list1)

.add_yaxis("人物出场次数",list2)

.set_global_opts(

xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),

)

.render("人物出场次数可视化图.html")

)

python统计小说人物出现次数_使用python统计《三国演义》小说里人物出现次数前十名,并实现可视化。...相关推荐

  1. python 动漫卡通人物图片大全_用Python实现抖音上的“人像动漫化”特效,原来这么简单...

    原标题:用Python实现抖音上的"人像动漫化"特效,原来这么简单 作者 | 黄伟呢 来源 | 数据分析与统计学之美 前几天,女友拉着我和她玩儿抖音,就是这个 人像动漫化的操作,顿 ...

  2. python计算菜单消费总额字典_用Python中的字典来处理索引统计的方法

    最近折腾索引引擎以及数据统计方面的工作比较多, 与 Python 字典频繁打交道, 至此整理一份此方面 API 的用法与坑法备案. 索引引擎的基本工作原理便是倒排索引, 即将一个文档所包含的文字反过来 ...

  3. python把汉字变成拼音英文_利用python将表格中的汉字转化为拼音

    GB18030的字符集标准 http://zbgb5.com/2/StandardDetail479488.htm 缺少包时用pip install 进行安装,例如: pip install xlsx ...

  4. python二维随机游走_利用python进行时间序列分析——从随机游走到GARCH模型(二)...

    Autoregressive Models - AR(p) 当因变量能由它的多个滞后项表示就叫做自回归性.公式如下: 当我们描述模型的阶数,比如,AR模型的阶数为怕p,p代表在这个模型里用的滞后数量. ...

  5. python处理视频动漫化_用Python实现抖音上的“人像动漫化”特效,原来这么简单...

    原标题:用Python实现抖音上的"人像动漫化"特效,原来这么简单 作者 | 黄伟呢 来源 | 数据分析与统计学之美 前几天,女友拉着我和她玩儿抖音,就是这个 人像动漫化的操作,顿 ...

  6. python的pandas包使用教程_「Python」pandas入门教程

    pandas适合于许多不同类型的数据,包括: 具有异构类型列的表格数据,例如SQL表格或Excel数据 有序和无序(不一定是固定频率)时间序列数据. 具有行列标签的任意矩阵数据(均匀类型或不同类型) ...

  7. python扫雷的代码及原理_基于Python实现的扫雷游戏实例代码

    摘要:这篇Python开发技术栏目下的"基于Python实现的扫雷游戏实例代码",介绍的技术点是"Python实现.Python.实例代码.扫雷游戏.扫雷.游戏" ...

  8. python 用while输出数字金字塔_用Python实现一个Dual Thrust数字货币量化交易策略

    Dual Thrust交易算法介绍 Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略.它通常用于期货,外汇和股票市场.Dual Thrust的概念属于典型的突破交易 ...

  9. python除法函数一般如何命名_关于python:当用于除法时,’/’和’//’之间有什么区别?...

    使用一个对另一个有好处吗?在Python2中,它们似乎都返回相同的结果: >>> 6/3 2 >>> 6//3 2 请参考整数除法的问题,因为引入了//运算符进行整 ...

最新文章

  1. Python标准模块--asyncio
  2. RetinaFace笔记
  3. [转]开发者需要了解的WebKit(mark)
  4. [C# 项目实战]: 制作一个备忘录(经典)
  5. 边工作边刷题:70天一遍leetcode: day 67-1
  6. richtextbox 调用 selectAll() 之后执行Ctrl+C抛异常
  7. mac excel mysql数据库_macOS系统的Excel从MySQL数据库查询数据的设置方法
  8. 国内各运营商(ISP)IP段表
  9. 结合Delphi和Python的优势:使用Delphi VCL组件快速构建超现代的Python本机Windows GUI桌面酷炫用户界面应用
  10. Windows和Linux简单命令的总结
  11. python 多态app_python 多态实例
  12. 2019年安徽省大学生网络攻防赛赛前培训——Day1
  13. effective C++条款四十三解读
  14. Hyper-V安装Win10系统
  15. win10 下 maven 安装与配置
  16. 【合辑】点云基础知识及点云催化剂软件功能介绍
  17. 箭头函数及其this的指向
  18. 2021京东Java面试真题:杭州java工资
  19. JavaScript事件——【小案例】飞机发射子弹
  20. 一个net程序猿必备工具

热门文章

  1. 手工电动木偶,3D模型。
  2. iTween基础之Fade(淡入淡出)
  3. Cache(缓存)基本概念
  4. 【深度域适配】二、利用DANN实现MNIST和MNIST-M数据集迁移训练
  5. 2000年-2009年华语金曲榜
  6. 【Nessus安装、使用】
  7. 微信小程序开发中调用button组件添加微信客服功能
  8. 我接触过的广东美食——流口水
  9. Android 安全分析和漏洞挖掘|工具集
  10. 登录、注册页面及后台代码