How to train an existing word2vec gensim model on new words? According to gensim docs, you can take an existing word2vec model and further train it on new words.


  The training is streamed, meaning sentences can be a generator,
  reading input data from disk on-the-fly, without loading the entire
  corpus into RAM.
  
  It also means you can continue training the model later:
  
  
    
      
        model = Word2Vec.load("word2vec.model")
        model.train([["hello", "world"]], total_examples=1, epochs=1)
      
    
  


Source: docs

But when I actually try it, it doesn't seem to learn the new terms.

from gensim.models import Word2Vec

# initial a model
model = Word2Vec([["cat", "say", "meow"], ["dog", "say", "woof"]], min_count=1)

# count terms in model
print( len(model.wv.vocab) )

=&gt; 5


# train existing model on new terms
model.train([['potoatoes', 'and', 'farmers']], total_examples=model.corpus_count, epochs=model.epochs)

# count terms in model
print( len(model.wv.vocab) )

=&gt; 5


After adding new terms in the 2nd code block, the model still only has the same number of terms as before.

How can I make this work?
Add this line before training with the new terms. 

model.build_vocab([['potoatoes', 'and', 'farmers']], update=True)


After training, 

print(len(model.wv.vocab))
=&gt; 8