Preprocessing text input to a machine-learning algorithm
Given that you are already using Python, I would highly recommend using Spacy (base text parsing &amp; tagging) and Textacy (higher level text processing built on top of Spacy).  It can do everything you want to do, and more, with one function call:

http://textacy.readthedocs.io/en/latest/api_reference.html#textacy.preprocess.preprocess_text

For your further travels in text based machine learning, there are also a wealth of additional features, particularly with Spacy 2.0 and its universe.