Ever had that problem when you know of the concept yet can't recall the word? Thesaurus are usually pretty poor at this task, because it's built to link individual words to each other, instead of definitions to a single word.
This solution is built from WordNet through NLTK and TextBlob. It utilizes tfidf implemented by Elasticsearch to index each word by their definitions.
# install elasticsearch via https://www.elastic.co/downloads/elasticsearch git clone firstname.lastname@example.org:whosken/reversedict.git cd reversedict pip install -r requirements.txt python cli.py --index
Basic look up
import reversedict reversdict.lookup('run fast')
python cli.py 'run fast'
python cli.py 'run fast' --synonym sprint