Gensim Doc2Vec从连锁模型中获取文档标签

时间:2018-05-25 18:51:58

标签: python model gensim doc2vec

我试图复制Mikolov的PV-DM + PV-DBOW的作品。他说应该使用这两种算法以获得更好的结果。出于这个原因,我试图训练模型,然后将文档标签提供给t-SNE。 使用Gensim的Doc2Vec我可以使用docvecs.vectors_docs获取文档标签,但是连接结构似乎没有联合模型的文档标签。它仍然将模型视为单独的实体。 (我可以从变量资源管理器中看到)

我还使用了gensim中的ConcatenatedDoc2Vec

任何人都可以帮助我吗?有没有办法可以从连接的新实体而不是单个实体获取文档标签?

1 个答案:

答案 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