易烊千玺歌曲词云

今天尝试做了用wordcloud模块来生成词云,我找了一些易烊千玺唱过的歌来进行处理,先看一下效果图:

易烊千玺歌曲词云

首先要进行wordcloud的安装,作为一个新手这个安装我花了很长时间,直接pip安装会报错,

我的解决方法是访问下面的网址,根据你的电脑和py版本下载对应的whl文件

https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

易烊千玺歌曲词云

下载完成后,把whl文件放在pip路径下,输入下面的代码,记住代码的whl文件名一定是适合你的文件名,然后

pip install wordcloud-1.5.0-cp35-cp35m-win_amd64.whl

运行成功后再用一样的方法安装下面的几个模块

易烊千玺歌曲词云

全部安装完毕后就可以开始敲代码了。
先要确认做成词云的文本,我是直接在网上找的易烊千玺唱过的歌。然后找一张想要的图片,让词云以图片为背景输出
代码如下:
#导入库
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
from scipy.misc import imread

进行中文编码时我之前用utf-8报错就改用gbk了,如果出现同样的问题可以尝试用gbk

默认背景图为长方形的,效果如下:

 1 #1.读入txt文本数据
 2 text = open('yang.txt','r',encoding='gbk').read()
 3 print(text)
 4 #读取背景图
 5 coloring = imread('易烊千玺.jpg')
 6 #生成词云图
 7 wc = WordCloud(
 8     #设置字体,不指定会出现乱码
 9     font_path='C:WindowsFontssimkai.ttf',
10     #设置背景色
11     background_color = 'white',
12     #设置字体大小
13     max_font_size=50,
14     min_font_size=10,
15 ).generate(text)#把文本添加进去
16 #保存词云
17 wc.to_file('wordcloud.png')
18 #显示词云
19 plt.figure('yang')
20 #以图片的形式显示词云
21 plt.imshow(wc)
22 #关闭图像坐标系
23 plt.axis("off")
24 plt.show()

  易烊千玺歌曲词云

给词云加上背景图并按照背景颜色输出:

 1 #读入txt文本数据
 2 text = open('yang.txt','r',encoding='gbk').read()
 3 print(text)
 4 #读取背景图
 5 coloring = imread('易烊千玺.jpg')
 6 #生成词云图
 7 wc = WordCloud(
 8     #设置字体,不指定会出现乱码
 9     font_path='C:WindowsFontssimkai.ttf',
10     #设置背景色
11     background_color = 'white',
12     #设置字体大小
13     max_font_size=50,
14     min_font_size=10,
15     mask =coloring#设置形状
16 ).generate(text)#把文本添加进去
17 image_colors = ImageColorGenerator(coloring)#引入图片的颜色
18 #保存词云
19 # wc.to_file('wordcloud.png')
20 new_wc = wc.recolor(color_func=image_colors)
21 new_wc.to_file('wordcloud2.png')#保存图片色
22 #显示词云
23 plt.figure('yang')
24 #以图片的形式显示词云
25 # plt.imshow(wc)
26 plt.imshow(new_wc)
27 #关闭图像坐标系
28 plt.axis("off")
29 plt.show()

  易烊千玺歌曲词云

上面是完整代码,有兴趣的可以尝试做一下~