2017-12-21 16 views
2

私は文章の600000行についてdoc2vecしようとしていますので、私のコードは以下の通りです:Doc2vec:model.docvecsは長さ10

model = gensim.models.doc2vec.Doc2Vec(size= 100, min_count = 5,window=4, iter = 50, workers=cores) 
model.build_vocab(res) 
model.train(res, total_examples=model.corpus_count, epochs=model.iter) 

#len(res) = 663406 

#length of unique words 15581 
print(len(model.wv.vocab)) 

#length of doc vectors is 10 
len(model.docvecs) 

# each of length 100 
len(model.docvecs[1]) 

がどのように私はこの結果を解釈するのですか?なぜベクトルの長さはそれぞれ100のサイズ10だけですか? 'res'の長さが663406のときは意味がありません。私は何かがここで間違っていることを知っ

Understanding the output of Doc2Vec from Gensim packageには、docvecの長さが明確ではない「サイズ」によって決まることが記載されています。

答えて

1

TaggedDocumenttagsは、タグのリストでなければなりません。あなたの代わりに、リスト・オブ・文字と同じかのように見られるtags='73215'のような文字列、提供した場合:終わり

tags=['7', '3', '2', '1', '5'] 

を、あなただけのあなたの全体のトレーニングセットに10個のタグを持っていると思い、ちょうどさまざまな組み合わせで10桁。

あなたのlen(model.docvec[1])が100であるということは、あなたのTaggedDocumentトレーニングデータを構築する際に、このエラーを正確にはしませんでしたが、おそらく同様のことを意味します。

resの最初の項目を参照して、そのtagsプロパティが意味を持つかどうか、そしてmodel.docvecsのそれぞれが意図したものの代わりに何が使用されているかを確認します。

関連する問題