wordcloud模块

wordcloud模块介绍

在数据可视化领域中,词云(WordCloud)是一种常用的数据展示方式。它通过将文本中出现频次较高的词语以更大的字体大小展示,从而直观地呈现出文本数据的关键信息。

Python中的wordcloud库是一个功能强大且易于使用的词云展示的第三方库,它能够将一段文本变成一个词云,可以生成各种形状的词云图。

Python中的wordcloud模块支持文本生成频率生成两种方法:

  • 文本生成方法:根据输入的文本创建一个词云
  • 频率生成方法:根据指定的频率创建一个词云

因为 wordcloud 是一个第三方库,所以需要我们在本地进行安装。

Windows 下使用命令安装

在联网状态下,在命令提示符下使用pip命令进行安装:

pip install wordcloud

wordcloud的基本用法

wordcloud 库把词云当作一个WordCloud对象

  • wordcloud.WordCloud() 代表一个文本对应的词云
  • 可以根据文本中词语出现的频率等参数绘制词云
  • 绘制词云的形状、尺寸和颜色均可设定
  • 以WordCloud对象为基础,配置参数、加载文本、输出文件

文本转化为词云要点:

  • 分隔:以空格分隔单词
  • 统计:单词出现次数并过滤
  • 字体:根据统计配置字号
  • 布局:颜色环境尺寸

使用wordcloud模块必须先导入:

import wordcloud

如下代码:

import wordcloud
c = wordcloud.WordCloud()  # 配置对象参数
c.generate("wordcloud by python")  # 加载词云文本
c.to_file("pywordcloud.png")  # 输出词云文件

运行一下代码,生成的图片保存的代码文件的同路径下,效果如下:

pywordcloud

注意:

  • 在执行generate方法时如果报错ValueError: Only supported for TrueType fonts,大概率就是pip没有更新的问题了,在命令提示符下运行一下代码,更新pip、wordcloud、pillow:

    pip install --upgrade pip
    pip install --upgrade wordcloud
    pip install --upgrade pillow
    
  • 如何输出内容有汉字,需要设置字体不然会出现口字乱码,文字的路径是电脑的字体一般路径,设置如下:

    c = wordcloud.WordCloud(font_path="C:/Windows/Fonts/STXINGKA.TTF") # 字体文件路径,华文行楷
    

wordcloud 参数介绍

  • width:指定词云对象生成图片的宽度,默认400像素
w=wordcloud.WordCloud(width=600)
  • height:指定词云对象生成图片的高度,默认200像素
w=wordcloud.WordCloud(height=400)
  • min_font_size:指定词云中字体的最小字号,默认4号
w=wordcloud.WordCloud(min_font_size=10)
  • 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="C:/Windows/Fonts/STXINGKA.TTF")
  • max_words:指定词云显示的最大单词数量,默认200
w=wordcloud.WordCloud(max_words=20)
  • stop_words:指定词云的排除词列表,即不显示的单词列表
w=wordcloud.WordCloud(stop_words="Python")
  • mask:指定词云形状,默认为长方形,需要引用imread()函数
from scipy.msc import imread

mk=imread("pic.png")
w=wordcloud.WordCloud(mask=mk)
  • background_color:指定词云图片的背景颜色,默认为黑色
w=wordcloud.WordCloud(background_color="white")

词云程序综合应用

产生词云的步骤:

  • 1.读取词云的文本文件;
  • 2.WordCloud()不含参数表示使用默认环境,WordCloud().generate()方法创建文本文件的词云对象;
  • 3.使用to_image()方法创建词云图像文件(如果不显示也可以使用to_file保存);
  • 4.show()显示词云图像文件

英文词云

from wordcloud import WordCloud  # 导入WordCloud模块

with open(file='test1.txt') as f:    # 打开文本文件
    txt = f.read()   # 读取文本

wd = WordCloud().generate(txt)  # 由txt文字产生WordCloud对象
imageCloud = wd.to_image()  # 创建词云图像文件
imageCloud.show()  # 显示词云图像文件
imageCloud.save('test1.png')  # 保存词云图像文件

test1.txt文件内容如下

Java PHP C C++ C# Python Ruby Go
Chrome Firefox
MySQL Oracle SQL Sever
Windows Linux Mac
Android IOS
Mazda Nissan Opel Peugeot Porsche Renault Rover Skoda Subaru
Toyota Volvo Volkswagen Suzuki

效果如下:

test1

含中文的词云

需要安装中文分词函数库模块jieba

pip install jieba

from wordcloud import WordCloud  # 导入WordCloud模块
import jieba  # 导入jieba模块

# 设置编码
with open(file='test2.txt', encoding='utf-8') as f:
    txt = f.read()  # 读取文件

# 使用cut()方法将读取的文件进行分词
cut_txt = ' '.join(jieba.cut(txt))  # 产生分词的字符串

# 创建词云对象
wd = WordCloud(
    font_path=r'C:\Windows\Fonts\STXINGKA.TTF',  # 字体文件路径 华文行楷
    background_color='silver',  # 设置词云背景颜色
    width=600,   # 宽度
    height=400,  # 高度
).generate(cut_txt)

imageCloud = wd.to_image()  # 创建词云图像文件
imageCloud.show()   # 显示词云图像文件
imageCloud.save('test2.png')  # 保存词云图像文件

test2.txt内容如下:

Java PHP C C++ C# Python Ruby Go
Chrome Firefox
MySQL Oracle SQL Sever
Windows Linux Mac
Android IOS
Mazda Nissan Opel Peugeot Porsche Renault Rover Skoda Subaru
Toyota Volvo Volkswagen Suzuki
夏 商 周 春秋 战国 秦
西游记 红楼梦 三国演义 水浒传
百度 腾讯 阿里巴巴
京东 淘宝 拼多多

效果如下:

tmprpzwvokw

模拟考题

考题1 单选题

我们可以对文本中词频较高的分词,通过词云图给予视觉上的突出,小明打算用Python程序来生成词云图,程序中需要用到以下哪个第三方库?( )

A. wordcloud

B. math

C. random

D. turtle

答案:A

解析:本题主要考查Python库。WordCloud是优秀的词云展示第三方库,math库提供常用的数学函数,random提供常用的随机函数,turtle库用于绘图,故本题选A选项。

考题2 单选题

Python中词云主要有WordCloud库,在创建好词云对象后,可以使用什么方法生成词云,并使用to_file方法将词云图像保存在文件中?( )

A. WCloud

B. generate

C. random

D. jieba

答案:B

解析:利用WordCloud对象的generate()方法加载词云文本,生成词云

考题3 判断题

wordcloud库生成词云有文本生成和频率生成两种方法。( )

答案:正确

解析:wordcloud的功能与使用。

Copyright © all right reserved,powered by Gitbook该文件修订时间: 2023-10-28 18:17:01