Semantic Search in Python for hobbies + latest news
You might want to use "random indexing". It can do exactly what you need, it calculates a feature vector for each word and defines a metric of semantic similarity between two words.
All you need is to grab a copy of An Introduction to Random Indexing and a semanticvectors package to get you started ...
I hope this helps, if you need further advice, please comment ...