brownbat / autoEaseFactor

Adjust ease factors in Anki based off of performance in order to hit a target success rate.
GNU General Public License v3.0
37 stars 8 forks source link

Doesn't change ease on lapsed (= relearning) cards? #6

Closed galantra closed 4 years ago

galantra commented 4 years ago

I just had a lapsed card. As you know, the card is shown a second time after the lapse ("relearning"). After I rated the card during this step, the ease wasn't changed as suggested by the tooltip. Instead, it remained where it was after the lapse.

Before the lapse, the ease was 2500. After the lapse, it was 2870. After the relearning step, it was 2870.

I use Extended Card Stats During Review to see the ease.

edit: I've noticed that leaving the interval untouched upon relearning is probably just the normal Anki behavior. What is different in my example is that the add-on increase the interval upon lapsing, whereas normal Anki decreases it upon lapse.

edit 2: So it looks like, when I have a review today and upon that review the add-on changes the ease, the add-on doesn't take into account today's review. For me, this is contrary to what I expected, and I suggest that it should be changed.

brownbat commented 4 years ago

Just pushed a big update that includes the current answer in the calculation, which should make this more accurate and responsive. I tested with some filtered decks in the old and new schedulers, on both 2.1.26 and 2.1.31.

I also refined the tooltip to be more informative -- it shows the "success rate" calculation, which is weighted, so might be lower or higher than you expect.

You might find that pressing "Pass" on cards that were previously given too generous of ease ratings will still cause the ease rating to move downwards (and vice versa, "Fail" could increase an ease that was too low before). But it all comes from the success rate calculation, so having that info in the tooltip should make it much easier to see what's happening.

I tried to test various card types, relearning, filtered, review, and the results were what I expected so far. But keep an eye out, I'm still working on building a test deck that has cards of every possible status, if something slipped past me this time really want to know about it so I can catch it next time.

Thanks for the feedback, let me know how the overhaul works out.

galantra commented 4 years ago

Thank you! The lapse is now taken into account right when it occurs.

I noticed something else. If I'm not mistaken: When I lapse on a card, the ease is recalculating two times – first, when I rate the card as "fail" when it is in the review state; second, when I rate it as good in the relearning state.

I wonder whether these two ratings are given the same importance.

My intuition tells me that the second repetition (a.k.a. relearning) is much, much easier and should have less or (for the sake of simplicity) no influence on the ease.

edit: I think I was indeed mistaken, and relearning doesn't change the ease.

brownbat commented 4 years ago

The relearning will often start to heal the ease somewhat, but it will still usually take a few reps to fully recover.

Here it's still gradually reducing my factor, even though I just completed a successful relearn, because that relearn wasn't enough to restore my performance to my target.

image

(I temporarily added some more debug information there, I'll probably include those fields in the next version to help testing. Still balancing between clutter and usefulness there.)

ebisu is a standalone project with interesting ideas, and better tools to weight predictions based on the timing of the reviews. Long term I'd like to pull that in, but will take me a little while.

I'm going to close this one for now, but feel free to reply if you notice anything else that seems off.

EDIT: Here's another test card -- second time I've successfully relearned it, the factor is still below its recent average, but it's on its way to rebounding.

image