the python nltk but with a caching database as the backend (for really large texts)