ITPub博客

首页 > 数据库 > 数据库开发技术 > 表白-白衣天使

表白-白衣天使

原创 数据库开发技术 作者:阿黎逸阳的代码 时间:2020-02-17 20:50:59 0 删除 编辑
      这是一个被病毒逼疯了^_^的冬天,宅在家的人们进行了各种各样的创作
有电饭锅做蛋糕的

来源:微博


有做凉皮的

来源:微博


有自制烧烤的

来源:微博


      今天我就来做一个天使表白墙,送给正在前线艰苦奋战的白衣天使,他/她们是我们最可敬的同胞,期待疫情早日结束,他/她们能早日凯旋归来。

1.先上效果图

(希望:疫情早日结束,白衣天使们早日凯旋)

2.  python代码分步骤讲解

2.1  设置加载文件的路径(可替换成自己存放文件的路径)

import osos.chdir(r'D:\算法文件夹\新闻数据与任务\表白')

2.2  先设定分割文本用的停用词和函数

    由于停用词较多,不适合放在文本中,有需要的同学可在公众号中回复stopwords或申请加阿黎逸阳qq群,我会把资料上传到群里。

import pandas as pd  stopwords = 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:                continue            line_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^)/~


原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2020-02-15

  • 博文量
    282
  • 访问量
    130942