提个复习功能的实现想法,能显著增加思源卖点,且可快速实现

本贴最后更新于 798 天前,其中的信息可能已经时过境迁

笔记为什么需要复习功能

  • 笔记目标用户有巨大的学习需求

    • 目标用户为学生 + 工作族(信息相关从业者为主)
    • 前者以学习为主业,后者为主业需要不断学习
  • 其他流行的笔记产品,验证了该需求对用户的吸引力

    • logseq 的 flashcard 在一级菜单,为产品卖点
    • remnote 的卡片在一级菜单,为产品卖点
    • obsidian 的随机笔记功能、anki 插件,多次出现在推广内容中
  • 复习是公认的学习必含过程,Anki 式的复习则是最优方式

    • 一是因为信息的随机调取增加了信息提取的难度,而知识就是在提取中强化的,而不是吸收的过程中
    • 二是因为符合遗忘曲线的规律
    • 个人认为一比二更重要
  • 社区内有很多相关需求帖,阅读量都不低

    截屏 2022012009.23.00.png

如何快速实现

本着无必要勿增实体的原则,以及 D 和 V 稀缺的精力,我认为:

  • 笔记内即可实现,不用导出 Anki 的复杂操作
  • 实现复习功能即可,不必局限于“制作卡片”“卡片正反面”的形式
  • 利用思源本身的产品特性和特长

方案是:

  • 直接利用已有的信息块功能image.png

  • 菜单中加入“复习”选项。点击后,选中的块就被筛选进一个收藏库中,就和书签一个性质。

    image.png

  • 增加随机功能来调用复习内容。点击后,随机从收藏库里抽出内容块显示。

    • 点击后,收藏库里的内容块随机出现。就和 obsidian 的漫步笔记功能,这个应该也不难实现。

      image.png

    • 而且思源本身也有内容块单独显示的功能,简直绝配。

      image.png

  • 卡片编辑直接用已有的编辑器功能,无需改动

    • 主题有一个是 Tsundoku Light,里面的高亮显示是鼠标放上去才显示文字,这就完美提供了让大脑回忆的挖空功能

    • 所以任何需要回想的重点内容,只需要在编辑时用“==”即可。

    • 回想时,忘记只需把鼠标放上去就能显示内容,还能放在原文中显示上下文,帮助回忆内容

      image.png

综上,其实就是增加一个可自选内容块范围的漫步笔记功能,即可实现基本的复习效果,增加产品卖点,吸引更多学生党和学习者的关注。至于其他的遗忘曲线,卡片格式等功能,等以后时间充裕后再添加即可。

为什么想要提这个建议

  • 根据我有限的对笔记的认识和对用户的观察,记笔记的本质目的还是储存知识 + 内化知识。而内化知识就是现在笔记工具的很大的痛点,不然大家也不会有“记过了就是知道了”“到我收藏家里吃灰”的调侃。所以很多人开始有主动复习的需求,甚至有很多人都不知道这种方法,都没意识到自己有这种需求。
  • 社区里有几个开发大佬做了 to anki 的插件,虽然也可实现功能,但对用户尤其是非技术型用户,不是很友好
  • 我提出的这种设想应该只能通过原生软件的编程才能实现
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18131 引用 • 66885 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • wesley
    作者

    正因为 spaced repetition 比较复杂,所以我觉得可以先把容易实现的功能加上,至少能先用起来。

    间隔复习其实可以根据自己对知识掌握的情况自行把控,不用严格按遗忘曲线。每次都整体回忆,熟悉的内容直接点击随机切走就行了,不会花很多时间。如果已经确信这部分内容不用再复习,或者不需要再记忆(比如考试结束),从收藏库里移走就行了。

  • 其他回帖
  • Clouder

    如果只是文中提到的功能,随机漫游(随机抽取显示)、挖空,利用 sql 嵌入块和第三方主题已经可以实现了,自选内容块范围通过 sql 筛选属性也很好操作。当然显示上还是依赖嵌入块的样式。

    Anki 的灵魂在于 Spaced Repetition 也就是间隔复习算法,而不是随机调取。随机调取是很简单的,但效果相比之下就差很多了。而 Spaced Repetition 实现起来比较复杂,恐怕 D 大近期是不会考虑的。

    2 回复
  • Clouder

    如果是后续兼容问题的话,可以希望官方开放相应的 API 接口,这样自行实现的数据格式也可以自行写工具迁移过去。还是相当于用户自行迁移,但利用科技进行自动化操作。(题外话,我觉得现代人可以考虑或多或少学习一些编程,对日常生活帮助不小。)

    随机切走长期来看是非常低效的,举一个我自己的例子,我现在 Anki 中卡片情况是这样:

    image.png

    image.png

    绝大多数的内容我都是熟悉的,如果用随机切换,我需要切换 20 次才能得到一次有效的操作。当然在学习期这个比例会相应下降,但只要总数量上来了,基本上操作效率都很难超过 20%. 如果你的知识库中已经掌握的知识占比为 A%,那么无效操作就占了 (1-A)%.

    在 Anki 中,这些 Mature 的卡片的周期都是以月为单位的。用固定间隔的话,很难想象要如何兼顾学习中的卡片与已经成熟的卡片。然而我们依然不能确信我们已经完全掌握了这些卡片,因为以月为周期的大时间跨度上,总是会有遗忘,因此删除也是不可接受的。(在对准确率要求较低的情况下倒是可以考虑的。)


    Anki 的一大痛点就是复习的卡片太多了,本来是可以通过延长周期来缓解的。但在限定的时间内保持对特定知识的高准确度掌握的要求下,周期也不能太长,所以就非常有压迫感。


    先能用起来的话,用现存的随机漫游的嵌入块 SQL 就可以了。

    SELECT * FROM blocks where id in (select block_id from attributes where name = 'custom-review') ORDER BY random() LIMIT 1
    

    然后对着块编辑 review 属性,内容随便写就可以了。LIMIT 1 可以改为自己想要的数字。

    一个比较好的实践是对着容器块打属性,比如标题、超级块。列表也是可以的。

    1 回复
  • wesley
    作者

    利用 sql 等自行解决的话,我的担心点在于,如果我通过这种形式自己制作好复习计划,后续如果官方推出这个功能,我制作的复习计划能否迁移呢?二者能否兼容呢?开发者要考虑兼容问题是否也是增加了工作量呢?假如我整理好了几百个知识点,后续又要重新一个个编辑,也是不小的工作量。(技术小白,说错轻喷 😁)

    1 回复
  • 查看全部回帖