qq技術羣,一羣逗比天天不聊技術,都在摸魚,未讀消息動不動就99+,絲毫不考慮我這電腦內存小的怎麼辦。來,讓我們看看這羣逗比羣友整天都在聊什麼。
一、導出QQ聊天文件
手機上或者Mac上的QQ數據庫是加密的,但是手機備份出來的卻是明文的數據,所以我們直接用最簡單的,從備份拿數據,我這裏用愛思助手搞了。
- 打開愛思助手然後點擊 工具箱->備份/恢復數據->選擇全備份,然後等幾分鐘備份完成,打開全備份文件管理。
- 點擊立即查看
- 列表有一個
APPDomain-com.tencent.mqq
的文件夾 ,賬號數據路徑爲/AppDomain-com.tencent.mqq/Documents/contents/xxQQ賬號xxx/QQ.db
- 然後用支持SQlite的軟件 Navicat Premium 或者 DB Browser for SQLite打開QQ.db。
- 其中表名爲tb_c2cMsg_xxxxQQ賬號xxx的表,是單對單的聊天信息,tb_TroopMsg_xxx羣號xxx的表,是羣聊天的記錄。
- 我們就選話最多的那個羣號,然後找出來對應的表,選擇導出全部數據。
7.編碼選擇UTF-8,導出字段不用選擇全部字段,只用選擇strMsg字段,然後一直點擊下一步就可以了。
8.導出成功
二、jieba分詞
import jieba
import re
# 對聊天記錄文件進行分詞
def cut_words():
# 把聊天內容讀取給content
fp = open("qqjilu.txt", "r", encoding="utf-8")
content = fp.read()
fp.close()
#過濾img標籤
content=re.compile('<\s*img[^>]*>[^<]*<\s*/\s*img\s*>',re.I).sub('',content)#將br轉換爲換行
jieba.enable_paddle()
jieba.load_userdict("dict.txt")
words = jieba.cut(content, cut_all=False) # 使用精確模式對文本進行分詞
counts = {} # 通過鍵值對的形式存儲詞語及其出現的次數
for word in words:
if len(word) == 1: # 單個詞語不計算在內
continue
else:
counts[word] = counts.get(word, 0) + 1 # 遍歷所有詞語,每出現一次其對應的值加 1
items = list(counts.items())#將鍵值對轉換成列表
items.sort(key=lambda x: x[1], reverse=True) # 根據詞語出現的次數進行從大到小排序
for i in range(15):
word, count = items[i]
print("{0:<5}{1:>5}".format(word, count))
if __name__ == "__main__":
cut_words()
打印結果:
三、總結
一羣逗比羣友,天天不敲代碼,只知道開車。