我训练并保存gensim word2vec模型:
W2V_MODEL_FN = r"C:\Users\models\w2v.model"
model = Word2Vec(X, size=150, window=3, min_count=2, workers=10)
model.train(X, total_examples=len(X), epochs=50)
model.save(W2V_MODEL_FN)
然后:
w2v_model = Word2Vec.load(W2V_MODEL_FN)
在一种环境下,它可以完美运行,但在另一种环境下,我会收到错误消息:
{AttributeError}在模块上无法获取属性'Word2VecKeyedVectors' 来自的``gensim.models.keyedvectors'' 'C:\ Users \ Anaconda3_New \ envs \ ISP_env \ lib \ site-packages \ gensim \ models \ keyedvectors.py'>
所以我想这可能是软件包版本问题?
但是我不知道它是什么。 有什么想法吗?
谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
我的情况是另一个问题。
我的代码如下:
# main.py
from enum import IntEnum
from gensim.models import Word2Vec
class GensimTrainingAlgo(IntEnum):
SG = 1
CBOW = 0
model = Word2Vec(X, size=150, window=3, min_count=2, workers=10, sg=GensimTrainingAlgo.SG)
model.save('/tmp/path')
事实证明我在泡菜。如果您希望能够保存/加载功能,则该功能必须是可腌制的。这意味着它必须为named and importable。
我通过确保枚举在main.py文件之外定义来解决此问题。
# utils.py
from enum import IntEnum
class GensimTrainingAlgo(IntEnum):
SG = 1
CBOW = 0
# main.py
from gensim.models import Word2Vec
model = Word2Vec(X, size=150, window=3, min_count=2, workers=10, sg=GensimTrainingAlgo.SG)
model.save('/tmp/path')