Keyboard Assistant

IvanPoblette

2025-08-11

Motivation

Helping users with a better typing experience by suggestion words bases on the content that the user had previously wrote:

Keyboatd.
Keyboatd.

Algorithm

The currently used algorithm is an ngram model. Particullary I have decided to used a trigram model with backoff. Which basically tries to use a trigram model but if no word is available it will backoff to use a bigram model. Ngram model tries to maximize likelihood based in probabilities and wordcounts of the current corpus. We dediced to use just the ~16,000 words which will give ~95% coverage os used words.

trigrm trigrm

Functioning app

The current app gives suggestion of the next three words as the user is typing in the textbox. To select any suggestion just click the respective button. To have a better UX suggestions are only give when the last character of the input is a blank space.

As we are using a backoff model, It is guaranteed that the user always will have an input

trigrm
trigrm

Future work

Although the current algorith is functional, it has a lot of improvement opportunities. Here are some action items to improve the model