python - Gensim Doc2Vec 从串联模型中获取文档标签

标签 python model gensim doc2vec

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

我还使用了来自 gensim 的 ConcatenatedDoc2Vec

谁能帮帮我?有没有一种方法可以从串联的新实体而不是单个实体中获取文档标签?

最佳答案

请注意,许多人已尝试使用串联的 PV-DBOW 和 PV-DM+dm_concat 向量重现报告的“段落向量”结果,但没有成功。 (例如,Mikolov 本人 reports being unable to reproduce 他说合著者 Le 对论文做出贡献的确切数字。)

ConcatenatedDoc2Vec 类只是一个薄包装器,用于连接您已经分别训练过的两个模型,用于按标签进行向量查找 (__getitem__() 索引访问)和组合推理。 (这只是一个 10 lines of code 。)

为了使这个训练后连接变得合理,这两个模型应该以完全相同的顺序使用完全相同的文档/标签进行训练。

因此,如果您需要标签列表,请分别询问任一模型。

如果您需要这两个模型的其他组合——例如包含所有连接向量的单个大数组——您必须自己构建它,也许使用 numpyhstack 方法。

您可以在 gensim docs/notebooks 目录中看到我的笔记本试图重现论文的一些结果,或者在线查看:

https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-IMDB.ipynb

关于python - Gensim Doc2Vec 从串联模型中获取文档标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535278/

相关文章:

python - gensim 中的 get_document_topics 和 get_term_topics

scikit-learn - LDA 主题模型性能 - scikit-learn 的主题一致性实现

python - 从 Google GitHub 存储库加载 JSON 数据

python - np.array.sum(-1) 中的 sum(-1) 是什么意思?

python - 如何在 Django 中给外键名称

model-view-controller - 如何在 MVC 模型中编写可重用的业务逻辑?

python - Django:更新或更改以前保存的模型数据

python - 无法超越 JSON 文件中的第一个字典

r - 在R中找到最佳线性模型的命令

machine-learning - 连接两个 doc2vec 模型 : Vector dimensions doubled