用Python编写WordCloud词云生成中文字符画
发布时间:2023-12-18 12:53:25
以下是一个使用例子,生成中文字符画的词云:
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件并分词
def read_file(filename):
with open(filename, 'r', encoding='utf8') as f:
text = f.read()
words = jieba.cut(text)
return " ".join(words)
# 生成词云
def create_wordcloud(text):
wordcloud = WordCloud(font_path="simhei.ttf", width=800, height=800, background_color='white').generate(text)
plt.figure(figsize=(8, 8))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
# 使用例子
if __name__ == "__main__":
# 读取文本文件并分词
text = read_file("text.txt")
# 生成词云
create_wordcloud(text)
在这个例子中,我们使用了jieba库来进行中文分词,使用了WordCloud库来生成词云,并使用matplotlib.pyplot库来显示词云图。
首先,我们定义了一个read_file函数来读取文本文件并进行分词。函数接受一个文件名作为参数,使用open函数打开文件并读取内容,然后使用jieba.cut函数对文本进行分词,最后通过" ".join方法将分词结果连接成一个字符串并返回。
接下来,我们定义了一个create_wordcloud函数来生成词云。函数接受一个文本字符串作为参数,首先创建了一个WordCloud对象,设置了字体路径、宽度、高度和背景颜色等参数,然后调用generate方法生成词云图像。最后,我们使用plt.figure函数创建一个图像窗口,使用plt.imshow函数显示词云图像,使用plt.axis("off")函数隐藏坐标轴,最后使用plt.show函数显示图像窗口。
在if __name__ == "__main__":的条件下,我们可以通过调用read_file函数读取文本文件并进行分词,然后将分词结果传递给create_wordcloud函数生成词云图。
需要注意的是,在生成词云之前,我们需要提前准备一个中文字体文件(如simhei.ttf),并将其放置在与代码文件相同的目录下,以保证词云中的中文字符能够正确显示。
通过以上代码,我们可以生成一个中文字符画的词云图,并使用plt.show函数在窗口中显示出来。你可以根据自己的需要修改代码,实现更复杂的功能,如设置词云颜色、形状等。
