[Userscript] ConfusionGuesser

It still works for me both with and without script compatibility mode. Can you give an example of a situation where it does not work? I have noticed that you reported a problem with a different script as well – have you made sure that your script manager (Tampermonkey, …) is running?

in that case I’ll have to play around on this end and see if its just something wierd…it happened after the wk update and one of the other scripts had been fixed … so was assuming it was something similar. If it’s something else then will need to try to troubleshoot on this end

edit—hadn’t even restarted… started working again as mysteriously as it quit… glad it’s working again :slight_smile: :smiley:

Great Scott! You’ve been so helpful to me with my own scripts. How am I just discovering this now?!

I’m very much looking forward to my reviews tomorrow.

1 Like

I hope ConfusionGuesser will be useful for you :slight_smile:

Thanks, but don’t expect too high quality from this script in particular. It was my first userscript, and it’s not really optimized. Usually it takes under 10ms to compute the guesses, but sometimes it takes over 100ms :sweat_smile:

I have also started to question some design decisions like having the useful settings “Include user synonyms” and “Use IDS” disabled by default. I usually don’t like programs that do stuff “behind the user’s back” (like downloading and locally storing the third-party IDS file), so I wanted to make “Use IDS” opt-in, but since then I often had to delete my IndexedDB where the settings are stored, and it gets really annoying having to manually change them back every time (I always disable “Use WK radicals” and “Use WK visually similar list” and instead enable “Use IDS”).


Geez. Remember when you were first learning to drive and you unconsciously assumed everyone else on the road around you was an expert that had been driving forever? First @Kumirei and now you are telling me you also created your first userscripts here (still hard for me to fathom!).

In my case, I’d never even written a line of javascript before my first Wanikani script. I’m not sure if I’ve learned more kanji or more front-end coding stuff since then!

Another thing I’ve learned is that I’m not just slow in days-per-level, I’m also slow in seconds-per-question. I average around 6 spq while it seems many of my script’s users average around half that. It takes me longer than 100ms to slurp a sip of coffee, so there’s little chance I’ll notice!

Tell me about it! It took me about 4 months to develop the current production version of the GanbarOmeter after publishing the first alpha version. It took approximately 100ms after pushing the latest build to realize that my default of only quizzing on new-kanji (vs. radicals, kanji, and vocabulary) made no sense at all.

I totally get (and appreciate) not doing stuff behind the user’s back. As a product manager, I learned to appreciate “on first run” sections of single-use code. As you’re pointing out, that’s definitely the best place to put all sorts of opt-in/opt-out stuff like downloads, registration, telemetry creation, support site login creation, etc.


Nope. Not helpful at all:


(I’d swear when this happens that the radical morphed under my very eyes! I’d have realized after a bit once I pressed “f” but it’s very cool and quick to see it pop up immediately like that. Love it!)


First time it’s popped up and I already love it :ok_hand:


same, I just installed it and :o I really enjoy it


v1.15 feature request (beyond making “use IDS” the default :slight_smile: )

I’ve been using the Niai 似合い Visually Similar Kanji script that for quite a while now. I’m definitely planning to continue to use both.

One feature I particularly appreciate with the Niai script is the ability to add my own characters.

For example, I frequently mix up (こう) and (こう), so I added the latter to the “visually similar” list. Whenever you add your own visually similar character, the script adds it to the beginning of the list it displays (which is quite helpful). I’ve used this whenever I regularly mix up characters for any reason (not just visual similarities, but similar readings or mnemonics, etc.).

The Niai script is only for kanji, though.

I’d love the ability to add vocabulary I frequently confuse to the confusion guesser. In other words, for the occasional instance where I know exactly which item I’m confusing something with, I’d like the ability to add it to the Confusion Guesser and have it display it preferentially over the default.

Ideally (while I’m wishing :slight_smile: ), I’d like the option when to make additions bidirectionally. In the example above, for example, I added 効 to the entry for 功 but didn’t take the time to open another browser tab for 功 and add 効 to it. It would be nice if the script took care of adding it in both directions.

Finally, in version 2, I’d really appreciate it if the script magically prevented me from moving on too quickly to the next review because I was so confident in my answer that I didn’t see the red until too late. So annoying.

Hmm. That last was a joke, but now that I’ve written it, I think I may put in an RFE to the WK team. It might be a good idea to stop listening for the return key for a few hundred ms after an incorrect answer.

