Error when loading the word2vec model

2019-08-20 04:38发布

问题:

I am using the following function to load my word2vec model.

def __init__(self, filename):
        print filename
        try:
            self.model = gensim.models.Word2Vec.load(filename)
        except cPickle.UnpicklingError:
            load = gensim.models.Word2Vec.load_word2vec_format
            self.model = load(filename, binary=True)

However, I am getting the following error when I try to do it.

Traceback (most recent call last):
  File "./explore", line 70, in <module>
    api_controller.model = Model(sys.argv[1])
  File "/home/volka/Documents/projects/word2vec-explorer/explorer.py", line 77, in __init__
    self.model = gensim.models.Word2Vec.load(filename)
  File "/usr/local/lib/python2.7/dist-packages/gensim/models/word2vec.py", line 1458, in load
    model = super(Word2Vec, cls).load(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 256, in load
    obj = unpickle(fname)
  File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 920, in unpickle
    return _pickle.loads(f.read())
AttributeError: 'module' object has no attribute 'call_on_class_only'

The genism version I am using in both the versions are 0.12.3.

Please let me know where I am making it wrong?


This is how I tried to remove call_on_class_only.

model = word2vec.Word2Vec(text, sg=0, negative=5, hs=0)
model.save("test_project")

#load, delete and save
model_1 = word2vec.Word2Vec.load("test_project")
del model_1.call_on_class_only
model.save(model_name_2)

It gives me the following error: AttributeError: call_on_class_only

Please help me.