手机里的聊天记录一直没删,有的群的消息已经几万条了,所以做一下简单的数据分析。

提取数据

Android 的 QQ 聊天记录比较容易导出,这里说一下 iOS 未越狱的,将 iOS 用 iTunes 备份,进入备份文件夹,按照文件大小进行排序,最大的几个文件夹,一个是 QQ 聊天记录,一个是微信聊天记录,聊天记录是 SQLite 格式的,这里我使用 SQLiteStudio 打开。 打开后是这个样子。

直接选择对应的好友或者群的 QQ 号打开就可以看到聊天记录。分别对应发送时间,发送人,发送的消息等等。用 SQL 语句将要的某一列或者几列数据导出 CSV 便于分析: select msgtime from tb_TroopMsg_xxxxxxx where senduin=xxxxxxxx

开始分析

主要用 pandas 和 matplotlib。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
import time
%matplotlib inline
# 解决matplotlib显示中文问题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
plt.style.use(u'ggplot')
复制代码

然后导入数据,这里导入的是昵称列,用于分析群里谁的话最多

df=pd.read_csv(r'names.csv',encoding='gb18030')s=df.iloc[:,0]
v=s.value_counts() #选出该列做频数统计fig, ax = plt.subplots()
plt.rcParams['figure.figsize'] = (6, 15)
v[0:50][::-1].plot(kind='barh') #发言数排在前五十的
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
ax.tick_params(labelbottom='on',labeltop='on')
#plt.savefig('phone.png',bbox_inches='tight')
复制代码

结果如图:

然后做个词云。 先准备好字符串。

df=pd.read_csv(r'chat.csv',encoding='gb18030')
chats=list(df['h'].values) #取出聊天消息列
chattext=' '.join(map(str,chats))
import re
s,c =re.subn(r'<(.*?)>','',chattext)
ss,c =re.subn(r'{(.*?)}','',s)  #去除聊天对话中的链接和图片
复制代码

制作词云。

