Warning: Declaration of TarskiCommentWalker::start_lvl(&$output, $depth, $args) should be compatible with Walker_Comment::start_lvl(&$output, $depth = 0, $args = Array) in /var/www/snigel.nu/public_html/wp-content/themes/tarski/library/classes/comment_walker.php on line 22 Warning: Declaration of TarskiCommentWalker::start_el(&$output, $comment, $depth, $args) should be compatible with Walker_Comment::start_el(&$output, $comment, $depth = 0, $args = Array, $id = 0) in /var/www/snigel.nu/public_html/wp-content/themes/tarski/library/classes/comment_walker.php on line 50 Olle Linge - Languages, literature and the pursuit of dreams · Learning Chinese using ZDT’s interval filter Warning: Use of undefined constant fb_admins - assumed 'fb_admins' (this will throw an Error in a future version of PHP) in /var/www/snigel.nu/public_html/wp-content/plugins/facebook-open-graph-meta-for-wordpress/facebook_opengraph.php on line 252 Warning: Use of undefined constant og_type - assumed 'og_type' (this will throw an Error in a future version of PHP) in /var/www/snigel.nu/public_html/wp-content/plugins/facebook-open-graph-meta-for-wordpress/facebook_opengraph.php on line 254

Learning Chinese using ZDT’s interval filter

Visit Hacking Chinese instead: This post about studying Chinese is partly or completely obsolete. A revised version, along with much more related to language learning can be found at Hacking Chinese. This post is kept here for the sake of consistency.

Update: Much of what is written in this article is irrelevant or obsolete, even if the underlying arguments are still valid. I no longer use the ZDT software, but have changed to Anki, which is superior in almost every regard. Check it out if you haven’t already!


There are many tools out there which will greatly facilitate learning Chinese (I’ve discussed some of them here). For various reasons, I’ve been using a program called ZDT (Zhongwen Development Tool) almost from the start, which is about two years now. The program isn’t perfect, but it’s by far the best I’ve found, mainly because of one single function: the interval filter. This post is not meant to be a review of the program or its functions, but rather an attempt to explain why this filter is the best thing since sliced bread and how I use it in my everyday learning. I realise that a general post about ZDT would be a good idea, but I’ll leave that for later.

In ZDT, each vocabulary item has some data attached to it, most importantly how many correct and incorrect answers you’ve had for that specific word and when it was last checked in a flashcard session. The interval filter is very simple in its basic function: it simply looks at each character and determines how well you know it (based on the balance between correct and incorrect answers), and then checks when you last reviewed it. Depending on how well you know a word, the program will then determine if it’s time to review it again or not, everything based on your familiarity with the card (again based on test record).

Benefits of the interval filter

Correctly set-up (more about that later), the interval filter is all you need to expand and maintain vocabulary. Let’s take a look at that sentence again: the interval filter is all you need to expand and maintain vocabulary. Yes, I’m serious, I hardly use anything else. How is this possible? There are two areas in which the interval filter proves its usefulness.

First, when studying a new chapter, I simply enter all the words into a new category and immediately start a new flashcard session for that category (no, I haven’t made an attempt to learn the words first). What will happen now is that some words I will know from before without having to study. These are sorted out and won’t return for another 24 hours (see about tweaking the filter below). The rest of the characters automatically get -2 points because I don’t know them. When they appear, I study them carefully, perhaps looking up radicals, composite parts and whatever. At the end of the session, these words come back and usually I’m able to nail around 90 % of them the second time around, which means they end up on -1 point each. The remaining cards will have even more minus points depending on how many rounds you need to finish them off. Repeat this at least once within the first day. Note that this will leave you with flashcards ZDT thinks you ought to study now (some had -1 or less, which means you need more than one session to bring them to a positive value), and even if you do two more session the same day, some will still have a negative score and thus appear in the test. This is fine.

The next day, all characters will return again, even those you answer correctly the first time. This is essential for long-term retention. Most of the rest won’t be a problem, but some characters or words always persist and seem impossible to learn. Don’t worry, these will retain a very low score and you will be harassed by them once or twice every day until you know them. The characters will slowly advance up the ladder and out of the way, occurring more and more infrequently. Thus, the only thing you need to do is do at least one ZDT flashcard session every day, but two might actually work a lot better because it will the decrease the load and make sure you get the really difficult ones more often.

Second, the interval filter is perfect for revising old characters and words (this is rather obvious and probably the main reason why it was created in the first case). You never ever have to care about which words to review, you seldom have to waste time studying words you already know. Most other revision methods will force you to check ten words you already know for every word you actually need to study; the interval filter greatly reduces the time you thus waste on things you already know. It makes it possible to remember all the words you’ve ever learnt, without putting unreasonable strain on you.

How to use the filter

If you’ve just started studying Chinese, well, congratulations, the transition to using a filter like this is painless. When you have time, simply select all the categories you have and start a flashcard session. Do that as often as you can, keeping the characters you need to review at zero. If you’ve been studying Chinese for a long time and have thousands of words, it’s a lot tougher. I would suggest gradually moving over to a time interval system, but you might have to open the ZDT file containing the words and manually alter the points for your old words and start out at level higher than zero. Having 5000 characters all starting from zero would be an insurmountable obstacle, so don’t do it.

