使用 save_word2vec_format 以二进制格式 .bin 保存 gensim Word2vec 模型

Save gensim Word2vec model in binary format .bin with save_word2vec_format

我正在使用不同的数据训练我自己的 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 切换到负采样,但没有结果。

提前致谢!

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

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

你还不会(截至 2017 年 2 月)从安装 gensim 的通常方式获得这些版本,pip install gensim – 很可能当这个变化出现在官方发行版中时,错误将改进尝试旧呼叫的消息。

我建议使用普通版本 pip install gensim 除非你是一个相对专业的用户并且也在仔细关注项目 CHANGELOG.md.

from gensim.models import Word2Vec, KeyedVectors   
model.wv.save_word2vec_format('model.bin', binary=True)