私は既存のgensim Doc2Vecモデルを持っており、トレーニングセットと拡張モデルを繰り返し更新しようとしています。gensim Doc2Vecモデルのトレーニング文書を更新する
私は新しいドキュメントを取り、通常通りpreproecssing行う:
stoplist = nltk.corpus.stopwords.words('english')
train_corpus= []
for i, document in enumerate(corpus_update['body'].values.tolist()):
train_corpus.append(gensim.models.doc2vec.TaggedDocument([word for word in gensim.utils.simple_preprocess(document) if word not in stoplist], [i]))
私は、その後、元のモデルをロードする語彙を更新し、再教育:
#### Original model
## model = gensim.models.doc2vec.Doc2Vec(dm=0, size=300, hs=1, min_count=10, dbow_words= 1, negative=5, workers=cores)
model = Doc2Vec.load('pvdbow_model_6_06_12_17.doc2vec')
model.build_vocab(train_corpus, update=True)
model.train(train_corpus, total_examples=model.corpus_count, epochs=model.iter)
私は、トレーニングセットを更新Pandasのデータフレームに新しいデータを追加し、インデックスをリセットします。
inferred_vector = model1.infer_vector(tokens)
sims = model.docvecs.most_similar([inferred_vector], topn=len(model.docvecs))
結果の品質はモデルからの指標とトレーニングセットのデータフレームがないことを示唆し、悪い:更新モデルとただし
corpus = corpus.append(corpus_update)
corpus = corpus.reset_index(drop=True)
、私は(infer_vectorを使用するようにしてください)より長い一致。
トレーニングセットデータフレーム(更新されたモデルを使用して)と比較しても、結果は良好ですが、明らかに私は新しいドキュメントが不足しています。
モデルを完全に再トレーニングせずにモデルを頻繁に更新したいと思っているので、両方とも更新してもらえますか?