1. 程式人生 > >用著短短的30行程式碼,帶你一起去看朋友們的人生態度!

用著短短的30行程式碼,帶你一起去看朋友們的人生態度!

微信是現在人們生活中不可或缺的一部分,通過微信的朋友圈,你能看到朋友們的生活動態,能看到他們激勵自己或朋友的簽名,你能看許許多多的正能量。

 

今天就用 Python 把你微信朋友的簽名收集起來做成詞雲。從簽名大致能看出一個人的人生態度,今天就來看看你的微信朋友態度。

專案環境

語言環境:Python 3.6

工具:Pycharm

如果大家在學習Python的路上,或者打算學習Python需要學習資料,可以加群571799375,群裡學習資料免費贈送給大家!

導包

itchat:用來收集微信相關資訊。

jieba:是一個強大的分詞庫,完美支援中文分詞。

matplotlib:Python 的 2D 繪相簿,它以各種硬拷貝格式和跨平臺的互動式環境生成出版質量級別的圖形。

wordcloud:Python 中的一個小詞雲生成器,支援 Python 2.7、3.4、3.5、3.6、3.7版本。

 
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) 

分詞

我們對上面處理後的簽名信息用 jieba 庫進行分詞,把一句話儘可能多的拆分成若干中文詞或者詞語。

 
#分詞 cut = jieba.cut(text,cut_all=True) word = ",".join(cut) print(word) 

比如我的簽名是「努力成為最好的自己」,拆分後:「努力,成為,最好,的,自己」。

繪製詞雲

把上面所有的中文分詞進行處理,做成詞雲,自選一張詞雲圖片,可以選一張背景為純色的圖片,這樣的詞雲就會顯示為圖片中的輪廓。定義詞雲的各種屬性,包括背景顏色、最大單詞數、畫布圖片、最大字型數、字型路徑、畫布比例等屬性。其中字型路徑是電腦自帶的,我的是在 C:\Windows\Font 目錄下,裡面有常見的字型,你的詞雲是中文的話就選擇任意一類中文字型就好。

然後用 smatplotlib 庫把圖的顏色、分詞內容寫人並顯示出來。

 
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() # 顯示圖片 

最後,需要的話你也可以把詞雲圖儲存下來。儲存到你的 project 的當前目錄。

 
d = path.dirname(__file__) # project 當前目錄 my_wordcloud.to_file(path.join(d, 'cloud.png')) 

 

執行結果

 

 

這樣就完成了微信朋友的簽名的詞雲,看來我的朋友還都蠻正能量的。趕緊自己動手試試,發到朋友圈裝裝 B,快活一下,需要原始碼的加群571799375自取喔!

本文來自網路,如有侵權,請聯絡小編刪除!