三年前写的文章,阅读量暴涨了6.8万。。。

简介: 三年前写的文章,阅读量暴涨了6.8万。。。

这里统计了互发消息条数前十名的好友,出于隐私就不放名字了。

可以看出几点信息:

  • 常聊天的好友主要有3位,再后面的就出现断崖式下降了。
  • 今年我回复的消息远远不及接收的消息多,对比前两年,我是回复大于接收的。(难道说今年我变高冷了?)
  • 相比前两年,前三名是新面孔,很多之前的老面孔都退出了前10名,工作了之后确实聊的少了。
  • 好友6的回复条数尤其少,大概接收10条才回复1条,在我粉丝群的老粉应该都能猜出这是谁。

一年中聊天数量趋势

从2022.1.1开始统计到2022.11.11为止,我画出了每一天私聊互发消息条数的趋势图。

这张图有很大的信息量:

  • 年初到过年期间(0-60天)越聊越多,可能过年在家无聊吧。
  • 上海封城期间(60-140天)越聊越少,封城后期天天打游戏,都快自闭了吧可能。
  • 5月底(140天)开始,消息量急速上升,因为遇见了一个改变了我许多的人。
  • 678三个月(140-230天),消息量急速下降直到正常,毕竟不可能一直维持刚开始的热情的,那不得累死。
  • 9月份(230-270天),消息量又上升了一点,可能是因为要回了吧。
  • 10月份(270-300天),消息量降到全年最低,因为不需要网聊了吧。
  • 再往后又上升至正常,因为又回到上半年的状态了吧。

这里不深入分析了,等一个月后的年终总结吧。不管怎么样,感谢吧。

一天中几点聊的最多?

这个趋势和前两年是一样的,我仍然是一个夜猫子。夜越深,聊的越嗨,半夜12点是我聊的最嗨的时候。而中午和下午是聊的最少的时候,因为要上班。

我最喜欢发什么词?

可以看出发的最多的词是:肯定、确实、哦哦哦、喜欢、感觉。

实现方法

首先你得有一个mac电脑,然后用下面方法导出聊天记录,并且都存放在jsons目录下:

超简单:mac导出微信聊天记录(附上粉丝群全部聊天记录)

然后用下面的代码导出你所有的私聊记录,保存到output.txt文件中。

import json
import os
files = os.listdir("jsons")
fout = open("output.txt", "w")
for f in files:
    with open(f"jsons/{f}", "r") as fin:
        print(f)
        results = json.load(fin)
        is_group = 1
        for dic in results:
            if (
                dic["messageType"] == 1
                and dic["msgCreateTime"] >= 1640966434
                and dic["msgStatus"] != 2
                and dic["mesDes"] == 1
                and ":" not in dic["msgContent"]
            ):
                is_group = 0
                break
        if not is_group:
            for dic in results:
                if (
                    dic["messageType"] == 1
                    and ":" not in dic["msgContent"]
                    and dic["msgCreateTime"] >= 1640966434
                    and dic["msgStatus"] != 2
                ):
                    content = "".join(dic["msgContent"].strip().split())
                    if dic["mesDes"] == 1:
                        fout.write(
                            "{} 1 {} {}\n".format(f, str(dic["msgCreateTime"]), content)
                        )
                    else:
                        fout.write(
                            "{} 0 {} {}\n".format(f, str(dic["msgCreateTime"]), content)
                        )
fout.close()

最后用下面代码分析本文中提到的几点要素,注意改一下中文字体路径。最后还会生成me.txt,可以用来生成词云,生成方法参考之前的文章。

python生成词云教程(附带QQ聊天记录生成词云实战)

import datetime
from collections import defaultdict
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import matplotlib.font_manager
def getChineseFont():
    # 去你电脑的字体库找一个中文字体,把文件路径粘贴过来
    return FontProperties(fname="/System/Library/Fonts/PingFang.ttc", size=20)
matplotlib.rcParams["pdf.fonttype"] = 42
matplotlib.rcParams["ps.fonttype"] = 42
# 2022.1.1 00:00
start = 1640966434
def process_time(end):
    t = datetime.datetime(2022, 1, 1, 0, 0, 0) + datetime.timedelta(seconds=end - start)
    return (t.month, t.day, t.hour, t.minute, t.second)
