1. A method comprising: receiving an input character, wherein the input character is composed of logical structures; identifying a layout of the logical structures in the input character, wherein the one or more logical structures in the input structure are associated with one or more one character layout templates, individual character layout templates representing an intermediate layout of an individual logical structure in the input character; selecting, from a plurality of classifiers, individual classifiers for individual corresponding logical structures in the input character, wherein the selected individual classifiers comprise: left-right classifiers to classify at least one left logical structure comprising a left part of the input character and at least one right logical structure comprising a right part of the input character; top-bottom classifiers to classify at least one top logical structure comprising a top part of the input character and at least one bottom logical structure comprising a bottom part of the input character; middle classifiers to classify at least one middle logical structure comprising a middle part of the input character between at least two adjacent parts of the input character; or outside-inside classifiers to classify at least one outside logical structure comprising an outside part of the input character and at least one inside logical structure comprising an inside part of the input character; classifying the individual logical structures using the selected individual classifiers to generate one or more outputs; combining the one or more outputs from the one or more selected classifiers to form an output character vector; and wherein the selecting, classifying and combining are implemented at least in part by at least one processing unit.