当前位置: 首页 > 图灵资讯 > 行业资讯> 如何使用python制作词云

如何使用python制作词云

来源:图灵python
时间: 2025-03-07 22:12:43

前言

今天教大家用wrodcloud模块生成词云,我读了一部小说,生成了词云,先看效果图:

效果图一:

效果图二:

2e9a37b3854a41eab51509499ee48a2.png

d0936f764119c774a3ba10f927032a9.png

根据渲染分析更准确,小说中的主人公是“程理”,所以出现次数最多。图片中有两种模式,一种是默认模式,另一种是添加图片作为背景。现在我将带你去学习如何生成单词云!

安装wordcloud

对于新人来说,安装wordcloud模块是一个大关。我们通常通过Pycharm或PIP安装,但在安装wordcloud时会提示错误,如下:

47bd4e536a232dc683a534b6687bd48.png

我的解决方案是直接访问以下网站,根据您的计算机和py版本下载相应的whl文件

https://www.lfd.uci.edu/~gohl...

下载后,将whl文件放在pip路径下,输入以下代码,记住代码的whl文件名必须是适合您的文件名,我只是举个例子:

pipinstallwordcloud-1.4.cp36-cp36m-win3.whl

运行结束后,将显示安装成功

b449359cc08f1378152de8c9f8d7d32.png

wordcloud的简单用法

wordcloud的基本方法如下:

bd63a08abdc8139a3d81b716f2adef2.png

每个参数每个人都应该一目了然,另外wordcloud还有几种其它的方法,比如fit_words,generate(text),to_file(filename)等等都很好理解。

wordcloud生成词云

效果图1的代码:

fromwordcloudimportWordCloud
importmatplotlib.pyplotasplt#模块绘制图像
importjieba#jieba分词
path_txt='C://Users/Administrator/Desktop/all.txt'
f=open(path_txt,'r',encoding='UTF-8').read()
#结巴分词,生成字符串,wordcloud不能直接生成正确的中文词
cut_text="".join(jieba.cut(f))
wordcloud=WordCloud(
#设置字体,否则会出现口字乱码,文字路径是电脑字体的一般路径,可以换成其他字体
font_path="C:/Windows/Fonts/simfang.ttf",
#背景设置,宽度和高度
background_color="white",width=1000,height=880).generate(cut_text)
plt.imshow(wordcloud,interpolation="bilinear")
plt.axis("off")
plt.show()

运行后:

91a9240d2e2e5ecc85aead8261bbe3e.png

效果图2,将图片背景添加到词云中,代码如下:

fromPILimportImage
fromwordcloudimportWordCloud,ImageColorGenerator
importmatplotlib.pyplotasplt
importnumpyasnp
importjieba
defGetWordCloud():
path_txt='C://Users/Administrator/Desktop/all.txt'
path_img="C://Users/Administrator/Desktop/timg.jpg"
f=open(path_txt,'r',encoding='UTF-8').read()
background_image=np.array(Image.open(path_img))
#结巴分词,生成字符串,如果不是通过分词,不能直接生成正确的中文词云,感兴趣的朋友可以检查,有多种分词模式
#Pythonjoin()该方法用于将序列中的元素与指定的字符连接生成新的字符串。
cut_text="".join(jieba.cut(f))
wordcloud=WordCloud(
#设置字体,否则会出现口字乱码,文字路径是电脑字体的一般路径,可以换成其他字体
font_path="C:/Windows/Fonts/simfang.ttf",
background_color="white",
#mask参数=图片背景,必须写下。此外,将mask参数设置为宽度和高度是无效的
mask=background_image).generate(cut_text)
#生成颜色值
image_colors=ImageColorGenerator(background_image)
#下面的代码显示图片
plt.imshow(wordcloud.recolor(color_func=image_colors),interpolation="bilinear")
plt.axis("off")
plt.show()
if__name__='__main__':
GetWordCloud()

运行后:

be1af0d80c9c69622f8c565b17711ef.png

python学习网,大量免费python视频教程,欢迎在线学习!

上一篇:

python的游标是什么

下一篇:

返回列表