Python 中文文件统计词频 + 中文词云

1. 词频统计:

 1 import jieba
 2 txt = open("threekingdoms3.txt", "r", encoding=‘utf-8‘).read()
 3 words  = jieba.lcut(txt)
 4 counts = {}
 5 for word in words:
 6     if len(word) == 1:
 7         continue
 8     else:
 9         counts[word] = counts.get(word,0) + 1
10 items = list(counts.items())
11 items.sort(key=lambda x:x[1], reverse=True)
12 for i in range(15):
13     word, count = items[i]
14     print ("{0:<10}{1:>5}".format(word, count))

结果是:

曹操 946
孔明 737
将军 622
玄德 585
却说 534
关公 509
荆州 413
二人 410
丞相 405
玄德曰 390
不可 387
孔明曰 374
张飞 358
如此 320
不能 318

进一步改进, 我想只知道人物出场统计,代码如下:

 1 import jieba
 2 txt = open("threekingdoms3.txt", "r", encoding=‘utf-8‘).read()
 3 names = {‘曹操‘,‘孔明‘,‘刘备‘,‘关羽‘,‘张飞‘,‘吕布‘,‘赵云‘,‘孙权‘,‘周瑜‘,‘袁绍‘,‘黄忠‘,‘魏延‘}
 4 words  = jieba.lcut(txt)
 5 counts = {}
 6 for word in words:
 7     if len(word) == 1:
 8         continue
 9     elif word == "诸葛亮" or word == "孔明曰":
10         rword = "孔明"
11     elif word == "关公" or word == "云长":
12         rword = "关羽"
13     elif word == "玄德" or word == "玄德曰":
14         rword = "刘备"
15     elif word == "孟德" or word == "丞相":
16         rword = "曹操"
17     else:
18         rword = word
19     counts[rword] = counts.get(rword,0) + 1
20 # for word in excludes:
21 #     del counts[word]
22 items = list(counts.items())
23 items.sort(key=lambda x:x[1], reverse=True)
24 for i in range(40):
25     word, count = items[i]
26     if word in names:
27         print ("{0:<10}{1:>5}".format(word, count))

运行结果为:

曹操 1358
孔明 1265
刘备 1251
关羽 783
张飞 358
吕布 300
赵云 278
孙权 257
周瑜 217
袁绍 191

进一步的做词云图:

 1 import jieba
 2 import os
 3 import wordcloud
 4
 5 def getText(file):
 6     with open(file, ‘r‘, encoding= ‘UTF-8‘) as txt:
 7         txt = txt.read()
 8         jieba.lcut(txt)
 9     return txt
10
11
12 directoryname =  os.getcwd()
13 filename = input()
14 txt = getText(filename + ‘.txt‘)
15 wordclouds = wordcloud.WordCloud(width=1000, height= 800, margin=2).generate(txt)
16 wordclouds.to_file(‘{}.png‘.format(filename))
17
18 os.system(‘{}.png‘.format(filename))

名称是可以进一步优化的,参见第二部分代码。

中文wordcloud库默认会出现乱码,解决方法参考 https://blog.csdn.net/Dick633/article/details/80261233

参考:https://blog.csdn.net/weixin_44521703/article/details/93058003

原文地址:https://www.cnblogs.com/116970u/p/11611821.html

时间: 2024-10-11 16:09:16

Python 中文文件统计词频 + 中文词云的相关文章

Python获取微信好友签名生成词云

''' pip install wxpy pip install matplotlib # 如果下载超时,就换源下载:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib pip install wordcloud pip install Pillow pip install numpy pip install jieba pip install scipy # 处理图像 # pip install -i https

python编写文件统计脚本

思路:用os模块中的一些函数(os.listdir().os.path.isdir().os.path.join().os.path.abspath()等) 实现功能:显示多级目录,以及自己要找的具体文件类型(例:以".py"结尾的文件),并读取每个文件的第一行(一般为注释说明,这样就能大致了解这个文件是干事什么的) 先编写二级目录文件统计脚本 代码如下: #文件统计 os.chdir("F:\\pythonstudy") for fp in os.listdir(

python pip安装加速以及安装词云 wordcloud报错解决方法

我们正常用pip直接下载的话,因为是国外的下载源,所以下载的东西还是很慢的,而一旦断了就是红字了. 所以我们可以切换到国内的pip源来下载. 对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率 国内源: 新版ubuntu要求使用https源,要注意. 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云

词云制作没那么难,Python 10 行代码就实现了!

写在前面 想必大家有一个问题.什么是词云呢? 词云又叫名字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.. 网页上有许多词云的效果图: 而且,目前有许多制作词云的工具: 但是作为一个学习Python的程序员来说,我更喜欢通过自己的编程去解决问题. 而且用Python制作词云只需十行代码就行了哦~ 一起来看看吧! 代码块 import matplotlib.pyplot as plt fr

php中读取中文文件夹及文件报错

php读取时出现中文乱码 一般php输出中出现中文乱码我们可用 header ('content:text/html;charset="utf-8"'); php中读取中文文件夹及文件报错? 这就要用到iconv函数了 但php.5以下的版本好像要改php.ini这个配置文件 但我用的是php高版本所以可以直接用 iconv这个函数 用法: iconv('GB2312', 'UTF-8', $file); 但想要继续打开中文文件夹(二级中文目录),还是不行还是会报错, 我认为这应该是地

用python给女朋友做一个歌曲词云图

目录 一 什么是词云 二 制作词云的步骤 4 科比词云图制作测试代码1 -- coding:utf-8 - 生成词云 三 案例 网易云歌手房东的猫词云图 1 整体流程图 2 爬取+词云制作 今天咋们来看看网易云赵雷的歌曲歌词,并做一个词云图.这篇文章可以学习到什么是词云,爬虫的基本流程,简单的可视化操作 @ 一 什么是词云 可视化有很多种,好的数据可视化,可以使得数据分析的结果更加通俗易通."词云"属于可视化的一种,它会根据关键词的出现频率生成一幅图,这样可以让我们一眼就知道其主要要点

python3 wordcloud词云

wordclou:根据文本生成词云 一.词云设置 1 wc=WordCloud(width=400, height=200, #画布长.宽,默认(400,200)像素 2 margin=1, #字与字之间的距离 3 background_color='white',#背景颜色 4 min_font_size=3,max_font_size=None,#显示的最小,最大的字体大小 5 max_words=200,#显示的词的最大个数 6 ranks_only=None,#是否只是排名 7 pref

+中文词频统计及词云制作9-25

1.我希望老师能讲一点python在数据挖掘,数据分析领域的应用,最好能举些实例,或者说带我们实际操作一波. 2.中文分词 下载一中文长篇小说,并转换成UTF-8编码   使用jieba库,进行中文词频统计,输出TOP20的词及出现次数. >>>import jieba >>>lr = open('斗破苍穹第一章.txt','w') >>>lr.write('''大陆名为斗气大陆,大陆上并没有小说中常见的各系魔法,而斗气,才是大陆的唯一主调! 在这片大

中文词频统计与词云生成

https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822 中文词频统计 1. 下载一长篇中文小说. 2. 从文件读取待分析文本. 3. 安装并使用jieba进行中文分词. pip install jieba import jieba jieba.lcut(text) 4. 更新词库,加入所分析对象的专业词汇. jieba.add_word('天罡北斗阵')  #逐个添加 jieba.load_userdict(word_dict)