"""跟谁聊的最多
姓名 总共 发送 接收
"""
name_count = defaultdict(int)
send_count = defaultdict(int)
rece_count = defaultdict(int)
with open("output.txt", "r") as fin:
    for line in fin:
        name = line.strip().split(" ")[0]
        des = int(line.strip().split(" ")[1])
        name_count[name] += 1
        if des == 0:
            send_count[name] += 1
        else:
            rece_count[name] += 1
nc = sorted(name_count.items(), key=lambda x: x[1], reverse=True)
for k in nc[:10]:
    print(k[0], k[1], send_count[k[0]], rece_count[k[0]])
c1 = [x[1] for x in nc[:10]]
c2 = [send_count[x[0]] for x in nc[:10]]
c3 = [rece_count[x[0]] for x in nc[:10]]
r = np.arange(len(c1))
plt.figure(figsize=(8, 6))
plt.plot(r, c1, color="red", label="Total", linewidth=2.0)
plt.plot(r, c2, color="green", label="Send", linewidth=2.0)
plt.plot(r, c3, color="blue", label="Receive", linewidth=2.0)
plt.yticks(fontsize=20)
plt.xlabel("姓名", fontproperties=getChineseFont(), fontsize=20)
plt.ylabel("消息条数", fontproperties=getChineseFont(), fontsize=20)
plt.legend(fontsize=20)
plt.savefig("./name_count.pdf", bbox_inches="tight")
plt.show()
"""哪个月份聊的最多
月份 数量
"""
month_count = defaultdict(int)
with open("output.txt", "r") as fin:
    for line in fin:
        time = int(line.strip().split(" ")[2])
        t = process_time(time)
        month_count[t[0]] += 1
mc = sorted(month_count.items(), key=lambda x: x[1], reverse=True)
for k in mc:
    print(k[0], k[1])
mc = sorted(month_count.items(), key=lambda x: x[0], reverse=False)
x_ticks = [x[0] for x in mc]
c = [x[1] for x in mc]
r = np.arange(len(c))
plt.figure(figsize=(8, 6))
plt.plot(r, c, color="red", linewidth=2.0)
plt.xticks([r for r in range(len(c))], x_ticks, fontsize=20)
plt.yticks(fontsize=20)
plt.xlabel("月份", fontproperties=getChineseFont(), fontsize=20)
plt.ylabel("消息条数", fontproperties=getChineseFont(), fontsize=20)
plt.legend(fontsize=20)
plt.savefig("./month_count.pdf", bbox_inches="tight")
plt.show()
"""哪个时间点聊的最多
几点 数量
"""
hour_count = defaultdict(int)
with open("output.txt", "r") as fin:
    for line in fin:
        time = int(line.strip().split(" ")[2])
        t = process_time(time)
        hour_count[t[2]] += 1
hc = sorted(hour_count.items(), key=lambda x: x[1], reverse=True)
for k in hc:
    print(k[0], k[1])
hc = sorted(hour_count.items(), key=lambda x: x[0], reverse=False)
x_ticks = [x[0] for x in hc]
c = [x[1] for x in hc]
r = np.arange(len(c))
plt.figure(figsize=(14, 6))
plt.plot(r, c, color="red", linewidth=2.0)
plt.xticks([r for r in range(len(c))], x_ticks, fontsize=20)
plt.yticks(fontsize=20)
plt.xlabel("小时", fontproperties=getChineseFont(), fontsize=20)
plt.ylabel("消息条数", fontproperties=getChineseFont(), fontsize=20)
plt.legend(fontsize=20)
plt.savefig("./hour_count.pdf", bbox_inches="tight")
plt.show()
"""哪一天聊的最多
"""
day_count = defaultdict(int)
with open("output.txt", "r") as fin:
    for line in fin:
        time = int(line.strip().split(" ")[2])
        t = process_time(time)
        day_count[t[0] * 31 + t[1]] += 1
