IndexError:索引超出范围-word2vec

问题描述

我已经使用大小为512的Gensim软件包训练了一个名为word_vectors的word2vec模型。

fname = get_tmpfile('word2vec.model')
word_vectors = KeyedVectors.load(fname,mmap='r')

现在,我创建了一个新的Numpy数组(大小也为512),并将其添加到word2vec中,如下所示:

vector = (rand(512)-0.5) *20
word_vectors.add('koffie',vector)

即使在我打电话时,这样做似乎也很好

word_vectors['koffie']

我得到了预期的数组作为输出。

但是,当我想在模型中查找最相似的词并运行以下代码时:

word_vectors.most_similar('koffie')

我收到以下错误:

Traceback (most recent call last):

  File "<ipython-input-283-ce992786ce89>",line 1,in <module>
    word_vectors.most_similar('koffie')

  File "C:\Users\20200016\AppData\Local\Continuum\anaconda3\envs\ldaword2vec\lib\site-packages\gensim\models\keyedvectors.py",line 553,in most_similar
    mean.append(weight * self.word_vec(word,use_norm=True))

  File "C:\Users\20200016\AppData\Local\Continuum\anaconda3\envs\ldaword2vec\lib\site-packages\gensim\models\keyedvectors.py",line 461,in word_vec
    result = self.vectors_norm[self.vocab[word].index]

IndexError: index 146139 is out of bounds for axis 0 with size 146138


word_vector.size()
Traceback (most recent call last):

  File "<ipython-input-284-2606aca38446>",in <module>
    word_vector.size()

NameError: name 'word_vector' is not defined

该错误似乎表明我的索引在这里不正确。但是由于我只是间接索引(使用键而不是实际的数字索引),因此我看不到需要在此处进行更改。

谁知道这里出了什么问题?而我该如何克服这个错误?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)