Memento智能分段算法解析:如何自动切分你的应用使用时间轴
Memento智能分段算法解析如何自动切分你的应用使用时间轴【免费下载链接】MementoMemento is a Python app that records everything you do on your computer and lets you go back in time, search, and chat with a LLM (Large Language Model) to find back information about what you did.项目地址: https://gitcode.com/gh_mirrors/mem/Memento想象一下你正在电脑前专注工作突然想找回 3 小时前在某篇网页文档里看到的那个 API 参数——你知道它出现过但完全记不起在哪。Memento就是为解决这个痛点而生的开源项目它每 2 秒截取一次屏幕通过 OCR 提取文字再借助智能分段算法把一整天杂乱无章的屏幕记录自动切分成一条条有意义的应用使用时间轴让你像看视频一样回到过去。本文将从源码角度为新手读者拆解这套分段算法的工作原理。Memento 是什么先看懂它的记录-索引-回放链路Memento 是一款用 Python 编写的电脑使用记录工具它的完整工作流程如下截屏采样每 2 秒截取一次当前屏幕FPS 0.5并压缩成 h264 视频片段节省磁盘空间OCR 文字提取用 Tesseract 识别每帧截图中的文字与坐标️双索引存储文字写入 SQLiteFTS5 全文搜索 Chroma 向量数据库供 LLM 检索️时间轴回放通过图形界面像播放器一样回看任意时刻的屏幕。其中第 4 步体验的好坏完全取决于一个关键环节——智能分段。如果所有帧都堆在一起时间轴就是一条没有结构的长条只有把连续画面合理地切成段落时间轴才能像书签一样清晰可读。为什么需要智能分段没有它会发生什么假设你记录了 8 小时的电脑使用共约 14000 帧画面。如果不对它们分段时间轴只有一根单调的进度条无法区分在写代码和在看视频搜索时无法把相关内容聚合LLM 聊天时也缺少上下文单元回看时难以定位就像一本书没有章节和目录。智能分段算法正是扮演自动目录的角色它把连续的帧按逻辑划分成片段每个片段代表一段连贯的活动。分段的粒度有两层这正是 Memento 设计的巧妙之处。第一层分段应用级切分窗口切换即时间轴断点先来看最直观的一层——应用级分段对应源码中的AppSegments类见 memento/segments.py。Memento 通过 Xlib 实时获取当前活动窗口的标题window_title当窗口从Chrome切换到VS Code时就认为用户完成了一次应用切换新应用出现 → 结束上一个AppSegment开启新的分段每个AppSegment记录应用名、起始时间、以及该时段内的所有帧。在时间轴 UI 上每个应用分段被渲染成不同颜色的色块见 memento/timeline/time_bar.py鼠标悬停还能看到对应应用图标和截图预览。这让你一眼就能看出今天下午 3 点到 4 点主要在浏览器里。第二层分段内容级切分用 OCR 文本相似度判断主题变化应用级分段解决了用了哪个应用但还不够——你在 VS Code 里可能先写代码、又去查文档、再改配置。于是 Memento 在应用内部又做了一层内容级分段ContentSegments类这也是整套算法最核心的部分。它的判断依据非常优雅比较相邻两帧 OCR 识别出的文本相似度。如果相似度高大于等于 80说明画面内容连贯属于同一段活动如果相似度骤降fuzz.ratio 80说明屏幕内容发生了明显变化于是结束当前段落开启新段落。这里用到了thefuzz库的fuzz.ratio来计算两个文本的相似度百分比阈值 80 是作者的经验值源码中留有TODO tune threshold注释说明这个参数还有调优空间。举个例子你连续滚动一篇博客 → 每帧 OCR 文字高度重合 → 归为同一段你突然切换到终端输入命令 → OCR 文字面目全非 → 相似度跌到 80 以下 → 自动切开新段。文本合并用 difflib 把多帧文字拼成完整段落内容级分段还有一个加分项段落文本合并。ContentSegment.compile()会把段落内所有帧的 OCR 文本合并成一段完整的文字合并时使用 Python 标准库difflib.SequenceMatcher找到两段文字的公共部分如滚动页面时反复出现的标题、导航栏去重后按顺序拼接得到增量的、无冗余的段落全文。这段合并后的文字会被写入 Chroma 向量库成为 LLM 聊天的检索单元。正因为有了它你问 Memento我昨天看的那个关于 X 的文章里写了什么大模型才能精准命中那一整段上下文而不是零散的某一帧。后台流水线分段算法如何与截屏、OCR 协同工作了解了算法本身再看它在实际运行中如何被调用。后台进程Background见 memento/background.py每 2 秒执行一轮截取屏幕写入视频记录器计算与上一帧的图像差异分数imgdiff如果小于 0.1画面基本没动直接跳过 OCR 和分段省下大量算力如果当前窗口是 Memento 自己的时间轴界面也跳过记录避免录下你在看自己录像的套娃其余情况交给 OCR 子进程提取文字然后调用app_segments.add()实时更新分段状态当一个分段被关段后它的合并文本会批量写入向量数据库。这套流水线用多进程队列解耦了截屏主进程和OCR 工作进程保证分段判断不会拖慢录屏节奏。值得注意的是源码中的顺序处理设计帧不保证按时间顺序到达所以AppSegment.compute()会先把帧号排序再逐帧切分保证分段结果的时序正确性。分段结果如何成就搜索与AI 聊天分段算法的产出最终服务于 Memento 的两大招牌功能功能依赖分段的方式相关源码时间轴回放按应用/内容分段着色快速定位时间段time_bar.py全文搜索FTS5 索引每帧文字跳转到命中帧db.pyLLM 聊天向量库检索段落级合并文本作为上下文chat.py在聊天场景中向量数据库的检索单元正是ContentSegment合并出的段落文本——分段越合理检索越精准AI 回答质量越高。这就像给大模型喂了一份份带时间戳的摘要而不是一堆碎片。小结智能分段算法带来的启发Memento 的智能分段算法用两个朴素的信号——窗口标题切换和OCR 文本相似度——就实现了相当可靠的时间轴自动切分思路清晰、实现轻量非常适合初学者阅读源码学习应用级分段简单直接的规则零成本获得章节内容级分段基于文本相似度的启发式判断配合阈值调优80和图像差异阈值0.1控制敏感度段落文本合并让分段结果真正可检索、可对话。如果你想亲手体验这套记录一切、随时回溯的时间轴只需克隆仓库安装运行memento-bg开始记录、memento-timeline打开时间轴即可。无论是用于个人知识管理、防断片还是作为 OCR 时间序列分段的学习案例Memento 的应用使用时间轴都值得一试。【免费下载链接】MementoMemento is a Python app that records everything you do on your computer and lets you go back in time, search, and chat with a LLM (Large Language Model) to find back information about what you did.项目地址: https://gitcode.com/gh_mirrors/mem/Memento创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

