[Userscript] Keisei 形声 Semantic-Phonetic Composition


Ah, no wonder I couldn’t find it. I never would have guessed that GM_info.script was from the script manager.

Thanks for all the information. I’ll see if I can use wk_interaction or at least learn what to do from it.


A quick report/suggestion.
Maybe 枠 should be included in the “other” category for 卒.


Thanks, I added it. I missed it because that is an kanji originating from Japan.


@acm2010 How come 海 isn’t included with the 毎 phonetic component? (Not that it shares a reading, but still.)


At the time I probably thought that the reading can’t be that different and still be a phonetic compound. There seemed to be lots of semantic compounds, so why not “every water” = ocean. But recently I found that much more compounds are phonetic, I even read up to 95% of kanji (the problem is just that either the forms or the readings got corrupted [already in China]).

So, there seems to be a reading “かい” for 毎, and in that case it means dark instead of every, and so 悔 or 晦 makes more sense. It’s also the idea for 海.

まい and ばい (like ほう, ぼう) seemed to be quite exchangeable as well, so 梅 also fits.

I’m looking at jinmeiyou kanji at the moment, to add an option to show them in Keisei as well, 苺 also fits (a bit deformed) in now.

Basically I added some more things to 毎, but there should be plenty more to fix.


Both 夌 and 夋 are listed as “to dawdle” even though the second one doesn’t have that definition on jisho.
Even if it does have that definition, I think it would be less confusing if they had different names as components.


Looks like I got 夋 wrong, it rather seems to means excellent person or outstanding person. At least this fits well with the genius 俊 and speed 駿, maybe acid is the superior alcohol after all (酸). I changed 夋 to “outstanding person”.

Jisho gives " to dawdle" and “the name of the father of the Emperor Yao” for 夌, looks like the father wasn’t that liked :slight_smile: But I don’t know where they got that from, I also found the meaning 「しのぐ、おかす、のぼる、のりこえる、廃れる、という意味がある。」, so maybe it’s rather to endure or to overcome.

It would be much better to look up the ancient kanji in a J-kanji dict and translate the glosses, but getting them correct and short enough is very hard :upside_down_face:


I’ve noticed the Phonetics drop-down menu sometimes disappears.

Any ideas?


Hmm this is strange, the path to the menu item is very short. When the script runs it checks if the beta features in the option menu is activated, and then adds an item after the dropdown.vocabulary item. This shouldn’t fail, except maybe when items in the bar are renamed (I guess no script is crazy enough to do that), the settings somehow get messed up and the beta features are occasionally disabled, or Keisei is not run at all sometimes (my guess).

Does this happen on specific pages or the dashboard? If you run Tampermonkey and Violentmonkey at the same they maybe they interfere occasionally with each other. They both mess around with the pages you are visiting, maybe some scripts are stopped randomly.

I haven’t noticed that it disappearing yet on my side.


False alarm. Seems I had beta features disabled on one of my devices and just didn’t make the connection.
Thanks for the fast reply.


Ace! Thank you ^^


@acm2010 Would 陳 not be part of the 東 group even though it’s not a match?


Hmm I added it to the non-compounds of 東 now, it is listen as a 会意, so everything is used for its meaning. 東 is a bag/sack, and the left side are gods living on a mountain (rather “ladder to the heaven”?) originally, so you are showing them your offerings.

It seems to be related with 陣 as well. (and also has a similar reading ちん <=> じん).


(I’m just commenting so I remember to download & install when I get home in… 16 hours and I have a computer and not just a mobile. This looks neato, thank you for the work!)


I’m getting a console error when I go to the Tone Marks section of your menu. No idea if it’s actually causing any issues.

Uncaught TypeError: Cannot read property 'meanings' of undefined
    at KeiseiDB.getWKKMeanings (userscript.html?id=daef77e5-5ccd-4dbf-ba1f-5243679e091c:767)
    at _.forEach (userscript.html?id=daef77e5-5ccd-4dbf-ba1f-5243679e091c:1525)
    at u (userscript.html?id=daef77e5-5ccd-4dbf-ba1f-5243679e091c:10)
    at Function.ru (userscript.html?id=daef77e5-5ccd-4dbf-ba1f-5243679e091c:72)
    at content.forEach (userscript.html?id=daef77e5-5ccd-4dbf-ba1f-5243679e091c:1509)
    at Map.forEach (<anonymous>)
    at WK_Keisei.populatePhoneticSummary (userscript.html?id=daef77e5-5ccd-4dbf-ba1f-5243679e091c:1507)
    at WK_Keisei.handleNavPhonetics (userscript.html?id=daef77e5-5ccd-4dbf-ba1f-5243679e091c:1468)
    at HTMLLIElement.dispatch (application-3db99e2f67377647bd3b4431ecfd6daec04131f87d8ffae9b6bc24bc27bf2604.js:2)
    at HTMLLIElement.g.handle (application-3db99e2f67377647bd3b4431ecfd6daec04131f87d8ffae9b6bc24bc27bf2604.js:2)


Thanks for the report, I will check it later. Looks like a referenced kanji in the database is not yet there or incomplete. The result of this should be that somewhere in the listing there is a kanji with undefined as its meaning.

I will fix the DB and make it a bit more robust :slight_smile:


New version 1.6.7, I just fixed a few strings and made the DB access not die horribly when I edit the DB.


New version 1.7.1!


  • Fixed the layout to reduce the number of cases the character grids need two or more lines.
  • New (default) WK only mode, shows only the kanji included in WK in the compound list. I’m gradually adding jinmeiyo kanji, disable this mode again if you are interested.
  • Beta mode layout changes.


Do phonetic components tend to be useful for jinmeiyou kanji?


Hmm generally the readings are more regular when kanji are less in use, so the phonetic hints get more useful for Jinmeiyou. It seems that no one bothers to invent exceptions for them.

On the other hand the kanji are mostly used for names, so the kunyomi is the more interesting part anyway.