提取微信/QQ聊天记录并生成词云 您所在的位置:网站首页 qq怎么生成聊天记录图片 提取微信/QQ聊天记录并生成词云

提取微信/QQ聊天记录并生成词云

2023-03-28 00:21| 来源: 网络整理| 查看: 265

网上教程很多,但是很乱,基本都是iOS的,找到一篇靠谱的韦阳的博客《微信聊天记录导出为电脑txt文件教程》,本文基于此博客,然后对Java破解数据库密码、如何从数据库寻找群聊内容等操作进行了更具体的描述,打包了工具包,并进行了一些修改,在此感谢原博客作者。

本文最终目的是将微信/QQ聊天记录从备份文件中提取出来,生成Excel或txt文件,进行文本分析生成好玩的词云图片,得到聊天内容中的热词,后续也可以分析群聊中谁是话痨、词语关联性等,词云的效果图如下:

词云效果图

QQ聊天记录导出方法比较简单,放在文末,先介绍微信的教程。首先下载工具包:链接。

Step 1: 导出手机微信的数据库文件至电脑

将手机微信数据库.db文件导出到电脑上。此处以小米的MIUI 为例,MIUI无需root操作。

1. 首先进入手机的设置-我的设备-备份和重置-本地备份,输入密码,点击新建备份,把两个勾去掉,点击软件程序右边的尖括号,选择微信,点击确定,点击开始备份,等待完成。

2. 然后将手机连接电脑,打开手机目录下的MIUI/backup/AllBackup/yyyymmdd_xxxxxx/文件夹,将.bak文件拷贝到电脑上,重命名为com.tencent.mm.bak。

3. 用任意一种压缩包软件(360压缩可以)打开这个com.tencent.mm.bak文件,并且将apps\com.tencent.mm\r\MicroMsg\systemInfo.cfg、apps\com.tencent.mm\r\MicroMsg\CompatibleInfo.cfg、apps\com.tencent.mm\r\MicroMsg\xxxx\EnMicroMsg.db三个文件解压到电脑上。这里xxxx是一串随机的字母,代表你的微信用户,每个人不一样,一般是最大的那个文件夹,如下图所示文件夹。

其他手机导出方法:

iPhone比较简单,通过iTunes备份,参考:https://zhuanlan.zhihu.com/p/56624686。其它安卓手机,部分需要root权限,一种办法是root之后去/data/data/com.tencent.mm/MicroMsg下面找这三个文件。另一种无需root的方法:首先电脑上安装一款安卓模拟器,然后里面下载手机微信并登录,最重要的一步就是将手机端聊天记录备份到电脑端微信,然后将电脑端聊天记录恢复到安卓虚拟器里的微信,这个功能是微信自带的,应该没有什么难度。然后对安卓虚拟器进行root,这个也是设置里就有的,最后就能把三个文件都拷贝到电脑上了。

Step 2: 破解数据库密码(JAVA)

4. 安装JAVA环境

安装jdk-13.0.1_windows-x64_bin.exe文件,点击 下载地址

然后配置Windows环境变量,参考链接

5. 将上面解压出的三个文件放置在wechat-explore文件夹下:

6. 执行Java代码破解数据库密码

在此文件夹下打开命令行窗口,运行下面的代码:

javac IMEI.java java IMEI systemInfo.cfg CompatibleInfo.cfg

得到的结果,第三行即为数据库的密码,保存下来。

Step 3: 导出聊天记录

7. 打开压缩包中的sqlcipher.exe软件,用它打开EnMicroMsg.db数据库,输入上面得到的数据库密码。

8. 这时候会显示出很多的表格,点击菜单栏的File-Export-Table as CSV file,选择message表,并导出。命名为message.csv,选择路径后导出(可能需要几分钟)。

9. 可以直接使用Excel打开(此处用的Office2016),如显示乱码,可以新建一个excel表格,点击数据-来自文本,然后导入这个.csv文件。打开后是下面这个样子:

10. 其中talker是微信消息的发信人ID,content是聊天内容,如果是群聊,发信人ID则会是一个xxxxx@chatroom格式的ID,如果我们要分析一个群聊的内容,首先就是找到这个群聊的所有聊天记录,并导出文件中:

(1)找到群聊的talker ID:在手机上找一句这个群聊之前的聊天记录,选中content一栏,然后点击excel右上角的 查找和选择-查找,进行搜索,找到那一行的talker就得到ID了。

(2)导出至文本文件:复制这个ID,回到列表第一行,点击Excel右上角的排序和筛选-筛选,在talker中填入刚刚找到的ID,点击确定,即获取了这个群聊的所有聊天记录,单击content列并全部复制到message.txt文本中。

Step 4: 分析聊天记录生成词云

(支持Python3,python2未测试,推荐使用Miniconda3)

11. 将message.txt复制到wordcloud文件夹下,执行:

python process_wechat.py message.txt

去除无用的信息,这时候会产生一个__message.txt,就是处理完的聊天记录了。

12. 安装jieba、wordcloud、imageio库,所以运行下面两条命令安装三个库:

pip install jiebapip install wordcloudpip install imageio

如不科学上网,此过程可能较慢。

13. 在wordcloud文件下执行:

python create_word_cloud.py __message.txt

就能生成词云了,效果如下,可以得到词云图片以及top_words_tab.txt,该文件中存的是所有词语的排序信息。

生成QQ聊天记录词云

1.首先打开消息记录,右键点击小闹钟标记,然后点击下方的消息管理器,然后导出某个群聊的聊天记录:

2.然后保存类型选择txt,点保存,并将文件保存在wordcloud根目录下:

3. 然后打开命令行运行:

python preprocess.py filename.txt

用来去掉聊天记录中的昵称和时间等信息:

最后运行:

pythoncreate_word_cloud.py __filename.txt

就能生成QQ聊天记录词云了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有