分享

微信大揭秘——用Python玩转微信(二)

 空谷天籁 2018-06-17

树根的万事屋

95后、爱AI

也许是你关注的最年轻号主

关注

树根在上一篇中教了大家如何用Python里面的itchat这个库区爬取微信中的好友资料,并对好友的性别数据进行了可视化,以及统计好友来自哪里。还没看的可以戳开:微信大揭秘——用Python玩转微信(一)


那我们现在继续我们的Python玩转微信系列,来继续用Python玩转我们的微信!树根继续会用自己的微信作为小白鼠来给大家示范~


接下来,又是树根微信大揭秘时间了。


0

好友个性签名制作词云图


更加好玩的来了!


之前已经爬下了每个好友的个性签名,刚好可以分析一下大伙儿写个性签名时使用的高频词语是什么,顺便可以做个词云图。


说句题外话,上一篇中树根的好友是896个,现在是902个。


我们需要事先安装好“jieba”和“wordcloud” 两个工具库,假如不知道怎么安装可以看一下我很久之前的文章:回忆or寄望,制作一份属于自己的云图词


先把原先爬下来的个性签名(Signature)打印出来,发现本来是表示表情的,现在都变成了“emoji”、“span”、“class”等等这些无关紧要的词,需要先替换掉。另外,还有类似 “<>/=”之类的符号,也需要写个简单的正则表达式替换掉,再把所有拼起来,得到text字串。



以下是执行代码:

import re

siglist = []

for i in friends:
    signature = i['Signature'].strip().replace('span','').replace('class','').replace('emoji','')
    rep = re.compile('1f\d+\w*|[<>/=]')
    signature = rep.sub('', signature)
    siglist.append(signature)

text = ''.join(siglist)


接着就可以把JB,啊不,把jieba这个包搞进来分词(搞不懂这个库的名字怎么来的)。

import jieba

wordlist = jieba.cut(text, cut_all=True)
word_space_split = ' '.join(wordlist)


分词成功以后,终于可以进入画图阶段了。


可以根据自己想要的图片、形状、颜色画出相似的图形。树根这次执行的云图词代码比上一篇的入门要高大上一点,我们需要把matplotlib、wordcloud、numpy、PIL等包搞进来。

import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
import PIL.Image as Image

coloring = np.array(Image.open('C:/Users/acer/Desktop/timg.jpg'))
my_wordcloud = WordCloud(background_color='white', max_words=2000,
                         mask=coloring, max_font_size=40, random_state=42, scale=2,
                         font_path='C:/Users/acer/Desktop/msyh.ttc').generate(word_space_split)

image_colors = ImageColorGenerator(coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis('off')

plt.show()


我们来看看结果是怎么样的。


首先我们来看一下原图,是非常可爱的皮卡丘~


然后用这可爱的皮卡丘作为背景,把所有好友的个性签名做成词云图

哇~好可爱的词云图有木有~~~我们继续使用其他的图片来试试。



~duang~

看来,在我的所有微信好友的个性签名里,有人善于聆听、有人强调善良、有人重视灵魂、有人凝视人生。他们一直在等待,不放弃寻找、历尽曲折,不畏虚伪、真心如一,不能辜负、一步一生多努力


树根真编不下去了,其实树根的好友签名无非就是我不能没有你、你不能失去我哈哈哈哈。


以上是不是很有趣呢?是不是又打开了一扇新世界的大门呢?


我的微信好友也不是太多,如果微信好友有几千个,可以得到几千条数据,分析一下还是很有价值的。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多