I made a free, open-source tool for learning Chinese. You can check out [a demo](https://github.com/mreichhoff/HanziGraph#demo), or [use it with simplified characters](https://hanzigraph.com/), [traditional characters](https://hanzigraph.com/traditional), or (less fully featured, but it’s something) [Cantonese](https://hanzigraph.com/cantonese).
The key ideas are twofold:
**To emphasize the connections among words and characters you learn.**
It does this by:
* emphasizing the way hanzi are most commonly connected to form words in a node network diagram
* showing the ways words are most commonly connected in sentences via sankey diagrams ([like this](https://hanzigraph.com/simplified/帮助/flow)). For a beginner example, it’s useful to see that [时候 is most often preceded by 的](https://hanzigraph.com/simplified/时候/flow).
It also has tens of thousands of example sentences that tie it all together.
**To ensure relevance.**
It does this in a few ways. One is by generating graphs that can answer the question: “if I learned the words or characters in order of frequency, up to this word or character, what percentage of text would I understand?” This enables beginners to seek out words that are needed, and advanced learners to understand how far along the frequency curve the word or character is. I’ve found this extremely useful when deciding what to prioritize while watching TV or reading.
Another is via the diagrams incorporating frequency data: the tallest bars in the flow diagrams are the most common [collocations](https://en.wikipedia.org/wiki/Collocation), the node networks are color coded, and the sentences are always sorted by frequency. This helps you learn the most common contexts a word is used in.
The tool should enable finding any Chinese or English word [in CEDICT](https://www.mdbg.net/chinese/dictionary?page=cedict), and you can also type in a bunch of text and it’ll break it down into words for you ([like this](https://hanzigraph.com/simplified/%E6%88%91%E6%9B%BE%E5%9C%A8%E4%B8%80%E5%AE%B6%E9%A5%AD%E5%BA%97%E5%B7%A5%E4%BD%9C%E8%BF%87)).
It also has built-in flashcards, which you can study in the tool or export to anki, in-browser TTS to hear pronunciation, stats about what you’ve seen and studied, you can deeplink to any word you want (like [study](https://hanzigraph.com/simplified/study), [右轉 in traditional](https://hanzigraph.com/traditional/%E5%8F%B3%E8%BD%89), or [行路 in Cantonese](https://hanzigraph.com/cantonese/%E8%A1%8C%E8%B7%AF)), and more.
Let me know of any feedback, and feel free to [check out the code](https://github.com/mreichhoff/HanziGraph)! The tool is completely free, with no monetary interest for me. I just think it’s fun to use and work on, so I thought I’d share.
Note: I [posted an earlier version](https://www.reddit.com/r/ChineseLanguage/comments/tcgps5/free_tool_to_learn_hanzi_get_example_sentences/) of it last year, and you may have a cached version. Try incognito or opening/closing the tab if it doesn’t look like [the demo](https://github.com/mreichhoff/HanziGraph#demo).
Awesome! Thank you for sharing!
This is so great!!!! well done! are you still developing this 🙂
Thank you
This rules. Considering making it an app?
Interesting, there’s also decomposition data for individual characters ([https://github.com/amake/cjk-decomp](https://github.com/amake/cjk-decomp)), I’ve been planning to use this to generate flashcards where you are presented with a “minimally contrastive pair” of characters, where the task is to differentiate between them (sound/meaning). This is something used in ML but also in real learning and is useful in order to learn to focus on and spot the small differences. Maybe that could be something you could incorporate?