词云(wordcloud)之密集恐惧症慎入

目录

1、安装

2、使用

3、操作流程

4、示例

5、mask参数


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

         wordclund 是 python 制作词云的一个第三方库,官方文档 wordcloud。其特点是:

  • 填充所有的可用空间
  • 能够使用任意的mask
  • 修改轻松而实现高效

1、安装

        既然是第三方库,就需要有劳 python包管理器 pip 的大驾了。

python3 -m pip install wordcloud

        注意:wordcloud 似乎对 arm64 系统尚不支持,安装会报错:

error: command '/usr/bin/aarch64-linux-gnu-gcc' failed with exit code 1

 原因可能为缺少依赖软件包。

2、使用

        wordcloud 把词云当作一个 WordCloud 对象,其主要操作函数为 wordcloud.WordCloud(),可以根据文本词语出现的频率输出词云,并通过调整相应参数实现不同的输出效果。

 

        参数及含义: 

(font_path=None, width=400, height=200, margin=2,\
ranks_only=None, prefer_horizontal=.9, mask=None, scale=1,\
color_func=None, max_words=200, min_font_size=4,\
stopwords=None, random_state=None, background_color='black',\
max_font_size=None, font_step=1, mode="RGB",\
relative_scaling='auto', regexp=None, collocations=True,\
colormap=None, normalize_plurals=True, contour_width=0,\
contour_color='black', repeat=False,include_numbers=False,\
min_word_length=0, collocation_threshold=30)
参数描述
font_path字体路径
width画布宽度(像素)
height画布高度(像素)
margin边缘(像素)
ranks_only
prefer_horizontal
mask配合imread()函数使用,若参数为空,则使用二维遮罩绘制词云。若非空,则设置的宽高值将被忽略,遮罩被 mask 形状取代。
scale缩放比例
color_func可调用的颜色函数对象
max_words显示的最大单词(词语)数
min_font_size最小字号
stop_words不显示的单词列表
random_state
background_color画布背景色
max_font_size最大字号
font_step字号步进
mode颜色模式。当模式为RGBA,背景色为None时,将生成透明背景。
relative_scaling相对比例
regexp正则表达式,用于将输入文本分割为进程文本中的标记。
collocations是否包含两个单词的搭配(双字母组合)
colormap为每个单词随机绘制颜色,如果指定了color_func则会忽略。
normalize_plurals是否删除单词末尾的s
contour_width轮廓宽度,如果>1且mask非空,将会绘制轮廓。
contour_color轮廓颜色
repeat是否重复单词和短语,直到达到最大的单词或最小的字体大小
include_numbers是否将数字视为短语
min_word_length最小单词长度
collocation_threshold搭配阈值

 

3、操作流程

步骤描述
=wordcloud.WordCloud()配置词云参数
.generate(txt)加载文本至词云
.to_file()输出词云文件(.png或.jpg)

 

4、示例

        英文文本(以莎翁剧本《Hamlet》为例)

import wordcloudf=open('hamlet.txt').read()
txt=''.join(f)
w=wordcloud.WordCloud(width=1920,height=1080,background_color='white')
w.generate(txt)
w.to_file('hamlet.png')

 

        中文文本(以十九届六中全会决议为例)

import jieba
import wordcloudf=open('决议.txt','r',encoding='UTF-8')
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=''.join(ls)
w=wordcloud.WordCloud(font_path='msyh.ttf',width=1920,height=1080,background_color='white')
w.generate(txt)
w.to_file('决议.png')

        注意,中文文本字体路径不能为空,否则无法正确显示。

 

5、mask参数

        mask 参数是一个很有趣的参数,它可以指定词云输出的形状。您要做的只是选择一张喜欢的图片(.png 或 .jpg 等格式,透明背景最好)作为 mask 即可。

from imageio import imread
mask=imread('mask.png') =wordcloud.WordCloud(...mask=mask...)

 


 注:

关于英文及中文词频的统计,请参见:

1、英文词频:Hamlet, are u ok?要统计某个词汇或事物出现的频度,如何才能实现呢?https://blog.csdn.net/iprobobo/article/details/122767768

2、中文词频:《三国演义》与结巴(jieba)的碰撞中文分词练习https://blog.csdn.net/iprobobo/article/details/122774849

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部