1. 程式人生 > >【Python3.6】生成微信好友個性簽名詞雲

【Python3.6】生成微信好友個性簽名詞雲

程式碼連結:https://gitee.com/AI-Echo/codes/4bk0tsqczpe6dfyhu7mlo12
思路:
1.通過itchat爬取微信好友資訊,獲取好友簽名Signature
2.將Signature拼接成Str,並去掉預先設定的一些停用詞(如的、是、有等,主要是為了留下名詞和形容詞)
3.匯入jieba模組分詞
4.匯入wordcloud 模組生成詞雲,用matplotlib.pyplot畫出影象並儲存

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 14 09:26:32 2017

@author: admin
"""
import itchat import re itchat.login() friends = itchat.get_friends(update=True)[0:] tList = [] for i in friends: #除去空格、表情(表情在爬取的時候會包含在span標籤內) signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "") rep = re.compile("1f\d.+") signature = rep.sub(""
, signature) tList.append(signature) # 拼接字串 text = "".join(tList) # jieba分詞 import jieba #去除停用詞 stopwords = {}.fromkeys(['的', '包括', '等', '是','不是','有人','人','有']) #去掉停用詞時用精確模式 segs = jieba.cut(text, cut_all=False) final = '' for seg in segs: #==============================================================================
# seg = seg.encode('utf-8') #============================================================================== if seg not in stopwords: final += seg #處理完後分詞,採用全模式 wordlist_jieba = jieba.cut(final, cut_all=True) wl_space_split = " ".join(wordlist_jieba) # wordcloud詞雲 import matplotlib.pyplot as plt from wordcloud import WordCloud, ImageColorGenerator import os import numpy as np import PIL.Image as Image # 獲取當前檔案路徑 d= os.path.dirname(os.path.abspath( __file__ )) #需要在py檔案所在目錄下已經有模版圖片 timg2.jpg alice_coloring = np.array(Image.open(os.path.join(d, "timg2.jpg"))) my_wordcloud = WordCloud(background_color="white", max_words=2000,mask=alice_coloring,max_font_size=400, random_state=420,font_path='C:\Windows\Fonts\SIMYOU.TTF').generate(wl_space_split) image_colors = ImageColorGenerator(alice_coloring) plt.imshow(my_wordcloud.recolor(color_func=image_colors)) plt.imshow(my_wordcloud) #不顯示座標軸 plt.axis("off") #儲存圖片,需在plt.show()前呼叫 #在plt.show() 後實際上已經建立了一個新的空白的圖片(座標軸), #這時候你再plt.savefig() 就會儲存這個新生成的空白圖片。 plt.savefig("examples.jpg") plt.show()

這裡寫圖片描述

這裡寫圖片描述