《三国演义》.txt下载地址(提取码:kist )使用pycharm安装库打开Pycharm选择【File】下的Settings出现下面页面,选择右边的【+】出现下面页面,在此页面顶端搜索想要的库,然后安装就可以了二、编写代码import

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

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

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

《三国演义》.txt下载地址(提取码:kist )

使用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三国演义人物 统计分析前20个_使用python统计《三国演义》小说里人物出现次数前十名,并实现可视化。...

    一.安装所需要的第三方库 jieba (jieba是优秀的中文分词第三分库) pyecharts (一个优秀的数据可视化库) <三国演义>.txt下载地址(提取码:kist ) 使用pyc ...

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

    一.安装所需要的第三方库 jieba (jieba是优秀的中文分词第三分库) pyecharts (一个优秀的数据可视化库) 使用pycharm安装库 打开Pycharm选择[File]下的Setti ...

  3. python统计单词出现次数最多的5个单词_【Python】统计文本中单词的出现次数前十的单词...

    代码: # 读取一个文本,并且统计文本中单词的出现次数 def read_file(): # 在windows环境中的编码问题,指定utf-8 with open('F:/python源码/实验区/0 ...

  4. python 小说人物分析_用python分析小说人物关系(二)——实战篇

    用到的工具jieba jieba分词,最好用的开源中文分词工具.他最主要的两个功能是分词和关键词的抽取.在这里我们需要用他的分词功能来提取文本中的人名. gephi gephi是一个开源的复杂网络数据 ...

  5. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  6. python分析保险销售数据_利用python进行保险数据分析及可视化

    前言 现在数据分析在各个行业都在广泛的使用,尤其由于python语言的简便.高效性,在一些中小型企业的实际应用中逐渐替代excel公式.透视图等传统方式.网上各种博客论坛这类文章很多,但保险行业的数据 ...

  7. python大牛 关东升_《Python从小白到大牛》第4章 Python语法基础

    本章主要为大家介绍Python的一些语法,其中包括标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 标识符和关键字 任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍Pyth ...

  8. python列表添加元组_【Python爬虫】列表、元组、集合练习

    列表: pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. list.append(obj) 在列表末尾添加新的对象 list.count(obj) 统计某个元素在列表 ...

  9. python 预编译加速_让Python代码运行更快的最佳方式

    Python因其强大.灵活且易于使用等特性,而赢得了声誉.这些优点使其在各种各样的应用程序.工作流程和领域中得到了广泛应用.但是就语言的设计,也就是它天然的解释能力还有它的运行时的动态性而言,Pyth ...

  10. python画交互式地图_使用Python构建交互式地图-入门指南

    python画交互式地图 Welcome to The Beginner's Guide to Building Interactive Maps in Python 欢迎使用Python构建交互式地 ...

最新文章

  1. 您也使用托管C++吗?
  2. HOG特征检测学习笔记
  3. VTK:vtkCursor3D用法实战
  4. 遍历 HashSet 的方法
  5. flask接收前台的form数据
  6. 3d激光雷达开发(绘制长方体)
  7. pandas dataframe多重索引常用操作
  8. php 获取搜索引擎,PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)...
  9. WORD文档未保存就关闭的解决方法
  10. 040 罗尔定理与零点定理、介值定理综合应用;柯西中值定理; 型二( f(n) (ξ) =0 )
  11. Macbook pro 电脑显示连上Wi-Fi但无法上网:解决方案汇总
  12. java将数据库数据转换成word文档并且生成pdf文件最后转换成对应的图片
  13. 自学mysql教程 资料_数据库MYSQL,自学,命令,教程。
  14. win10创建新的计算机用户名和密码,win10电脑怎么新建用户?高手教你在win10新建用户的方法...
  15. 测试-------性能测试(一)
  16. 某人写的openCV学习笔记
  17. nginx安装教程(centos系统)
  18. NASA授予下一代航天计算处理器合同,中国情况如何?
  19. 【ParaView教程】第四章 常见问题 —— 怎样在ParaView中绘制矢量分量的等值线/面?
  20. 关于“24点”游戏的解法

热门文章

  1. besiege机器人_围攻besiege机器人 机器人制作思路
  2. 163免费邮件群发平台,企业群发邮件的哪个好?企业邮件群发助手
  3. 工作日报这样写 大老板也挑不出错
  4. 电驴服务器更新的作用,用电驴,这些服务器知识你必知
  5. 用python做生日礼物_地产大佬潘石屹把学习Python当作生日礼物送给自己
  6. 梁建章:我带领携程战胜所有竞争对手的方法论
  7. 批量将jpg格式图像改为png格式
  8. 大学计算机考试word实操夏威夷,计算机一级等级考试操作题WORD(4页)-原创力文档...
  9. 论“无常,苦、无我”
  10. layuiadmin上手好难_滑步车比赛好拍吗?