1 Like

The Double Check script already provides this functionality (“mistake delay” – the second tab in the settings menu).

Regarding the other requests, I will have to think about it for a while. I consider ConfusionGuesser to be mostly feature complete, and I don’t know yet if I want to implement such extensive additions. Also I’m not sure about the added value of having this feature in ConfusionGuesser over just taking notes about these confusions with the note fields provided by vanilla WK.

In case anyone else stumbles upon this post and also wants this feature, here is a poll so I can gauge the interest:

  • I would like a feature to manually add confusion guesses to the list
  • I have no interest in such a feature
0 voters

Version 1.15:

  • Now also works on extra study page

Please let me know if something doesn’t work.
Link to previous script version for downgrading in case version 1.15 doesn’t work for you


Man. Just wanted to share my love for this script.

To be honest, I almost always ignore what it shows, just quickly typing “f” when I get something wrong to see the correct answer. Most of the time I know exactly why I got it wrong.

Sometimes, though, this thing is astonishingly helpful.

Example 1: 排水(はいすい) vs. 漏水(ろうすい)

This was seriously great. I kinda have a “hash collision” in my brain for the English words “drainage” and “leakage” even though they clearly have different meanings. It’s actually even clearer in Japanese and having the ConfusionGuesser just put it right there was simply awesome. Really made my day.

Example 2: 受託(じゅたく) vs. 受諾(じゅだく)

Doubtless, I’m not the only one that confuses these two, but it made my day today when this finally solved a nagging leech that I kept meaning to look into after my review session (but always forgot).

This one was neat because I was missing both reading (濁点(だくてん) or no) and meaning (“be entrusted with” vs. “acceptance”) randomly. I knew there was another vocabulary term I was confusing it with but could never remember to look it up (a recurring theme).

Seriously: this script is gold. Thank you!


Hiya, unfortunately this doesn’t work for me when I install it ontop of these scripts I have already installed.

I can’t see “script menu” to active “Use IDS”. There isn’t the cog icon at the top left hand-side of the review pages.

Any ideas? Script compatibility mode is turned on on WaniKani and I’m using Google Chrome.

These scripts are all working, but when I try to install others, they won’t work. Simple Show Context Sentence for example, doesn’t work either. :frowning:

Judging by the error message in your screenshot in the other thread, it seems that Open Framework has not managed to create/read an API key on your account settings page. If you do not have a token on this page, try generating one and see if it fixes the problem.

1 Like

Thank you very much! It’s working now. 嬉しいです。

1 Like

My love keeps growing for this script.

I just realized that I’d unconsciously trained myself to ignore the output of this wonderful script. I’d automatically just hit f<space><brief-pause-to-read><return> to expand the correct answer whenever I missed a question, causing my eyes to drift down toward the bottom of the page and ignore the little confusionGuesser output in the upper-right.

I was about to ask you to make the output more prominent. I opened the inspector to play with the CSS and the tampermonkey editor in another window when I realized …

Holy crap! This already has a settings dialog!

For those other fools like myself that didn’t realize the fact, click on the gear icon in the upper left of the review page and there are a number of helpful options for the script.

In my case, unchecking Show as overlay and setting Font size to “Probably too large” gave me just what I was after.

Wunnerful. Thank you again!


Not sure how useful this would be for others (maybe it’s just me) and may require a lot of work, but I often mix up kanji / vocab learned on the same level that actually don’t really look alike or sound alike or have similar meaning, just because I learned them in the same lesson bunch.

Would it be possible to also add a “lvl XX” commonality result?

I think that’s about the only time this script doesn’t suggest my error correctly. For example, when I put せい for reading and it’s incorrect, the script will usually suggest (せい) but that’s never what I’m confusing it with (in this case my confusion was with kanji (せい) learned in the same level).

The ask to add custom user options would potentially cover this situation for me as well.

1 Like

Then the question is which item from the same level do you want to show up. There are dozens of items at the same level and there is no room to display them all.

It would be limited to the items with the entered reading or meaning, so it wouldn’t be that many.

I might look into adding this as an optional setting, if I find the time.

1 Like

Exactly! That’s what I was hoping for – to prioritize any results from the same level that match the answer I input, i.e. for reading, anything in the same level that matched the pronunciation せい would be prioritized over (せい) (all other things being equal) if I input せい for reading.

1 Like