如何用Python制作微信好友個(gè)性簽名詞云圖
前言
上次查看了微信好友的位置信息,想了想,還是不過癮,于是就琢磨起了把微信好友的個(gè)性簽名拿到,然后分詞,接著分析詞頻,最后弄出詞云圖來。
1.環(huán)境說明
Win10 系統(tǒng)下 Python3,編譯器是 Pycharm,需要安裝 itchat、matplotlib、pandas、jieba、wordcloud、numpy、pillow 這幾個(gè)包
介紹 Pycharm 安裝第三方包的方法。


由于某些包不能直接用 Pycharm 安裝,所以這里說一下安裝的方法。
安裝wordcloud
worcloud需要numpy> = 1.5.1,pillow和matplotlib,所以要先安裝numpy,pillow和matplotlib。
在這個(gè)鏈接找到合適的whl文件

如果是電腦是64位,python是3.6就下載下面這個(gè)。

下載回來就放到Python的目錄下,就比如我是把 Python 安裝在E:\Python36這個(gè)目錄,就把下載回來的 wordcloud-1.3.3-cp36-cp36m-win_amd64.whl 放在這。

然后按win鍵+R ,輸入cmd,回車

然后cd 到 Python 目錄那

接下來就是安裝了,pip install wordcloud-1.3.3-cp36-cp36m-win_amd64.whl

2.相關(guān)代碼
先把需要的東西導(dǎo)入,安裝這些包可不簡單
import itchat import matplotlib.pyplot as plt import re, jieba import pandas as pd from wordcloud import WordCloud, ImageColorGenerator import numpy as np import PIL.Image as Image
登錄微信
itchat.auto_login(hotReload=True) friends = itchat.get_friends(update=True)
獲取數(shù)據(jù)
data = pd.DataFrame() # 提出好友的昵稱、性別、省份、城市、個(gè)性簽名,生成一個(gè)數(shù)據(jù)框 columns=['NickName', 'Sex', 'Province', 'City', 'Signature'] for col in columns: val = [] for i in friends[1:]: # friends[0]是自己的信息,因此我們要從[1:]開始 val.append(i[col]) data[col] = pd.Series(val)
把個(gè)性簽名中的 emoji 和別的東西過濾一下
siglist = []
for i in data['Signature']:
signature = i.strip().replace('emoji','').replace('span','').replace('class','')
rep = re.compile('1f\d+\w*|[<>/=]') # 具體含義另行查看
signature = rep.sub('', signature)
siglist.append(signature)
text = ''.join(siglist)使用結(jié)巴分詞進(jìn)行分詞,用 matplotlib 把圖畫出來
word_list = jieba.cut(text, cut_all=True)
word_space_split = ' '.join(word_list)
coloring = np.array(Image.open("E:/Python/wechat/toux.jpg")) #這個(gè)路徑可以改,最好還是不要改
my_wordcloud = WordCloud(background_color="white", max_words=2000,
mask=coloring, max_font_size=100, random_state=42, scale=2,
font_path="C:/Windows/Fonts/simkai.ttf").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()3.運(yùn)行
先說明一下,如果能看懂代碼,知道該怎么把必要的文件弄好,那就不怎么需要看下面這個(gè)。
如果看得不太理解,運(yùn)行前一定要在 E 盤建立一個(gè)文件夾。路徑是 E:\Python\Wechat ,然后在文件夾中放入一張命名為 toux.jpg 的照片,具體圖片看個(gè)人喜好。

最好就是下圖這樣的照片

這樣生成的詞云就會很好看

意思就是圖片要有白色的背景,人物顏色較鮮艷,人物突出(圖片分辨率要高)
把代碼安裝順序復(fù)制到 Pycharm,然后鼠標(biāo)右鍵,選擇 Run,掃描彈出來的二維碼,登錄微信網(wǎng)頁版,確認(rèn)后等待一下,看到下圖就說明代碼運(yùn)行得很完美,成功運(yùn)行,沒有報(bào)錯(cuò)。

然后稍微等一下就可以看到詞云圖了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)的序列化和反序列化二叉樹算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的序列化和反序列化二叉樹算法,結(jié)合實(shí)例形式分析了Python二叉樹的構(gòu)造、遍歷、序列化、反序列化等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
Python實(shí)現(xiàn)Windows風(fēng)格文件夾自然排序的全攻略
在Windows資源管理器中,文件夾排序遵循自然數(shù)值邏輯:11-1會排在11之后而非2之前,file10.txt會排在file2.txt之后,本文將詳細(xì)解析如何在Python中實(shí)現(xiàn)這種智能排序,需要的朋友可以參考下2025-10-10
Python結(jié)合SQLite構(gòu)建一個(gè)完整數(shù)據(jù)驅(qū)動(dòng)應(yīng)用的終極指南
這篇文章主要為大家詳細(xì)介紹了Python結(jié)合SQLite構(gòu)建一個(gè)完整數(shù)據(jù)驅(qū)動(dòng)應(yīng)用的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-01-01
python?import?logging日志(日志封裝)詳解
文章介紹了如何使用Python的logging模塊創(chuàng)建和配置日志類,包括初始化logger對象、設(shè)置日志級別和格式、自動(dòng)分割日志文件等,還展示了如何在多個(gè)文件中使用日志功能,并通過配置文件進(jìn)行日志配置2026-01-01
解決django框架model中外鍵不落實(shí)到數(shù)據(jù)庫問題
這篇文章主要介紹了解決django框架model中外鍵不落實(shí)到數(shù)據(jù)庫問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
深入理解Python虛擬機(jī)中浮點(diǎn)數(shù)(float)的實(shí)現(xiàn)原理及源碼
在本篇文章當(dāng)中主要分析在 cpython 虛擬機(jī)當(dāng)中 float 類型的實(shí)現(xiàn)原理以及與他相關(guān)的一些源代碼,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-03-03
Python實(shí)現(xiàn)的密碼強(qiáng)度檢測器示例
這篇文章主要介紹了Python實(shí)現(xiàn)的密碼強(qiáng)度檢測器,結(jié)合實(shí)例形式分析了Python密碼強(qiáng)度檢測的原理與實(shí)現(xiàn)方法,涉及Python字符串運(yùn)算與轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08

