好玩Python--分析你的微信好友簽名

最近看到許多詞雲的數據分析效果,經過詞雲能夠方便地看出哪些詞彙出現的頻率,因而想着經過Python弄了一個分析本身微信好友的個性簽名。 先來看效果:python

能夠很直觀地看出來仍是'努力'出現的頻率比較多啊,九零後確實不容易啊!bash

如何實現呢,直接上python代碼:微信

import itchat
import re
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
from scipy.misc import imread  # 這是一個處理圖像的函數
sign_list=[]
itchat.auto_login(hotReload=True)
itchat.send(u'Hello,world','filehelper')
friends = itchat.get_friends(update=True)[0:]
print('開始獲取微信好友個性簽名.....')
for i in friends:
    signature = i["Signature"].strip().replace("span", "").replace("class", "").replace("emoji", "") #過濾掉表情
    #rep = re.compile("< =.+/>")
    rep = re.compile("[^\u4e00-\u9fa5^]")
    nickName=i["NickName"]
    signature = rep.sub("", signature)
    sign_list.append(signature)

text=''.join(sign_list)
wordlist_jieba = jieba.cut(text, cut_all=True)
wl_space_split = ' '.join(wordlist_jieba)

back_color = imread('./mao.jpg')

# 詞雲
my_wordcloud = WordCloud(
    background_color='white',  # 背景顏色
    max_words=2000,  # 最大詞數
    mask=back_color,  # 以該參數值做圖繪製詞雲,這個參數不爲空時,width和height會被忽略
    max_font_size=100,  # 顯示字體的最大值
    font_path='C:/Windows/Fonts/simfang.ttf',  # 指定字體文件 解決顯示口字型亂碼問題,
    random_state=42,  # 爲每一個詞返回一個PIL顏色
    )

# 用wl_space_split生成詞雲
my_wordcloud.generate(wl_space_split)

# 基於彩色圖像 生成響應的色彩
image_colors = ImageColorGenerator(back_color)
# 顯示圖片
# plt.imshow(my_wordcloud)
# 關閉座標軸
# plt.axis('off')
# 繪製詞雲
plt.figure()
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.axis('off')
# 保存圖片
my_wordcloud.to_file('ciyun.png')

複製代碼

代碼主要使用了itchat,matplotlib,ImageColorGenerator模塊等,這幾個模塊都須要本身pip install 一下。主要是分爲兩步驟,第一步登入微信,獲取微信好友信息,提煉簽名並過濾掉一些非主流簽名,例如帶有表情,第二步則是利用ImageColorGenerator模塊來生成圖片。
若是你仔細觀察圖片,會發現其輪廓像一隻貓,怎麼實現呢?準備一張貓的背景圖片就能夠啦app

是否是以爲頗有趣呢,本身也去實現一個吧,例如分析一下今年兩會政府工做報告出現頻率高的詞彙!dom

相關文章
相關標籤/搜索