dc = sorted(day_count.items(), key=lambda x: x[0], reverse=False)
c = [x[1] for x in dc]
r = np.arange(len(c))
plt.figure(figsize=(14, 6))
plt.plot(r, c, color="red", linewidth=2.0)
plt.yticks(fontsize=20)
plt.xlabel("第几天", fontproperties=getChineseFont(), fontsize=20)
plt.ylabel("消息条数", fontproperties=getChineseFont(), fontsize=20)
plt.legend(fontsize=20)
plt.savefig("./day_count.pdf", bbox_inches="tight")
plt.show()
"""我最喜欢发什么词?
"""
with open("output.txt", "r", encoding="utf-8") as fin, open("me.txt", "w", encoding="utf-8") as fout:
    for line in fin:
        des = int(line.strip().split(" ")[1])
        if des == 0:
            content = line.strip().split(" ")[3]
            fout.write(content + "\n")
相关文章
|
9月前
|
供应链 大数据 物联网
案例分析:三一重工集团数字化转型
案例分析:三一重工集团数字化转型
387 2
|
9月前
|
算法 数据可视化 新能源
数字化营销助力哪吒汽车突破重围 进店率单月提升4倍
数字化营销助力哪吒汽车突破重围 进店率单月提升4倍
237 0
|
9月前
|
机器学习/深度学习 人工智能 数据可视化
Python在数据分析中的威力及应用实例
本文探讨了Python在数据分析领域的重要性和灵活性,着重介绍了Python在大数据处理、机器学习和可视化方面的应用实例,展示了其强大的功能和便捷的特点。
|
8月前
|
数据采集 传感器 大数据
利用大数据进行精准农业:技术与挑战
【6月更文挑战第6天】大数据技术正变革农业,推动精准农业发展。通过实时收集农田数据(如土壤条件、作物生长情况),运用数据分析预测病虫害,优化生产管理。示例代码显示了如何使用Python进行产量预测。然而,数据质量、整合、农民技术接受度及隐私安全等问题挑战重重。需强化数据管理,统一标准,提升农民数字素养,并保障数据安全。随着技术进步,大数据在精准农业的应用将更加广泛,助力农业高效可持续发展。
230 0
|
5月前
|
人工智能 安全 物联网
智慧农业
智慧农业通过物联网、大数据和AI技术实现精准化、智能化和自动化的农业生产,提升效率、减少浪费并推动可持续发展。其标准体系建设涵盖技术、经营和环境等多个方面,旨在指导农业经营者高效利用智慧农业技术,提升生产和管理效率。尽管面临技术、标准制定及数据安全等挑战,智慧农业仍具有广阔前景,有望引领农业革命,促进产业升级和城乡融合。
|
5月前
|
机器学习/深度学习 传感器 边缘计算
深度学习之精准农业分析
基于深度学习的精准农业分析利用深度学习技术处理和分析农业中的各种数据源,包括遥感影像、气象数据、土壤信息和作物生长情况,从而优化农业生产,实现资源的精确管理和农业产量的提升。
107 6
|
5月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
6月前
|
分布式计算 大数据 数据处理
Apache Spark的应用与优势:解锁大数据处理的无限潜能
【8月更文挑战第23天】Apache Spark以其卓越的性能、易用性、通用性、弹性与可扩展性以及丰富的生态系统,在大数据处理领域展现出了强大的竞争力和广泛的应用前景。随着大数据技术的不断发展和普及,Spark必将成为企业实现数字化转型和业务创新的重要工具。未来,我们有理由相信,Spark将继续引领大数据处理技术的发展潮流,为企业创造更大的价值。
|
6月前
|
存储 数据可视化 大数据
基于Python Django的大数据招聘数据分析系统,包括数据大屏和后台管理
本文介绍了一个基于Python Django框架开发的大数据招聘数据分析系统,该系统具备后台管理功能和数据大屏展示,利用大数据技术收集和分析招聘市场趋势,帮助企业和招聘机构提高招聘效率和质量。
203 3
|
6月前
|
存储 分布式计算 大数据
惊了!大数据时代来袭,传统数据处理OUT了?创新应用让你眼界大开,看完这篇秒变专家!
【8月更文挑战第6天】在数据爆炸的时代,高效利用大数据成为关键挑战与机遇。传统数据处理手段难以胜任现今海量数据的需求。新兴的大数据技术,如HDFS、NoSQL及MapReduce、Spark等框架,为大规模数据存储与处理提供了高效解决方案。例如,Spark能通过分布式计算极大提升处理速度。这些技术不仅革新了数据处理方式,还在金融、电商等领域催生了风险识别、市场预测及个性化推荐等创新应用。
145 1

热门文章

最新文章