Python將QQ聊天記錄生成詞云的示例代碼
在這個(gè)情人節(jié)前夕,我把現(xiàn)任對(duì)象回收掉了,這段感情積攢了太多的失望,也給了我太多的傷害,所以我看到這個(gè)活動(dòng)的第一反應(yīng)是拒絕的。然而人生嘛,最重要的就是體驗(yàn),沉浸在過(guò)去的回憶里沒(méi)有意義,積極面對(duì)才能讓自己更好地重振旗鼓。
所以,當(dāng)大家都一致地在這個(gè)活動(dòng)里各種秀恩愛(ài)時(shí),我決定走一條不一樣的路來(lái)為單身狗和剛分手的小伙伴們打打氣:時(shí)間能改變的,是那些原本就不堅(jiān)定的東西,未來(lái)的路還很長(zhǎng),笑一笑,一切都會(huì)過(guò)去的!
言歸正傳,我們要做的任務(wù)是,把 QQ 分手聊天記錄導(dǎo)出,使用 Python 分詞后做成分開(kāi)的桃心形狀的詞云進(jìn)行展示。聽(tīng)著就很有意思,來(lái),開(kāi)干!
步驟一:創(chuàng)建和導(dǎo)出聊天記錄
1.創(chuàng)建聊天記錄內(nèi)容
選擇 QQ 聊天記錄是因?yàn)楸容^簡(jiǎn)單,而微信導(dǎo)出相對(duì)麻煩??紤]到個(gè)人隱私問(wèn)題,我申請(qǐng)了 QQ 小號(hào),和大號(hào)之間發(fā)了一些分手語(yǔ)錄作為提取素材:
2.導(dǎo)出聊天記錄
我使用的是TIM,點(diǎn)擊右下角的主菜單,選擇“設(shè)置”:
選擇“消息記錄” ->> “安全設(shè)置” ->> “打開(kāi)消息管理器” :
選擇需要導(dǎo)出的關(guān)系人,右鍵點(diǎn)擊“導(dǎo)出消息記錄”:
保存到 F:\csdn 目錄下,保存類型選擇文本文件,命名為 chat.txt:
第一步導(dǎo)出操作完成。
步驟二:安裝需要的庫(kù)
1.安裝 jieba 庫(kù)
pip install jieba -i https://pypi.douban.com/simple/
2.安裝 Wordcloud 庫(kù)
網(wǎng)上有人說(shuō)直接使用 pip install 安裝 Wordcloud 會(huì)有問(wèn)題,所以我們先下載到本地:
選擇適合自己環(huán)境的安裝包(cp 后面的數(shù)字代表 Python 版本,一定要對(duì)應(yīng)起來(lái)),下載到 Python 安裝目錄下的 Scripts 文件夾中:
打開(kāi)cmd,進(jìn)入該路徑,執(zhí)行安裝命令:
pip install wordcloud-1.8.1-cp38-cp38-win_amd64.whl
安裝成功截圖如下:
步驟三:代碼實(shí)現(xiàn)
選擇一張分開(kāi)的心圖片(分開(kāi)的心也很美嘛):
在選擇生成配色方案的圖片時(shí),要求背景白色,邊緣越清晰越好。
qqChat.py 代碼實(shí)現(xiàn):
import matplotlib.pyplot as plt from wordcloud import WordCloud import jieba from wordcloud import WordCloud, ImageColorGenerator, STOPWORDS import os import numpy as np import PIL.Image as Image newtext = [] #打開(kāi)聊天記錄文件 for word in open('F:\\csdn\\chat.txt', 'r',encoding='utf-8'): tmp = word[0:4] #過(guò)濾掉聊天記錄的時(shí)間和qq名稱 if (tmp == "2021"): continue tmp = word[0:2] #print(tmp) newtext.append(word) #將過(guò)濾后的文本重新寫(xiě)入文件并保存 with open('F:\\csdn\\chat_final.txt', 'w', encoding='utf-8') as f: for i in newtext: f.write(i) #打開(kāi)新生成的聊天記錄文件 text = open('F:\\csdn\\chat_final.txt', 'r',encoding = 'utf-8').read() word_jieba = jieba.cut(text, cut_all=True) word_split = " ".join(word_jieba) #去掉一些意義不大的字 stop_words = set(STOPWORDS) stop_words.add("的") stop_words.add("我") stop_words.add("你") stop_words.add("是") stop_words.add("就") #根據(jù)心形圖片生成配色方案,這里的路徑要配置正確 alice_coloring = np.array(Image.open(os.path.join('F:\\','heart.jpg'))) my_wordcloud = WordCloud(scale=16,background_color="white", max_words=800, stopwords=stop_words, mask=alice_coloring,max_font_size=80, random_state=42,font_path='C:/Windows/Fonts/simhei.ttf')\ .generate(word_split) image_colors = ImageColorGenerator(alice_coloring) plt.imshow(my_wordcloud.recolor(color_func=image_colors)) plt.imshow(my_wordcloud) plt.axis("off") plt.show()
可以根據(jù)自己的需求調(diào)整參數(shù),比如如果有一些語(yǔ)氣詞和無(wú)意義的字可以通過(guò)配置 stopwords 來(lái)進(jìn)行過(guò)濾,最后輸入命令運(yùn)行代碼:
python qqChat.py
效果如下,還是很漂亮的。
詞云里面頻率最高的幾個(gè)詞分別是“愛(ài)”,“自己”,“喜歡”,也恰恰是我想表達(dá)的:不管一段愛(ài)情有多么甜蜜或多么悲傷,始終都不能失去自己,哪怕說(shuō)再見(jiàn)也要保持驕傲的姿態(tài),每一段人生經(jīng)歷都有它的意義和價(jià)值,平和地接受結(jié)果就好了。
到此這篇關(guān)于Python將QQ聊天記錄生成詞云的示例代碼的文章就介紹到這了,更多相關(guān)Python 生成詞云內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python查找指定文件夾下所有文件并按修改時(shí)間倒序排列的方法
今天小編就為大家分享一篇python查找指定文件夾下所有文件并按修改時(shí)間倒序排列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10對(duì)python_discover方法遍歷所有執(zhí)行的用例詳解
今天小編就為大家分享一篇對(duì)python_discover方法遍歷所有執(zhí)行的用例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Python利用matplotlib.pyplot.boxplot()繪制箱型圖實(shí)例代碼
相信大家應(yīng)該都知道Python繪制箱線圖主要用matplotlib庫(kù)里pyplot模塊里的boxplot()函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python利用matplotlib.pyplot.boxplot()繪制箱型圖的相關(guān)資料,需要的朋友可以參考下2022-08-08Python實(shí)現(xiàn)的多線程端口掃描工具分享
這篇文章主要介紹了Python實(shí)現(xiàn)的多線程端口掃描工具分享,工具實(shí)現(xiàn)了掃單IP和掃IP段功能,本文給出運(yùn)行效果和實(shí)現(xiàn)源碼,需要的朋友可以參考下2015-01-01Python尾遞歸優(yōu)化實(shí)現(xiàn)代碼及原理詳解
這篇文章主要介紹了Python尾遞歸優(yōu)化實(shí)現(xiàn)代碼及原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10