V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Dogergo
V2EX  ›  分享创造

我把我和我老婆从认识到现在的聊天记录跑了个词云出来

  Dogergo · 357 天前 · 22168 次点击
这是一个创建于 357 天前的主题,其中的信息可能已经有所发展或是发生改变。

得益于开源项目:

https://github.com/LC044/WeChatMsg

现在导出微信聊天记录已经是一件相当简单的事情了。但是这个项目跑出的词云好像有点问题,好像聊天记录不完整一样。所以我去找了可以读取 SQLite 的软件,读了他解码出来的数据库文件。

执行 SQL:

-- MicroMsg.db 文件中的 Contact 表存的用户信息,先根据备注查微信 ID
SELECT UserName FROM Contact WHERE Remark=?
-- Msg.db 中的 MSG 表存的历史聊天记录
SELECT StrContent, localId, datetime(CreateTime, "unixepoch", "localtime") as CreateTime FROM MSG WHERE StrTalker = ? AND Type = 1 AND StrContent NOT like "%[%" ORDER by CreateTime asc

然后发现数据是全量的,但是词云不准确,不知道什么原因。迫于不想读源码,直接找了个词云工具,重新生成。

感谢开源项目:

https://github.com/fuqiuai/wordCloud
https://github.com/silsuer/wordcloud

上图

1 2 3 4 5

教程

一键提取微信聊天记录,生成 HTML 、Word 文档永久保存,还能生成微信年度聊天报告

微信聊天记录只是备份就太无聊了,一键生成属于自己的词云图,让我们玩点有意思的

注意事项

所用到的工具被我放在公众号里了,如果有兄弟感觉被冒犯,那对此我感到抱歉,请联系站长帮我移动到推广节点。

第 1 条附言  ·  357 天前

赶紧出来解释一下: 词云只是根据词频把一些词生成到一起的。实际上那几个词可能并不挨着,不要太污喂! 词云只是根据词频把一些词生成到一起的。实际上那几个词可能并不挨着,不要太污喂! 词云只是根据词频把一些词生成到一起的。实际上那几个词可能并不挨着,不要太污喂!

此外,公众号在教程的链接里,这里也放一个图片吧,那就。 1

123 条回复    2023-12-19 10:45:41 +08:00
1  2  
eddiechow
    101
eddiechow  
   356 天前
问下楼主,你大概迁移了多大容量的聊天记录?我迁移了 9G 左右,用了最近的两个版本 0.2.7 0.2.8exe ,在解密后再次运行 loading 环节就总是闪退(管理员模式也不行),主要报错:QSvgIOHandler: QImage allocation failed (size 1024 x 1024),还看到过一次 libpng out of memory ,联合起来看有点像是因为记录太大导致加载的时候内存溢出然后闪退,不知道可有解法?
Dogergo
    102
Dogergo  
OP
   356 天前
@eddiechow 不用 loading 第二次,兄弟,第一次已经解密出来了,你直接把`app`目录下的`dataBase`目录下的`msg`文件夹下的两个 db 文件( MSG.db 和 MicroMsg.db )拷出来到词云工具那个目录的 db 目录下就可以了。我的聊天记录因为只迁移了 2GB ,所以没有出现你说的问题。
zhjgo
    103
zhjgo  
   356 天前
@bao3 #91 好奇,你老婆怎么回复
zhjgo
    104
zhjgo  
   356 天前
安卓端微信聊天记录能不能解密
eddiechow
    105
eddiechow  
   355 天前
@Dogergo 嗯,只提取消息内容确实可以不用第二次 loading ,后面也找到问题了,就是 loading 的时候 exe 进程的内存飙升,内存溢出了,我这边 10G 左右的消息进程占的内存也差不多 10G ,但 loading 完成后又回落的比较低、平稳的占用,应该还是程序处理上没怎么优化;
Lemonadeccc
    106
Lemonadeccc  
   355 天前   ❤️ 1
