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") # 输出词云文件
运行一下代码,生成的图片保存的代码文件的同路径下,效果如下:
注意:
在执行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
效果如下:
含中文的词云
需要安装中文分词函数库模块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
夏 商 周 春秋 战国 秦
西游记 红楼梦 三国演义 水浒传
百度 腾讯 阿里巴巴
京东 淘宝 拼多多
效果如下:
模拟考题
考题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的功能与使用。