У меня есть модель FastText, созданная с помощью Gensim, которая использовала обратный вызов для сохранения каждой эпохи, что привело к проблеме с известной ошибкой , но после обходного пути я все еще не могу импортировать модель. Когда я пытаюсь загрузить его, я теперь получаю KeyError
:
KeyError Traceback (most recent call last)
<ipython-input-19-c0dfceee0796> in <module>
----> 1 vocab_model = gensim.models.FastText.load('vocab/ft_256_min_50_model_30eps')
~\AppData\Local\Continuum\anaconda3\lib\site-packages\gensim\models\fasttext.py in load(cls, *args, **kwargs)
1038 """
1039 try:
-> 1040 model = super(FastText, cls).load(*args, **kwargs)
1041
1042 if not hasattr(model.trainables, 'vectors_vocab_lockf') and hasattr(model.wv, 'vectors_vocab'):
~\AppData\Local\Continuum\anaconda3\lib\site-packages\gensim\models\base_any2vec.py in load(cls, *args, **kwargs)
1248 model.vocabulary.ns_exponent = 0.75
1249 if model.negative and hasattr(model.wv, 'index2word'):
-> 1250 model.vocabulary.make_cum_table(model.wv) # rebuild cum_table from vocabulary
1251 if not hasattr(model, 'corpus_count'):
1252 model.corpus_count = None
~\AppData\Local\Continuum\anaconda3\lib\site-packages\gensim\models\word2vec.py in make_cum_table(self, wv, domain)
1795 train_words_pow = 0.0
1796 for word_index in range(vocab_size):
-> 1797 train_words_pow += wv.vocab[wv.index2word[word_index]].count**self.ns_exponent
1798 cumulative = 0.0
1799 for word_index in range(vocab_size):
KeyError: 'news'
В предыдущих моделях word2vec 'news' был с индексом 0 (который я считал зарезервированным, но в любом случае), и pdb
подтверждает, что это относится и к модели FastText:
ipdb> wv.vocab['news']
*** KeyError: 'news'
ipdb> wv.index2word[0]
'news'
Что может быть причиной этого?