-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
支持间隔复习 #6710
Comments
采用supermemo的算法吗 |
不确定,但肯定是找个开源的算法来实现。 |
念念不忘,必有回响。 还是建议对标Remnote来实现 |
Nice,太棒了,最需要的功能,可惜一直没有。
| |
youweics
|
|
***@***.***
|
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2022年11月25日 14:12 |
| 收件人 | ***@***.***> |
| 抄送人 | ***@***.***> |
| 主题 | Re: [siyuan-note/siyuan] 间隔复习 (Issue #6710) |
念念不忘,必有回响。
还是建议对标Remnote来实现
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
哎呀,这个饼有点香,希望可以早日吃上 [滑稽] |
关于开源算法可以看下 @L-M-Sherlock 基于 DSR 模型开发的间隔重复算法 https://github.com/open-spaced-repetition/free-spaced-repetition-scheduler 他本人也是 anki 和 supermemo 的热心使用者,后面又反哺中文间隔重复社区,对推广间隔重复和自由学习做出了很多贡献,目前 anki 的自定义算法 Fsrs4Anki 是他移植到 anki 上的,RemNote 的 CEO 也找到过他开发算法插件,最重要的是和中文开发者交流更容易,而且他的算法也在不断更新维护,期待 D 大和 叶哥来波联动。 |
@L-M-Sherlock @Dammyxy 感谢反馈,fsrs 好像有个 golang 实现,能帮我问问作者是否还在维护吗? open-spaced-repetition/go-fsrs#1 |
估计没在了,最近 FSRS 重构了一次,最新的实现可以参考:https://github.com/open-spaced-repetition/fsrs4anki/blob/main/fsrs4anki_scheduler.js |
收到,后面我试着看下应该如何使用,主要是我时间能力有限,想找一个直接包装好的 golang 实现。 |
这样啊,那我去维护一下,之前在字节的时候写过 golang,不过需要点时间。 |
@L-M-Sherlock 多谢,你有空的话慢慢搞,我们这边这个特性还没有确切的时间计划,目前还是在近期计划阶段。 |
Supermemo🤩🤩🤩🤩🤩 |
可以参考一下这个工作流 |
思源里间隔重复功能的实现间隔重复的制卡和提高使用体验的功能做起来有些复杂,我简单地将其分为三个改造阶段,D 大 V 大看情况做:
如果思源不想在间隔重复的制卡上深入,那么简单的完成第一阶段就可以了 如果思源想把握对间隔复习刚需的用户和潜在用户(大部分是应试用户,少部分是自由学习的用户),那么制卡向 RemNote 靠齐完成第二阶段就很有优势了,完全可以替代 Anki 第三阶段完善后的间隔重复功能是一种新的脚手架,和笔记系统结合后加入了时间轴,能帮助学习者转变复杂的学习任务,而得益于 @L-M-Sherlock 的贡献,渐进阅读的吸引力也很大,它是另一个制卡入口,可以作为思源 PKM 系统的延伸(画个大饼) 第一阶段:实现简单的制卡和复习所需要的功能有:
第二阶段:优化制卡功能,实现快捷制卡和预览所需要的功能有:
第三阶段:完善间隔重复功能,实现间隔一切所需要的功能有:
先看下其它笔记软件的实现情况:
在双链笔记里 Roam Research、RemNote、logseq、RoamEdit、合桃笔记 是有 Flashcard 功能的,可以从制卡方式、复习界面和复习粒度这三方面简单地来看下它们是怎么做的: 制卡方式Roam Research - 最简单的制卡实现
RemNote - 因为一开始开发就在做记忆卡功能,能通过改动编辑器来满足制卡需求,所以它的制卡方式多、制卡体验好
logseq - 制卡类似 RR
RoamEdit
合桃笔记 - 制卡类似 RRObsidian - 快捷输入制卡
复习界面Roam Research
RemNote - 细节多,手感棒
logseq
RoamEdit
合桃笔记
Obsidian复习粒度Roam Research - 按 PageRemNote全局、文档、嵌入三种粒度 logseq默认全局,可以通过查询复习部分卡片 RoamEdit跟随搜索条件 合桃笔记只有全局 Obsidian分卡组 直接制卡的实现有三种方法:
复习界面大家都差不多,需要 D 大 V 大考虑的是:
关于复习粒度
间隔一切以上是间隔重复的记忆卡方案,是间隔重复任务里最常见的任务,也是目前绝大多数人的需求,一个间隔重复系统的优劣,完全取决于制卡者是否能做出一张准确提取自己记忆的好卡片,但间隔重复系统的用法不止于此,更广泛的用法是**:将任务通过间隔重复系统(以下统称为 SRS )发送到时间轴上,使任务的摩擦力降低,让“过去-现在-未来”不同阶段的自己重复参与这些任务,时间轴上的自己在不断变强,而时间轴可以随着使用者的行动而变化**,Andy 称它为间隔一切,实例有:
总而言之,我们可以利用 SRS 管理我们的注意力,看到有趣的事物就可以将它加入 SRS ,而不用担心错过了什么、它什么时候出现,在这个过程中我们需要这些功能来改善体验:
渐进阅读的需求
|
@Dammyxy 你的评论太长了,不方便回复。 我用sm的用法跟你的区别还是挺大的,我比较注重渐进阅读,所以我的想法跟你很不一样,但还是可以再交流。我想的是初步时就要有一个大的主框架,一样是后面再逐步完善。 看FSRS的介绍,是基于sm,更偏向自由学习/非应试学习。我自己也认为,相比应试学习,自由学习对个人发展有更多的积极作用,纵观一生,自由学习也比应试学习多得多,所以对于「思源里间隔重复功能讨论」我会更关注自由学习,并且偏向于非集中学习(集中学习/传统学习:短时间内持续学习同类学科,且不能进行长期且合理的复习安排)。 在讨论具体操作前,应该先明确方法论。从下图可以看出,sm的间隔重复系统中,至少运用了以下高效率的学习方法: 练习测试/测试效应-Practice testing (高效); 利用间隔重复实现的渐进阅读是很重要的,渐进阅读在自由学习中是关键步骤——除了上面的三点优势,渐进阅读时,还能更多地实现自述信息-Self-explanation(中效),在摘取内容后多次重读,改为用自己的话重述,并逐渐精炼语句,这是内化过程,sm的很多材料都强调理解后再记忆,所以不应该被跳过而急于粗暴地制作问答卡(Item)。* *要实现渐进阅读,需要阅读功能,兼容各类材料也需要考虑。 因此,渐进阅读是在一开始就必须要考虑的功能,而不是可选项。 制卡复习界面功能和渐进阅读会影响制卡的操作。 从笔记界面开始的操作:
从复习界面开始的操作
不过即使有FSRS,除非思源能做出体验很流畅的间隔重复操作,不然我还是会继续用sm,毕竟叶峻峣也在用sm,而且sm也没有特别难用,现在已经有不错的渐进视频、图片遮挡流程,等SMA修复了中文bug,就能实现渐进PDF了。 |
虽然但是,你把我名字打错了( |
失礼了 😘 |
This comment was marked as outdated.
This comment was marked as outdated.
可以的,先做出来以后看需求改造
这种导出带上下文的卡包可以配合思源当做助记媒介来用,也就是作者为他的文章制作一系列卡片嵌入到文章里,导出分享给读者,读者将文章导入进思源阅读并跟随卡片的引导思考、回答、应用知识,这种卡片比较难写,相当于教材里关键的习题,但可设计性要超过习题。 之后也能配合 D 大的内容块集市,要比单纯地分享一篇文档块强。 |
@Vanessa219 闪卡复习界面 |
感谢反馈,以上已修复 |
@Vanessa219 闪卡 dialog z-index 设置为 200 后在移动端中又被设置菜单遮挡了 |
能否增加个设置,功能是, 闪卡复习时 是否自动显示上下文 |
可以点击面包屑查看 |
这种功能使用日历软件,或者使用outlook这种办公软件里面带的日历比较好吧。 |
之前的提议:
项目:https://github.com/siyuan-note/riff
间隔重复算法:https://github.com/open-spaced-repetition/free-spaced-repetition-scheduler
间隔重复实现:https://github.com/open-spaced-repetition/go-fsrs
鸣谢:@L-M-Sherlock @ImSingee
卡包(Deck)
使用间隔复习功能前需要先创建卡包,卡包用于保存闪卡(Flashcard)。
卡包主要有两个属性:
闪卡(Flashcard)
用户可将内容块放入到卡包中,这样就自动将该内容块设置为闪卡了。==标记==元素作为挖空答案。其他类型的卡片(比如图片遮挡)暂时不考虑了。
制卡入口:块标菜单 - 闪卡 - 卡包,同一个内容块可以放到多个卡包中
复习入口
复习功能入口放在顶栏 闪卡,编辑器里不实现嵌入。
导出
用户可以导出卡包分享给其他用户。
导出可能会分两种模式:
这里还没有考虑清楚,以后如果需要继续考虑。
实现
项目:https://github.com/siyuan-note/riff
数据保存在 data/storage/riff/ 文件夹下:
用户完成一轮复习后进行数据持久化,将内存结构通过 MessagePack 序列化后写入文件。
通过现有的 dejavu 同步数据,拉取到新数据后需要重新加载 deck。
The text was updated successfully, but these errors were encountered: