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 at 15 1440 3600 9000, and Graduating interval and Easy interval at 15 so as not to penalize immature cards.
  • I like to set Lapses at 15 1440 and New interval to 20%.
  • 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 at log(desired_retention) / log(current_retention).
  • Always set Reviews at 9999: you should ideally never let reviews build up. If you’re submerged with reviews, decrease the New 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

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:

  1. Extract unidic-csj-3.0.1.1 folder
  2. On Windows 10, navigate to: %AppData%\Roaming\Anki2\addons21\13462835\support
  3. Copy and replace the following files from unidic-csj-3.0.1.1 into the %AppData%\Roaming\Anki2\addons21\13462835\support folder
    • char.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:

  1. 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)
  1. 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:
  1. 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.