ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

利用wordcloud生成词云

2020-02-05 13:09:25  阅读:747  来源: 互联网

标签:plt color mask WordCloud 生成 wordcloud 词云 import


 代码中使用如下包

jieba

snownlp

itchat

wordcloud

下载包

在命令行输入以下命令

pip install numpy matplotlib pillow wordcloud imageio jieba snownlp itchat -i https://pypi.tuna.tsinghua.edu.cn/simple

生成词云

生成简单文本词云

import wordcloud


w = wordcloud.WordCloud(font_path='msyh.ttc', height=700, width=1000, background_color='white')  # msyh.ttc是中文字体。设计上w就是词云本身,有各种属性与方法
w.generate('从明天起,做一个幸福的人。喂马、劈柴,周游世界。从明天起,关心粮食和蔬菜。我有一所房子,面朝大海,春暖花开')
w.to_file('t3.png')

 

分词后并借用mask生成有形状的词云

import wordcloud
import jieba
import imageio
import cv2


mk = cv2.imread('china.jpg')
w = wordcloud.WordCloud(font_path='msyh.ttc', height=1000, width = 700, background_color='white', mask = mk, scale = 3, stopwords = ['方式'] )
# scale表示图片大小与清晰度,stopwords:不想展示的词
f = open('19da.txt', encoding='utf-8')
txt = f.read()
txtlist = jieba.lcut(txt)  # list类型
string = ' '.join(txtlist)   # generate方法要求输入参数是str or bytes-like
w.generate(string)
w.to_file('t2.jpg')

 

给词云上色

import wordcloud
import snownlp
import imageio
import matplotlib.pyplot as plt

mask = imageio.imread(r'E:\PyCharm\ciyun\alice.png')
w = wordcloud.WordCloud(height=1000, width=700, mask=mask, background_color='white', scale=10, max_font_size=25, min_font_size=3)  # msth:MicoroSoft YaHei
mask_color = wordcloud.ImageColorGenerator(mask)  # 用mask生成颜色转换类
text = open(r'E:\PyCharm\ciyun\Hamlet.txt', encoding='utf-8')   # 注意习惯,读取文本时都加上utf-8比较好
text = ' '.join(text)
w.generate(text)
w.recolor(color_func=mask_color)

plt.subplot(121)
plt.imshow(w)   # WordCloud类可以作为imshow的参数,这是怎么做到的?
plt.subplot(122)
plt.imshow(mask)
plt.show()

 

一个疑问:在最后一个例子中,WordCloud类对象可以作为imshow的参数,WordCloud的设计人员是怎么做到这一点的?

 

 

 

此方家的空腹 发布了35 篇原创文章 · 获赞 6 · 访问量 5629 私信 关注

标签:plt,color,mask,WordCloud,生成,wordcloud,词云,import
来源: https://blog.csdn.net/qq_42138454/article/details/104180771

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有