Bunshi (分子)
A multi-input kanji breakdown CLI.
Kanji may well be one of the hardest parts about learning Japanese, a language that is otherwise quite approachable. It has a rich history, grammar that is arguably simpler than English, and a well-designed kana syllabary that makes me question why we even bother with the Latin alphabet. But kanji is hard.
There are well over 50 000 kanji, but only the most astute scholars even bother with that number [1]. Fortunately, the Japanese government also thinks kanji is hard, which is probably why they released the Jouyou Kanji 常用漢字
, a curated list of some 2000 kanji that represent a literary baseline [2].
Learning the Jouyou Kanji is, however, still an undertaking. Methods like RTK, KKLC, and WaniKani attempt to alleviate the problem by not teaching the kanji directly, but rather as a collection of components onto which they attach custom mnemonics in a predefined order. This is not how Japanese children learn kanji, but it is easy to see the appeal.
For instance, instead of learning like 好
through rote memorization, see the woman 女
and child 子
components. Imagine a woman holding her child, a child that she (hopefully) likes. From experience, this method of learning through association resonates with my brain, and I've had good success with it.
Bunshi is a tiny tool I made to fill a hole in my suite of study techniques. Where I before had to open a book or crawl the web I can now quickly reference the kanji component breakdowns directly in the terminal. This reduced resistance has led to a more active lookup, a positive when the goal is memorization.
Usage
Bunshi works with single kanji, words, or complete sentences.
bunshi これ便利ですね
Each kanji is shown with its meaning, On'yomi and Kun'yomi readings, and component breakdown.
これ便利ですね
│└ 利, profit ─ リ、きく
│ ├ 禾, grain
│ │ ├ 丿, slash
│ │ └ 木, tree
│ └ 刂, knife
└ 便, convenience ─ ベン、ビン、たより
├ 亻, man
└ 更, grow late
├ 一, one
├ 日, day
└ 乂,
├ 丿, slash
└ 乀, slash
See the Github Page for more usage details.
Breakdown Content
While there are numerous separate lists of kanji, meanings, and components around the web, I could not locate a single free source that mapped the relationship between them. As a result, Bunshi includes a breakdown map I've generated myself by combining the following open-source indexes.
- cjkvi-ids: Used to map components to kanji.
- Jouyou Kanji: Used as kanji primary index.
- Kangxi Radicals: Used to source component names.
This works well as a base, but optimally Bunshi would use the same breakdowns as found in either RTK, KKLC, or WaniKani. Unfortunately those are proprietery and I will, of course, not steal their content.
However, Bunshi does support custom breakdown maps using the --breakdown
flag, and if you happen to own either course/book, one could in theory generate and use a breakdown using the same material.