Userscript: wrong answer skips

I’m currently at a stage where most of my Memrise activity is reviewing quite old vocab… problem is that I sporadically get large mounds of vocab to review and I find the long reviewing sessions rather tedious. When I get one wrong I’d rather not bother going through the mem screen for the word, and maybe the word could reoccur just one more time in the session instead of three… this script allows me to do these things.

script: https://github.com/cooljingle/memrise-wrong-answer-skips/raw/master/Memrise_Wrong_Answer_Skips.user.js

readme: https://github.com/cooljingle/memrise-wrong-answer-skips/blob/master/README.md

You can make adjustments round the top of the script to configure it however you like.

4 Likes

Wow, another great script from you! I’d have quit Memrise long ago if you weren’t around to “fix” everything…

1 Like

Heh, I know what you mean - I write the scripts because without them Memrise just becomes too annoying!

so, this is a script that can help with overriding both “false” answers because of phantom entries, and typos?

that would be great!

i assume I can can make it an user script by copying everything what is after (including) var skipPresentation = true; //screen showing mem
(using stylish)

many thanks

Edit: it did not work in my browser

no the script doesn’t override the correctness of what you’ve entered, it just skips some of the extra screens you get as part of the review session when you answer incorrectly.

    case 3:
                                    switch(testAddCount){
                                        case 1:
                                            args[1] = args[1]; //corresponds to random(3,7)
                                            break;
                                        case 2:
                                            args[1] = args[1]; //corresponds to first add distance + random(2,6)
                                            break;
                                        case 2:
                                            args[1] = args[1]; //corresponds to second add distance + random(2,6)
                                            break;
                                        default:
                                            break;
                                    }
                                    break;
                                default:
break;

Hello cooljingle,

