title: Retraining pre-trained word embeddings in Python using Gensim
body: <p>I want to retrain pre-trained word embeddings in Python using Gensim. The pre-trained embeddings I want to use is Google's Word2Vec in the file GoogleNews-vectors-negative300.bin.</p>
  
  <p>Following Gensim's word2vec tutorial, "it’s not possible to resume training with models generated by the C tool, load_word2vec_format(). You can still use them for querying/similarity, but information vital for training (the vocab tree) is missing there." 
  Therefore I can't use the KeyedVectors and for training a model the tutorial suggests to use:</p>
  
  <pre><code>    model = gensim.models.Word2Vec.load('/tmp/mymodel')
      model.train(more_sentences)
  </code></pre>
  
  <p>(<a href="https://rare-technologies.com/word2vec-tutorial/" rel="nofollow noreferrer">https://rare-technologies.com/word2vec-tutorial/</a>)</p>
  
  <p>However, when I try this:</p>
  
  <pre class="lang-py prettyprint-override"><code>from gensim.models import Word2Vec
  model = Word2Vec.load('data/GoogleNews-vectors-negative300.bin')
  </code></pre>
  
  <p>I get an error message:</p>
  
  <pre><code>    1330         # Because of loading from S3 load can't be used (missing readline in smart_open)
      1331         if sys.version_info &gt; (3, 0):
      -&gt; 1332             return _pickle.load(f, encoding='latin1')
      1333         else:
      1334             return _pickle.loads(f.read())
  
      UnpicklingError: invalid load key, '3'.
  </code></pre>
  
  <p>I didn't find a way to convert the binary google new file into a text file properly, and even if so I'm not sure whether that would solve my problem.</p>
  
  <p>Does anyone have a solution to this problem or knows about a different way to retrain pre-trained word embeddings?</p>