¿Es posible volver a entrenar un modelo word2vec (por ejemplo, GoogleNews-vectors-negative300.bin) a partir de un corpus de oraciones en python?

Estoy usando el conjunto de datos de noticias de Google pre-entrenado para obtener vectores de palabras usando la biblioteca Gensim en python

model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)

Después de cargar el modelo, estoy convirtiendo el entrenamiento revisa las palabras de oración en vectores

#reading all sentences from training file
with open('restaurantSentences', 'r') as infile:
x_train = infile.readlines()
#cleaning sentences
x_train = [review_to_wordlist(review,remove_stopwords=True) for review in x_train]
train_vecs = np.concatenate([buildWordVector(z, n_dim) for z in x_train])

Durante el proceso de word2Vec obtengo muchos errores para las palabras en mi corpus, que no están en el modelo. El problema es cómo puedo volver a entrenar un modelo previamente entrenado (por ejemplo, GoogleNews-vectors-negative300.bin '), para obtener vectores de palabras para esas palabras faltantes.

Lo siguiente es lo que he intentado: Entrené un nuevo modelo a partir de las oraciones de entrenamiento que tenía

# Set values for various parameters
num_features = 300    # Word vector dimensionality                      
min_word_count = 10   # Minimum word count                        
num_workers = 4       # Number of threads to run in parallel
context = 10          # Context window    size                                                                                    
downsampling = 1e-3   # Downsample setting for frequent words

sentences = gensim.models.word2vec.LineSentence("restaurantSentences")
# Initialize and train the model (this will take some time)
print "Training model..."
model = gensim.models.Word2Vec(sentences, workers=num_workers,size=num_features, min_count = min_word_count, 
                      window = context, sample = downsampling)


model.build_vocab(sentences)
model.train(sentences)
model.n_similarity(["food"], ["rice"])

¡Funcionó! pero el problema es que tengo un conjunto de datos realmente pequeño y menos recursos para entrenar un modelo grande.

La segunda forma que estoy viendo es extender el modelo ya entrenado como GoogleNews-vectors-negative300.bin.

model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
sentences = gensim.models.word2vec.LineSentence("restaurantSentences")
model.train(sentences)

¿Es posible y es una buena manera de usar, por favor ayúdame

Respuestas a la pregunta(3)

Su respuesta a la pregunta