Capstone Project Presentation

Alejandro Fraga (enframy@gmail.com)
Dec 2016

Solution Description

This application is designed to enhance user typing experience on mobile devices.

  • Typing on small screens can be challenging as most of the times is with one hand
  • An efficient prediction application will improve the overall user experience
  • The model should operate with limited resources and should not impact device performance

  • Shiny Application Link - https://enframy.shinyapps.io/NextWordPrediction/

The prediction model

The Stupid Backoff algorithm used by Google was considered for this application.

  • It creates a smoothing approximation for very large n-grams.
  • Gives up the idea of trying to make the language model a true probability distribution
  • Instead, if a higher-order N-gram has a zero count, the model backoff to a lower order N-gram
  • Weights are assigned by a fixed (context-independent) amount

How to use the application?

  • Available on Shiny on https://enframy.shinyapps.io/NextWordPrediction/
  • Go to “Next Word Prediction” tab and start typing on the text box presented
  • The prediction algorith will display 3 recommendations based on sample collected
  • Click the “About This Application” tab for references and more details about the model

Future Enhancements

  • Improve efficiency by using a larger corpora with frequent resampling
  • Reach more users by including additional languages
  • Validate additional models to improve accuracy

Apendix - Requirements

As part of the Coursera Capstone project in cooperation with SwiftKey, the requirements requested include:

  • Analyze a Corpora of text from different sources (news, blog, and Twitter) and create a sample
  • Tokenize the sample and create n-grams, find frequencies of common n-grams needed for the predictive model
  • Build a model that takes any input from the user and allow to predict the next word
  • Create and deploy a Shiny application to allow users get a prediction of the next word as they type