制作简单词云的完整攻略如下:
材料准备
首先,我们需要安装Python的wordcloud库。在命令行(Windows)或终端(Mac/Linux)中输入以下命令:
pip install wordcloud
如果你使用anaconda环境,可以使用以下命令:
conda install -c conda-forge wordcloud
文本处理
接下来,我们需要准备要制作词云的文本。在本示例中,我们准备使用《红楼梦》的文字作为材料。你可以选择任意文本。
我们首先需要将文本读入到Python中。在Python中,我们使用open
函数打开文本文件,然后通过read
方法读取文本内容:
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
接下来需要对文本进行处理。首先,我们将文本分词,即将文本按照空格、标点等符号进行分隔,变成一个个单词。在Python中,我们可以使用jieba库进行分词。如果你没有安装jieba库,可以使用以下命令进行安装:
pip install jieba
分词代码如下:
import jieba
# 分词
words = jieba.cut(text)
分词之后,我们需要去掉一些无用的单词,比如“的”、“了”等常用词语。我们可以使用中文停用词库来去掉这些词语。在Python中,我们可以使用stopwords
库来加载中文停用词库。如果你没有安装stopwords库,可以使用以下命令进行安装:
pip install stopwords
去掉停用词的代码如下:
from stopwords import stopwords
# 去掉停用词
filtered_words = []
for word in words:
if word not in stopwords:
filtered_words.append(word)
制作词云
接下来,我们就可以使用wordcloud库来制作词云了。wordcloud库可以非常方便地根据词语频率来生成词云图。
首先,我们需要将单词列表转换为一个字符串。我们可以使用Python的字符串join方法,将单词列表中的所有单词用空格连接起来,变成一个字符串:
text = ' '.join(filtered_words)
然后,我们就可以使用wordcloud库中的WordCloud类来生成词云图了。我们可以根据需要设置词云的宽度、高度、背景色、字体、字号等参数。
以下是一个生成《红楼梦》词云图的示例代码:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 生成词云图
wordcloud = WordCloud(font_path='simsun.ttf',width=1200,height=600,background_color='white',max_words=200).generate(text)
# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
运行上述代码,就可以得到一张《红楼梦》词云图了。
示例说明
由上面的攻略可得,其实只需要Python和相应库,就可以轻松制作出漂亮的词云图。我们来看两个示例:
示例1
准备一篇英文文章作为材料,然后按照上面的攻略进行词云图的制作。
首先,我们需要将英文文章读入到Python中。与中文不同,英文不需要进行分词和去停用词的处理。因此,我们可以直接将文本转换为单词列表。
接下来,我们需要将单词列表转换为一个字符串,然后根据需要设置词云的各种参数。示例代码如下:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读入英文文章
with open('article.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 转换为单词列表
words = text.split()
# 将单词列表转换为字符串
text = ' '.join(words)
# 生成词云图
wordcloud = WordCloud(width=1200,height=600,background_color='white',max_words=200).generate(text)
# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
示例2
准备一本小说作为材料,然后按照上面的攻略进行词云图的制作。
首先,我们需要将小说的所有章节读入到Python中,并合并为一个字符串。接下来,我们需要对这个字符串进行分词和去停用词的处理,然后根据需要设置词云的各种参数。
示例代码如下:
from wordcloud import WordCloud
import jieba
from stopwords import stopwords
import matplotlib.pyplot as plt
# 读入小说
with open('novel.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词
words = jieba.cut(text)
# 去掉停用词
filtered_words = []
for word in words:
if word not in stopwords:
filtered_words.append(word)
# 将单词列表转换为字符串
text = ' '.join(filtered_words)
# 生成词云图
wordcloud = WordCloud(width=1200,height=600,background_color='white',max_words=200).generate(text)
# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
注意,这里使用了stopwords库中的中文停用词库。如果你没有安装stopwords库,需要先进行安装(参见材料准备部分)。