Handwriting recognition systems provide a unique way for users to interact with a computing device. Rather than input text by pressing keys on a keyboard, a user may choose to submit text via handwriting on a medium that can recognize and translate the writing into text. Such handwriting recognition systems can operate in different manners. Some handwriting recognition systems operate in a more flexible manner by recognizing freeform handwriting. These systems do not force a user to write in a specific manner defined by a given set of letter formats. Not only does the ability to read freeform handwriting provide more comfort for the user, it reduces time expended by the user to learn a special handwriting format and adapt to the format each time he/she uses the program.
Accuracy of handwriting recognition systems has drastically improved. Recent systems use a variety of techniques to interpret a wide range of handwritten text and perform fairly well in producing an initial interpretation of that text. However, there will always exist ambiguity in handwritten input and systems will probably never be able to perfectly translate handwriting into the user's intended text. In current systems, when interpretations of handwriting do not match the intention of the user, the user has various options to make corrections in order to manually transform the initial interpretation into the intended text. For example, the user can typically rewrite all or part of the word, add, move, or delete certain characters, select from a list of probable word choices, or retype the word using a virtual or hardware keyboard. While these techniques can eventually achieve the desired results, the required steps are inefficient and impose a lot of work on the user—not only does the user have to decide which technique to use for any given correction, the user has to implement manual steps to correct every error in the initial typed interpretation.