我正在使用不同的数据训练自己的word2vec模型。要将结果模型实现到我的分类器中并将结果与原始预训练的Word2vec模型进行比较,我需要将模型保存为二进制扩展名.bin。这是我的代码,句子是一个短信列表。
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切换到负采样,没有结果。
提前谢谢!
答案 0 :(得分:2)
您是使用gensim的预发布候选版本,还是直接来自develop
分支的代码?
在这些版本中,save_word2vec_format()
已移至名为KeyedVectors
的实用程序类。
你还没有(截至2017年2月)从通常的安装gensim pip install gensim
的方式获得这些版本 - 而这很可能是在此更改发布时分发时,用于尝试旧呼叫的错误消息将得到改善。
我建议使用通过普通pip install gensim
发布的版本,除非您是一位相对专业的用户,他也在认真关注项目CHANGELOG.md。
答案 1 :(得分:1)
from gensim.models import Word2Vec, KeyedVectors
model.wv.save_word2vec_format('model.bin', binary=True)