I like how it seems very easy - you just need good training data with enough examples per word (or category). The results are quite accurate but not perfect if the input text has many errors or misspellings/typos - which makes sense because they're using machine learning to build their models from lots and lots of example texts. If there's any problem at all, be sure to have some sort of human proofreader involved as well! It helps me type faster without making mistakes by predicting what my next character will likely be.