<p>Common word2vec libraries, like gensim, do not provide such a facility for merging models. Inherently, the coordinates of words within-a-model are only comparable, in terms of distances and directions, with other words in-the-same-model – only by bring incrementally trained together do they get nudged to meaningful relative positions. </p>

<p>The most straightforward approach is, as @mujiga's answer suggests, to combine the two training corpuses which include all desired words, and train a new model on the combined texts. (And ideally, you'd shuffle the two corpuses together, rather than simply concatenate them, so that no words appear only in the beginning or end of the full set-of-texts.)</p>

<p>A more complicated approach is possible, when there are a lot of overlapping words. You can pick one of the two "spaces" as the coordinate-system you'd like to retain – probably the one with more words, having been trained on more texts. Call that the 'reference' model. </p>

<p>You would take a large number of the words (maybe all) that are shared between the two models, and learn a 'translation' operation that projects those words' coordinates in the smaller model to roughly the right places for those same words in the reference model. (This is itself typically a mathematical optimization problem.) Finally, you'd use that translation operation on the non-shared words, to convert coordinates of the smaller model into the reference-model coordinate space – and then construct a new data structure that includes all the original reference vectors, plus the translated vectors. </p>

<p>This is the technique used by <a href="https://arxiv.org/abs/1309.4168" rel="nofollow noreferrer">one of the original word2vec papers</a> for machine translation. It's also mentioned in <a href="http://arxiv.org/abs/1506.06726" rel="nofollow noreferrer">section 2.2 of the skip-thoughts paper</a> as a way to leverage words from another source when they don't appear in a local corpus. There's currently (August 2017) <a href="https://github.com/RaRe-Technologies/gensim/pull/1434" rel="nofollow noreferrer">some work-in-progress to add a facility for learning-the-translation</a> in gensim, but it's not yet fully-tested/documented or part of any formal release.</p>

<p>But really: the safe and straightforward thing is to train a new model on a common corpus. </p>
How to create a model using trained models?
<p>I have created two models using gensim word2vec. Now I want to merge these two models in a way that I get the union of these two models.</p>

<p>Eg: </p>

<ul>
1. Model one has following vocabulary
</ul>

<pre><code>{"Hi", "Hello", "World"}
</code></pre>

<ul>
2. Model two has the following vocabulary
</ul>

<pre><code>{"Hi", "King", "Hello", "Human"}
</code></pre>

<p>Now I want to use these two models and create a new model which will have the following vocabulary</p>

<pre><code>{"Hi", "Hello", "World", "King", "Human"}
</code></pre>