Python 词云图形状是指生成的词云图形状的外形。词云图是指将一段文本中出现频率较高的关键词以可视化的方式展现出来,生成的图形中,不同的关键词的字体大小会根据其出现的频率而变化。
Python 中使用 wordcloud 库生成词云图,该库提供了不同的参数设置,可以自定义词云图形状。
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
# 设置停用词
stopwords = set(STOPWORDS)
stopwords.update(["said", "will", "one", "now", "well", "may", "must", "us", "much", "yet", "mr", "made", "two", "long", "worth",
"might", "four", "first", "little", "great", "good", "way", "sure", "many", "day", "came", "still", "next", "upon"])
# 读取图片
mask = np.array(Image.open("heart.png"))
# 读取文本文件
text = open("mytext.txt", encoding='utf-8').read()
# 生成词云图
wordcloud = WordCloud(background_color="white", mask=mask, stopwords=stopwords, max_font_size=150, width=800, height=400, margin=10).generate(text)
# 在图片上生成颜色
image_colors = ImageColorGenerator(mask)
plt.figure(figsize=[7,7])
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
plt.axis("off")
plt.show()
在上述代码中,先设置了停用词,可自定义添加,用于过滤文本中出现频率过高但无实际含义的词汇。
然后通过 np.array() 读取一个 PNG 图片文件作为词云图形状。在生成词云图时,将该图片作为 mask 参数传入,生成的词云图形状就会变成该图片的样子,具有很强的视觉冲击力。
最后通过处理图片上的颜色,使用词云图自带的 recolor() 方法将词云图形颜色与图片颜色一致,使生成的词云图更加舒适、自然。最终通过 matplotlib 库展示生成的词云图。