Python制作个性化的词云图实例讲解

作者:赵卓不凡 时间:2021-10-17 03:51:02 

1. 引言

词云图可以让我们方便地识别出文本中的关键词,其中单词的大小代表它们的频率。有了这个,我们甚至在阅读之前就可以很好地了解文本的内容。虽然有很多免费的工具可以在线制作文字云,但我们可以使用万能的Python来定制个性化的词云图。

在本文中,我们将使用第三方Python库stylecloud,有了该库,可以通过简短的几行代码来制作漂亮的词云图。如下所示:

Python制作个性化的词云图实例讲解

闲话少说,我们直接开始吧。 :)

2. 举个栗子

接下来,我们将用来制作词云图的文本是偶像乔布斯在斯坦福大学演讲的一部分。点击这里可以获得对应的 .txt 文件或使用任何其他的文本来制作你自己的词云图。

2.1 安装stylecloud库

这里我们可以直接使用pip来安装该词云库,代码如下:

pip3 install stylecloud

2.2 生成词云图

接着我们可以使用stylecloud.gen_stylecloud() 方法来生成词云图,通过传递相应的文本 .txt 文件的路径和生成词云的图标样式。
在网站上,我们可以方便的找到可用于 stylecloud 的图标样式列表。在此示例中,我选择了一个苹果作为图标。代码如下:

import stylecloud
stylecloud.gen_stylecloud(file_path='SJ-Speech.txt',
icon_name="fas fa-apple-alt")

上述代码运行后,在当前python文件目录下生成以png格式保存词云图,如下所示:

Python制作个性化的词云图实例讲解

2.3 美化显示效果

仔细观察gen_stylecloud函数的相关参数,我们可以控制背景颜色、单词的颜色、输出文件的名称等。为此,我们查看下面的代码:

stylecloud.gen_stylecloud(file_path='SJ-Speech.txt',
                         icon_name='fas fa-apple-alt',
                         colors='white',
                         background_color='black',
                         output_name='apple.png',
                         collocations=False)

运行结果如下:

Python制作个性化的词云图实例讲解

2.4 处理停用词

我们可以使用stop_words库来处理文本中的停用词,可以使用pip install stop_words来安装该库。有了停用词列表,我们也可以将其传递给在gen_stylecloud函数中的custom_stopwords参数。

样例代码如下:

from stop_words import get_stop_words
stop_words = get_stop_words('english')
stylecloud.gen_stylecloud(file_path='SJ-Speech.txt',
                         icon_name='fas fa-apple-alt',
                        palette='cartocolors.qualitative.Pastel_3',
                         background_color='black',
                         output_name='apple.png',
                         collocations=False,
                         custom_stopwords=stop_words)

上述代码的运行结果如下:

Python制作个性化的词云图实例讲解

2.5 使用自定义背景图像

在上述网站上有数百个免费图标可用于 stylecloud,但是但有时我们可能希望使用自己的图像来为创建更加个性化的词云图。此时,我们可以使用PIL库来读取图像,使用matplotlib来绘制我们的图像,使用wordcloud来制作对应的词云图。

下述代码中使用蝙蝠的图案来生成对应的词云图,代码如下:

from wordcloud import WordCloud, ImageColorGenerator
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
# create a mask based on the image we wish to include
my_mask = np.array(Image.open('batman-logo.png'))
# create a wordcloud
wc = WordCloud(background_color='white',
                  mask=my_mask,
                  collocations=False,
                  width=600,
                  height=300,
                  contour_width=3,
                  contour_color='black',
                  stopwords=stop_words)

with open('SJ-Speech.txt',encoding='gb18030',errors='ignore') as txt_file:
texto = txt_file.read()
wc.generate(texto)
image_colors = ImageColorGenerator(my_mask)
wc.recolor(color_func=image_colors)

plt.figure(figsize=(20, 10))
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
wc.to_file('wordcloud2.png')
plt.show()

运行结果如下:

Python制作个性化的词云图实例讲解

3. 总结

本文详细介绍了如何使用stylecloud库来绘制各种样式的词云图,以突出显示文本中相应的关键词,并给出了定制化改进显示效果的样例代码。

来源:https://blog.csdn.net/sgzqc/article/details/122905327

标签:Python,词云图
0
投稿

猜你喜欢

  • 解析PHP中一些可能会被忽略的问题

    2023-09-05 14:07:37
  • 彻底终结浏览器Cache页面的解决方案

    2008-04-21 15:10:00
  • python使用正则表达式来获取文件名的前缀方法

    2023-02-08 07:37:58
  • python进阶教程之函数对象(函数也是对象)

    2022-08-28 01:06:42
  • python读取Kafka实例

    2023-10-22 17:22:58
  • NCCL深度学习Bootstrap网络连接建立源码解析

    2022-02-25 22:28:10
  • 用ASP编程实现网络内容快速查找

    2007-09-16 17:56:00
  • Python数字/字符串补零操作实例代码

    2021-07-13 03:16:57
  • 用XML结合数据库,给服务器减负

    2007-10-31 09:40:00
  • 教你轻松掌握如何正确的修复Access数据库

    2008-11-28 16:21:00
  • python中uuid模块实例浅析

    2022-06-16 01:01:24
  • python os模块在系统管理中的应用

    2022-12-17 04:37:23
  • php 静态页面中显示动态内容

    2023-11-18 22:09:22
  • Oracle 9i产品文档

    2010-07-16 13:35:00
  • python面试题之列表声明实例分析

    2022-01-10 12:46:51
  • python argparse命令行参数解析(推荐)

    2022-06-26 05:47:25
  • Python上下文管理器Content Manager

    2021-08-22 23:47:11
  • python本地文件服务器实例教程

    2022-07-31 16:38:17
  • python manim实现排序算法动画示例

    2021-11-10 10:41:58
  • ubuntu 18.04搭建python环境(pycharm+anaconda)

    2023-09-23 20:01:56
  • asp之家 网络编程 m.aspxhome.com