Wow - it’s possible to represent words as vectors so that vector(‘Paris’) - vector(‘France’) + vector(‘Italy’) results in a vector that is very close to vector(‘Rome’): https://code.google.com/p/word2vec/