Hidden Markov models (HMMs) are used in a system for recognizing on-line English characters. Input data from a tablet is represented as chain codes and HMMs are trained in character units for recognition. During HMM training, imaginary strokes are inserted into actual character strokes of input data and distances between adjacent points of the strokes are normalized. The input data is converted into chain codes, HMM-trained and then constructed into circular HMMs. Characters to be recognized are inserted with imaginary strokes, normalized, converted into chain codes, and then fed into the constructed circular HMMs, thereby enabling recognition.