【问题标题】:Save gensim Word2vec model in binary format .bin with save_word2vec_format使用 save_word2vec_format 以二进制格式 .bin 保存 gensim Word2vec 模型
【发布时间】:2017-02-22 18:33:14
【问题描述】:

我正在使用不同的数据训练我自己的 word2vec 模型。要将生成的模型实现到我的分类器中并将结果与​​原始预训练的 Word2vec 模型进行比较,我需要将模型保存在二进制扩展名 .bin 中。这是我的代码,sentences是一个短消息列表。

import gensim, logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
sentences = gensim.models.word2vec.LineSentence('dati.txt')
model = gensim.models.Word2Vec(
sentences, size=300, window=5, min_count=5, workers=5,
sg=1, hs=1, negative=0
)
model.save_word2vec_format('model.bin', binary=True)

最后一个方法,save_word2vec_format,给了我这个错误:

AttributeError: 'Word2Vec' object has no attribute 'save_word2vec_format'

我在这里缺少什么?我已经阅读了 gensim 和其他论坛的文档。这个repo on github 使用几乎相同的配置,所以我不明白出了什么问题。我尝试从 skipgram 切换到 cbow,从分层 softmax 切换到负采样,但没有结果。

提前谢谢你!

【问题讨论】:

    标签: python attributes nlp gensim word2vec


    【解决方案1】:
    from gensim.models import Word2Vec, KeyedVectors   
    model.wv.save_word2vec_format('model.bin', binary=True)
    

    【讨论】:

      【解决方案2】:

      您使用的是 gensim 的预发布候选版本,还是直接来自 develop 分支的代码?

      在这些版本中,save_word2vec_format() 已移至名为 KeyedVectors 的实用程序类。

      您还不能(截至 2017 年 2 月)从通常的 gensim 安装方式中获得这些版本,pip install gensim - 并且很可能当此更改在官方发行版中时,尝试旧电话将得到改善。

      我建议使用通过普通pip install gensim 提供的版本,除非您是一个相对专业的用户,并且也在认真关注CHANGELOG.md 项目。

      【讨论】:

      • 感谢您清晰的回复。我认为这可能是关于 gensim 版本的问题,因为在附加到模型的方法中我没有看到任何名为 save_word2vec_format 的方法。正如我在网站文档上阅读的那样,我已经通过 easy_install -U gensim 安装了 gensim。我已经取消了 gensim 并使用了普通的 pip 安装,现在它运行顺利。非常感谢!
      • 仅供参考,我认为 1.0.0 现在是官方版本,所以即使 pip install gensim 也会获得 API 更改的版本,但我也认为错误消息已得到改进(指出人们使用 @987654328 @ 代替)。
      猜你喜欢
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 2016-04-06
      • 2017-09-23
      相关资源
      最近更新 更多