Menu Explicit/Hidden

python生成词云代码

以下是一个使用Python生成词云的示例代码:

import matplotlib.pyplot as plt
from wordcloud import WordCloud

# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 创建词云对象
wordcloud = WordCloud(background_color='white', width=800, height=600, max_words=200).generate(text)

# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

在上述代码中,首先需要安装matplotlibwordcloud库。然后,将要生成词云的文本保存在text.txt文件中,通过open函数读取文本内容。接下来,创建一个WordCloud对象,设置词云的背景颜色、宽度、高度和最大词数等参数。最后,使用imshow函数显示词云图,并通过axis('off')函数去除坐标轴,最后调用show函数展示词云图。

需要注意的是,生成词云的文本需要是一个字符串,可以是从文件中读取的文本,也可以是通过其他方式获取的文本。

当然,还有一些其他常用的参数可以进一步定制词云的样式,例如:

collocations:是否包括常见的双词搭配,默认为True。

stopwords:设置停用词,可以是一个列表或者集合,用于过滤掉一些常见的无意义词语。

font_path:设置字体文件的路径,用于显示中文字符。

mask:设置词云的形状,可以是一个图片文件,词云将会以该图片的形状进行绘制。

contour_color:设置词云的轮廓颜色。

background_color:设置词云的背景颜色。

max_font_size:设置词云中最大字体的大小。

min_font_size:设置词云中最小字体的大小。

下面是一个更完整的示例代码,展示了如何使用这些参数来生成词云:

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

# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 设置停用词
stopwords = set(STOPWORDS)
stopwords.add('said')

# 读取形状图片
mask = np.array(Image.open('mask.png'))

# 创建词云对象
wordcloud = WordCloud(background_color='white', width=800, height=600, max_words=200, stopwords=stopwords, mask=mask, contour_color='steelblue', max_font_size=100, min_font_size=10, font_path='msyh.ttc').generate(text)

# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

在上述代码中,我们首先导入了STOPWORDSImage模块,分别用于设置停用词和读取形状图片。然后,通过set函数将一些常见的无意义词语添加到停用词集合中。接下来,使用np.array函数读取形状图片,并将其转换为NumPy数组。最后,创建词云对象时,通过参数设置停用词、形状图片、轮廓颜色、最大字体大小、最小字体大小和字体文件路径等。