sm2-plus
sm2-plus copied to clipboard
How to do reviews
Thanks for this library.
I'm using it in a personal project to schedule reviews of info I want to remember.
I would love some information on how you use this to schedule reviews. Looking at the algorithm, it looks like the max interval between reviews is 5, and the max percent overdue is 2.
This means that items are coming up very frequently, more frequently than I would have thought.
As a comparison, Anki sometimes schedules cards months forward.
What I'm thinking about doing is also just ordering items by difficulty, so that the easier ones are way down in the queue and don't come up as often.
I was just wondering how you used this.
I think the solution to your high frequency problem may be doing some adjustment to the parameters of the algorithm.
Thanks. Do you have any suggestions for what parameters you use?
I got the same issue as mjmeintjes. Is it possible to achieve a similar spacing as Anki by changing the parameters?
Actually, it's nearly impossible to achieve an anki like spacing with sm2-plus. Both sm2-plus and the original sm2 algorithm have their own drawbacks. I think we need something new.
I read the sm2 algorithm is what Anki uses, that's why I used that implementation. I made a simple change to prolong the interval
For now I replaced the line:
1 + Math.round((difficultyWeight - 1) * percentOverDue);
by this, hoping to extend the previous interval weighted by 1 - difficulty cubed:
Math.ceil(Math.pow((1 - difficulty), 3) * word.interval) + Math.round((difficultyWeight - 1) * percentOverDue);
Because it's cubed only really low difficulties will prolong the interval. In the long run, I am going to try to implement the original Anki algorithm.
Hi @PMK89 , I wan to use your improvement, wonder how is the performance? Does it achieve your goal?
Hi @skenan it definitively prolongs the interval for elements with low difficulty. Cause it adds to the old interval it will be prolonging with every repetition as long the difficulty stays low aka is remembered well. But the SuperMemory algorithms are psychologically tested and optimized for learning performance, so it would be better to implement one of them exactly.