Doctor Johnson


Dr. Johnson is a rapid prototyping framework for language predition applications in JRuby. It's loosely based on Rails and Django, but it's more generic than those web-focused frameworks.

I developed it while at TouchType, as part of our initiative to:

  • Develop quantitative measurements for what constitute good text predictions
  • Develop qualitative processes for cleaning bad text predictions
  • Experiment with and test improvements to the Fluency prediction engine
  • Prototype web-based language interfaces

I also used Dr. Johnson within the company to help train new employees in test-driven development. By pair programming new products or new features, we would run through small iterations of the larger development process we adopt within the company.

Here are some of the projects I developed using Dr. Johnson:

The Prediction Console:

A console for interacting with TouchType's Fluency library.

The Evaluator:

A system for generating quantitative scores of statistical language models:

The Generator:

A system for generating language models of specific corpora, whether serious (medical language models) or for fun (famous poets, novelists, and performers). The Console screenshot above shows an example of predictions based on William Gibson's novel Neuromancer. I am using these language models for an ongoing research project on famous literary styles. Gibson's work, for example, is famous for what is called an "Eyeball Kick," a term coined by Allen Ginnsberg.


In progress at the time of writing (Dec 2010), this project merges Dr. Johnson with Rails 3.0 to permit the rapid prototyping of HTML5 language-focused applications.

Colour Predictions:

This clever extention to Dr. Johnson was made by Douglas Orr, longtime friend and now coworker at TouchType. He modified Dr. Johnson's evaluator to output color-coded text, visually indicating how the library responds in varied language contexts. It's extremely useful for debugging.