2017-12-21 13 views
2

나는 문장의 600,000 행에 대해 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]) 

가 어떻게이 결과를 해석합니까? 이유는 벡터의 길이가 각각 10인데 크기가 10 인 이유는 무엇입니까? 'res'의 길이가 663406이면 의미가 없습니다. 나는 여기서 뭔가 잘못 알고있다.

Understanding the output of Doc2Vec from Gensim package에서 docvec의 길이는 명확하지 않은 '크기'로 결정됩니다.

답변

1

TaggedDocumenttags은 태그 목록이어야합니다. , 당신은 단지 전체 훈련 세트 (10 개) 태그가 줄 끝에

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

단지 : 대신 tags='73215' 같은 문자열을 제공 한 경우 목록 -의 - 문자와 같은 경우로, 그는 볼 것이다 다양한 조합의 10 자리.

귀하의 len(model.docvec[1])이 100이라는 것은 귀하가 TaggedDocument 훈련 데이터를 구축 할 때이 오류를 정확히 나타내지 않았지만 비슷한 것을 의미 함을 의미합니다.

res의 첫 번째 항목을보고 tags 속성이 적합한 지 확인하고 model.docvecs 각각이 의도 한 것 대신 사용중인 것을 확인합니다.