training routine implemented with scikit-learn. state saved via pickle. need to figure out how to add new keywords still.