-
Notifications
You must be signed in to change notification settings - Fork 32
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
[Feature request] Reschedule all positions forward/backward by N days #90
Comments
Re-scheduling is one downside of a spacing algorithm based on due-dates, as the algorithm works best when cards are reviewed immediately / shortly after they are due. E.g. if a new card has an interval of one day and is rescheduled by 7 days, I've spent a long time researching alternative scheduling algorithms that compute a “recall probability” based the review history of a card. https://github.com/fasiha/ebisu seems like the most promising such algorithm but I don't think it's stable enough yet. |
That's a fascinating read! What are you looking for when determining stability? |
This issue seems most relevant: fasiha/ebisu#43 Implementing an older version of the ebisu algorithm in EmacsLisp took a lot of effort and on the side of org-fc a lot is missing for supporting different spacing algorithms. While I believe that there are many benefits to a recall-probability based algorithm, currently I don't want to put a lot of effort into something that might require a lot of changes in the future. |
Ebisu author here 👋! Is an elisp implementation of Ebisu (even an older version of Ebisu) available online? I looked in this repo but nothing jumped out. (I have an RFC for a new version of Ebisu in fasiha/ebisu#58 that is designed to address the issue you raised but it's probably several weeks away from release, and even then would be quite untested. But just in case you're interested, I'd of course very much welcome org-fc's perspective!) |
Hi @fasiha, happy to have you here! I never uploaded the code because I only tried it on a different private spaced repetition project. Hopefully this link works: https://gist.github.com/l3kn/45b7119e1aaa685997c5ff5078b4acd7 To avoid the initial implementation burden, interacting with a python wrapper script to rank a selection of org-fc cards would be a viable alternative. This leaves two big tasks on the side of org-fc, supporting alternative spacing algorithms and potentially migrating cards between these algorithms. Org-fc keeps a history of all reviews (timestamp + forgot/hard/good/easy rating) so the parameters of a new algorithm can be computed from the past reviews of a card. I'll try to run my history of 200k reviews against https://github.com/fasiha/ebisu-likelihood-analysis/blob/main/ebisu3.py. |
@l3kn wow, your elisp implementation is lovely, although I did a lot of Clojure back in the day, I'm still struck by the flair of seeing the math in s-exprs 😄
That sounds really, really interesting! In case it's at all helpful, I made a wrapper script that shows you how to load flashcards from Anki and run them against Ebisu v3, see the discussion at https://github.com/fasiha/ebisu-likelihood-analysis/#ebisu-v3-and-stan For your case, much of this will be unnecessary but having a worked example might be useful because I realized the Python code needs "elapsed time" in units of hours and I don't think I've made that clear, in the variable names or in docstrings 🙇 Applying a probability-based algorithm like this to a bunch of real-world data is useful in that, we can use likelihood analysis to compare it against other probability-based algorithms, or even the same algorithm by tweaking its parameters. Basically you sum up the "surprise" at each data point, and the algorithm that averages the least surprise over your dataset is "the best". However, it's not obvious how to compare something like Ebisu (or any of the other probability-based SRS that you've probably seen) versus Anki or org-fc 😅 other than as a sanity check to make sure Ebisu et al. are doing something reasonable. |
This would be a utility function -- inside or outside of Emacs -- which reschedules all positions forward or backward by N days. Similar to the Postpone card's review Anki add-on.
The text was updated successfully, but these errors were encountered: