python分析微信好友簽名分析

2021-08-20 04:18:16 字數 2722 閱讀 4959

當前其實有不少工具能夠實現我們的目的, 在例子中, 我採用了jieba來進行分詞, 用wordcloud來生成對應的詞云,用snownlp來分析對應的情緒。

關於這三種工作,不做詳細的介紹了,簡單的列一下:

「結巴」中文分詞:做最好的 python 中文分詞元件

「jieba」 (chinese for 「to stutter」) chinese text segmentation: built to be the best python chinese word segmentation module.

github: 

github:   

snownlp是乙個python寫的類庫,可以方便的處理中文文字內容,是受到了[textblob](的啟發而寫的,由於現在大部分的自然語言處理庫基本都是針對英文的,於是寫了乙個方便處理中文的類庫,並且和textblob不同的是,這裡沒有用nltk,所有的演算法都是自己實現的,並且自帶了一些訓練好的字典。注意本程式都是處理的unicode編碼,所以使用時請自行decode成unicode。

具體實現:

for friend in my_friends:

signature = str(friend.signature).strip().replace("span", "").replace("class", "").replace("emoji", "")

signature_file.writelines(signature)

rep = re.compile("1f\d+\w*|[<>/=]")

signature = rep.sub("", signature)

這樣就將所有的簽名都儲存在了乙個名為siglist的列表中, 然後儲存成乙份檔案

text = "".join(siglist)

with open('text.txt', 'w') as f:

f.write(text)

f.close()

之後我們就能通過呼叫wordcloud來生成詞云:

# 繪製詞云

def draw_wordcloud():

# 讀入乙個txt檔案

comment_text = open('text.txt', 'r').read()

# 結巴分詞,生成字串

cut_text = " ".join(jieba.cut(comment_text))

color_mask = imread("background.png") # 讀取背景

cloud = wordcloud(

# 設定字型,不指定就會出現亂碼

font_path="hyqihei-50s.ttf",

# 設定背景色

background_color='white',

# 詞云形狀

mask=color_mask,

# 允許最大詞彙

max_words=2000,

# 最大號字型

max_font_size=40

)word_cloud = cloud.generate(cut_text) # 產生詞云

# word_cloud.to_file("wordcloud.jpg") #儲存

# 顯示詞云

接下去進**緒分析,在獲取簽名的時候,能夠同時進**緒的分析:

signature_emotion = re.sub(r'1f(\d.+)', '', signature)

if (len(signature_emotion) > 0):

nlp = snownlp(signature)

然後根據情緒的得分,繪製乙個柱狀圖:

def analyseemotion(emotions):

# signature emotional judgment

count_good = len(list(filter(lambda x: x > 0.66, emotions)))

count_normal = len(list(filter(lambda x: x >= 0.33 and x <= 0.66, emotions)))

count_bad = len(list(filter(lambda x: x < 0.33, emotions)))

labels = [u'負面消極', u'中性', u'正面積極']

values = (count_bad, count_normal, count_good)

plt.rcparams['font.sans-serif'] = ['simhei']

plt.rcparams['axes.unicode_minus'] = false

plt.xlabel(u'情感判斷')

plt.ylabel(u'頻數')

plt.xticks(range(3), labels)

plt.legend(loc='upper right', )

plt.bar(range(3), values, color='rgb')

plt.show()

python微信好友 Python簡單分析微信好友

開發工具 python版本 3.6.4 itchat模組 pandas模組 pyecharts模組。環境搭建 安裝python並新增到環境變數,pip安裝需要的相關模組即可。相關檔案 額外說明 pyecharts模組安裝時請依次執行以下命令 pip install echarts countries...

資料分析之 微信好友分析

itchat包的api列表 在命令終端輸入 pip install itchatimport itchatfriends itchat.get friends update true 返回乙個字典列表,第乙個是本人資訊。字典中的每乙個key表示乙個資訊,如 性別,暱稱。建議斷點通過pycharm預覽...

分析微信好友列表資訊(json)

可以用 json 模組,1.將 python 物件轉化為 json是這樣的json.dumps 2.將json資料轉化為python物件是這樣的json.loads 很容易找到有乙個請求,會返回所有好友的資訊,比如我的 下面只分析其中乙個好友資訊 import json jsondata myfri...