如何加载预训练的doc2vec模型并使用它的向量

时间:2017-10-17 08:59:40

标签: python numpy gensim doc2vec

如果我想在本网站https://github.com/jhlau/doc2vec中使用预先训练好的doc2vec模型,是否有人知道我应该使用哪种功能?

我知道我们可以使用Keyvectors.load_word2vec_format()从预先训练过的word2vec模型中提取单词向量,但是我们是否有类似的功能来加载预先训练过的doc2vec模型以及gensim?

非常感谢。

2 个答案:

答案 0 :(得分:2)

当使用gensim的原生Doc2Vec保存save()之类的模型时,可以使用原生load()方法重新加载:

model = Doc2Vec.load(filename)

请注意,大型内部数组可能与主文件名一起保存在其他具有额外扩展名的文件名中 - 并且所有这些文件必须保持在一起以重新加载全功能模型。 (您仍然只需要指定主保存文件,辅助文件将在同一目录中以预期名称发现。)

您可能还有其他问题试图使用这些预先训练过的模型。特别是:

  • 如链接页面中所述,作者使用了大约2年前推出的自定义gensim变体;这些文件可能无法加载到标准gensim或更高版本的gensims

  • 目前还不完全清楚用什么参数来训练这些模型(虽然我想如果你成功加载它们就可以将它们视为模型中的属性),以及为了哪些目的使用了多少元优化,以及这些目的是否与您自己的项目相匹配

  • 如果参数如其中一个回购文件[train_model.py][1]所示,则有些参数与最佳做法不一致(min_count=1通常不利于Doc2Vec)或明显model-size(仅仅1.4GB的模型无法容纳2015维基百科中所有数百万文档或文字标记的300维向量)

我强烈建议您使用最近的代码,使用针对您自己的目的优化的元参数,在您理解的语料库上训练您自己的模型。

答案 1 :(得分:0)

尝试一下:

import gensim.models as g

model="model_folder/doc2vec.bin"  #point to downloaded pre-trained doc2vec model

#load model
m = g.Doc2Vec.load(model)