import jieba
import wordcloud
from wordcloud import WordCloud
import jieba.analyse
import PIL
from wordcloud import ImageColorGenerator# 有两种统计词频的方式
freq = jieba.analyse.extract_tags(ss,topK=100,withWeight=True)
freq2 = jieba.analyse.textrank(ss,topK=100,withWeight=True)
freq_dict={}
for i in freq:freq_dict[i[0]] = i[1]
freq_dict2={}
for i in freq2:freq_dict2[i[0]] = i[1]import numpy as np
alice_mask = np.array(PIL.Image.open(r'h.png'))
wc = WordCloud(background_color = "white", #设置背景颜色  width=600, height=600,max_words = 300, #设置最大显示的字数  #stopwords = "", #设置停用词
#                font_path = "simhei.ttf",mask=alice_mask, #设置背景图片 font_path = "FZKaTong-M19S.TTF",#设置中文字体,使得词云可以显示(词云默认字体是“DroidSansMono.ttf字体库”,不支持中文)  max_font_size = 60,  #设置字体最大值  random_state = 30, #设置有多少种随机生成状态,即有多少种配色方案  )  plt.rcParams['figure.figsize'] = (100, 100)
wc.generate_from_frequencies(freq_dict2)
plt.imshow(wc)
plt.axis("off")
# plt.savefig('ciyun2.png')
plt.show()
复制代码

结果如图

结束,此外还可以统计每天的发言数,情感分析等等。

QQ 聊天记录简单数据分析相关推荐

  1. 简单的文本挖掘-用于QQ聊天记录(R)

    平时的交流很多都在QQ上,QQ交流已经离不开日常的生活,这里我用R来分析QQ聊天记录,看看平时都聊了什么. 首先介绍下用的文本挖掘的包:Rwordseg  一个 R 环境下的中文分词工具,使用 rJa ...

  2. 如何保存QQ聊天记录

    1.直接保存文件夹(推荐)找到你的QQ安装目录,这个应该都没啥问题吧,然后可以看到在目录里有一个以你的QQ号命名的文件夹,对,就是它.在你想重装系统或重安装别的版本QQ前,把这个文件夹复制到一个安全的 ...

  3. 把QQ聊天记录插入数据库中

    最近在做毕设,其中一个环节是分析qq聊天记录,在分析之前需要先把qq聊天记录导出,然后存入数据库中,qq聊天记录导出后是文本文档,导出方式: 1.登录qq后,点击任意一个好友,查看与他的聊天记录,点击 ...

  4. 防止记录丢失,保存QQ聊天记录文件的方法

    转载于:http://www.fanww.com/html/QQkongjiangequ/2010/0208/2543.html qq聊天记录默认安装盘符是:C:/Program Files/Tenc ...

  5. python公园售票小程序(身份证获取简单信息+简单数据分析+简单多线程)

    1.文件目录 2.main.py主文件 from utils import welcome,examineIdCard,playMusic,dataAnalysis import _thread th ...

  6. python正则将qq聊天记录转换为html

    目录 一.需求 二.知识要点 三.全部代码 四.使用方法 五.转换效果 六.参考资料 一.需求 提取qq聊天记录中的所有图片并保存在指定的文件夹,并将聊天记录转换为html. 二.知识要点 大文件的流 ...

  7. 用Python把QQ聊天记录文件转成WORD并排版

    和女票在一起五年了,保留了几年的QQ聊天记录,偶然翻到,感觉很温暖,就想把这些文字做成一本属于我们的书,应该会很有纪念意义.然而qq备份的聊天记录是txt格式,网上找了半天也没有合适的排版工具,上百页 ...

  8. 清华女生与二本男生的QQ聊天记录

    女:在咯? 男:在啊,好久不见,清华大学生,都在忙些什么啊? 女:也没有什么,就是学习和工作,挺充实的 男:哦,很少见你上线啊,大忙人,你空间里也单调的很啊,连张照片都没有! 女:我一般是不会聊QQ的 ...

  9. QQ聊天记录快速备份 v0.9

    QQ聊天记录快速备份 v0.9收藏 本程序由爱页工作室(www.ayeah.net)使用C#在VS2008上开发 目前发布第一版v0.9 有以下功能: 1.输入QQ号码提取所有聊天记录为TXT文件(包 ...

最新文章

  1. C 标准库 - ctype.h
  2. 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
  3. 1.1 回归问题-机器学习笔记-斯坦福吴恩达教授
  4. LNMP一键安装脚本(第二版)
  5. 怎么注销midas服务器程序,MIDAS的服务器镜像技术
  6. 汇编语言-003(LAHF_SAHF 、XCHG、FLAGS、 OFFSET、ALIGN、PTR、LENGTHOF、SIZEOF)
  7. 成为C++高手之实战项目
  8. 11.LNMP基础架构
  9. react 遍历对象_React 和 Vue 之间的相爱相杀
  10. ArcGISTiledMapServiceLayer does not support Multi-Layer Caches
  11. python不用sort排序_Python排序之sortamp;sorted
  12. java attributes用法_C#中的Attributes的用法
  13. Atlas初步了解 [转]
  14. 大数据分页实现与性能优化【转】
  15. Linux 查询系统日志
  16. 将整型数字转化成大写格式
  17. 2022-2028全球及中国电动直线执行器行业研究及十四五规划分析报告
  18. Sql Server 2000数据库日志日益庞大的解决方法
  19. 2020android主流机型,2020年最强安卓旗舰机皇的称号!这三款手机当之无愧
  20. Java实验06-GUI文件加解密软件,ScrollPanel嵌套Boxlayout,DES分组加密算法,进度条控制

热门文章

  1. batchnorm解读
  2. 函数返回值的简述(简洁明了)
  3. Python测试平台开发实战
  4. 20个常用Python库及200个第三方库
  5. 崛起中的九大HTML5开发工具
  6. php微信支付使用ajax,微信扫码支付模式二支付状态Ajax轮询实例
  7. 4月2日世界孤独症日,壹基金启动蓝色行动关注孤独症群体
  8. 泰坦尼克号Titanic生存分析(SPSS、R)
  9. 计算机软件和常用快捷键
  10. 中值滤波的一种快速计算方法