This method currently has one drawback, and that is that in ZDT, you can’t distinguish between different kinds of flashcard sessions. For instance, the program scores a pinyin recall test in the same manner as a self-review test. My own solution to this problem is to use two separate “super categories”, one for characters I want to be able to write (i.e. all characters in the Practical Audio-Visual Chinese series) and another for those I’m satisfied if I know the meaning and the pronunciation of. Then I simply run self-review for the first section and pinyin recall for the second. This isn’t perfect, but it has worked fine so far. I currently have 3200 and 3600 flashcards respectively in these two categories and this is probably the only way to handle such a large quantity of words.

Tweaking the filter

The filter can of course be tweaked, which is what I’m going to talk about now. First, the points you gain or lose for correct or incorrect answers can be altered. The default values are 1 point and 2 points respectively, and I see no serious reason to fiddle with these numbers. The reason the penalty has to be 2 and not 1 is that the character will return at the end of the test, which means that you will always get at least one correct answer. Changing both values to 1 would therefore mean that you can never lose points unless you answer incorrectly twice in the same session, which isn’t very likely.

Then there is the intervals themselves, and I recommend changing these frequently in the beginning to gradually find ranges which suit your learning curve. For instance, if you find that you continuously run in to characters you added a week ago, but that you never answer correctly, you have to change the intervals in the lower range of the spectrum. If you find that old characters which you know intimately keep bothering you although you never answer them incorrectly, you need to expand the intervals in the upper range. I have tweaked a lot and I currently use 1, 1, 2, 4, 7, 11, 20, 35, 50, 75, 100, 150, but this is of course no guarantee that it will work for you.

Conclusion and discussion

The ZDT interval filter is indeed the best thing since sliced bread and it is a marvellous tool for learning Chinese. I can envisage few other ways of building a solid vocabulary base (a friend uses a sort of manual interval filter with physical flashcards, but that seems too impractical when you reach several thousands of flashcards). I think many people use ZDT or other similar programs without realising the potential of the tool they’re using, something I hope to have changed at least slightly by writing this article. If you have any feedback, please post a comment. I would especially be interested in other people’s values for the intervals, provided you aren’t using the default ones, but any constructive feedback is more than welcome. Thanks to Chris for a wonderful program and thanks to you for reading this!

Tags: , , ,

  1. Sebastian’s avatar

    Har lite panik här. Med windows 7 försvinner vissa tecken i ZDT och ersätts av fyrkanter. Det handlar om uppskattningsvis var 5:e tecken och endast de icke-traditionella. Jag har lyckats få alla tecken att visas i listorna när jag utforskar mappar men ej då man får upp dom i flashcard-format. Har du något tips?

    btw. blev nominerad till Nanjing Daxue till hösten.


    1. Olle Linge’s avatar

      Jag kör Linux här så jag har ingen direkt erfarenhet av det du frågar om. I ZDT styrs typsnitten individuellt för de olika delarna, det vill säga du kan ha en annan font för flashcards än vad du har för listorna. Kolla så att det är samma, se till att hitta en som fungerar överallt. Är det redan samma har jag tyvärr ingen aning.

      Angående det andra, vad innebär att bli nominerad? Stipenidum? Studieplats? Oavsett vilket låter det coolt, du är en sådan person som förmodligen får ut mer av att bo här än vad jag själv får. Jag tror mina två år här får räcka; jag vill ha examen i Sverige, men att bo här någonstans är nog ett måste för att komma igång ordentligt.


    2. Sebastian’s avatar

      Det betyder att Liu skickar en ansökan till Nanjing Daxue i mitt namn. Vi har 3 platser där enligt uppgift och både jag o anton har blivit nominerade dit, tanken är att vi ska plugga systemteknik där i 1 år (varför inte?). Har du inte fått ut sjukt mycket av att bo där? Bör ju vara riktigt bra på kinesiska nu och så har du ju skaffat flickvän så helt misslyckat kan det ju inte vara.


      1. Olle Linge’s avatar

        Coolt! Jag önskar er båda lycka till. :) Jag har förstås fått ut hur mycket som helst av att bo här, det råder det ingen tvekan om alls. Vad gäller språk har jag förstås ganska långt kvar innan jag är “nöjd”, om det nu finns något sådant, men jag känner att jag kommit en god bit på vägen.


      2. Chris’s avatar

        I hadn’t thought of going in and giving cards I already know a positive score, before I come across them in a flashcard session.. will save me a lot of time!


      3. Chris’s avatar

        Where do you go to change that though..? eheh


        1. Olle Linge’s avatar

          In ZDT, you can make a backup, edit the backup file directly with any text editor and then restore data from your modified backup. I’m not sure how it works in Anki. However, most of the benefits I bring up in this article should already be obvious to you, because, as you said, it is the very foundation of the software you’re using!


          1. Chris’s avatar

            Thanks, I was looking at user.script and zdt.backup was a hidden file.