One of the common questions we face from our clients and users is that ‘what sort of dictionary do we use for accurately predicting the transliteration output’. Quillpad actually does not use any dictionary based methods for predicting the transliteration for a given input. Given that every Indian language word will have multiple possible ‘correct’ spellings when written in English, it is impractical to maintain a dictionary of all possible ‘correct’ spellings as a wordlist mapping to corresponding Indian language output. For many Indian languages, it is not possible to have a good wordlist even in their native script. Because, unlike in English, the words in some Indian languages can take multiple forms (a vowel or two could be skipped or could be replaced with another vowel, some repeating consonants are omitted etc.), all of which are accepted as correct representation of a given word. So, even in their native scripts, it is impossible to have a practically manageable wordlist for Indian languages which will cover different phonetic forms, dialects etc.
Quillpad touch offers autocomplete suggestions as you type. The suggestions are ranked in the decreasing order of their statistical importance. To implement this feature we considered using tries. But we did not want to pay the initial cost of building the trie. This was important to us because we wanted the app to launch quickly and be usable right away. We ended up using binary search on plain old arrays instead.
Quillpad Touch gesture panel uses logistic regression for recognizing handwritten gestures. Our first choice for this purpose was HMMs. Given that we would have the stroke paths for the gestures, using HMMs seemed a natural choice. But such online recognition (using the stroke path direction) would require us to collect a lot of training data to account for variability in number of strokes and corresponding path directions for a given gesture. Ignoring that ‘additional information’ of path and choosing to do off-line gesture recognition is actually advantageous here. This article explains how we reduced the training data requirement to minimal by controlling the variance in user inputs by designing an appropriate user interface and how we employed simple logistic regression model to get high accuracy.
Simple answer is that the existing ones didn’t appeal to us. But, of course, there is more to it. Our thought process in designing the Quillpad Touch keyboard layout is directed by the following factors:
- The keyboard should be compact and fully available in one view.
- Most errors while writing Indian language words are due to confusion between similar sounding short or long matras and similar sounding aspirated and un-aspirated consonants.
- On touch devices, users mostly type with one or two fingers. It may be better to optimize typing speed using prediction or auto-suggestion than designing complicated layouts.