我尝试保存用gensim训练过的word2vec模型,如下所示:
from gensim.models import Word2Vec
model = Word2Vec(sentences, parameters)
model.save('modelfile.model')
现在,当我尝试Word2Vec.load('modelfile.model')
时,我得到:
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
如果有帮助,可以发布完整的追溯。
答案 0 :(得分:1)
这很奇怪。您是否为load()
使用与save()
完全相同的Python环境和gensim版本?您是如何安装gensim和numpy的?
当我搜索该错误时,我发现其他讨论表明这可能是从numpy 1.16腌制(保存)一个numpy数组的症状。但尝试在较早的numpy中解开(加载)它。参见例如:
https://github.com/numpy/numpy/issues/12825#issuecomment-456561919
看起来numpy最近合并了一个修补程序– https://github.com/numpy/numpy/issues/12837 –但与此同时,您最好的选择是确保要加载的位置正在使用numpy 1.16.0 +。
答案 1 :(得分:0)
我会尝试virtualenv
以避免软件包和环境之间的任何冲突。 Virtualenv
是用于创建隔离的Python环境的工具。这是设置virtualenv
并尝试加载word2vec
模型的快速步骤。
sudo pip install virtualenv # install virtualenv
virtualenv test1 # create an env named test1
cd test1 # go ot test1
source bin/activate # activate test1
pip install gensim # install your packages for test1 env
python path-to-your-file.py # run your program