<p>If like me you need to work with data that contains a mix of languages, you may be interested in my package that helps you translate word vectors between languages: <a href="https://pypi.org/project/transvec/" rel="nofollow noreferrer">transvec</a>.</p>

<p>Bear in mind that while you can use Word2Vec on any language, there are no pre-trained models (that I'm aware of) that have been trained on multiple languages. Unless the mixed-language corpora also included information about translations between the languages, they probably wouldn't be of much use anyway.</p>

<p><code>transvec</code> solves this problem by allowing you to convert word vectors between models, so you can use one model for each language and use <code>transvec</code> to find out which words in language A (the <em>target</em> language) are most similar to a word from language B (the <em>source</em> language). If you're interested in how this works, check out the README for the Python package or the <a href="https://arxiv.org/pdf/1309.4168.pdf" rel="nofollow noreferrer">original research paper</a> (which I just realised is the same paper from @gojomo's answer!) that describes the technique in more detail. </p>

<p>Here's a small example that shows how you can compare Russian word vectors to English word vectors in a meaningful way:</p>

<pre><code>import gensim.downloader
from transvec.transformers import TranslationWordVectorizer

# Pretrained models in two different languages.
ru_model = gensim.downloader.load("word2vec-ruscorpora-300")
en_model = gensim.downloader.load("glove-wiki-gigaword-300")

# Training data: pairs of English words with their Russian translations.
# The more you can provide, the better.
train = [
    ("king", "царь_NOUN"), ("tsar", "царь_NOUN"),
    ("man", "мужчина_NOUN"), ("woman", "женщина_NOUN")
]

bilingual_model = TranslationWordVectorizer(en_model, ru_model).fit(train)

# Find words with similar meanings across both languages.
bilingual_model.similar_by_word("царица_NOUN", 1) # "queen"
# [('king', 0.7763221263885498)]
</code></pre>

<p>Don't worry about the weird POS tags on the Russian words - this is just a quirk of the particular pre-trained model I used.</p>

<p>So basically, if you can provide a list of words with their translations, then you can train a <code>TranslationWordVectorizer</code> to translate <em>any</em> word that exists in your source language corpus into the target language. When I used this for real, I produced some training data by extracting all the individual Russian words from my data, running them through Google Translate and then keeping everything that translated to a single word in English. The results were pretty good (sorry I don't have any more detail for the benchmark yet; it's still a work in progress!).</p>
Does word2vec supports multiple languages?
<p>I want to know if we can use word2vec algorithm to train models for languages other than English like Spanish, Chinese,Italian ?</p>