Simple Anki deck for jouyou kanji
This repository contains the python script I used to generate my Anki deck containing flashcards for the 2136 jouyou kanji.
My goal with this deck was to create simple, good-looking kanji flashcards without a ton of extra information. This deck does NOT contain information on RTK or any other mnemonic systems, but does contain information about the keisei radicals. The deck is ordered based on the frequency of each kanji in the Mainichi Sinbun, as provided by the Kanji Database. You can optionally display stroke orders on the answer side of the cards by downloading and installing the KanjiStrokeOrders font here.
The deck listing on AnkiWeb can be found here.
The data used to generate the deck comes from three sources: the online Kanji Database and the jmdict-simplified versions of JMdict and Kanjidic2. If you want to build the deck yourself you can download the relevant files from the links above. Place them in the resources/external/
folder under the correct names as specified in main.py
.
For the Kanji Database, you can access the correct file by choosing “SQL query” at the top of the webpage and pasting the following query into the text box:
SELECT `id`,`Kanji`,`Strokes`,`Grade`,`Kanji Classification`,`JLPT-test`,`Name of Radical`,`Kanji Frequency without Proper Nouns` FROM `KanjiTable`
Then, submit the query and click “Export Kanji as CSV” at the bottom of the page. It’s worth noting that this file has a BOM at the beginning, which python doesn’t like. You can easily fix this if you have vim/vi by opening the file and executing the following command:
:set nobomb
Make sure to save the file afterwards.
Kanjidic2 is used for the kanji meaning and readings. JMdict is used only for the example words. Every thing else, including the list of jouyou kanji itself, comes from the Kanji Database.
To use the script, make sure you have Python 3 installed. Create and activate a venv if you prefer, and run pip install genanki
to install genanki, the only other dependency. Make sure you have added the external resources as outlined above. Then, simply run ./main.py
and everything should work. The resulting deck file will be written to out.apkg
.
I would like to expand upon the reasoning behind this deck. I have been using a mnemonic-based kanji-learning system for multiple years, and have made good progress with it. However, I have come to dislike the concept of using mnemonics to learn kanji in general. The method seems to work for a lot of people, but I personally feel that I rarely encountered situations where a mnemonic helped me remember a kanji I otherwise wouldn’t have.
Mnemonic systems also usually ignore the keisei (phonetic-semantic) composition of the majority of kanji. This composition forms the actual sematic connections between characters, and it seems counterintuitive to discard them for false connections created only for memorization.
Also, by not learning the traditional kanji radicals, it impedes one’s ability to discuss kanji with native speakers, or in Japanese in general. That’s why I decided to focus on a simpler style of learning kanji, which is the market this deck seeks to fill.