I've been using SwiftKey X (currently version 2.0.5.something), since it came out free on Amazon's app store. It does hidden Markov model type training to sort out what words come after what other words, and the nifty new feature is training from your Facebook, Gmail, etc., giving it a much larger corpus.

And it works. It truly does.

Except, for some reason, with proper names. If I type "David", it then offers me "Beckham", who, I promise you, is not somebody I regularly type about. Similarly irrelevant words are often offered to me that probably make sense globally, but have nothing to do with my own usage.

Anybody sorted out a way to fix this sort of thing? Or, anybody else sorted out a different Android keyboard that's similarly clever at the hidden Markov chain trick? One other one that I briefly tried was A.I. Type, but their ethical code gives me pause. They're doing a lot of work on a central server, which seems like all kinds of bad from a security perspective, versus SwiftKey who does all the work locally on your phone (although they use their own server to snarf your Gmail writings, if you enable that).