4
在gensim 0.11.1版本中有沒有辦法從doc2Vec中獲取看不見的文檔向量?如何在gensim 0.11.1中從Doc2Vec獲取文檔向量?
例如,假設我訓練上1000千模型 - 我能得到 DOC的載體爲那些1000個文檔?
有沒有辦法從相同的詞彙中獲取看不見文檔的文檔向量
?
在gensim 0.11.1版本中有沒有辦法從doc2Vec中獲取看不見的文檔向量?如何在gensim 0.11.1中從Doc2Vec獲取文檔向量?
例如,假設我訓練上1000千模型 - 我能得到 DOC的載體爲那些1000個文檔?
有沒有辦法從相同的詞彙中獲取看不見文檔的文檔向量
?
對於第一點,你可以做到這一點在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是一種已知的句子。
對於第二個要點,您不能在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