Python 实践 | wc-酷炫的词云嘻嘻

本文介绍了如何使用Python的wordcloud库制作词云。通过分步展示从读取文本到生成不同风格的词云,包括调整最大字体大小和使用自定义形状,帮助读者理解并实践Python词云的绘制技巧。

相比大家应该有看过很多漂亮的词云,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。


其实,用python也是很容易就实现我们想要的效果的,今天就简单实践一下如何用python来画一些简单的词云。

640?wx_fmt=png

其实,在绘制词云的前期工作中,有个很重要的就是分词,这篇文章就不讲解了,讲起来有可能是长篇大论了,有机会再讲解一下。


安装相关库

之前用过的库我就不介绍了,这儿有一个新的库,wordcloud,同样的,利用python的pip直接进行安装即可。



导入库及数据

#导入相关库

from wordcloud import WordCloud, STOPWORDS

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from PIL import Image


# 读取相关数据集

text = open('/Users/yongsenlin/Desktop/constitution.txt').read()

text2 = open('/Users/yongsenlin/Desktop/alice.txt').read()



第一次画图

# 对分词后的单词进行词云生成

wordcloud = WordCloud().generate(text)


# 使用matplotlib展示词云

plt.imshow(wordcloud, interpolation='bilinear')

plt.axis("off")

plt.show()


640?wx_fmt=png

可以看出一个简单的词云就画好了,但是,有些字体太大了,然后对比下来其他单词都看不清了,我们可以选择将最大的字体缩小,从而可以看到更多的单词。



第二次画图

wordcloud = WordCloud(max_font_size=40).generate(text)

plt.figure()

plt.imshow(wordcloud, interpolation="bilinear")

plt.axis("off")

plt.show()


640?wx_fmt=png

这一次,可以看到最大的“states”在显示上缩小了好多,我们的“视野”也更大了。



第三次画图

那么,我想画一些有形状的词云,怎么画呢?其实也很简单,不过在此之前,你需要准备一个“面具”,就是你想显示的形状的二值图。


# read the mask image

alice_mask = np.array(Image.open('/Users/yongsenlin/Desktop/alice_mask.png'))

640?wx_fmt=png

stopwords = set(STOPWORDS)

stopwords.add("said")


wc = WordCloud(background_color="white", max_words=2000, mask=alice_mask,

               stopwords=stopwords)


# 生成词云

wc.generate(text2)


# 将结果导出

wc.to_file('/Users/yongsenlin/Desktop/alice.png')


# 展示一下结果

plt.imshow(wc, interpolation='bilinear')

plt.axis("off")

plt.figure()

plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')

plt.axis("off")

plt.show()

640?wx_fmt=png

漂漂亮亮的Alice就画好了哈哈哈哈!


640?wx_fmt=png

数据集和python代码我已经上传到微信公众号后台,大家有需要的可以在我的微信公众号(SAMshare)后台进行索取,输入关键字:词云,即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值