教师节到了,辞藻不华丽的我只能简单的说一声祝天下所有的老师们节日快乐。
但作为一个技术小白,除了话语,也该用自己所学的表达感恩:用python来制作感恩词语的词云图
具体步骤如下:
步骤一:准备一些感恩的句子,放在一个文件中。
如图所示:这里我存放的文件是:text1.txt,且把文件放在跟源码同目录下
步骤二:准备一些能够凸显图片中形状的图片,词云图的形状就跟图片中的形状一样
如图:
步骤三:编写代码
from re import sub
from collections import Counter
from PIL import Image
from jieba import cut
from numpy import array
from wordcloud import WordCloud
with open('text1.text', encoding='utf-8') as fp:
# 去除重复的句子
content = set(fp.readlines())
print(len(content))
# 拼接所有句子,删除数字编号
text = sub('\d+', '', ''.join(content))
print(text)
# 创建词云图时要忽略的词语
excloudes = ('教师节', '祝您', '老师', '我们', '教师', '学生')
words = filter(lambda word: len(word) > 1 and word not in excloudes, cut(text))
print(words)
# 根据出现次数最多的前200个词绘制云图
freq = dict(Counter(words).most_common(400))
# 准备一个心型图片,控制词云图形状
img = Image.open('img7.png')
size = img.size
wc = WordCloud(r'font3.ttf',width=size[0], height=size[1], mask=array(img), background_color='white', font_step=3,
random_state=False, prefer_horizontal=0.6)
wc.generate_from_frequencies(freq).to_image().show()
效果展示如下:通过更换不同的字体,不同形状的图片可以呈现不同的效果