have you seen the double “case 2” after “switch(testAddCount){”?
Should the third case be a “case 3” instead of “case 2”?

I am a Java developer myself, but unfortunately I do not yet understand very much about Memrise’s JavaScript code.

I counted >3 additional repeating questions, when I answered questions incorrectly (default Memrise).
Does “maxTestAdds=1” set the incorrect repetition questions (“test boxes”) to max 1, instead of 3-4?
In a short test it worked liked that, before the session ended. This is just awesome!


The second part of your code is a little bit more tricky.
Do you additionally customize when the repetition (incorrect) question is prompted in the session batch?

That was the real problem of the default Memrise:
Besides prompting way too many times (4-5) for once incorrect answered questions, the repetition (all-typing) question may have appeared just 1-2 questions afterwards.

I never could make it through my 100 review session easily (in-time), without getting bombed with those incorrect questions multiple times.
I had even opened a DuoLingo thread how to suppress incorrect answer questions: https://www.duolingo.com/comment/21758481$from_email=comment&comment_id=21762213

Usually you would either use a 25 or 100 review session and additionally using “infinite learning” user scrip (unfortunately you can not simply turn it on/off before starting a review/learning session).
If you have an outstanding batch of 180 or 450++ words, a user needs to try to get through his batch in-time and focus firstly on the words, which are still known to him (catch-up words) before falling out of the “optimal review cycle” before the forgetting curve hits.
Having big review batches let’s a user put all those words even more back, especially when he knows that he gets hammered with 3-4 additional questions per incorrect answered questions.

What do you think is the optimal place for those “incorrect answer questions” from your “Wrong answer skips” user script?
Somewhere in the middle between the other questions or the end?
Is there any difference in remembering/repeating/answering correctly if you have a 25 or a 100 words review session?

I believe my test has shown that your script puts those “maxTestAdds=1” questions not at the end but somewhere in the middle (already optimizing the annoyence what the default Memrise is doing badly).
It would be OK for me when it works like this.

When the review session is 100, would there be any danger to forget those words, when the incorrect answered questions show up at the very end of the 25/100er session?
When does the “session” end when using “infinite learning”? At the very end when there are no words anymore, correct? If the latter is the case (which I assume), then probably it is not too good to put all incorrect answered questions to the very end of the session (as you might have forgot already)?


I found a new script from you:

“Memrise Learning Retries
This userscript stops words from dropping out of the session when ‘planting’ them in a learning session. If you answer incorrectly, you are given a reminder of the answer after which you get another go at answering. Subsequently, all words are fully planted at the end of the session.”

Probably my English is too bad to understand what the combination of “planting”, “incorrect answers” and “(planted) at the end of the session” means and how that compares to the previous user script “Wrong answer skips” :frowning:
The good news is that even setting “maxTestAdds = 1” it worked quite good for a “learning/planting session”.
The script URL pattern is matched not only for “garden/review/" but also "course//garden/*”.

But I could get successfully through the 6 step flower planting phase, even when I answered some typing questions wrong (your 2nd user script “Memrise Learning Retries” is not yet installed).

Thanks for your hard work!

Thomas

Good spot - that was a mistake! I’ll fix it in an update, although the whole part you quoted is a little redundant as the script is leaving the spacing as-is in that scenario. I’m quite sure it’s 3 boxes that are added by default (I’ve checked the source code) but if you answer one of those wrong it effectively resets and you get 3 more, which could explain how you see more than 3.

yep, that’s exactly what happens!

I agree, I would argue that it would be best to prioritise words which you have more recently reviewed (which are therefore relatively shorter-term memories), or perhaps calculate how ‘overdue’ a word is based on how long it has been pending review and the size of the last spacing interval, for example:

  • word A has a one day spacing and has been pending review for one day - ‘100%’ overdue
  • word B has a 10 day spacing and has been pending review for 20 days - 200% overdue
  • word C has a 100 day spacing and has been pending review for 30 days - 30% overdue

As memrise just goes by the length of time pending review you’re stuck with reviewing in the order CBA, when I would argue that B is the weakest memory, followed by A, so the review order should be BCA.

The problem is most apparent when you have a 1000 word backlog which takes so long to get through that by the time you’ve reached the end you are then confronted by all the words that were answered wrong and then subsequently forgotten again because memrise forced you to go through the other words first :cry:

In the middle I think is sensible, just because it’s nice to mix them in with the other words rather than having a batch of words you need to review followed by a batch of all the ones you got wrong. The average distance memrise puts the boxes ahead by is 5, 9, 13; you can see that under case 1 I plumped for ([1st distance]+2)*2, which puts it around the usual place of the third box. I haven’t felt the need to change this since I’ve been using the script.

When you are in a learning session, as you correctly answer new words you can see the flower animation of the word being ‘planted’. You have to ‘plant’ successfully 6 times, after which the word will enter the standard review cycle. If you answer everything correctly in a session, all your words will progress to fully planted; but if you answer wrong early on the word will only remain partially ‘planted’ by the time you get to the end of the session. You would then have to start a new learning session to finish planting those words. Try doing a learning session and getting everything wrong and you’ll eventually end the session with no progress made. With the Learning Retries script enabled you are kept in the session until you get them right.

2 Likes

Thank you!

1 Like

Review broken again: Review broken again?

Hi @Cooljingle,

the new update on the website broke your script “Memrise Wrong answer skips” as well.

If you do not know the word, the text box is empty and you hit ENTER or ESC, it will show the next review word question from the queue, instead of the error/mem page of the current word.
This is the same if you give a wrong answer in the text box and you hit ENTER which shall just show the (current) wrong answer, not the next question.

After the 2nd question (you may enter correcly or incorretly) the 1st error/mem page of the 1st question will be shown…

If I disable your script (which thankfully supresses the crap of ~3-6 repetitions for incorrect answers): then it is back to working.

It looks like the latest Memrise website update uses a new queueing (order) mechanism. Hopefully you can fix it soon.

I was able to successfully run “Memrise infinite learning” and “Memrise autocorrect” or disable both to get it back to working mode.

I would be able to test new script updates with “Memrise DuoLingo Portuguese BR” (strict typing enabled), “Portuguese BR Basic” (non-strict) and offical Memrise PT1-6 courses (non-strict).

Thanks for your hard dedicated work! We would be lost without you!

Best regards from Germany

Hi Thomas,

Thanks for letting me know. Script should be fixed now (v0.0.6).

The memrise update from a couple weeks ago now means you only get one extra test screen when you answer wrong, which is what this script was trying to enforce. I’ve fixed the script and removed some of the now unnecessary bits so now all it does is skip the ‘presentation’ screen if a ‘copytyping’ screen is due to appear after it (0.0.7).

@cooljingle

This happens when the script V0.0.7 is activated and a garden classic review session is started e.g for course https://www.memrise.com/course/581583/no-typing-vocabulary-6000-plus-words-and-phrases/

jQuery.Deferred exception: MEMRISE.garden.boxes is undefined MEMRISE.garden.boxes.load

TypeError: MEMRISE.garden.boxes is undefined[Weitere Informationen]  eval line 2 > eval:19:13
	MEMRISE.garden.boxes.load< moz-extension://0ae47eb2-9a98-49a8-bf05-561a74b06db8/userscript.html:19:13
	<anonym> moz-extension://0ae47eb2-9a98-49a8-bf05-561a74b06db8/userscript.html:18:34
	u/</t https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:29181
	u/</e< https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:29485
	t https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:436024
$(document).ready(function() {
    MEMRISE.garden.boxes.load = (function() {
        var cached_function = MEMRISE.garden.boxes.load;

As the last versions of this script where cut down when Memrise implemented to reduce the error item repeats (6-7 total repeats for 3+ consecutive typed errors) I am not sure which script could nowadays handle:

  • custom error repeats with at least 3-6 question spacing (either going bigger or reducing to max one spacing) to be able to focus on all the other items on high backlog queues which we probably can get right

  • auto- or manually marking words you get wrong 2-3 times to push them
    a) to the end of the queue to focus on the rest of 100 words or
    b) out of the current review session after 2-3 unsuccessful typing events

I think it was this script which had more code in it in the previous github.com repository versions (before the two Memrise updates)?!?

…(…)…

BTW: Recently I am also having some problems in 3+ courses with “all typing” when learning NEW 10-20 words (turned OFF learning setting) that the spacing is not always right (it often is repeated right as the next item in the queue when planting); I am not 100% but I think having to turn off 2-3 user scripts made it any worse!?!

And if the “all typing” user script is activated that the 1st item is nowadays ALWAYS learned in typing mode, instead of multiple-choice.

But I think we used “Wrong answer skips” just for the review, or was it also active in parts for planting/learning mode?

We also have your “learning retries” user script, which also is broken since the last Memrise web code updates.

Do you remember (aus dem Arm geschüttelt) without investing much time if the 3-6 question spacing was maybe also implemented additionally in “Learning retries” or is this Memrise auto default?

Unfortunately I did not understand all the JS code in both user scripts + “all typing” especially from the previous versions where you actively modified the review queue for the repeats.

Is “all typing” also touching (with turned off learning mode) the web code for any (better) 3-6 question spacing?

Currently I feel “pretty much dumbed down” by Memrise when learning items are represented too soon (only 1-2 question spacing).
The spacing of learning steps between 10-20 new words can be bigger than 3, spreading it for 4-6 might be better if the word is normal (not easy) and not VERY difficult.

…(…)…

The only solution right now is:

  • to deactivate “Wrong answer skips” (errors)
  • to deactivate "Learning retries (errors)
  • to only activate “all typing” for reviews in the match header (otherwise I get recently very odd behaviour for 1st learning step required typing on the item - I have no clue how the too near question spacing kicks in)

Sorry that I did not come back earlier to discuss some of my ideas and requirements more in detail with you.

I know, I was not that much successful 1-2 years ago when I tried to explain it on the community forum :slight_smile:

Too many options and side dependencies.

With best regards / Viele Grüße