2017-03-27 20 views
1

私は、一連のユーザーとそのコンテンツを持っています(そのユーザーのツイートが入っている1つのドキュメント)。私は、各ユーザにある程度の大きさの分散ベクトル表現を使用する予定です。 1つの方法は、事前に訓練されたワードベクトルをツイッターデータに乗せて平均し、ユーザーの分散ベクトルを得ることです。私はで与えられたDMモデルを理解すれば、よりよい結果のためにdoc2vecを使用する予定です。しかし、私は確信していません。新しい段落の段落ベクトルを取得する方法は?

私は、段落ごとに1つのベクトルを割り当て、次の単語を予測しながら、それを逆伝播して段落ベクトルと単語ベクトルを更新することを理解します。これを使って新しい段落の段落ベクトルを予測する方法は?

編集:新しい文書の段落ベクトルを計算するためのgensimの任意のおもちゃコードが評価されます。

+0

doc2vecモデルでは、quoraのトレーニングと予測についてよく説明しています。https://www.quora.com/How-does-doc2vec-represent-feature-vector-of-a-document-Can-anyone -explain-数学的 - how-the-process-is-done –

答えて

1

次のコードは、gensimのdoc2vec tutorialに基づいています。私たちは、次のようにサイズ10のコンテキストウィンドウでサイズ300の埋め込みを生成するdoc2vecモデルをインスタンス化し、訓練することができ、次のように

from gensim.models.doc2vec import Doc2Vec 
model = Doc2Vec(size=300, window=10, min_count=2, iter=64, workers=16) 
model.train(train_corpus, total_examples=model.corpus_count, epochs=model.iter) 

は、我々のモデルを訓練した、新たな目に見えない文書のためのベクトルを計算することができます

doc_id = random.randint(0, len(test_corpus)) 
inferred_vector = model.infer_vector(test_corpus[doc_id]) 
sims = model.docvecs.most_simlar([inferred_vector], topn=len(model.docvecs)) 

これは、私たちのテスト文書の300次元表現を返し、コサイン類似性に基づいてトレーニングセットからトップNの最も類似したドキュメントを計算します。

+0

推論されたベクトルを計算する方法を誰かが実際に知っていますか? gensimのinfer_vectorを呼び出すと、質問には答えられません。 –