用Python搞出自己喜欢的云词图
什么词云
由词汇组成类似云的彩色图形。“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
有何作用
1、直观,高大上
2、可装逼,很潇洒
image
image
准备工作
1、导入包——jieba和wordcloud
命令:pip install jieba
命令:pip install wordcloud
备注:对于pycharm等可采用各自的方法导入包
2、文本和图片的准备
文本:可爬取网上资料或某歌曲书籍等关键字,亦或是像我是自己手动输入文字并用tab隔开
图片:找自己喜欢的图片,这里我采用乔巴的图片作为背景,而且除了主要人物外,其他背景都为白色,显示效果较好。
采用的文本内容:
image
采用的图片:
image
代码展示
# coding: utf-8
import jieba
from wordcloud import WordCloud,STOPWORDS
from scipy.misc import imread # 处理图像的函数
import matplotlib.pyplot as plt
# 读取文本文件
text = open( /media/pzw/0E50196C0E50196C/weixin/t1.txt , r ).read()
# 对文本进行分词
cut_text = .join(jieba.cut(text))
# 读取图片
color_mask = imread( /media/pzw/0E50196C0E50196C/weixin/qiaoba.jpg )
# 生成词云
cloud = WordCloud(font_path= G:/py/wc/new_songti.ttc ,# 这里是导入字体,因为我是采用英文的,所有不导入也并不影响,若是中文的或者有其他的字符需要自己选择合适的字体包
background_color="white",
mask=color_mask,
max_words=2000,
max_font_size=80)
word_cloud = cloud.generate(cut_text)
# 输出图片
plt.axis( off )
plt.imshow(word_cloud)
plt.show()
效果展示
image