WordCloud 中英文词云图绘制,看这一篇就够了

本文详述了如何使用WordCloud绘制中英文词云图,包括设置背景颜色、形状、停用词,以及自定义颜色。通过实例展示了从基本的矩形词云到复杂的图片形状词云的绘制过程,还介绍了使用jieba分词处理中文词云图的方法。
摘要由CSDN通过智能技术生成

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

作者:  苏克1900
公众号:第2大脑


摘要: 当我们手中有一篇文档,比如书籍、小说、电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种方式,非常方便。本文将介绍常见的英文和中文文本的词云图绘制,以及 Frequency 频词频词云图。

写在前面:由于文中有一些超链接,无法在公众号打开,建议点击底部「阅读原文」或者复制下面的博客链接到浏览器打开,体验更好。

https://www.makcyun.top/

在上一篇文章「

pyspider 爬取并分析虎嗅网 5 万篇文章

 」中的文本可视化部分,我们通过 WordCloud 和 jieba 两个包绘制了中文词云图,当时只是罗列出了代码,并没有详细介绍。接下来,将详细说明各种形式的词云图绘制步骤。

3901436-fe80f4b242b2d35c

1. 英文词云

我们先绘制英文文本的词云图,因为它相对简单一些。这里以《海上钢琴师》这部电影的剧本为例。

首先,准备好电影剧本的文本文件(如下图):

3901436-ec077bb1831b89d6

接下来,我们绘制一个最简单的矩形词云图,代码如下:

 
 

1import os
2from os import path
3from wordcloud import WordCloud
4from matplotlib import pyplot as plt
5# 获取当前文件路径
6d = path.dirname(__file__) if "__file__" in locals() else os.getcwd()
7# 获取文本text
8text = open(path.join(d,'legend1900.txt')).read()
9# 生成词云
10wc = WordCloud(scale=2,max_font_size = 100)
11wc.generate_from_text(text)
12# 显示图像
13plt.imshow(wc,interpolation='bilinear')
14plt.axis('off')
15plt.tight_layout()
16#存储图像
17wc.to_file('1900_basic.png')
18# or
19# plt.savefig('1900_basic.png',dpi=200)
20plt.show()

这里,通过 open() 方法读取文本文件,然后在 WordCloud 方法中设置了词云参数,再利用 generate_from_text() 方法生成该电影剧本的词云,最后显示和保存词云图。十几行代码就可以生成最简单的词云图:

3901436-5ae01193f07d523c

通过上面的词云图,你可能会发现有几点问题:

可不可以更换背景,比如白色?

词云图能不能换成其他形状或者图片?

词云中最显眼的词汇 「ONE」,并没有实际含义,能不能去掉?

以上这些都是可以更改的,如果你想实现以上想法,那么需要先了解一下 WordCloud 的API 参数及它的一些方法。

这里,我们列出它的各项参数,并注释重要的几项:

 
 

1wordcloud.WordCloud(
2    font_path=None,  # 字体路径,英文不用设置路径,中文需要,否则无法正确显示图形
3    width=400, # 默认宽度
4    height=200, # 默认高度
5    margin=2, # 边缘
6    ranks_only=None, 
7    prefer_horizontal=0.9, 
8    mask=None, # 背景图形,如果想根据图片绘制,则需要设置
9    scale=1, 
10    color_func=None, 
11    max_words=200, # 最多显示的词汇量
12    min_font_size=4, # 最小字号
13    stopwords=None, # 停止词设置,修正词云图时需要设置
14    random_state=None, 
15    background_color='black', # 背景颜色设置,可以为具体颜色,比如white或者16进制数值
16    max_font_size=None, # 最大字号
17    font_step=1, 
18    mode='RGB', 
19    relative_scaling='auto', 
20    regexp=None, 
21    collocations=True, 
22    colormap='viridis', # matplotlib 色图,可更改名称进而更改整体风格
23    normalize_plurals=True, 
24    contour_width=0, 
25    contour_color='black', 
26    repeat=False)

关于更详细的用法,你需要到官网了解。

了解了各项参数后,我们就可以自定义想要的词云图了。比如更换一下背景颜色和整体风格,就可以通过修改以下几项参数实现:

 
 

1wc 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值