在 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]
文章出处登录后可见!