2016-08-31 13 views
0

を使用してモデルをdoc2vec再教育するためにどのように、私は、モデルを訓練し、以下のファイルが保存されている:Gensim:Doc2Vecモデリングでは、以前のword2vecモデル

1. model 
2. model.docvecs.doctag_syn0.npy 
3. model.syn0.npy 
4. model.syn1.npy 
5. model.syn1neg.npy 

しかし、私は文書をラベル付けするための新しい方法を持っているし、訓練したいです再びモデル。単語ベクトルは以前のバージョンからすでに取得されているからです。そのモデルを再利用する方法はありますか(たとえば、以前のw2vの結果をトレーニングの初期ベクトルとして使用するなど)。誰もそれをする方法を知っていますか?

答えて

0

私は、モデルをロードして訓練を続けることができたことを理解しました。

model = Doc2Vec.load("old_model") 
model.train(sentences) 
+0

(1)新しい 'sentences'に新しい単語/タグがある場合、それらは未知としてスキップされます。 (2)新しい「文章」の長さが異なる場合、進捗報告と学習率の低下が適切に更新されないことがある。 (3)有用な値に対してモデルをわずかに「先頭」にし、最初の語彙検索をスキップすることもできますが、 'train()'自体はそれ以上高速化することはありません。 – gojomo

+0

@gojomo、それに良いアイデアは? – HappyCoding

+0

すべての例を混在させてトレーニングするのが最善です。コーパスサイズのヒントとして適切なパラメータを指定して 'train()'を呼び出すと、以前にロードされたモデルから開始することができます。あるいは、新しいボキャブラリ/タグに適応するためには、新しい組み込みコーパスを使用して 'build_vocab()'を実行することができます。その後、元のモデルからベクトルを手作業でコピーすることによって、モデルを '先頭開始'にします。 – gojomo

関連する問題