For word-similarity comparisons, it is customary to normalize all vectors to be of unit-length. This is done automatically before returning similarity results, and the normed vectors are cached in a property `syn0norm` (instead of `syn0`). You can take a look at the `init_sims()` method to see what's done, including an option for replacing the non-normalized vectors entirely (for example if desired to save memory).
It's not certain that such normalization is always a good or necessary step, for other uses of word-vectors. For example, words with more generic meanings, or multiple competing senses, can tend to have smaller magnitudes, whereas words with stronger/singular meanings can tend to have larger magnitudes. This could be a useful signal for some purposes; in particular when simply averaging words together as a simple vector for a longer text, this larger-contribution from less-ambiguous words may desirable – an alternative to other frequency-based ways of weighting words differently.
- Gordon