Ways to avoid directly repeating cards

Registered by Jim

It's a wonderful program, but cards are often repeated directly after the user rates them. This can be avoided through two modifications. First, when the user rates a card, it should never be placed on top of the "to learn today" stack, regardless of what the sorting algorithm returns. The earliest option should be in position #2. Second, when there is only one card left for the day, it should not be repeated until the user rates it 2 or above; it should be postponed to the next day.

Blueprint information

Status:
Started
Approver:
None
Priority:
Medium
Drafter:
None
Direction:
Approved
Assignee:
Peter Bienstman
Definition:
Approved
Series goal:
None
Implementation:
Beta Available
Milestone target:
None
Started by
Peter Bienstman

Related branches

Sprints

Whiteboard

This can occasionally happen when you are learning new cards, and only have very few cards left in your stack.

In that case, it is not so easy to avoid (think e.g. of the case where you have only 2 more cards left to learn)

***

It can happen in that case, but it also happens even when there is a large stack of cards to learn. Wouldn't it be safer to make it a policy that the current card can only be ranked as high as #2, never taking priority higher than that?

Additionally, even if there are only two cards left, I think that ratings would be more truthful if the card were then reserved at that point for the next day. In every case I can somehow manage to make the card into a 2, but that's just because I saw the answer half a second previously.

***

> It can happen in that case, but it also happens even when there is a
> large stack of cards to learn.

Occasionally, yes, but the chances of that happening are not so large.

> Wouldn't it be safer to make it a policy
> that the current card can only be ranked as high as #2, never taking
> priority higher than that?

That's is what happens now: when learning new cards, grade 2 through 5 all have the same effect, signifying that you've memorised the card, as indicated by the tooltips.

Perhaps we are misunderstanding each other, or perhaps you have some misconception about how the algorithm works?

> Additionally, even if there are only two cards left, I think that
> ratings would be more truthful if the card were then reserved at that
> point for the next day.

But in that case you could only review these unlearned cards once per day. The best is for the user to decide what to do, either add more new cards or postpone to the next day.

***

I meant that when I give a card a rating of "0" or "1", it should never be repeated as a question. I know that rating a card 2 or 5 will postpone the review for at least a day. Perhaps there could be some sort of modification of the algorithm so that a card rated "0" or "1" could never be put next in line for questioning. It might not happen all the time, but it often happens during review.

Perhaps you're right, though; I might be misunderstanding the algorithm. I'll try to explain myself more fully.

I'm a high school teacher in Slovenia and use Mnemosyne as part of my lessons to review new English vocabulary with the students. I give them XML files to use at home, but we often do at least one review in class as a group; it makes an effective review session at the end of the class and we can even get students to compete sometimes for a prize like they would in a quiz show.

You're right that during long-term review the algorithm seldom repeats cards. However, during the first session cards are sometimes repeated as often as 3 times in a row after being assigned "0" or "1". This is not a big problem in most situations; I usually hit "0" over and over until it gets placed further back in the deck. However, there are at least two reasons to change it:

1) This is where I might have misunderstood the algorithm, but hitting "0" 3-4 times to get a card to come back at a later point seems like it would inflate the card's difficulty rating. Not allowing cards to be directly repeated would resolve this.

2) It makes the card order seem random instead of ordered. I've introduced this program to several hundred people through my job. I spend a lot of time convincing them that the computer decides when the best time to review the card is. It seems counterintuitive that the best time to review a card is directly after having seen the answer, and so it might seem to some people that the computer isn't taking their ratings into account.

I do acknowledge, however, that towards the end of the session, when there are only 1-2 cards left, it is probably better to offer the users the chance to do what they want with the card rather than postpone it for the sake of accurate user ratings.

Also, do let me offer thanks for a wonderful program with a clean user interface. I don't mean to sound too critical in what I've written; you've created something that's extremely useful for a lot of people, and it's helped me in many ways over the past 6 months or so.

***
> 1) This is where I might have misunderstood the algorithm, but hitting
> "0" 3-4 times to get a card to come back at a later point seems like it
> would inflate the card's difficulty rating.

It won't, no problem.

> It seems counterintuitive that the
> best time to review a card is directly after having seen the answer

I agree that it's not perfect, but getting rid of this would complicate the code tremendously, and at the moment the 2.0 version is higher on my priority list.

> Also, do let me offer thanks for a wonderful program with a clean user
> interface. I don't mean to sound too critical in what I've written;
> you've created something that's extremely useful for a lot of people,
> and it's helped me in many ways over the past 6 months or so.

You're welcome!

* * *

I'd just like to second this request and ask that the priority be bumped up. When learning new cards, it's really irritating to get the same card two-three times in a row -- this usually results in me hitting 2 to get rid of it, even though I probably haven't actually memorized it properly. Getting an immediate repeat on 0 I can still understand, but repetition after 1 ("Show it less often") is not IMHO acceptable.

****

I have to report the same issue. I have more than 300 cards in my 0-stack. I get to see a card that I don't want to see (e.g. because I'm just learning the reverse of the card, so I'd rather leave the card for another day), so I rate it 0, but it comes back again and again -- much more often than the 1:300 chance of drawing the same card at random would suggest. (I realize that this may not be the way the 0-rating is supposed to work -- it might be useful to have the possibility to "unview" a card that one wants to learn later.)

: Under Settings->Configure, you can say how many 0-level cards you want to hold in your hand, the default being 5 -- so the odds of getting that card again are 1:5, not 1:300. --jpatokal

:: Thanks -- that was my misunderstanding. I will adapt my usage of rating 0 and 1 from now on. A way to completely postpone a card would be nice.

For stack-1 cards it's irritating to say "I don't remember this card (1)" only to be presented the same card immediately again -- even though there would be 4 other cards to choose from. What am I to answer: of course I remember the card after 50 milliseconds...

: But on this I totally agree. --jpatokal

:: Of course, this is valid for stack-0 cards as well then. And: thank you for mnemosyne -- it changed my learning life!

PB: the 2.0 development version now contains code to avoid this (except when you have very few unlearned cards left, in which case it's impossible to avoid).

*****

I would not postpone those cards to the next day, since that makes it impossible for the user to feel that he has finished today's job. It is important to have this sense of accomplishment.

Therefore, I would repeat the cards but insert some cards that didn't really have to be repeated, ones with a high probability of getting a correct answer. At least 3 cards in between would be ideal for me. These extra repeated cards should be clearly marked as such, and not require grading from the user, just "OK" in green and "Reschedule tomorrow" in red. This way, it can never happen that he has to keep going forever. But if he happened to really forget the card, then he can be sure it will be asked again tomorrow.

I would apply the same logic when cards are not repeated immediately but with only 1 or 2 cards in between. That, too, feels like cheating when learning cards.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.