我想知道如何修改和推广间隔重复软件。具体来说,我想知道如何更改要显示的纸牌数量,纸牌范围以及指定特定纸牌组的能力。
我一直在研究间隔重复软件一段时间,发现以下问题:
很难确保将在特定日期显示的牌数保持在一定范围内
与其被告知今天要学习哪些纸牌,不如我愿意在任何时候拿起纸牌并经过几张纸牌,这取决于我有多少时间
我知道,后一点与间隔重复的逻辑有些冲突,但是也许有可能找到折衷方案。
该计划必须解决的问题是“鉴于现在要求我出示一张卡,根据每张卡的学习历史,重要性等,我应该选择哪种卡”。
我认为,这种方法很容易推广到增量阅读和待办事项列表管理。
由于我是编程新手,所以非常感谢您提供有关如何实现这种算法的帮助。
请在下面找到我的一个非常基本的尝试来解决该问题;这里最明显的问题是该代码未考虑cardfile随时间的增长。
#! /usr/bin/env python
import random
box = []
class flashcard(object):
def __init__(self, quest, answ, score):
self.question = quest
self.answer = answ
self.score = score
# ------------------------------------------------------------------------------
f = open('list.txt','r')
for line in f:
parts = line.split('\t')
box.append(flashcard(parts[0],parts[1],int(parts[2])))
f.close()
# ------------------------------------------------------------------------------
keepgoing=True
while keepgoing:
card = random.choice(box)
if random.uniform(0,1) * card.score < 1:
a = raw_input(str(card.score) + ' ' + card.question + ' ')
if a == card.answer:
card.score *= 3
elif a == 'q':
keepgoing = False
else:
card.score = 1
print 'WRONG -->' + card.answer
else:
pass
# ------------------------------------------------------------------------------
f = open('list.txt','w')
for card in box:
f.write("%s\t%s\t%s\n" % (card.question, card.answer, card.score))
f.close()
最好,J
好的谢谢你!尽管您的观点是完全正确的,但直到现在我才意识到,我提出问题的动机实际上更加广泛,因此有些观点仍然对我开放。
首先,我会对sthg感兴趣。对于命令行,这是尽可能简单的
第二,我想避免基于日期的逻辑,即使这与SRS略有不同
第三,我想有一个简单的脚本,可以入侵许多不同的应用程序
例如待办事项列表管理,阅读列表管理,播放列表管理(如http://imms.luminal.org/)等
因此,我希望有一个通用脚本可以随机显示项目,但要根据重要性,易用性,紧迫性,趣味性等来加权
最佳答案
关于这个话题有很多文献。我推荐的一篇论文是Lindsey,Shroyer,Pashler和Mozer撰写的“通过个性化复习来提高学生的长期知识保留”:https://web.archive.org/web/20140331061418/http://laplab.ucsd.edu/articles/LindseyShroyerPashlerMozer2013.pdf(如果链接无效,请确保获取包含附录和在线补充资料的版本他们描述的机器学习算法的详细信息)。
在此特定论文中,描述了一种机器学习算法,给定一组学生对问题列表加盖正确和错误答案的时间,从而估计每个(学生,问题)对正确答案的概率。因此,这正好回答了您的一个子问题。在任何给定的时间,这样的算法都可以告诉您最容易被遗忘的问题(正确响应的最低概率)。不仅如此,它还为您提供了一系列减少遗忘风险的问题 list 。不仅如此,它还会为您提供介于0到1之间的数字,表明您会忘记的风险,因此您可以设置一个阈值,例如“不要问我那些忘记概率小于5%的问题” ”。
绝对不是初学者的项目,但请尝试一下!
另一个小问题:请随意尝试非Anki学习策略。除了流行之外,没有其他证据表明Anki的工作流程是做任何事情的最佳方法,实际上,我高度怀疑它是否适用于所有学习者。
编辑我设计了一种用于贝叶斯间隔重复的算法,并用Python,JavaScript等实现了该算法,我称之为Ebisu:https://fasiha.github.io/ebisu/