python:用wordcloud生成一个文本的词云
今天学习了wordcloud库,对《三国演义》生成了词云图片,非常漂亮。就想多尝试几个,结果发现一系列问题。
最常出现的一个错误就是"UnicodeDecodeError : ...", 冒号后面的info不一而足。看意思也能猜出是"encoding"解码方式不对,于是各种编码尝试,有的默认或者"ANSI"就可以解码,有的必须用"UTF-8", 一狠心用了”errors='ignore', 结果顺利运行了,词云图片却是一堆乱码。
注:如果图片各种方框,应该是字体没加对了(ttf文件系统里搜一下):font_path = "msyh.ttf"
想着应该有个办法能获取到文本的编码方式啊,一搜果然如此, 链接:https://blog.csdn.net/qq_32618817/article/details/81363235.
#wordcloud_V2.py
import jieba
import wordcloud
import chardet
#from scipy.misc import imread #用于生成图片形状的词云(安装命令:pip install -U scipy) #新版里用from imageio import imread代替
def get_encoding(file): #用命令安装这个包"pip install chardet"
with open(file,'rb') as f: #二进制方式读取,获取字节数据,检测类型
encode = chardet.detect(f.read()) #获取文件的编码方式, 获取到的是个字典类型
return encode['encoding'] #编码方式为encoding的键值。 为字符串类型。
#mask = imread('pic.png') #加载图片
#打印文件编码
file_type = get_encoding('22.txt')
print(file_type) #制作词云
test = open('22.txt','r',encoding=file_type,errors='ignore') #因为是字符串类型,这里可以直接引用。 t_read = test.read()
t_lcut = jieba.lcut(t_read) test.close() txt = " ".join(t_lcut)
#print(type(t_lcut)) fo = wordcloud.WordCloud(width=800,height=600,font_path="msyh.ttf",mask = mask) fo.generate(txt)
fo.to_file('lala.jpg')
结果如下:

python:用wordcloud生成一个文本的词云的更多相关文章
- Java爬取B站弹幕 —— Python云图Wordcloud生成弹幕词云
一 . Java爬取B站弹幕 弹幕的存储位置 如何通过B站视频AV号找到弹幕对应的xml文件号 首先爬取视频网页,将对应视频网页源码获得 就可以找到该视频的av号aid=8678034 还有弹幕序号, ...
- 用python实现一个简单的词云
对于在windows(Pycharm工具)里实现一个简单的词云还是经过了几步小挫折,跟大家分享下,如果遇到类似问题可以参考: 1. 导入wordcloud包时候报错,当然很明显没有安装此包. 2. 安 ...
- Python模块---Wordcloud生成词云图
wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概. 首先贴出一张词云图(以哈利波特小说为例): 在生成词云图之前 ...
- 用Python实现一个词频统计(词云+图)
第一步:首先需要安装工具python 第二步:在电脑cmd后台下载安装如下工具: (有一些是安装好python电脑自带有哦) 有一些会出现一种情况就是安装不了词云展示库 有下面解决方法,需看请复制链接 ...
- python抓取电影<海王>影评词云生成
海王是前段时间大热的影片,个人对这种动漫题材的电影并不是很感兴趣.然鹅,最近这部电影实在太热了,正好最近看自然语言处理的时候,无意间发现了word cloud这个生成词云的库,还蛮好玩的,那就抓抓这部 ...
- python使用matplotlib画图,jieba分词、词云、selenuium、图片、音频、视频、文字识别、人脸识别
一.使用matplotlib画图 关注公众号"轻松学编程"了解更多. 使用matplotlib画柱形图 import matplotlib from matplotlib impo ...
- 利用python实现简单词频统计、构建词云
1.利用jieba分词,排除停用词stopword之后,对文章中的词进行词频统计,并用matplotlib进行直方图展示 # coding: utf-8 import codecs import ma ...
- 用 python 生成一个简单的词云图
import jieba from nltk import * from wordcloud import WordCloud import matplotlib.pyplot as plt word ...
- python词云生成-wordcloud库
python词云生成-wordcloud库 全文转载于'https://www.cnblogs.com/nickchen121/p/11208274.html#autoid-0-0-0' 一.word ...
随机推荐
- git的一些补充点
git rm和 rm的区别 git rm是删除文件, 同时加入到git的跟踪管理中,做一个登记,那么在git commit的时候, 会把这次删除作为一次修改提交上去, 否则, 在 git log中你就 ...
- twitter ads_campaign management(图示)
下载链接
- 阿里技术专家详解Dubbo实践,演进及未来规划
https://mp.weixin.qq.com/s/9rVGHYfeE8yM2qkSVd2yEQ
- 20165306 2017-2018-2《Java程序设计》课程总结
课程总结 每周作业链接汇总: 预备作业一:我期望的师生关系 预备作业二:学习基础和C语言基础调查 预备作业三:Linux安装与学习 第一周作业:Java入门 第二周作业:基本数据类型与数组,运算符.表 ...
- 两个JS的不好设计
1.相等判断 if(a){} 相当于 if(a == ture){} 然而下面的相等判断都为true 0 == false "" == false "false" ...
- VC.重定向标准输出到文件(父进程方式)
1.libxml2 使用过程中,有时 libxml2里面会报一些错误信息,在 控制台的程序中 这些信息看起来比较乱,不易观察,我想将这些信息重定向到 文件中 1.1.本进程内:试着 将标准输出,标准错 ...
- Git commit/pull/push的操作步骤
1.操作步骤需要严格执行如下顺序:commit->pull->push 2.commit:将代码提交到本地仓库. 3.pull:将远程仓库代码同步到本地仓库.如遇冲突,解决冲突,重复com ...
- 用GraphX分析伴生网络(一)
1. 图论与GraphX 图论是一个数学学科,研究一组实体(称为顶点)之间两两关系(称为边)的特点.通过构建关系图谱,并对关系进行分析,可以实现更好的投放广告,推荐关系等.随着关系图谱越来越强大,计算 ...
- Caused by: java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects
环境:jdk1.8 开发工具:IDEA 说明:今天在做springboot集成swagger2的时候,在启动程序的时候,报错 报错信息: Error starting ApplicationConte ...
- 7.7 GRASP原则七: 纯虚构 Pure Fabrication
GRASP原则七: 纯虚构 Pure Fabrication 如果依据信息专家原则获得的解决方案不合适,既不想违反低耦合.高内聚,也不想违 反其他的原则, 该如何把职责分配给对象? 左右为难… ...