Personal Guide to Anki
Anki Settings
Anki Intervals and Learning Steps
- Anki permanently modifies graduated cards which are graded anything but “Good” by changing their ease factor: this can cause cards graded “Again” or “Hard” to permanently appear more frequently than others unless graded “Easy” again.
- Solution: set
Steps
at15 1440 3600 9000
, andGraduating interval
andEasy interval
at15
so as not to penalize immature cards. - I like to set
Lapses
at15 1440
andNew interval
to20%
. - To optimize learning efficiency, you should aim for a 80-90% retention rate. If your retention rate is not in this range, set
Interval modifier
atlog(desired_retention) / log(current_retention)
. - Always set
Reviews
at9999
: you should ideally never let reviews build up. If you’re submerged with reviews, decrease theNew cards
setting instead.
Anki V2 Scheduler
- The V2 Scheduler comes with improved features explained in this link.
- As explained in the video, be careful when enabling the V2 Scheduler since it will reset all cards in the learning phase.
Addons
- Advanced Browser
- Answer Visual Confirmation
- Anki Simulator
- AwesomeTTS
- Batch Editing
- Button Colours (Good, Again)
- Card Layout Editor - syntax highlighting, monospace font
- Crowd Anki
- Frozen Fields
- Japanese Support
- LPCG (Lyrics/Poetry Cloze Generator)
- MeCab UniDic Japanese Dictionary
- Follow the instructions in the appendix below or on this link to manually update it with the 2019/12/17 version.
- MIA Dictionary
- MIA Editor
- MIA Japanese
- MIA Retirement
- MorphMan for Anki 2.1
- Note: as of Anki 2.1.22, MorphMan has to be manually fixed to work correctly. Get the
stats.py
file here and replace it in the MorphMan addon folder.
- Note: as of Anki 2.1.22, MorphMan has to be manually fixed to work correctly. Get the
- Replay buttons on card
- Review heatmap
- Syntax highlighting for code
- True Retention
Appendix: updating MeCab UniDic
I’ve just copy-pasted the instructions that were given by another Anki user at this link. The instructions themselves should take about 5 min, but the download waiting time might be longer since the UniDic zip file has a size of about 1.5Gb. From here on, “I” refers to the original Anki user, not me (Lashoun).
I got it to work with unidic-csj-3.0.1.1
(latest on the UniDic website) by:
- Extract
unidic-csj-3.0.1.1
folder - On Windows 10, navigate to:
%AppData%\Roaming\Anki2\addons21\13462835\support
- Copy and replace the following files from
unidic-csj-3.0.1.1
into the%AppData%\Roaming\Anki2\addons21\13462835\support
folderchar.bin
dicrc
matrix.bin
sys.dic
unk.dic
After deleting the all.db
file, you need to edit the file %AppData%\Roaming\Anki2\addons21\90081631\morph\morphemizer.py
The issue is because the new UniDic has more fields supported. We need to handle this case:
- At line 61, where you see
MECAB_NODE_UNIDIC_BOS = 'BOS/EOS,*,*,*,*,*,*,*,*,*,*,*,*,*'
You need to add the following above it:
MECAB_NODE_UNIDIC3_BOS = 'BOS/EOS,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*'
MECAB_NODE_UNIDIC3_PARTS = ['%f[7]', '%f[10]','%m','%f[6]','%f[0]','%f[1]']
MECAB_NODE_LENGTH_UNIDIC3 = len(MECAB_NODE_UNIDIC3_PARTS)
- At line 94, in the
getMorpheme
function, where you see:
if len(parts) != MECAB_NODE_LENGTH_UNIDIC:
Change that whole line to:
if len(parts) != MECAB_NODE_LENGTH_UNIDIC or len(parts) != MECAB_NODE_LENGTH_UNIDIC3:
- At line 150, in the
spawnMecab
function, where you see:
if bos_feature_match is not None and bos_feature_match.group(1).strip() == MECAB_NODE_UNIDIC_BOS:
Change and replace that whole line that to:
if bos_feature_match is not None and bos_feature_match.group(1).strip() == MECAB_NODE_UNIDIC3_BOS:
node_parts = MECAB_NODE_UNIDIC3_PARTS
is_unidic = True
elif bos_feature_match is not None and bos_feature_match.group(1).strip() == MECAB_NODE_UNIDIC_BOS:
This should support the new unidic-3.0.1.1
fields. Note that MECAB_NODE_UNIDIC3_PARTS
contains the formatting of what will be outputted by mecab. You can read the dicrc
file in the unidic
folder to see what %f[7]
, %f[10]
, and so on, maps to. In either case, we didn’t have to change anything, because the newer dictionary simply adds more new fields.
Then, edit the dicrc
file after you replaced it so that you comment out or remove the line:
output-format-type = unidic22
Once this is removed or commented out (comment it out with a semicolon at the start), you should be able to run MorphMan Recalc successfully.
This makes sense, as the dicrc
is overlapping the mecab output format with the parameters that MorphMan is passing into mecab for parsing.
Also, I’m not sure what version the addon is using for Mecab, but on the official Mecab website, you can install 2013-02-18 MeCab 0.996
on your system, and then replace the binary mecab.exe
and libmecab.dll
in the addons
folder, similar to what we did with the UniDic dictionaries. I mention this, because I noticed the supplied mecab.exe
binary is 40 KB compared to the Mecab 0.996 version
which is 50 KB
. There might be some code improvements, not sure. I also tried replacing the mecab
binary + dll and it seems to work fine as well.
Another thing to note, since you’re manually editing the plugin yourself, if you ever choose to update the addon in Anki, it will most likely overwrite your stuff, so you’ll have to go back and manually fix it yourself.