前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于词云可视化笔记一(wordcloud和英文词汇可视化)

关于词云可视化笔记一(wordcloud和英文词汇可视化)

作者头像
python与大数据分析
发布2022-03-11 13:11:35
5820
发布2022-03-11 13:11:35
举报
文章被收录于专栏:python与大数据分析

一直比较关注数据可视化这块,对于分词和词的可视化却始终不明就里,直到看到词云,当时惊为天人,不过词云的制作还是非常麻烦,直到2017年Python走近我的视野中,python可以说无所不能,急人之所急,无数奉献者奉献的无数package,踩在前人的肩膀上coding可以少走很多弯路。

词云主要包括三块内容,一块是词库,一块是分词,一块是可视化,一般来说词库和分词是密不可分的,分词会自带一些词库,当然也可以按照词库的格式要求引入一些停用词库、专业词库、自定义词库。此外在词库和分词英文和中文是完全不同的,wordcloud就是典型的集英文词库、分词和可视化为一体的python包。中文方面主要包括jieba分词和pkuseg分词。

笔记先讨论英文词云可视化,后续再补充中文词云的可视化内容。

代码示例

代码语言:javascript
复制
from os import path
from PIL import Image
from wordcloud import WordCloud, STOPWORDS,ImageColorGenerator
import numpy as np
import matplotlib.pyplot as plt
#------------------------版本一,标准的WordCloud输出-------------------------------
d = path.dirname(__file__)
#此处下载特朗普总统就职演说
text = open(path.join(d,'speechenglish.txt')).read()
#获取停用词集合
stopwords = set(STOPWORDS)
#stopwords 输出内容和格式:{'being', 'few', 'where', "how's", 'before', "she'll", 'on', 'at', 'his', "doesn't", "you'd","..."}
#追加停用词
stopwords.add('said')
# stopwords 输出内容和格式:{'being', 'few', 'where', "how's", 'before', "she'll", 'on', 'at', 'his', "doesn't", "you'd","said","..."}
wordcloud=WordCloud().generate(text)
# 直接输出为<wordcloud.wordcloud.WordCloud object at 0x0000019E8CFC2E80>
# 查阅https://github.com/amueller/word_cloud/blob/master/wordcloud/wordcloud.py
# self.layout_ = list(zip(frequencies, font_sizes, positions,orientations, colors))
# layout_返回的内容是(单词,词频),字体大小,位置,方向和颜色
# 可以通过以下代码打印相关结果 for word in wordcloud.layout_:print(word)
# 条目1 (('will', 1.0), 63, (77, 102), None, 'rgb(49, 181, 123)')
# 条目2 (('people', 0.8571428571428571), 58, (126, 140), None, 'rgb(42, 119, 142)')
#以下可直接输出top50的词汇
process_word=WordCloud.process_text(wordcloud,text)
sort = sorted(process_word.items(),key=lambda e:e[1],reverse=True)
print(sort[:50])
# 直接通过图片格式输出词云图
word_image=wordcloud.to_image()
word_image.show()
# 用matplotlib方式绘制词云图,interpolation参数有好多,大概是跟色彩有关
# methods = [None, 'none', 'nearest', 'bilinear', 'bicubic', 'spline16',
#           'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric',
#           'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos']
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
#----------------------版本二,定制的WordCloud图像输出-----------------------------
# 指定图片蒙版
pic_mask = np.array(Image.open(path.join(d, "kulou.jpg")))
# 指定wordcloud输出图片的样式,如上所述,初始化过程中即指定了相关的参数,并在generate进行输出
wc = WordCloud(background_color="white", max_words=2000, mask=pic_mask,stopwords=stopwords)
# 直接通过图片格式输出词云图
wc.generate(text)
# 设置图形的字体颜色
#------------------版本三,定制的WordCloud图像输出-定制字体颜色----------------------
color_source_image=np.array(Image.open('kulou.jpg'))
colormap=ImageColorGenerator(color_source_image)
colored_image=wc.recolor(color_func=colormap)
#------------------------------------------------------------------------------------
wc.to_file(path.join(d, "kulou_wc.jpg"))
# 用matplotlib方式绘制词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.show()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python与大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档