Ist es möglich, re-Zug eine word2vec Modell (z.B. GoogleNews-Vektoren-negative300.bin) aus einem corpus von Sätzen in python?

Ich bin über die vor-geschult Google news-Datensatz für die erste word-Vektoren durch Verwendung von Gensim-Bibliothek in python

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

Nach dem laden des Modells bin ich konvertieren training Satz Wörter in Vektoren

#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])

Während word2Vec Prozess, den ich bekommen eine Menge von Fehlern, die für die Worte in meinem Korpus, die nicht in das Modell. Problem ist, wie kann ich die Umschulung bereits trainierte Modell (e.g GoogleNews-Vektoren-negative300.bin'), um word-Vektoren für die fehlenden Worte.

Folgende ist, was ich versucht habe:
Ausgebildet ist, ein neues Modell von Ausbildung Sätzen, die ich hatte

# 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"])

... Es funktionierte! aber das problem ist, dass ich eine wirklich kleine dataset und weniger Ressourcen für die Ausbildung einer großen Modell.

Zweite ist, dass ich auf der Suche bin, ist das erweitern der bereits trainierte Modell wie GoogleNews-Vektoren-negative300.bin.

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

Ist es möglich, und ist das ein guter Weg, um zu verwenden, bitte helfen Sie mir

InformationsquelleAutor Nomiluks | 2016-01-31
Schreibe einen Kommentar