在 Python 中创建词云的快速简便指南

创建不同形状的词云以更好地传达信息——词云是可视化文本数据的好方法。而 python 可以很容易地创建一个。在这篇文章中,我们将介绍一个使用 Wordcloud 库生成词云的示例。如果你不知道它是什么,一个词云可以可视化单词出现的频率……

在 Python 中创建词云的快速简便指南

创建不同形状的词云以更好地传达信息

词云是可视化文本数据的好方法。而 python 可以很容易地创建一个。在这篇文章中,我们将介绍一个使用 Wordcloud 库生成词云的示例。

如果您不知道它是什么,则词云可以可视化单词在给定文本中出现的频率。一个词出现的次数越多,它在词云中的大小就越大。

词云非常适合从评论中找出客户情绪。此外,一些网站使用词云来显示网站上最受欢迎的主题。

您可以将 Monkeylearn 词云生成器工具用于离线用例。但是你经常不得不动态地或大批量地生成词云。[0]

那么,让我们开始吧!

1.安装Wordcloud库

Wordcloud 是一个免费的开源 Python 库。在撰写本文时,Wordcloud 的 GitHub 存储库有 8.7k 星和 2.2k 分叉,并且有 62 人为其做出了贡献。[0]

您可以从 PyPI 安装 Wordcloud 库。

pip install wordcloud

如果你使用 Poetry 来管理 Python 包,你可以使用下面的命令。[0]

poetry add wordcloud

2. Load Data

对于本教程,我们将使用以下文本。

“Python 是一种广泛用于通用编程的高级解释语言。 Python 由 Guido van Rossum 创建并于 1991 年首次发布,其设计理念强调代码的可读性,尤其是使用重要的空格。它提供的结构能够在小规模和大规模上实现清晰的编程。”

您可以在 Python 中将其设置为变量,如下所示。

text = """ Python is a widely used high-level interpreted language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales. """

但是,您可能需要加载比这更多的数据。例如,如果您有评论数据集,则必须以不同方式加载它们。

您可以从 Pandas 数据框创建词云。以下代码通过以下方式准备组合评论文本[0]

  • 从 CSV 读取熊猫数据框;
  • 加入所有用户评论,以及;
  • 将其分配给新变量“文本”。
text = pd.read_csv("data.csv").Reviews.str.cat()

如果您没有 pandas 数据框,您也可以从文件中读取文本。

with open("data.txt", "r") as file: 
text = file.read()

无论哪种方式,您都应该得到一串文本。

3.生成词云

现在我们已经加载了文本数据,让我们继续创建词云。

使用 Wordcloud 库可以轻松创建词云。下面的代码将从我们之前加载的文本创建一个词云。

from wordcloud import WordCloud 
import matplotlib.pyplot as plt
% matplotlib inline
wordcloud = WordCloud().generate(text)plt.imshow(wordcloud, interpolation='bilinear')plt.axis("off")

首先,我们从词云库中导入 WordCloud 类。然后,我们还导入 matplotlib。我们使用 %matplotlib inline 魔法命令,让词云出现在笔记本中。

然后,我们创建一个 WordCloud 实例并使用 text 变量生成词云。

最后,我们使用 plt.imshow() 函数来显示词云。使用默认设置显示词云。

如果要更改词云的外观,可以使用不同的设置。例如,您可以更改背景颜色、max_words、max_font_size 等。

以下代码显示如何将背景颜色更改为 #e2e1eb 并将 max_words 更改为 10。

wordcloud = WordCloud(
background_color="#e2e1eb",
max_words=10).generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")

如您所见,这些设置使词云看起来不同。玩弄设置以获得您想要的词云。

在形状中创建词云

您可以通过创建词云来获得创意。您可以将蒙版选项设置为图像以获取形状创建的词云。掩蔽图像应该有一个白色背景上的黑色对象。以下是我们如何将词云变成心形。

from PIL import Image 
import numpy as np
mask_img = np.array(Image.open("./Untitled design.png"))wordcloud = WordCloud(
background_color="#e2e1eb",
max_words=100, mask=mask_img
).generate(text)

上面的代码将产生下图。

Conclusion

词云是交流热门话题的绝佳方式。

我们已经简要讨论了如何使用 Python 创建词云并将其导出为 PNG。我们还制作了不同形状的词云。

这是完整代码的样子。

import pandas as pd
from wordcloud import WordCloud

import matplotlib.pyplot as plt
% matplotlib inline

text = """
Python is a widely used high-level interpreted language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. It provides constructs that enable clear programming on both small and large scales.
"""

# Read and convert an mask image. It should have a white (not transparent) background with a black object.
mask_img = np.array(Image.open("./heart.png"))

#
wordcloud = WordCloud(background_color="#e2e1eb", max_words=100, mask=mask_img).generate(text)

# store to file
wordcloud.to_file("wc.png")

# Show the image
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")

感谢阅读,朋友!看来你和我有很多共同的兴趣。我很想在 LinkedIn、Twitter 和 Medium 上与您联系[0][1][2]

还不是中型会员?请使用此链接成为会员,因为我不会为您支付额外费用,因为我推荐您赚取少量佣金。[0]

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年5月11日
下一篇 2022年5月11日

相关推荐