日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【代码】QQ群最近聊天记录做成词云

發(fā)布時間:2024/1/1 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【代码】QQ群最近聊天记录做成词云 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有這個想法是因為看到了itchat包,做了微信簽名詞云,微信好友熱圖,然后就想著那么QQ不是也可以做嗎,像QQ群成員地圖熱圖騰訊已經(jīng)有了,好吧我就把QQ聊天記錄做一下,主要也是導(dǎo)出.txt很方便
只是有以下問題:
1.有很多垃圾字符,字符串清洗方案可以再完善;
2.大的群聊天記錄內(nèi)容是否需要多線程來處理大文件。。。。。
3.QQ有類似itchat的包或接口嗎嘿嘿嘿

import re import os import jieba from wordcloud import WordCloud, ImageColorGenerator import numpy as np import PIL.Image as Image import matplotlib.pyplot as plt# 導(dǎo)出聊天記錄.txt file_path = r'C:\Users\XPS-15\PycharmProjects\PythonProject\owners_group.txt' with open(file_path, 'r', encoding='utf-8') as fp:# 讀取到列表,方便操作lines = fp.readlines()# 去掉群說明(分組,對象) lines = lines[8:]# 提取聊天內(nèi)容文本到長字符串 lines_cp = [] for line in lines:# 去掉聊天標(biāo)志項(日期,用戶名,QQ號)if line.startswith('2018'):continue# 去掉聊天內(nèi)容項中的非文本項(空行,鏈接,發(fā)表動態(tài),分享圖片,查看按鈕,撤回消息,手機號。。。。)if line.startswith('http') \or line == '' \or '發(fā)表動態(tài)' in line or '分享圖片' in line or '查看' in line \or '@' in line or '撤回了一條' in line\or line.startswith('1') and len(line) == 11:continueelse:lines_cp.append(line) raw_text = ''.join(lines_cp)# 去掉圖片,表情,空行,以及一系列表情元素: # 方案一:使用表情元素列表,但是很可能會漏掉 replace_ls = ['[圖片]', '[表情]', '\n', '[呲牙]', '[感謝]', '[愉快]', '[撇嘴]', '[切]', '[色色]','[太美了]', '[好美]', '[口水]', '[發(fā)呆]', '[傻了]', '[得意]', '[好酷]', '[帥呆]','[牛逼]', '[流淚]', '[傷心]', '[桑心]', '[閉嘴]', '[不說了]', '[說錯話了]', '[抱拳]','[哭了]', '[哭哭]', '[大哭]', '[哭死]', '[尷尬]', '[冷汗]', '[汗死]', '[生氣]','[發(fā)怒]', '[氣死了]', '[不理你了]', '[調(diào)皮]', '[無聊]', '[^_-]', '[搗蛋]', '[古靈精怪]','[淘氣]', '[呲牙]', '[哈哈]', '[^_^]', '[呵呵]', '[呵:)]', '[難過]', '[傷了]','[很傷]', '[想吐]', '[要吐]', '[吐了]', '[驚恐]', '[驚嚇]', '[害怕]', '[怕怕]','[驚呆啦]', '[嚇?biāo)懒薦', '[好嚇人]', '[流汗]', '[真汗]', '[好汗]', '[- -!]', '[郁悶]','[無語]', '[好緊張]', '[偷笑]', '[嘻嘻]', '[;)]', '[暗喜]', '[竊喜]', '[可愛]', '[好Q]','[好萌]', '[卡哇伊]', '[鄙視]', '[飄過]', '[傲慢]', '[隨便]', '[弱爆]', '[好餓]','[餓了]', '[有吃的么]', '[打盹]', '[困了]', '[呼呼]', '[睡了]', '[好困]', '[打個盹]','[頂]', '[好棒]', '[yeah]', '[去死吧]', '[去你的]', '[白癡]', '[尼瑪]', '[抓狂]','[煩死了]', '[惱火]', '[頭暈]', '[好暈]', '[暈了]', '[可憐]', '[親一個]', '[啵一個]','[飛吻]', '[思考]', '[讓我想想]', '[想一下]', '[考慮一下]' ]# 方案二:正則提取待替換集合(表情元素等) # 匹配,提取所有表情元素 face = re.compile('[[]\w+[]]') faces = face.findall(raw_text) # 將表情元素轉(zhuǎn)成集合 replace_set = {'[圖片]', '[表情]', '\n'} replace_set = replace_set | set(faces) # print(replace_set)# 如果待替換集合非空,則進(jìn)行替換 if replace_set:for i in replace_set:raw_text = raw_text.replace(i, '')# print(raw_text) text = jieba.cut(raw_text, cut_all=True) jb_text = ' '.join(text)# 提取中文,最終沒用到,因為國內(nèi)大家都是用中文。。。。 # chinese = re.compile('^[\u4E00-\u9FFF]+$')# 制作詞云 group_cloud = WordCloud(background_color='white',max_words=2000,max_font_size=40,random_state=42,font_path=r'C:\Windows\Fonts\ARIALUNI.TTF',).generate(jb_text) plt.imshow(group_cloud) plt.axis('off') plt.show()dr = os.path.dirname(__file__) coloring = np.array(Image.open(os.path.join(dr, 'gropu_pic.jpg'))) group_cloud = WordCloud(background_color='white',max_words=2000,mask=coloring,scale=1.5,max_font_size=50,min_font_size=10,font_step=3,random_state=42,font_path=r'C:\Windows\Fonts\ARIALUNI.TTF',).generate(jb_text)image_colors = ImageColorGenerator(coloring) plt.imshow(group_cloud.recolor(color_func=image_colors)) plt.imshow(group_cloud) plt.axis('off') plt.show() group_cloud.to_file('group_cloud.png')