这就是有对象的感觉吗
lyjgk
    107
lyjgk  
   355 天前
试了下,这个有问题,把备注也导进去了,备注的次数当然是最多的了
lyjgk
    108
lyjgk  
   355 天前
@lyjgk #107 目前用 vim 将时间时间行和空行删除掉来处理。
Dogergo
    109
Dogergo  
OP
   355 天前
@zhjgo 额,大家一般是把手机微信(安卓、IOS 都可以)上的聊天记录迁移到 windowsPC 上,然后才进行操作的。但注意,千万不要把 PC 上的往手机上迁,有概率导致手机上的聊天记录变成双份。
Dogergo
    110
Dogergo  
OP
   355 天前   ❤️ 1
@lyjgk 没有吧,解密完成后你可以通过 SQLite 数据库的读取软件写 SQL 查询,Strcontent 字段是纯聊天内容,不包含备注。或者也可以查看词云目录下的 doc 目录,在你生成词云后,这个 doc 目录下会有一个 output.txt 文件,是你们聊天的纯文本内容
prudence
    111
prudence  
   355 天前
没试,但是有个疑问,会把 图和表情 下载么, 如果可以再把图和表情识别 对应的 tag 也当作处理?
Dogergo
    112
Dogergo  
OP
   355 天前 via Android
@prudence 理论上可以,但是我的代码写的比较简单只取了 Type=1 的文本消息,表情和图片没取
graetdk
    113
graetdk  
   355 天前
@cat9life 3.5 虽然可以微调,但成本巨高,而且我也不希望把私密聊天数据一直放在 openai 那里
BeatenMo
    114
BeatenMo  
   354 天前   ❤️ 3
哈哈哈哈哈,老哥好,我是 WechatBakTool 的作者,看到老哥在评论也推了一把我的软件,感谢
本来词云优先级不是很高的,看到这个帖子后感觉大家对查成分还挺喜欢的,我已经把词云给支持上了,现在导出时选择与他的词云即可
目前支持单词屏蔽,自定义词语屏蔽,今明可能还会发多一个版本支持蒙版词云了,欢迎体验,有问题可以发 issue
https://github.com/SuxueCode/WechatBakTool/releases
Dogergo
    115
Dogergo  
OP
   354 天前
@BeatenMo Good , 老哥真速度
RouJiANG14
    116
RouJiANG14  
   353 天前
马克一下
lqzhgood
    117
lqzhgood  
   353 天前
弱弱的问一句, 要不... 看看我这个?

- 纯表情回复都帮你统计出来.... ( 功能上是有词云的, 隐私关系 Demo 里被我删掉了 )
- QQ SMS 也能一起....
- 更多自己挖掘吧~ ( 让我放开说能写一页, 嘎嘎~)

介绍: https://v2ex.com/t/944851
Demo / 统计页: https://demo.shmily.lqzh.me/#/statistic/total
// 托管 Github , 网络啥的你懂的
Dogergo
    118
Dogergo  
OP
   353 天前
@lqzhgood 能花 3 年做一件事,给老哥点赞并 Star 了。真有恒心。粗略看了一下,使用门槛还是相对有一些。以前老想导出短信分析了,可是随着年龄的增长加上营销短信的增加。在某一天我突然觉得,那些发生过的事情都记在心里就好了,忘记了也许是因为根本不重要。
newB
    119
newB  
   353 天前 via Android
进来学习的
diglife
    120
diglife  
   352 天前
有点意思
kokojack
    121
kokojack  
   352 天前
@lqzhgood #117 大佬你快更新呀,小白我真不会~
lqzhgood
    122
lqzhgood  
   351 天前
@kokojack QQ 微信 更完了... 你缺啥, 我排前头..
changepll
    123
changepll  
   351 天前
@zhjgo 要收费了
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5483 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 08:49 · PVG 16:49 · LAX 00:49 · JFK 03:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.