来源:微博
来源:微博
来源:微博
1.先上效果图
(希望:疫情早日结束,白衣天使们早日凯旋)

2. python代码分步骤讲解
2.1 设置加载文件的路径(可替换成自己存放文件的路径)
import osos.chdir(r'D:\算法文件夹\新闻数据与任务\表白')
2.2 先设定分割文本用的停用词和函数
由于停用词较多,不适合放在文本中,有需要的同学可在公众号中回复stopwords或申请加阿黎逸阳qq群,我会把资料上传到群里。
import pandas as pdstopwords = pd.read_csv("stopwords.txt",index_col=False, sep="\t",quoting=3,names=['stopword'],encoding='utf-8') #读取自定义的停用词#把文本中的停用词去掉函数def drop_stopwords(contents,stopwords):contents_clean = []all_words = []for line in contents:line_clean = []for word in line:if word in stopwords:continueline_clean.append(word)all_words.append(str(word))contents_clean.append(line_clean)return contents_clean,all_words
2.3 设定词云的形状
可替换成你想替换的任意图片,本文用的是封面图片,如果想要该图片,可以在公众号中回复angel或申请加阿黎逸阳qq群,我会把资料上传到群里。
from PIL import Image#初始化自定义背景图片images = Image.open('angel.png')graph = np.array(images)
2.4 把表白的词绘制到天使图片上并保存图片
text = open('biaobai.txt').read() #表白内容的txt文档cut_text= jieba.cut(text,cut_all=False) #用jieba分词器把表白文档分成一个一个的词result= "/".join(cut_text) #必须给个符号分隔开分词结果,否则不能绘制词云#产生词云图wc = WordCloud(font_path="./data/simhei.ttf",background_color='black',max_font_size=200,mask=graph) #有自定义背景图:生成词云图由自定义背景图像素大小决定wc.generate(result)image_color = ImageColorGenerator(graph) #从背景图片生成颜色值wc.recolor(color_func=image_color)wc.to_file("wordcloud.png") #按照背景图大小保存绘制好的词云图,保存到当前文件夹中,比下面程序显示更清晰
2.5 也可以直接在python程序中显示该图片
# 显示图片plt.figure("词云图") #指定所绘图名称plt.imshow(wc) # 以图片的形式显示词云plt.axis("off") # 关闭图像坐标系plt.show()
最后附上我的联系方式:手机号、微信号(13162366985)
也可以添加qq群:阿黎逸阳交流群
有问题欢迎咨询\(^o^)/~
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。