I'm trying to get as much in-context kanji exposure as possible.

But since I know only around 200 kanji, everytime I try to practice reading it on real sentences I basically don't understand 99% of the remaining kanji and I can't make sense of the whole sentence, so it doesn't have any real impact.

What I'm looking at is any resource (app of program, I don't mind) that would filter a database of japanese sentences to provide me with sentences that don't contain too much kanji I don't know. Of course, that would require specifying the set of kanji I can read so far.

I don't know if something like this exist, but if it doesn't that's a real shame, because it seems really doable. Internet provides us with a virtually infinite pool of open-access sentences in any language (copyright-free documents/arcticles/books/etc), and many website (such as linguee) rely on it.

Would anyone happen to know a resource that resembles it ?

  • I don't think that would be so useful for this specific objective (exposure) : my purpose is to shower my brain with sentences that contain the kanji I can read, sentences that I can read fast and over and over, so that my brain becomes familiar with seeing within a sentences and making sense of it being part of a structure. And I am convinced that it will be much more effective if it's only sentences that I can make sense of naturally. Commented May 28, 2019 at 19:31
  • Basically you want access to sample sentences which maximize your exposure to already-learned kanji, giving you frequent contextual learning. This is a good idea in my opinion and I suspect it is possible. However I am not at all technical. Ideally, you would need a large corpus which is curated by native speakers. Then you need a reference of known-kanji to cross-check that corpus for. You also need some way to generate useful output for transferring to your database or learning software.
    – kandyman
    Commented May 28, 2019 at 20:32
  • That's precisely what I'm looking for. I was hopping that somewhere in the wilderness of Japanese-learning resources, there already was such an app... Commented May 28, 2019 at 21:05
  • There are addons for Anki which auto-generate sample sentences based on what the contents of a specific text field are. The underlying process might be able to be adapted to further filter the sentences. However, the main problem with this idea is that if you only know a small number of kanji, no sentences might be generated. Even one kanji beyond the search threshold would exclude a sentence.
    – kandyman
    Commented May 28, 2019 at 21:08
  • ankiweb.net/shared/info/2413435972 - you can find the addon and the example sentences database there.
    – kandyman
    Commented May 28, 2019 at 21:09
  • Thanks, that might help me a lot ! Commented May 28, 2019 at 21:11
  • This reminds me of Kanji Word Association Tool, but that one gives you single words rather than full sentences.
    – kuchitsu
    Commented May 29, 2019 at 7:50
  • @kuchitsu That is a great tool. I didn't know about it, so thanks for your comment. I have included it in my answer to this question, but the credit for mentioning it goes to you.
    – kandyman
    Commented May 29, 2019 at 16:23
  • Are you comfortable on the command line? I can give you a simple 20 line python script that will do what you want. Commented Jun 1, 2019 at 4:21
  • @HarmonicSun Why not use massimmersionapproach.com/table-of-contents/anki/morphman Commented Jun 2, 2019 at 9:13

2 Answers 2


This solution requires python 3, and working on the command line. First, get a hold of a utf8 encoded list of sentences you want to filter through. kandyman provided one in his answer here. Then create another plain utf8 text file containing all of the kanji you know. It should look something like this:


Spaces and newlines don't matter. Name the file 'known_kanji.txt'. Then create the following python code file

import sys

def is_kanji(c):
    return c >= u'\u4e00' and c <= u'\u9fff'

known_kanji = ''
with open('known_kanji.txt') as f:
    # remove all whitespace characters
    known_kanji = ''.join(f.read().split())

for line in sys.stdin:
    do_print = True
    for c in line:
        if is_kanji(c) and not c in known_kanji:
            do_print = False
    if do_print:

Name it 'filter.py', and run the following command:

> cat sentences.txt | python3 filter.py >> my_sentences.txt

That will copy all the lines from 'sentences.txt' to 'my_sentences.txt' which do not contain any kanji which are not present in the file 'known_kanji.txt'.


I think I can offer a partial solution, or at least a temporary workaround until someone finds a more direct way. This is not exactly what you wanted but it might help you anyway.

This is a two-step solution using the resources in the comments of your original post.

STEP 1: Generate a list of words containing the kanji you know using the tool described below.

STEP 2: Manually search an example sentences database to find sentences matching the words generated above. Reject the sentences containing kanji you don't recognize.

STEP 1: Using the Kanji Word Association Tool (download here) you can input the kanji you have learned. The tool will generate a list of words which contain only those kanji. Obviously, the more kanji you know the more words will be generated in the output. Since you said you know around 200 kanji, which is a relatively small amount, the output should be manageable.

STEP 2: Take the list of words generated above and manually search a word by opening the example sentences database (download link here) and doing a simple search for that item. For example, let's say you are studying the kanji 今. Let's say Step 1 yielded the word 今日. Now you can just do a simple search for 今日 in the example sentences database and you have a sample sentence which contains 今. You will have to manually select or reject the sample sentences based on whether they contain a lot of kanji you don't recognize. But I think you will find some sentences which are fit for your purpose.

This isn't an ideal solution but I think it is definitely possible to adapt something like the Kanji Word Association Tool to produce sentences as output instead of words.

Another possible method would be to use the Example Sentences Database as the source file for Kanji Word Association Tool. When it generates words only containing known kanji, you can then do a simple search for each word generated - this will bring you back to the sentences you need in the source file. It has the effect of filtering the example sentences database. I'm not sure how well this would work, but I think it is worth a try.

  • Great answer, thanks ! Commented Jun 7, 2019 at 14:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .