我试图复制Mikolov的PV-DM + PV-DBOW的作品。他说应该使用这两种算法以获得更好的结果。出于这个原因,我试图训练模型,然后将文档标签提供给t-SNE。
使用Gensim的Doc2Vec我可以使用docvecs.vectors_docs
获取文档标签,但是连接结构似乎没有联合模型的文档标签。它仍然将模型视为单独的实体。
(我可以从变量资源管理器中看到)
我还使用了gensim中的ConcatenatedDoc2Vec
。
任何人都可以帮助我吗?有没有办法可以从连接的新实体而不是单个实体获取文档标签?
答案 0 :(得分:2)
请注意,许多人尝试使用连接的PV-DBOW和PV-DM + dm_concat向量重现报告的“段落向量”结果,但没有成功。 (例如,Mikolov本人reports being unable to reproduce他所说的共同作者Le的确切数字对该论文做出了贡献。)
ConcatenatedDoc2Vec
类只是一个瘦的包装器,用于连接两个已经单独训练的模型,用于逐个矢量查找(__getitem__()
索引访问)和组合推理。 (这仅仅是10 lines of code。)
为了使这种训练后加入合理,这两个模型应该以完全相同的顺序使用完全相同的文档/标签进行训练。
因此,如果您需要标签列表,请分别询问任一型号。
如果您需要两个模型的其他组合 - 例如包含所有连接向量的单个大型数组 - 您必须自己构建,可能使用numpy
的{{1}}方法。
您可以看到我的笔记本试图在hstack
gensim
目录中重现某些论文的结果,或者在线查看:
https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-IMDB.ipynb