声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。

4.9 wordcloud模块

4.9.1 wordcloud库简介

wordcloud是优秀的词云展示第三方库。

词云就是以词语为基本单位,更加直观和艺术地展示文本的一种方式。

wordcloud需要安装:pip install wordcloud。

4.9.2 wordcloud库使用说明

wordcloud库把词云wordcloud(词云)当作一个对象。库中提供了针对该对象操作的方法,这些方法可以根据文本中词语出现的频率等参数绘制词云。而词云的形状、尺寸、颜色及字体等都可以通过对象参数进行配置。

(1)wordcloud中的方法

wordcloud库提供了如下常规方法:

  • .Wordcloud():创建词云对象并且可以配置对象的属性;
  • .generate(txt):向wordcloud对象中加载文本txt。其中txt可以是文本字符串;
  • .to_file(filename):将词云输出为图像文件,png或jpg格式。

(2)配置wordcloud对象的参数

wordcloud对象主要通过.wordcloud(<参数>)方法配置参数。其中的<参数>有如下选项:

  • width:指定词云生成图片的宽度,默认400像素;
  • height:指定生成词云图片的高度,默认200像素;
  • min_font_size:指定词云中字体的最小字号,默认4号;
  • max_font_size:指定词云中字体的最大字号,根据高度自动调节;
  • font_step:指定词云中字体号的步进间隔,默认为1;
  • font_path:指定字体文件路径,默认None;
  • max_words:指定词云显示的最大单词数量,默认200;
  • stop_words:指定词云中的排除词列表,即不显示的单词列表;
  • mask:指定词云的形状,默认为长方形,需要引用imread()函数;
  • background_color:指定词云图片的背景颜色,默认为黑色。

一些示例如下:

import wordcloud
from scipy.misc import imread  # 配置词云的形状需要用到另一个库

mk = imread("pic.png")  # 配置形状变量
w = wordcloud.Wordcloud(with=600, height=400, min_font_size=10, max_font_size=20, \
                       font_step=2, font_path="msyh.ttc", \
                       stop_words={"python", "pycharm"}, mask=mk,\ 
                       background_color="white")
# font_path="msyh.ttc",表示使用的字体文件是微软雅黑

(3)词云使用的基本步骤

词云的使用一般为三步:1)配置对象参数;2)加载词云文本;3)输出词云文件。其中决定最终生成词云特征的主要是第一步。

简单的使用示例如下:

import wordcloud

txt = "life is short, you need python"
w = wordcloud.Wordcloud(background_color="white")  # 配置对象参数
w.generate(txt)  # 加载词云文本
w.to_file("python.png")  # 输出词云文件

如果是对中文使用词云,则需要jieba库进行分词。如下:

import jieba
import wordcloud

txt = "程序设计...运算处理"
w.wordcloud.Wordcloud(width=1000, font_path="msyh.ttc", height=700)  # 配置对象参数
w.generate("".jion(jieba.lcut(txt)))  # 加载词云文本
w.to_file("python.png")  # 输出词云文件

4.9.3 使用案例:政府工作报告词云

读取一份中文报告,然后生成词云。代码如下:

import jieba
import wordcloud

with open("新时代中国特色主义.txt", "r", encoding="utf-8") as f:
    t = f.read()
    ls = jieba.lcut(t)
    txt = "".join(ls)
    w = worcloud.Wordcloud(font_path="msyh.ttc", width=1000, height=700,\
                           background_color="white")
    w.generate(txt)
    w.to_file("gr.py")
11-14 06:12