美文网首页
关于python中wordcloud第三方库的使用

关于python中wordcloud第三方库的使用

作者: 脏脏的小泥娃 | 来源:发表于2020-06-01 15:01 被阅读0次

首先使用pip命令安装wordcloud库

pip install wordcloud

在安装过程中会出现一个问题。安装首先会搜索安装numpy库、matplotlib库、pandas库等,最后搜索安装wordcloud库时会出现一堆错误,认真阅读红色的错误信息发现其中有一行错误如下:

error: Microsoft Visual C++ 14.0 is required.

参考https://blog.csdn.net/candice5566/article/details/83065022解决方案如下:
首先,在第三方库网站,UIC页面:https://www.lfd.uci.edu/~gohlke/pythonlibs/
下载wordcloud库,选择对应的版本号(注意:在Windows64位系统选择的是win-32.whl文件
第二步,使用cmd安装wheel(在cmd命令行下使用 pip list 可以查看已安装的库),如果存在wheel可以省略此步。
第三步,安装下载好的.whl文件。直接将下载好的.whl文件拖到pip install后面即可。
最后出现安装成功提示,问题解决


wordcloud库把词云当作一个WordCloud对象(注意两者的大小写),wordcloud.WordCloud()代表一个文本对应得词云,可以根据文本中词语出现得频率等参数绘制词云。

w = wordcloud.WordCloud()
生成一个词云对象,对象得变量是w

  • wordcloud库对象参数配置:

- width 指定词云对象生成图片的宽度,默认400像素

w = wordcloud.WordCloud(width=600)

- height 指定词云对象生成图片的高度,默认200像素

w = wordcloud.WordCloud(height=300)
  • 修改字体的参数:

- min_font_size 指定词云中字体的最小字号,默认4号

w = wordcloud.WordCloud(min_font_size=20)

- max_font_size 指定词云中字体的最大字号,根据高度自动调节

w = wordcloud.WordCloud(max_font_size=20)

- font_step 指定词云中字体字号的步进间隔,默认1

w = wordcloud.WordCloud(font_step=2)

- font_path 指定字体文件的路径,默认为None

w = wordcloud.WordCloud(font_path="msyh.ttc")
#msyh.ttc是微软雅黑字体(中文默认字体)
  • 词云对象相关参数:

- max_words 指定词云显示的最大单词数量,默认200

w = wordcloud.WordCloue(max_words=20)

- stop_words 指定词云的排除词列表,即不显示的单词列表

w = wordcloud.WordCloud(stop_words={"python"})

- mask 指定词云形状,默认长方形,需要引用imread()函数

from scipy.misc import imread
#scipy是第三方库,通过pip install scipy下载
mk = imread("pic.png")
w = wordcloud.WordCloud(mask=mk)

- background_color 指定词云图片的背景颜色,默认为黑色

w = wordcloud.WordCloud(background_color="white")

  • wordcloud库常规方法
    - w.generate(txt) 向WordCloud对象w中加载文本txt
    - w.to_file(filename) 将词云输出为图像文件,.png或.jpg格式
  • 词云绘制步骤:
    第一步,配置对象参数
    第二步,加载词云文本
    第三步,输出词云文件
    对于一个文本生成词云图,wordcloud库做了以下四件事:
    - 分隔:以空格为分隔符将文本分割成单词
    - 统计:统计单词出现次数以及过滤(出现次数越多对应的词云效果字体越大,过滤一些只有一两个字母的单词)
    - 字体:根据统计配置字号
    - 布局:进行颜色环境尺寸等布局

注意事项:由于wordcloud库是使用空格分割单词,而中文没有办法用空格来区分单词,所以首先需要对中文文本进行分词,组成由空格分隔的字符串

实例:

#GovRpWordCloud.py
import jieba
import wordcloud
'''
from scipy.misc import imread
mask = imread("star.jpg")
#这个实例运行时会提示无法从scipy.misc 引入 imread,百度了一下据说是新版的scipy库中移除了imread
'''
#解决办法
import numpy as np
from PIL import Image
mask = np.array(Image.open("fivestar.jpg"))
#图片的背景是白色,图片内容是不规则图形,这样才可以自定义词云形状
f = open("新时代中国特色社会主义.txt","r",encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)

w = wordcloud.WordCloud(font_path = "msyh.ttc",mask = mask,\
                        width = 1000,height = 700,\
                        background_color = "white",)

w.generate(txt)
w.to_file("grwordcloud.png")

相关文章

网友评论

      本文标题:关于python中wordcloud第三方库的使用

      本文链接:https://www.haomeiwen.com/subject/yvfszhtx.html