# Python如何生成词云

*Published:* 2023-11-18
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年11月18日，已超过 180天没有更新



一、词云生成的基本原理

词云是一种可视化展示文本内容的工具，用于显示文本中出现次数较高的关键词。其主要思想是将文本中频繁出现的词汇以视觉化的方式展现出来，可以很快地帮助人们了解文本的主要内容和关键信息。

生成词云的基本原理：首先需要解析文本中的关键词，统计其出现频率，然后利用排版算法将其按照一定的大小、颜色和形状等属性展示出来。Python中的wordcloud库是一种常用的生成词云的工具，它提供了丰富的基于Python的实现方式，可以根据需要定制不同的词云样式。

二、词云生成库wordcloud的基本使用

Python中的wordcloud库提供了简单易用的接口，可以实现快速生成词云。通过wordcloud库可以设置字体、颜色、形状等词云的各种属性。下面是一个简单的示例代码：

```
from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "Hello world! This is a simple Python script to generate word clouds."
wordcloud = WordCloud().generate(text)

plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
```

通过以上代码，可以生成一个简单的词云图，并显示在matplotlib的画布上。

三、词云生成的基本步骤

生成词云的基本步骤可以分为以下几个步骤：

1、读取文本内容。

2、对文本进行分词和处理。

3、统计关键词汇出现频率。

4、根据频率生成词云图案。

5、调整词云的颜色、形状和字体等属性。

下面是一个简单示例代码：

```
from wordcloud import WordCloud
import jieba

text = "中华人民共和国简称中国，是一个有13亿人口的国家。"
words = " ".join(jieba.cut(text, cut_all=False))

wordcloud = WordCloud(
    font_path="msyh.ttf",
    background_color="white",
).generate(words)

wordcloud.to_file("output.png")
```

通过以上代码，可以读取文本内容，进行分词处理，统计关键词汇出现频率，并生成词云图案。最后，调整词云的文件格式并保存到本地。

四、定制化词云图案

可以通过wordcloud库提供的参数设置方法，定制化生成不同样式的词云图案。下面列举几个常用的参数说明：

1、font\_path：字体文件路径。

2、mask：词云的形状。

3、background\_color：背景颜色。

4、max\_words：要显示的最大词数。

5、stopwords：忽略词列表。

下面是一个基于文本文件的定制化词云生成代码示例：

```
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

with open("sample.txt", encoding='utf-8') as f:
    text = f.read()

mask = np.array(Image.open("mask.png"))

wordcloud = WordCloud(
    font_path="msyh.ttf",
    stopwords=STOPWORDS.add("said"),
    background_color="white",
    max_words=200,
    mask=mask,
).generate(text)

plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
```

通过以上代码示例可以实现从文本文件中读取内容，设置背景颜色和形状等属性，生成一张具有自定义形状和背景颜色的词云图案。