Sto usando pre-addestrato notizie set di dati di Google per ottenere vettori di parole utilizzando biblioteca Gensim in pythonÈ possibile ri-formare un modello word2vec (ad esempio GoogleNews-vettori-negative300.bin) da un corpus di frasi in python?
model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
Dopo aver caricato il modello che sto convertendo parole recensioni formazione di frase in vettori
#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 word2Vec processo ottengo molti errori per le parole nel mio corpus, che non sono nel modello. Il problema è come posso riqualificare il modello già pre-addestrato (ad esempio GoogleNews-vettori-negative300.bin '), al fine di ottenere i vettori di parole per quelle parole mancanti.
seguito è quello che ho provato: addestrato un nuovo modello da frasi di formazione che ho avuto
# 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"])
Ha funzionato! ma il problema è che ho un set di dati veramente piccolo e meno risorse per addestrare un modello di grandi dimensioni.
In secondo luogo, quello che sto guardando è estendere il modello già addestrato come GoogleNews-vettori-negative300.bin.
model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
sentences = gensim.models.word2vec.LineSentence("restaurantSentences")
model.train(sentences)
E 'possibile ed è che un buon modo per utilizzare, ti prego di aiutarmi
Possibile duplicato di [Aggiorna gensim word2vec model] (http://stackoverflow.com/questions/22121028/update-gensim-word2vec-model) – ksindi