如何获取新段落的段落向量?

问题描述:

我有一组用户和他们的内容(每个包含用户的用户鸣叫1个文件)。我打算为每个用户使用一个大小为N的分布式向量表示。一种方法是采取在Twitter上的数据预先训练的wordvectors并取它们的平均值得到一个用户的分布矢量。我打算使用doc2vec更好results.But我不太清楚,如果我理解Distributed Representations of Sentences and Documents给出的DM模型。如何获取新段落的段落向量?

据我所知,我们正在分配每个段落一个载体,同时预测下一个字,我们正在使用,然后backpropagating错误更新款向量以及词汇向量。如何使用它来预测新段落的向量?

编辑:用于gensim计算新文件第矢量任何玩具代码,将不胜感激。

+0

对于使用doc2vec模型进行培训和预测的问题,有一个很好的解释:https://www.quora.com/How-does-doc2vec-represent-feature-vector-of-a-document- Cananone -explain-数学知识 - 的 - 过程 - 是 - 做 –

以下代码基于gensim的doc2vec tutorial。我们可以实例和训练doc2vec模型生成尺寸300的嵌入与大小为10的情况下如下窗口:

from gensim.models.doc2vec import Doc2Vec 
model = Doc2Vec(size=300, window=10, min_count=2, iter=64, workers=16) 
model.train(train_corpus, total_examples=model.corpus_count, epochs=model.iter) 

被训练我们的模型,我们可以计算一个新的看不见的文档向量如下:

doc_id = random.randint(0, len(test_corpus)) 
inferred_vector = model.infer_vector(test_corpus[doc_id]) 
sims = model.docvecs.most_simlar([inferred_vector], topn=len(model.docvecs)) 

这将返回我们的测试文档的300维表示并根据余弦相似度计算来自训练集的前N个最相似的文档。

+0

有谁真的知道如何计算推断的载体?调用gensim的infer_vector不会回答问题imo。 –