今天手把手教大家用python制作词云,图片的效果如下:
首先,需要准备的操作是:
1、安装好python3系列版本
2、安装python第三方库wordcloud;(本条及以下第三方库安装,请参考我的这篇文章python第三方库怎么安装?第三方库安装成功却运行不出报错不能用?)
3、安装numpy、pillow库。
4、安装jieba库
5、安装matplotlib库
第2步中的 wordcloud 安装成功之后,numpy、pillow库会被自动安装,
安装完wordcloud库之后,若打开cmd,输入pip list 找到了以上步骤3~5中提到的第三方库,
便不需再次手动安装,若未找到,即需要手动安装,请参考python第三方库怎么安装?第三方库安装成功却运行不出报错不能用?这篇文章
温馨提示,如出现安装成功却无法在编译器中导入第三方库的情况,请检查自己的电脑是否装了多个版本的python,如是,请卸载不需要的版本,尽可能只保留一个最新的版本。
完成以上步骤之后,下面我来讲一下如何制作最开始提到的两张词云
一、第一张:
生成词云时,wordcloud 默认会以空格或标点为分隔符对目标文本进行分词处理。
对于中文文本,分词处理需要由用户来完成。
一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数。
处理中文时还需要指定中文字体。
例如,选择了微软雅黑字体(msyh.ttf)作为显示效果,需要将该字体文件与代码存放在同一目录下或在字体文件名前增加完整路径。
1、打开自己电脑C:\Windows\Fonts
2、选择微软雅黑字体(msyh.ttf)作为显示效果(当然也可以选择自己喜欢的字体样式)
右键复制,并将该字体文件与代码存放在同一目录下(或在字体文件名前增加完整路径),
将此文字文件命名为”msyh.ttf”
3、完整代码如下,
import jieba
from wordcloud import WordCloud
txt = '弱小的人,才习惯,嘲讽和否定,而内心,强大的人,从不吝啬赞美和鼓励!我们就是后浪,奔涌吧!后浪,奔涌吧!'
words = jieba.lcut(txt) #精确分词
newtxt = ''.join(words) #空格拼接
wordcloud = WordCloud(font_path = "msyh.ttf").generate(newtxt)wordcloud.to_file('中文词云图.jpg')
运行成功,(红色不代表报错哦)
4、最后去存放代码的那个文件夹下查找 生成的“中文词云图.jpg”文件。(每次生成的都是随机的)
二、第二张:
接下来讲一下如何生成带背景图的词云
1、准备一张带有透明背景的 png格式图片
2、准备一个txt文本文件,并与代码存放在同一目录下
1、找到一张图片,我们发现这张是有黄色背景的,于是我们需要把背景设置成透明的。
打开PS操作一下,当然你也可以直接在网上下载透明背景的图片。
这是我扣好的图,需要自取,直接右键保存,将文件名命名为Alice.png
再将此文件与代码文件存在同一目录下
2、准备一个txt文本文件(文件内容是一篇英文),并命名为Alice.txt
再将此文件与代码文件存在同一目录下
3、复制完整代码,直接运行即可
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
mask = np.array(Image.open("Alice.png"))
f = open('Alice.txt','r',encoding = 'utf-8')
txt = f.read()
f.close
wordcloud = WordCloud(background_color="white",\
width = 800,\
height = 600,\
max_words = 200,\
max_font_size = 80,\
mask = mask,\
contour_width = 3,\
contour_color = 'steelblue'
).generate(txt)
wordcloud.to_file('Alice_词云图.png')
4、在代码所在文件夹内,找到文件 Alice_词云图.png ,并打开生的成词云图。
三、第三张图
最后一张是中文带背景图的词云,效果图被平台删了,大家自己试着跑一跑下面的代码吧。
完整代码如下,运行前请准备图片和txt文件,并将二者与代码存放在同一目录下。(参照一、二步骤)
import jieba
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from wordcloud import WordCloud
def trans_ch(txt):
words = jieba.lcut(txt)
newtxt = ''.join(words)
return newtxt
f = open('maozedong.txt','r',encoding = 'utf-8') #将你的文本文件名与此句的'maozedong.txt'替换
txt = f.read()
f.close
txt = trans_ch(txt)
mask = np.array(Image.open("love.png")) #将你的背景图片名与此句的"love.png"替换
wordcloud = WordCloud(background_color="white",\
width = 800,\
height = 600,\
max_words = 200,\
max_font_size = 80,\
mask = mask,\
contour_width = 4,\
contour_color = 'steelblue',\
font_path = "msyh.ttf"
).generate(txt)
wordcloud.to_file('love_词云图.png')
以上就是全部过程啦,我没讲清楚的地方欢迎评论区留言,有问必答。
我的其他账户:
bilibili账号:李桥桉
有视频讲解哦~
一键三连支持一下哦~
今天的文章python词云制作(最全最详细的教程)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29255.html