org-roam-server 排坑指南:Org-Roam 知识图谱可视化的 8 个常见问题与解决方案

org-roam-server 排坑指南:Org-Roam 知识图谱可视化的 8 个常见问题与解决方案

org-roam-server 排坑指南:Org-Roam 知识图谱可视化的 8 个常见问题与解决方案 【免费下载链接】org-roam-server A Web Application to Visualize the Org-Roam Database 项目地址: https://gitcode.com/gh_mirrors/or/org-roam-server org-roam-server 是一…

2026/8/21 19:02:43 阅读更多 →
tmux-power 与 pywal 动态配色:让终端主题随壁纸自动变化的终极玩法

tmux-power 与 pywal 动态配色:让终端主题随壁纸自动变化的终极玩法

tmux-power 与 pywal 动态配色:让终端主题随壁纸自动变化的终极玩法 【免费下载链接】tmux-power 🎨 Tmux powerline theme 项目地址: https://gitcode.com/gh_mirrors/tm/tmux-power 每天更换桌面壁纸,却还要手动调整终端配色&#x…

2026/8/21 20:08:17 阅读更多 →
Ice 异常处理三件套:节点级、全局级与配置级错误策略全解

Ice 异常处理三件套:节点级、全局级与配置级错误策略全解

Ice 异常处理三件套:节点级、全局级与配置级错误策略全解 【免费下载链接】ice Rule engine/process engine, committed to solving flexible and complex hard-coded problems, for complex/flexibly changing business, provide a new abstract orchestration sol…

2026/8/21 19:51:15 阅读更多 →

最新新闻

51单片机电子钟设计:从LCD1602驱动到Proteus仿真的完整实践

51单片机电子钟设计:从LCD1602驱动到Proteus仿真的完整实践

1. 先搞清楚这个项目到底能做什么,以及它适合谁 如果你正在学习51单片机,或者想找一个能跑通、能仿真、能写进简历的课程设计项目,这个“基于51单片机电子钟闹钟—LCD1602显示”的组合,是一个相当经典且稳妥的起点。它解决的问题非…

2026/8/21 23:47:03 阅读更多 →
基于STM32与Proteus的智能盆栽灌溉系统仿真设计全流程

基于STM32与Proteus的智能盆栽灌溉系统仿真设计全流程

1. 项目背景与核心概念在嵌入式系统学习和物联网应用开发中,智能农业和家居自动化是极佳的实践方向。许多开发者,尤其是学生和单片机爱好者,在尝试制作智能盆栽灌溉系统时,常常面临几个痛点:硬件成本高、接线复杂、调试…

2026/8/21 23:47:03 阅读更多 →
基于STM32与Proteus的智能灌溉系统仿真开发全流程详解

基于STM32与Proteus的智能灌溉系统仿真开发全流程详解

在实际嵌入式开发项目中,智能灌溉系统是一个经典的综合性实践案例,它融合了传感器数据采集、阈值判断、执行器控制和用户交互等多个环节。很多初学者在学习了STM32基础外设后,希望找一个项目来整合知识,但往往在从原理图到代码、再…

2026/8/21 23:47:03 阅读更多 →
AgentGym2:评测LLM智能体在真实复杂环境中的关键基准

AgentGym2:评测LLM智能体在真实复杂环境中的关键基准

1. 从理想实验室到“不完美”现实:为什么我们需要AgentGym2? 如果你最近在关注大语言模型智能体(LLM Agents)的研究或开发,可能会发现一个有趣的现象:很多论文和开源项目展示的智能体,在精心设计…

2026/8/21 23:47:03 阅读更多 →
基于Proteus的STM32智能灌溉系统仿真设计与实物迁移指南

基于Proteus的STM32智能灌溉系统仿真设计与实物迁移指南

1. 先搞清楚这个项目到底要做什么,以及它适合谁 如果你手头有个STM32开发板,想做个能自动浇花的智能盆栽系统,但又不想一开始就焊板子、接传感器,怕硬件连错了烧芯片,那么这个基于Proteus的仿真设计,就是你…

2026/8/21 23:47:03 阅读更多 →
混合推荐算法在鲜花电商中的实践:从原理到工程实现

混合推荐算法在鲜花电商中的实践:从原理到工程实现

1. 先搞清楚“混合推荐”在鲜花销售里到底解决什么问题 很多人一看到“推荐系统”就觉得是电商平台那种千人千面的大工程,但落到鲜花销售这个具体场景,它的核心痛点其实很直接: 用户不知道自己想买什么,或者不知道除了“玫瑰”“…

2026/8/21 23:46:02 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →