【问题标题】:How to load the pre-trained doc2vec model and use it's vectors如何加载预训练的 doc2vec 模型并使用它的向量
【发布时间】:2018-03-28 22:03:14
【问题描述】:

如果我想使用本网站https://github.com/jhlau/doc2vec中预训练的doc2vec模型,有谁知道我应该使用哪个函数?

我知道我们可以使用Keyvectors.load_word2vec_format()从预训练的 word2vec 模型中加载词向量,但是在 gensim 中我们是否也有类似的函数来加载预训练的 doc2vec 模型?

非常感谢。

【问题讨论】:

    标签: python numpy gensim doc2vec


    【解决方案1】:

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

    model = Doc2Vec.load(filename)
    

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

    您在尝试使用这些预训练模型时可能会遇到其他问题。特别是:

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

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

    • 1234563 1.4GB 模型无法容纳 2015 年 Wikipedia 中所有数百万个文档或单词标记的 300 维向量)

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

    【讨论】:

    • 感谢您的回答 gogomo!但不幸的是,我无法使用 load() 方法加载模型,这就是为什么我在 stackflow 中搜索帮助以查找是否有人编写了一些代码来解决该问题(以及 gensim 版本问题)。
    • 您没有提及您遇到的错误或阻止意味着您“无法加载”它,因此很难确定问题可能是什么。但正如该模型的作者所提到的,您可能需要使用他在 Github 上提供的旧定制的 gensim 分支。你试过吗?如果没有,那是第一件事要尝试。而且:即使成功了,你也可能对那个模型感到失望,原因我已经提到过。
    【解决方案2】:

    试试这个:

    import gensim.models as g
    
    model="model_folder/doc2vec.bin"  #point to downloaded pre-trained doc2vec model
    
    #load model
    m = g.Doc2Vec.load(model)
    

    【讨论】:

      猜你喜欢
      • 2016-08-17
      • 1970-01-01
      • 2017-06-26
      • 2019-07-12
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 2021-02-19
      相关资源
      最近更新 更多