Python 属性错误:Can';无法在<;模块';gensim.models.word2vec';
我在带有M1芯片的macOS Big Sur上使用python 3.9.1。 gensim是4.0.1 我尝试使用预先培训过的Word2Vec模型,并运行了以下代码:Python 属性错误:Can';无法在<;模块';gensim.models.word2vec';,python,nlp,gensim,word2vec,Python,Nlp,Gensim,Word2vec,我在带有M1芯片的macOS Big Sur上使用python 3.9.1。 gensim是4.0.1 我尝试使用预先培训过的Word2Vec模型,并运行了以下代码: from gensim.models.word2vec import Word2Vec model_path = '/path/to/word2vec.gensim.model' model = Word2Vec.load(model_path) 但是,我在下面得到了一个错误: AttributeError
from gensim.models.word2vec import Word2Vec
model_path = '/path/to/word2vec.gensim.model'
model = Word2Vec.load(model_path)
但是,我在下面得到了一个错误:
AttributeError Traceback (most recent call last)
<ipython-input-11-4c1c2f93fadb> in <module>
1 from gensim.models.word2vec import Word2Vec
2
----> 3 model = Word2Vec.load(model_path)
~/opt/miniconda3/lib/python3.9/site-packages/gensim/models/word2vec.py in load(cls, rethrow, *args, **kwargs)
1932 "Try loading older model using gensim-3.8.3, then re-saving, to restore "
1933 "compatibility with current code.")
-> 1934 raise ae
1935
1936 def _load_specials(self, *args, **kwargs):
~/opt/miniconda3/lib/python3.9/site-packages/gensim/models/word2vec.py in load(cls, rethrow, *args, **kwargs)
1920 """
1921 try:
-> 1922 model = super(Word2Vec, cls).load(*args, **kwargs)
1923 if not isinstance(model, Word2Vec):
1924 rethrow = True
~/opt/miniconda3/lib/python3.9/site-packages/gensim/utils.py in load(cls, fname, mmap)
484 compress, subname = SaveLoad._adapt_by_suffix(fname)
485
--> 486 obj = unpickle(fname)
487 obj._load_specials(fname, mmap, compress, subname)
488 obj.add_lifecycle_event("loaded", fname=fname)
~/opt/miniconda3/lib/python3.9/site-packages/gensim/utils.py in unpickle(fname)
1456 """
1457 with open(fname, 'rb') as f:
-> 1458 return _pickle.load(f, encoding='latin1') # needed because loading from S3 doesn't support readline()
1459
1460
AttributeError: Can't get attribute 'Vocab' on <module 'gensim.models.word2vec' from '/Users//opt/miniconda3/lib/python3.9/site-packages/gensim/models/word2vec.py'>
AttributeError回溯(最近一次调用)
在里面
1从gensim.models.word2vec导入word2vec
2.
---->3模型=Word2Vec.load(模型路径)
加载中的~/opt/miniconda3/lib/python3.9/site-packages/gensim/models/word2vec.py(cls、rethrow、*args、**kwargs)
1932“尝试使用gensim-3.8.3加载旧型号,然后重新保存以恢复”
1933“与当前代码的兼容性”。)
->1934年
1935
1936 def装载特殊物品(自身、*ARG、**kwargs):
加载中的~/opt/miniconda3/lib/python3.9/site-packages/gensim/models/word2vec.py(cls、rethrow、*args、**kwargs)
1920 """
1921尝试:
->1922型号=超级(Word2Vec,cls)。加载(*args,**kwargs)
1923如果不存在(型号,Word2Vec):
1924 rethrow=真
加载中的~/opt/miniconda3/lib/python3.9/site-packages/gensim/utils.py(cls、fname、mmap)
484压缩,子名称=保存加载。_通过_后缀(fname)进行调整
485
-->486 obj=取消勾选(fname)
487对象加载特殊项(fname、mmap、compress、subname)
488对象添加生命周期事件(“已加载”,fname=fname)
unpickle中的~/opt/miniconda3/lib/python3.9/site-packages/gensim/utils.py(fname)
1456 """
1457,开放式(fname,'rb')为f:
->1458需要返回_pickle.load(f,encoding='latin1')#,因为从S3加载不支持readline()
1459
1460
AttributeError:无法在上获取属性“Vocab”
这是我得到这个模型的链接
提前感谢。问题是引用的存储库在上训练了一个模型,这使得它与当前版本不兼容 您可以检查是否提供了实际版本的任何指示,然后尝试从那里更新您的模型。 文档中还提供了一些技巧,但即使是那些技巧也相对薄弱,主要指向重新培训。类似地,即使没有引用直接升级方法,也可以让您了解具体需要注意哪些参数
我的建议是尝试将其与以前的3.X版本一起加载,看看是否在那里加载更成功。问题是引用的存储库在上训练了一个模型,这使得它与当前版本不兼容 您可以检查是否提供了实际版本的任何指示,然后尝试从那里更新您的模型。 文档中还提供了一些技巧,但即使是那些技巧也相对薄弱,主要指向重新培训。类似地,即使没有引用直接升级方法,也可以让您了解具体需要注意哪些参数
我的建议是尝试将其与以前的任何3.X版本一起加载,看看是否在那里加载更成功。事实上,最新版本的Gensim(2021年的4.0+)只希望确保加载Gensim 3.8.X模型时的向后兼容性。(它可能适用于较旧的版本,在加载某些Gensim-3.8.x模型时可能会出现错误,但这是兼容性目标。)查看该存储库,其自述文件最后一次更新于2017年2月20日,这意味着它的代码(链接的预训练模型)可能基于与版本
0.13.4.1
(2017年1月发布)或1.0.0RC2
(2017年2月16日发布)。因此,如果加载精确的旧型号很重要,则加载gensim-3.8.3
,然后如果从中重新保存,加载gensim-4.0.x
。其他选项包括:(1)联系创建者请求更新(使用最新的gensim和最新的培训数据)(2)训练你自己的模型;或(3)参考最近日文单词向量模型的其他来源。例如,的FastText向量应该可以在当前的Gensim中加载(并且训练的数据不仅仅是维基百科)。那些完整的.bin
模型应该可以通过Gensim的FastText
类和.load\u facebook\u model()
加载,或者可以通过Gensim的键向量
类和单独加载.vec
全文向量。load\u word2vec\u format()
。非常感谢@Denninger和@gojomo!事实上,Gensim的最新版本(2021年的4.0+版本)只希望在加载Gensim 3.8.x模型时确保向后兼容性。(这可能适用于较旧的版本,在加载某些Gensim-3.8.x模型时可能会出现错误,但这是兼容性目标。)查看该存储库,其自述文件最后一次更新于2017年2月20日,这意味着其代码(链接的预训练模型)可能基于Gensim版本,可能与2017年1月发布的版本0.13.4.1
或1.0.0RC2
(2017-02-16发布)一样旧。因此,是的,如果加载精确的旧模型很重要,它将加载gensim-3.8.3
,然后如果从中重新保存,则加载gensim-4.0.x
。其他选项包括:(1)联系创建者请求更新(使用最新的gensim和最新的培训数据);(2)培训您自己的模型;或(3)查阅最近日文单词向量模型的其他来源。例如,处的FastText向量应可在当前Gensim中加载(并接受了更多数据的培训,而不仅仅是Wikipedia)。那些完整的.bin
模型应可由Gensim的FastText
类和加载
,或.vec
全文向量,可与Gensim的KeyedVectors
类一起加载。加载word2vec\u format()。非常感谢@Denninger和@gojomo!