以下是清洗后的詞云

人工數(shù)據(jù)清洗機。。。。。。

replace_set.add('哈') replace_set.add('你們') replace_set.add('什么') replace_set.add('不是') replace_set.add('可以') replace_set.add('這個') replace_set.add('就是') replace_set.add('沒有') replace_set.add('現(xiàn)在') replace_set.add('知道') replace_set.add('開始') replace_set.add('時候') replace_set.add('這么') replace_set.add('今天') replace_set.add('還是') replace_set.add('現(xiàn)在') replace_set.add('我們') replace_set.add('一個') replace_set.add('真的') replace_set.add('感覺') replace_set.add('不會') replace_set.add('怎么') replace_set.add('已經(jīng)') replace_set.add('還行') replace_set.add('然后') replace_set.add('看到') replace_set.add('這樣') replace_set.add('那么') replace_set.add('自己') replace_set.add('還有') replace_set.add('有人') replace_set.add('有點') replace_set.add('但是') replace_set.add('那個') replace_set.add('所以') replace_set.add('只有') replace_set.add('出來') replace_set.add('不要') replace_set.add('好像') replace_set.add('反正') replace_set.add('不能') replace_set.add('可能')replace_set.add('覺得') replace_set.add('之前') replace_set.add('因為') replace_set.add('哪里') replace_set.add('不過') replace_set.add('應(yīng)該') replace_set.add('沒人') replace_set.add('這種')replace_set.add('的話') replace_set.add('這里') replace_set.add('不用') replace_set.add('一樣') replace_set.add('好多') replace_set.add('昨天')replace_set.add('時間') replace_set.add('估計') replace_set.add('記得') replace_set.add('地方') replace_set.add('分享') replace_set.add('文件') replace_set.add('剛剛')replace_set.add('明天') replace_set.add('他們') replace_set.add('直接') replace_set.add('發(fā)現(xiàn)') replace_set.add('只能') replace_set.add('只是') replace_set.add('肯定') replace_set.add('還要')replace_set.add('多少') replace_set.add('表情') replace_set.add('很多') replace_set.add('哪個') replace_set.add('以前') replace_set.add('沒事') replace_set.add('不多') replace_set.add('以后') replace_set.add('那種') replace_set.add('不行') replace_set.add('大家') replace_set.add('不了') replace_set.add('別人')replace_set.add('東西') replace_set.add('不好') replace_set.add('問題') replace_set.add('一直') replace_set.add('不到') replace_set.add('以為') replace_set.add('說話') replace_set.add('別算了') replace_set.add('居然') replace_set.add('畢竟')replace_set.add('看看') replace_set.add('意思') replace_set.add('其實') replace_set.add('雖然') replace_set.add('還好') replace_set.add('一下') replace_set.add('突然') replace_set.add('小時')replace_set.add('不想') replace_set.add('原來') replace_set.add('不然') replace_set.add('下午') replace_set.add('可是') replace_set.add('準(zhǔn)備') replace_set.add('人家') replace_set.add('只要')replace_set.add('最后') replace_set.add('基本') replace_set.add('終于') replace_set.add('幾天') replace_set.add('一天') replace_set.add('一年') replace_set.add('本來')replace_set.add('成為') replace_set.add('當(dāng)然') replace_set.add('出去') replace_set.add('竟然') replace_set.add('晚上') replace_set.add('兩個')replace_set.add('上好') replace_set.add('發(fā)紅') replace_set.add('比較') replace_set.add('不在') replace_set.add('除了') replace_set.add('回來')replace_set.add('進(jìn)來') replace_set.add('正常') replace_set.add('今晚') replace_set.add('真是') replace_set.add('其他')replace_set.add('幾個') replace_set.add('最近') replace_set.add('果然')replace_set.add('一般') replace_set.add('要是') replace_set.add('加入') replace_set.add('剛才') replace_set.add('找到')replace_set.add('這邊') replace_set.add('算了') replace_set.add('而已') replace_set.add('上次')replace_set.add('看過') replace_set.add('那些') replace_set.add('就行了') replace_set.add('難道') replace_set.add('結(jié)果') replace_set.add('為了')replace_set.add('看見') replace_set.add('為啥') replace_set.add('進(jìn)去') replace_set.add('里面') replace_set.add('聽說') replace_set.add('太多') replace_set.add('看完')replace_set.add('完事') replace_set.add('或者') replace_set.add('就要') replace_set.add('如果') replace_set.add('不如') replace_set.add('沒看')replace_set.add('不來') replace_set.add('每次') replace_set.add('之后') replace_set.add('沒了') replace_set.add('隨便')replace_set.add('想要') replace_set.add('表示') replace_set.add('那邊') replace_set.add('大概')replace_set.add('對了') replace_set.add('一句') replace_set.add('我會') replace_set.add('馬上') replace_set.add('別說') replace_set.add('高速') replace_set.add('各位')replace_set.add('告訴') replace_set.add('家里') replace_set.add('下載') replace_set.add('后面') replace_set.add('明年') replace_set.add('不敢') replace_set.add('使用') replace_set.add('忘記') replace_set.add('想去') replace_set.add('完全') replace_set.add('再見') replace_set.add('新版') replace_set.add('早上') replace_set.add('可惜') replace_set.add('這次') replace_set.add('難受') replace_set.add('繼續(xù)') replace_set.add('出現(xiàn)') replace_set.add('差點') replace_set.add('個人') replace_set.add('認(rèn)識')replace_set.add('看著') replace_set.add('簡單') replace_set.add('過來') replace_set.add('這些') replace_set.add('而且') replace_set.add('查收') replace_set.add('不了') replace_set.add('起來') replace_set.add('需要') replace_set.add('后來') replace_set.add('一些') replace_set.add('事情') replace_set.add('無所') replace_set.add('無所謂') replace_set.add('不對') replace_set.add('想到') replace_set.add('了了') replace_set.add('你好') replace_set.add('過分') replace_set.add('最好') replace_set.add('辦法') replace_set.add('沒辦') replace_set.add('好好') replace_set.add('一會') replace_set.add('一次') replace_set.add('當(dāng)時') replace_set.add('下來') replace_set.add('今年') replace_set.add('看來') replace_set.add('我家') replace_set.add('別的') replace_set.add('最新') replace_set.add('推薦') replace_set.add('不錯') replace_set.add('不算') replace_set.add('明明') replace_set.add('試試') replace_set.add('一群')replace_set.add('那里') replace_set.add('可怕') replace_set.add('看不懂') replace_set.add('下次') replace_set.add('群友') replace_set.add('群主') replace_set.add('特別') replace_set.add('沒用') replace_set.add('中午') replace_set.add('了解') replace_set.add('斜眼') replace_set.add('禁言') replace_set.add('分鐘') replace_set.add('管理') replace_set.add('管理員') replace_set.add('頭像') replace_set.add('關(guān)注') replace_set.add('成員') replace_set.add('一點') replace_set.add('啊') replace_set.add(' ') replace_set.add('干嘛') replace_set.add('考慮') replace_set.add('回去') replace_set.add('到底') replace_set.add('聽到') replace_set.add('沒錯') replace_set.add('接收') replace_set.add('打擾') replace_set.add('不存') replace_set.add('星期') replace_set.add('上去') replace_set.add('情況') replace_set.add('三個') replace_set.add('過去') replace_set.add('聊天') replace_set.add('鏈接')

總結(jié)

以上是生活随笔為你收集整理的【代码】QQ群最近聊天记录做成词云的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。