词云图

本文介绍了词云图的概念,它是文本信息的可视化表现,通过显示高频词汇帮助快速理解文本主旨。文章将指导读者如何分步骤地创建词云图,包括模块安装、导入和绘制过程,并提供了相关示例数据的下载链接。

词云图

词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

接下来我们讲教您怎么绘制这样NB的词云图

1、模块的安装

pip install chardet
pip install jieba
pip install PIL
pip install wordcloud

2、模块的导入

import chardet
import jieba
import numpy as np
from PIL import Image
import os
from os import path
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure, show, rc

3、词云图的绘制

  • English-白色背景的方形词云图
text = open("WordCloud.txt",encoding="gb18030").read()
wc = WordCloud(
    font_path=None,
    width=400, # 默认宽度
    height=200, # 默认高度
    margin=2, # 边缘
    ranks_only=None, 
    prefer_horizontal=0.9, # 词在水平方向上出现的频率
    mask=None, # 指定背景图,会将单词填充在背景图像素非白色(#FFFFFF RGB(255,255,255))的地方
    scale=2, # 缩放比例 对图像整体进行缩放 默认为1
    color_func=None, # 生成新颜色的函数 如果为空 则使用 self.color_func
    min_font_size=4, # 最小字号
    stopwords=None, # 停止词设置,修正词云图时需要设置
    random_state=None, # 为每个单词返回一个PIL颜色
    background_color='white', # 背景颜色设置,可以为具体的颜色
    max_font_size=None, # 最大字号
    font_step=1, # 字体步幅 控制在给定text遍历单词的步幅 默认为1 一般不用修改 对于较大text 增大font_step会加快读取速度 但会牺牲部分准确性
    mode='RGB', # 设置显色模式 默认RGB 如果为RGBA且background_color不为空时,背景为透明
    relative_scaling='auto', # 词频与字体大小关联性 默认为5 值越小 变化越明显
    regexp=None, # 默认单词是以空格分割,如果设置这个参数 将根据指定函数来分割
    collocations=True, # 是否包含两个词的搭配 默认为True
    colormap='Reds', # matplotlib颜色主题,可更改名称,进而更改整体风格
    normalize_plurals=True, # 
    contour_width=0,
    contour_color='black',
    repeat=False)
wc.generate_from_text(text)
fig = figure(figsize=(4,4),dpi=300)
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.tight_layout()
plt.show()
  • 中文-黑色背景的圆形词云图
text = open('WordCloud_Chinese.txt',encoding='GB2312',errors='ignore').read()

# 获取文本词排序,可调整 stopwords
process_word = WordCloud.process_text(wc,text)
sort = sorted(process_word.items(),key=lambda e:e[1],reverse=True)
#print(sort[:50]) # # 获取文本词频最高的前50个词

text+=' '.join(jieba.cut(text,cut_all=False)) # cut_all=False 表示采用精确模式
#设置中文字体
font_path = 'SourceHanSansCN-Regular.otf'  # 思源黑体
# 读取背景图片
background_Image = np.array(Image.open("WordCloud_Image.jpg"))
# 提取背景图片颜色
img_colors = ImageColorGenerator(background_Image)
# 设置中文停止词
stopwords = set('')

stopwords.update(['但是','一个','自己','因此','没有','很多','可以','这个','虽然','因为','这样','已经','现在','一些','比如','不是','当然','可能','如果','就是','同时','比如','这些','必须','由于','而且','并且','他们'])
wc = WordCloud(
    font_path = font_path, # 中文需设置路径
     #width=400, # 默认宽度
     #height=400, # 默认高度
    margin = 2, # 页面边缘
    mask = background_Image,
    scale = 2,
    max_words = 200, # 最多词个数
    min_font_size = 4, #
    stopwords = stopwords,
    random_state = 42,
    background_color = 'black', # 背景颜色
    colormap='RdYlGn_r', # matplotlib 色图,可更改名称进而更改整体风格
    max_font_size = 100,
    )
wc.generate(text)
# 获取文本词排序,可调整 stopwords
process_word = WordCloud.process_text(wc,text)
sort = sorted(process_word.items(),key=lambda e:e[1],reverse=True)
#print(sort[:50]) # 获取文本词频最高的前50个词
# 设置为背景色,若不想要背景图片颜色,就注释掉
#wc.recolor(color_func=img_colors)
#存储图像
#wc.to_file('浪潮之巅basic.png')
#显示图像
fig = figure(figsize=(4,4),dpi =100)  
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.tight_layout()
#fig.savefig("词云图2.pdf")
plt.show()   
相关的示例数据下载地址

链接: https://pan.baidu.com/s/1bj8EaGzXLhLVCuYe3taBXQ
提取码: dbrc

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值