码迷,mamicode.com
首页 > 其他好文 > 详细

用QQ聊天记录生成一个词云

时间:2020-01-18 19:16:57      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:plot   nbsp   back   idt   name   lin   导入   img   ast   

QQ的聊天记录可以通过消息管理器,选中联系人,右键导出为 .txt 格式。由于是中文,需要分词,本文的分词工具采用的是 jieba 分词。

技术图片

不知道这个“福”能不能扫出来。

假设你已经导出与某人的聊天记录,接下来需要先过滤再分词生成词云。

1. 过滤掉图片和表情,以及聊天记录的时间和qq名称

newtext = []

for word in open(lr.txt, r, encoding=utf-8):
    tmp = word[0:4]
    if (tmp == "2019" or tmp == "2020"or tmp == "2017" or tmp == ""):  # 过滤掉聊天记录的时间和qq名称
        continue
    tmp = word[0:2]
    if (tmp[0] == [ or tmp[0] == /or tmp[0] == @):  # 过滤掉图片和表情,例如[图片],/滑稽
        continue
    newtext.append(word)
# 将过滤后的文本存到lr2.txt中
with open(lr2.txt, w, encoding=utf-8) as f:
    for i in newtext:
        f.write(i)

当然,可以用正则过滤(但是正则我不怎么熟

2. 利用jieba分词,wordcloud生成词云。

在此之前需要准备一张背景图和一份中文字体,这是我随便找的一个字体 STFangSong.ttf

import jieba
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy as np
import PIL.Image as Image


def jieba_cloud(file_name):
    with open(file_name,r,encoding=utf8) as f:
        word_list = jieba.cut(f.read())
        result = " ".join(word_list)    #分词用空格隔开
    
        bg_pic = np.array(Image.open("福.jpg"))  #导入词云背景
        #必须加中文字体,否则格式错误
           wordcloud = WordCloud(mask=bg_pic, background_color=white, scale=1.5, font_path=./STFangSong.ttf, width=2000,height=1200,font_step=4,).generate(result)
        wordcloud.to_file(file_name.split(.)[0] + .png)                #未上色版 

        image_colors = ImageColorGenerator(bg_pic)
        wordcloud.recolor(color_func=image_colors)
        wordcloud.to_file(file_name.split(.)[0] + _color +  .png)    #上色版


if __name__ == "__main__":
    file_name = lr2.txt‘  # 使用前面过滤好的文本
    jieba_cloud(file_name)

 

 

参考链接:

1. 电脑版QQ聊天记录怎么导出并查看

2. https://www.jianshu.com/p/542fbff4ace4

3. https://blog.csdn.net/qq_40855366/article/details/81177213

4. https://baiyue.one/archives/1533.html

用QQ聊天记录生成一个词云

标签:plot   nbsp   back   idt   name   lin   导入   img   ast   

原文地址:https://www.cnblogs.com/lfri/p/12209796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!