2016-06-11 21 views
4

gensim 0.11.1バージョンのDoc2Vecから見えない文書の文書ベクトルを取得する方法はありますか?例えばgensim 0.11.1でDoc2Vecからドキュメントベクターを取得するには?

  • 、私は百万にモデルを訓練したと - 私はそれらの1000のドキュメントのための ドキュメントベクトルを得ることができますか?

  • 目に見えない文書の文書ベクトルを得る方法がありますか?
    同じ語彙からのですか?最初の箇条書きの場合

答えて

6

、あなたはここでgensim 0.11.1

from gensim.models import Doc2Vec 
from gensim.models.doc2vec import LabeledSentence 

documents = [] 
documents.append(LabeledSentence(words=[u'some', u'words', u'here'], labels=[u'SENT_1'])) 
documents.append(LabeledSentence(words=[u'some', u'people', u'words', u'like'], labels=[u'SENT_2'])) 
documents.append(LabeledSentence(words=[u'people', u'like', u'words'], labels=[u'SENT_3'])) 


model = Doc2Vec(size=10, window=8, min_count=0, workers=4) 
model.build_vocab(documents) 
model.train(documents) 

print(model[u'SENT_3']) 

を行うことができますSENT_3は知ら文です。

2番目の箇条書きについては、gensim 0.11.1では実行できません。0.12.4に更新する必要があります。この最新バージョンには、見えない文書のベクトルを生成できるinfer_vector関数があります。

documents = [] 
documents.append(LabeledSentence([u'some', u'words', u'here'], [u'SENT_1'])) 
documents.append(LabeledSentence([u'some', u'people', u'words', u'like'], [u'SENT_2'])) 
documents.append(LabeledSentence([u'people', u'like', u'words'], [u'SENT_3'])) 


model = Doc2Vec(size=10, window=8, min_count=0, workers=4) 
model.build_vocab(documents) 
model.train(documents) 

print(model.docvecs[u'SENT_3']) # generate a vector for a known sentence 
print(model.infer_vector([u'people', u'like', u'words'])) # generate a vector for an unseen sentence 
関連する問題