如何从 gensim 0.11.1 中的 Doc2Vec 获取文档向量?
How to get the Document Vector from Doc2Vec in gensim 0.11.1?
有没有办法从gensim 0.11.1版本的Doc2Vec中获取未见文档和已见文档的文档向量?
例如,假设我在 100 万上训练模型 - 我可以得到
那 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
有没有办法从gensim 0.11.1版本的Doc2Vec中获取未见文档和已见文档的文档向量?
例如,假设我在 100 万上训练模型 - 我可以得到 那 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