在 Python 中创建词云

Preet Sanghavi 2024年2月15日
  1. 在 Python 中安装 wordcloud
  2. 在 Python 中导入相关库
  3. 用 Python 生成词云
在 Python 中创建词云

本教程将介绍一种使用 wordcloud 包在 Python 中创建词云的方法。

在 Python 中安装 wordcloud

首先,我们必须在 Python 中安装 wordcloud 包,包括 Matplotlib 包。

pip install wordcloud

上面的命令将安装 wordcloudMatplotlib 包,我们将使用它们来创建词云。

现在,让我们导入创建词云所需的库,即 WordCloudSTOPWORDSmatplotlib.pyplot

在 Python 中导入相关库

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt

上面的代码将导入所有需要的库。

现在让我们创建一组停用词来帮助我们避免在示例字符串的词云中添加停用词。

stopwords = set(STOPWORDS)

让我们取一个示例字符串,从中我们将创建一个包含字符串中最常见单词的词云。

text_str = (
    "peep gate do it but peep heal gate also not  heal do it but gate peep peep peep"
)

用 Python 生成词云

我们将在函数中使用这个字符串来创建词云。现在让我们创建一个函数 present_wordcloud(),我们使用带有所有合适参数的 Worcloud() 函数来创建词云。

def present_wordcloud(stri, title=None):
    wordcloud = WordCloud(
        background_color="white",
        stopwords=stopwords,
        max_words=300,
        max_font_size=50,
        scale=3,
        random_state=1,
    ).generate(str(stri))

在上面的代码中,我们将合适的参数传递给我们的函数,并将我们的字符串传递给 generate() 函数以生成词云。现在,我们将通过在我们的 present_wordcloud() 函数中添加以下代码,使用 Matplotlib 库显示我们的词云。

def present_wordcloud(stri, title=None):
    wordcloud = WordCloud(
        background_color="white",
        stopwords=stopwords,
        max_words=200,
        max_font_size=40,
        scale=3,
        random_state=1,
    ).generate(str(stri))

    fig = plt.figure(1, figsize=(9, 9))
    plt.axis("off")
    if title:
        fig.suptitle(title, fontsize=18)
        fig.subplots_adjust(top=2.4)

    plt.imshow(wordcloud)
    plt.show()

如上所示,我们通过将图形大小、副标题和字体大小添加到 plt 屏幕来显示我们的词云。plt.imshow() 函数将在屏幕上显示词云。

现在运行 present_wordcloud() 函数,通过运行以下代码查看为我们的示例字符串生成的词云。

if __name__ == "__main__":

    present_wordcloud(text_str)

通过运行我们的 main 函数,我们得到以下输出。

词云 Python

我们从示例字符串中得到了一个词云,其中 peep 是我们句子中最常见的词。

这样我们就成功地在 Python 中创建了一个词云。

作者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub