108 lines
5.9 KiB
Markdown
108 lines
5.9 KiB
Markdown
# 潜进 (HeurAMS) - 启发式辅助记忆调度器
|
|
|
|
## 概述
|
|
|
|
"潜进" (HeurAMS: Heuristic Auxiliary Memorizing Scheduler, 启发式记忆辅助调度器) 是一个基于启发式算法与认知科学理论的辅助记忆调度器, 旨在帮助用户更高效地进行记忆工作与学习规划, 也是一个开放, 优雅, 易于扩展的间隔重复调度器实验平台, 旨在帮助研究者更高效地进行前沿记忆算法的研究.
|
|
|
|
## 项目结构
|
|
|
|
这个仓库是 "潜进" 的核心程序库在 python 语言下的实现
|
|
包含数据模型与框架, 并内置了基于 textual 框架的前端实现 (interface 子模块)
|
|
除了通过内置前端进行学习外, 开发者也能在 python 环境中导入 `heurams` 库, 使用框架构建其他辅助记忆功能前端或其他应用程序
|
|
|
|
## 特性
|
|
|
|
### 间隔重复调度器
|
|
|
|
> 许多出版物都广泛讨论了不同重复间隔对学习效果的影响. 特别是, 间隔效应被认为是一种普遍现象. 间隔效应是指, 如果重复的间隔是分散/稀疏的, 而不是集中重复, 那么学习任务的表现会更好. 因此, 有观点提出, 学习中使用的最佳重复间隔是**最长的, 但不会导致遗忘的间隔**.
|
|
|
|
- 软件开箱即用, 无需多加配置即可使用默认的 `SM-2` 算法进行学习
|
|
- 此外, 算法模块是 "潜进" 内核 (heurams.kernel) 中的一等公民, 内核天然支持插拔各型算法
|
|
- 无需安装繁杂的插件即可分单元集完成算法快速切换与调优, 研究者可以方便地修改算法模块以便捷地进行研究与测试
|
|
- 内置 `SM-2` 简单间隔重复算法, 此算法亦用作 `Anki` 闪卡记忆软件的默认闪卡调度器
|
|
- 还内置 `NSP-0` 筛选用非间隔重复算法以便快速筛选记忆内容, `FSRS` 先进间隔重复算法作为效率更高的调度器, 与 `SM-15M (移植自 sm.js 项目)` 复杂间隔重复算法(逆向工程)
|
|
- 算法模块可以标记记忆项目, 也可以动态规划每个记忆单元的记忆间隔时间表, 动态跟踪记忆反馈数据, 以优化长期记忆保留率与稳定性
|
|
- 得益于项目的模块化架构与单元集结构设计, 一个项目甚至可以与任意种算法共存并互通, 这对研究者及想探索/实验高效率方法的用户极其友好
|
|
|
|
### 多模态学习进程
|
|
|
|
与 `Anki` 的 SQLite `apkg` 包不同, 潜进项目坚持使用人类可读的文件夹组织单元集, 这带来了若干好处, 包括:
|
|
- 人类可读: 您可以用任意工具, 乃至一个记事本修改记忆载荷数据而无需打开软件
|
|
- 元数据配置: 配置自由度极高, 可以任意组合, 重造, 乃至创造新内容
|
|
- 测验, 算法与知识互相隔离: 您的记忆项目不再是单一的闪卡, 而是 `载荷(payload)` 和 `谜题(puzzle)` 通过 `元数据(typedef)` 抽象成的 `核子(nucleon)` 对象, 在程序内部和 `算法数据(algodata)` 抽象成的 `电子`, `调度设置(schedule)` 定义的 `轨道(orbital)` 共同有机组合成的运行时对象 `原子(atom)`! 这意味着一条知识不仅可以用若干不同的算法规划, 还可以用多种并行的谜题类型测验, 极大地提升您的学习效果和丰富度. 作为学习者, 您无需担忧这些概念复杂--仅需从云端下载单元集即可无痛体验所有功能!
|
|
- 多模态学习
|
|
- 软件自身集成了文本转语音 (TTS) , 音频与语言模型 (LLM) 模块, 这些功能乃至功能本身都是可插拔, 可扩展, 可切换驱动的, 这为内容创建了极大的丰富度
|
|
- 软件内置多种谜题类型, 包括选择题 (MCQ), 填空题 (Cloze) 与识别题 (Recognition), 您可在同一单元应用多种, 或是选择启用
|
|
- 软件天然支持动态内容生成, 支持宏驱动的模板系统, 根据上下文乃至语言模型动态生成知识点的解析
|
|
- 在间隔重复研究尚被 SuperMemo 系列独占的时代, Wozniak 就早已表示 "如果不能理解知识, 就无需记忆它". 今天, 我们依然相信理解是记忆的基石
|
|
- 云同步与分享优化: 由于我们的记忆数据和单元集文件都是文本文件, 故可进行快速的增量同步而无需完整地上传所有文件, 并且设计天然支持分享内容的版本控制, 如果您想分享单文件, 我们也支持 .zip/.tar.gz/.tar.xz 导入与导出
|
|
- 优越性能: 得益于现代的文件组织结构, 潜进能在保持高自由度的同时仅使用 python 就能达到敏捷且低占用的用户体验
|
|
|
|
### 实用用户界面
|
|
|
|
- 响应式 Textual 框架构建的跨平台 TUI 界面
|
|
- 支持触屏/鼠标/键盘多操作模式
|
|
- 简洁直观的复习流程设计
|
|
|
|
## 快速开始
|
|
|
|
### 从包管理器安装
|
|
|
|
潜进(heurams) 处于早期开发考虑, 尚未上架 PyPI, 但您可以用我们的基础设施安装稳定版和开发版本
|
|
|
|
```
|
|
# 稳定版
|
|
python -m pip install heurams -i https://pypi.pluv27.top/root/stable/+simple/
|
|
# 开发版
|
|
python -m pip install heurams -i https://pypi.pluv27.top/root/dev/+simple/
|
|
```
|
|
|
|
### 从源码安装
|
|
|
|
1. 克隆仓库:
|
|
|
|
```bash
|
|
git clone https://gitea.imwangzhiyu.xyz/ajax/HeurAMS
|
|
cd HeurAMS
|
|
```
|
|
|
|
2. 安装依赖:
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
3. 以开发模式安装包:
|
|
|
|
```bash
|
|
pip install -e .
|
|
```
|
|
|
|
## 项目结构
|
|
|
|
详见[架构说明](ARCHITECTURE.md).
|
|
|
|
## 参与项目
|
|
|
|
欢迎参与到项目协作中! 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解贡献指南.
|
|
|
|
## 许可证
|
|
|
|
### 项目本身
|
|
|
|
本项目基于 AGPL-3.0 许可证开源. 详见根目录下 [LICENSE](LICENSE) 文件.
|
|
|
|
### 第三方代码
|
|
|
|
项目在 `src/heurams/vendor/` 目录下嵌入了以下第三方代码(可能有修改):
|
|
|
|
#### py-fsrs
|
|
|
|
- 上游版本: 6.3.1
|
|
- 位置: `src/heurams/vendor/pyfsrs/`
|
|
- 原项目: [py-fsrs](https://github.com/open-spaced-repetition/py-fsrs)
|
|
- 原许可证: Copyright (c) 2026 Open Spaced Repetition Contributors
|
|
- 原许可证: MIT License, 详见 `src/heurams/vendor/pyfsrs/LICENSE`
|
|
|
|
本项目受益于他们无私且优秀的工作
|