Search code examples
machine-learningcomputer-visionocrchinese-locale

How to obtain the decomposition of a Chinese character


I'm a complete beginner in character recognition as well as machine learning in general.

I want to write a program which is able to process the following input:

  • A Chinese character (in either pixels of vector format), for example:

enter image description here

  • The decomposition of the previous character, ie for the example above:

enter image description here and enter image description here and the information that they are aligned horizontally.

The decomposition of a Chinese character is always 3 things: 2 other characters and the pattern describing how the 2 character form the initial character (it is called the compoisition kind). In the example above the composition kind is "aligned horizontally".

Given such an input, I want my program to tell which pixels or which contours in the initial character belongs to which subcharacter in its decomposition.

Where to start?


Solution

  • Well, I can't say that I provide a full answer but think about:

    1) Reading the papers on how Google Translate app works. You know, when you point your iPhone's camera at text and it instantly translates the text (even preserving the fonts!). It supports the chineese language so it would be interesting for you to see if they solved similar task and how they did it

    2) Another big question to answer - how to prepare your input data. You will need to provide at least some input data - i.e. decomposition of at least some characters. Try to do this manually for couple of characters and try to formalize what exactly you are doing - this will help you to better formulate what exactly you want your algorithm to do.

    3) Try to use some deep neural net with your data from #2. Use something with convolution layers. Pre-train it with RBM (restricted boltzmann machine). After that - just take a really close look into the resulting neural network. Don't expect to get any good results, but looking into the ANN layers will help you to understand what the net have learned from data and might provide some insight into where to move next