There is a great work done by Shaul Markovitch and Evgeniy Gabrilovich, described in their article: Wikipedia-based Semantic Interpretation for Natural Language Processing.
The idea is as follows: Index wikipedia (or other context source).
Creating a mapping for each term (word): term -> articles in which the term appears in.
Each term is basically represented by a vector - for simplicity, let's say it is a binary vector - so for the term t the entry d will be '1' if and only if the term t appears in the document d.
Now, given these vectors - to find if two terms t1, t2 are similar - all you have to do it take the vector similarity of the two vectors that represent t1 and t2.
Note: The binary vector is a simplification, in fact the article uses the tf-idf score, that the term t has in a document d.