前言
今天带大家玩点好玩的东西,用Python制作自己朋友圈个性签名的词云,有趣吧~好了,下面开始干活。我知道你们还是想先看看效果的。
环境准备
语言环境:Python 3.6
工具:Pycharm
操作系统:windows or MacOS
用到的扩展库
itchat:用来收集微信相关信息。
jieba:是一个强大的分词库,完美支持中文分词。
matplotlib:Matplotlib 是 Python 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。它也可以和图形工具包一起使用,如 PyQt 和 wxPython
wordcloud:以词语为基本单位,更加直观和艺术的展示文本的一个小词云生成器
import itchat
import re
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
import numpy as np
import PIL.Image as Image
代码实现
第一步,登录微信并获取签名信息
用 itchat 库登录微信后用 get_friends 方法获取微信朋友全部信息,信息包括:昵称、备注名、性别、地区、个性签名等等。个性签名用的是 Signature 字段,很多我们不需要的我们可以选择性剔除,例如:空格,表情等
signlist = []
itchat.auto_login() #登录微信
friends = itchat.get_friends(update=True)[0:]
for i in friends:
signature = i['Signature'].strip().replace('span','').replace('class','').replace('emoji','').replace('\n','').replace('\"','') #去除无用字符
rep = re.compile("1f\d+\w*|[<>/=]")
signature = rep.sub('',signature)
signlist.append(signature)
text = "".join(signlist)
分词
简单来说就是将一句话拆分开来,例如【今天也是充满希望的一天】,可以拆分为【今天,也是,充满,希望,的,一天】
#分词
cut = jieba.cut(text,cut_all=True)
word = ",".join(cut)
print(word)
绘制词云
把上面所有的中文分词进行处理,做成词云,选择一张图片作为背景。词云还拥有以下几种属性:背景颜色、最大单词数、画布图片、最大字体数、字体路径(电脑自带)、画布比例等。
然后用 matplotlib 库把图的颜色、分词内容写人并显示出来。
coloring = np.array(Image.open("F:\\photo.jpg")) # 电脑中自定义词云的图片
my_wordcloud = WordCloud(background_color="white", max_words=2000,mask=coloring, max_font_size=70, random_state=48,font_path='./font/msyh.ttf',scale=2).generate(word) # 定义词云背景图颜色、尺寸、字体大小、电脑中字体选择,random_state 为每个单词返回一个PIL颜色,字体路径,画布比例
image_colors = ImageColorGenerator(coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors)) # 绘图颜色
plt.imshow(my_wordcloud) # 绘图内容
plt.axis("off")
plt.show() # 显示图片
保存自己的词云,搞定
d = path.dirname(__file__) # project 当前目录
my_wordcloud.to_file(path.join(d, 'xxx.png'))
总结
区区几十行代码,轻轻松松就可以制作自己朋友圈个性签名的词云,无论是生活还是工作,我们没有理由不去利用编程来大幅度提高自己的效率了。
除此之外,简单的Python技术,还可以在工作和生活中实现许多有趣、实用的功能:
● 比如有人用来做股票分析;
● 有人想转行前端,爬过拉勾网里所有前端职位的招聘需求,然后从中分析出哪些框架要求的多,就专攻那些框架学习,再去去找工作;
● 有人用python轻松爬取千张表情包,再也不怕斗图了;
● 有人观影前爬取某电影的猫眼评论和评分,更准确地从眼花缭乱的评论中分析,大家对这电影打高分或低分的原因,还做成了关键词词云……
Python可以为我们的好奇心买单,通过合理设置爬虫和分析工具,我们的生活会远远比目前看到的更加精彩和多样化。
还没开启Python学习的你,不要再在犹豫中耗尽所有可能!