你是否能经常看见由单词组成的图片,也许你会惊叹它的艺术,但事实上,生成它只需要一段代码。
代码展示(来自某位大佬,记不清,后序补充)
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
jieba.setLogLevel(jieba.logging.INFO)
# 读取Text文本
data = open('C:\\Users\\汘际\\PycharmProjects\\ciyun\\2022新年贺词.txt', "r", encoding="utf-8").read()
# 将文本已词语的方式分割 分割后赋值给Word
# ut_all=True 是全模式 cut_all=False 是精确模式 默认是精确模式
cutData = jieba.cut(data, cut_all=False)
# 以空格分开词语
word = " ".join(cutData)
# 背景图
mask = np.array(Image.open("C:\\Users\\汘际\\PycharmProjects\\ciyun\\pikaqiu.png"))
wc = WordCloud(mask=mask, font_path='msyh.ttc', mode='RGBA', background_color='white').generate(word)
# 下面代码表示显示图片
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.show()
# 保存图片
wc.to_file('cloud_img.png')
msyh.tcc是字体,当你的文本中存在中文时候,需要这个,如果没有加上,生成的图片是没有汉字的,只有方框。
txt则是你要生成词云的文库,试问,没有文库,生成个啥呢。
pikaqiu.png是你要生成词云的形状,当然你说你是极简主义,那么方块也是可以的。萝卜青菜各有所爱。
cloud.png即生成图。
详细解析都在代码里,其实可以更简单,但由于我是初学,只能先搬他人的,等我学到这了,我再回来补充。