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

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

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

时间: 2024-11-01 21:15:16

用QQ聊天记录生成一个词云的相关文章

将QQ聊天记录创建为词云

1. 导出并清洗qq聊天记录 将qq聊天记录从电脑版qq导出 去掉聊天中的图片表情以及时间戳 具体代码如下: def Pretreatment(): with open("未处理的聊天记录文件路径","r") as readfile: with open("处理后的聊天记录文件路径","at") as writefile: while True: line = readfile.readline() if line is ''

Python 生成中文词云

豆子无意中发现Python有个现成的模块 word cloud可以根据文本文件生成词云,很好很强大,简单地玩了一把. 写代码之前,首先需要安装3个依赖的Python模块,分别是matplotlib, jieba和wordcloud.这三个模块分别是用来作图,中文分词和生成词云的.安装方式可以直接通过 pip install实现.如果在线安装出现报错(很有可能的事情),那么可以去https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应版本和位数的whl文件,

生成中英文词云

利用简单的python第三方库wordcloud,方便快捷的生成一个中文词云,利于快速浏览文章内容.其中jieba库为一个常用的中文分词库 import wordcloud import jieba from imageio import imread mask = imread("五角星.png") f = open("2019政府工作报告.txt","r",encoding="utf-8") t = f.read() f.

[python] 词云:wordcloud包的安装、使用、原理(源码分析)、中文词云生成、代码重写

词云,又称文字云.标签云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.常见于博客.微博.文章分析等. 除了网上现成的Wordle.Tagxedo.Tagul.Tagcrowd等词云制作工具,在python中也可以用wordcloud包比较轻松地实现(官网.github项目): from wordcloud import WordCloud import matplotlib.pyplot as pl

词云wordcloud类介绍&python制作词云图&词云图乱码问题等小坑

词云图,大家一定见过,大数据时代大家经常见,我们今天就来用python的第三方库wordcloud,来制作一个大数据词云图,同时会降到这个过程中遇到的各种坑, 举个例子,下面是我从自己的微信上抓的微信好友签名,制作的词云图:看来用的做多的还是"方得始终"啊 首先我们需要几个库,pip完了导入 1 import chardet #检测字符类型的类 2 from wordcloud import WordCloud #词云库 3 import matplotlib.pyplot as pl

词云wordcloud

pip install wordcloud 没有报错,如果有错误可以从http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud下载whl文件直接安装. # -*- coding: utf-8 -*- __author__ = 'leilu' #wordcloud生成中文词云 from wordcloud import WordCloud import codecs import jieba #import jieba.analyse as anal

python3 wordcloud词云

wordclou:根据文本生成词云 一.词云设置 1 wc=WordCloud(width=400, height=200, #画布长.宽,默认(400,200)像素 2 margin=1, #字与字之间的距离 3 background_color='white',#背景颜色 4 min_font_size=3,max_font_size=None,#显示的最小,最大的字体大小 5 max_words=200,#显示的词的最大个数 6 ranks_only=None,#是否只是排名 7 pref

词云分析《天龙八部》人物出现次数

一.需要的三方库 1.安装词云: pip install wordcloud 2.安装结巴 pip install jieba 3.安装matplotlib pip install matplotlib 二.实现代码 1 import jieba # 分词函数 2 from scipy.misc import imread # 这是一个处理图像的函数 3 from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator 4 impor

用Python和WordCloud绘制词云(内附让字体清晰的秘笈)

环境及模块: Win7 64位 Python 3.6.4 WordCloud 1.5.0 Pillow 5.0.0 Jieba 0.39 目标: 绘制安徽省2018年某些科技项目的词云,直观展示热点. 思路: 先提取项目的名称,再用Jieba分词后提取词汇:过滤掉"研发"."系列"等无意义的词:最后用WordCloud 绘制词云. 扩展: 词云默认是矩形的,本代码采用图片作为蒙版,产生异形词云图.这里用的图片是安徽省地图. 秘笈: 用网上的常规方法绘制的词云,字体有