giovannihenriksen / Anki-Simulator

Simulator for Anki
GNU Affero General Public License v3.0
75 stars 11 forks source link

Take "hard" and "easy" frequency into account #14

Open glutanimate opened 4 years ago

glutanimate commented 4 years ago

A nice addition would be some way for the simulations to take "hard" and "easy" ratings into account – either by user-configurable count and/or by looking at the average distribution of ratings in the review history up to that point.

This would allow to draw conclusions on some of the most heavily debated topics concerning deck settings like the idea of an ease hell, etc.

(Thanks to eotini23 over on Patreon for the idea!)

glutanimate commented 4 years ago

If we do add these, it would probably also make sense to re-introduce the ease penalty for lapses (perhaps make it optional). Otherwise the predictions likely wouldn't make sense.

Right now our model basically assumes that "hard", and "easy" ratings balance each other out to produce the specified average ease. With the addition of the settings above, users would be able to evaluate how certain review behaviors affect their long term projections in a more detailed way (e.g. whether it makes sense to only use "good" and disregard all other ratings, as is sometimes recommended).

glutanimate commented 4 years ago

Ah, scratch the first part in my previous comment. Completely missed that we do take the ease penalty into account already.

giovannihenriksen commented 4 years ago

This will be useful. Adding 'hard' and 'easy' can be easily fetched from the database, in fact, the SQL execution already fetches these but doesn't use them.

A few points to consider when implementing this:

glutanimate commented 4 years ago

Should a spinbox be added for for each individual review type (learning, relearn, young, mature), or just a single spinbox for all review types? I think the latter would be more intuitive.

Yeah, I think a single spinbox would be best. And it might be sufficient to look at young and mature cards only. That's where both hard and easy buttons are consistently available, and that's where they likely have the biggest effect.

Should this change the value of '% correct young/mature' cards to exclude 'easy %'? Users may find it confusing to tell what the percentages reflect

I think one way we could go about this is to have an advanced performance settings pane that is collapsed/disabled by default. On enabling it, the settings in the simple preferences pane would be disregarded, and users could instead specify fine-grained percentages each for "again", "hard", "good", and "easy".

Again, it would probably make things much easier for us to only consider cards in the review state since not all answer buttons are available in other states.

If we do include other states, we would have to map ratings to the options actually available (e.g. counting "hard", "good", and "easy" all as "good" when only "good" and "again" are available in that simulated repetition).