Nlp 使用SimLex-999和wordsim评估word2vec-密钥错误

Nlp 使用SimLex-999和wordsim评估word2vec-密钥错误,nlp,word2vec,word-embedding,evaluate,Nlp,Word2vec,Word Embedding,Evaluate,我在用意大利语评估Word2Vec模型时遇到了一个奇怪的问题。 我正在使用这些数据 我犯了这个错误` model.wv.evaluate_word_pairs(pairs=“…MWS353_意大利语_tab.txt”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“C:\ProgramData\Anaconda3\lib\site packages\gensim\models\keyedvectors.py”,第1281行,成对计算 ok_vocab=[(w,self.vocab

我在用意大利语评估Word2Vec模型时遇到了一个奇怪的问题。 我正在使用这些数据

我犯了这个错误`

model.wv.evaluate_word_pairs(pairs=“…MWS353_意大利语_tab.txt”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\ProgramData\Anaconda3\lib\site packages\gensim\models\keyedvectors.py”,第1281行,成对计算
ok_vocab=[(w,self.vocab[w])表示self.indexword[:restrict_vocab]]
文件“C:\ProgramData\Anaconda3\lib\site packages\gensim\models\keyedvectors.py”,第1281行,在
ok_vocab=[(w,self.vocab[w])表示self.indexword[:restrict_vocab]]

KeyError:'di'
该错误似乎表明
'di'
在模型的
.indexword
列表中,但不在模型的
.vocab
字典中。(这在正常操作中不会发生,因为
.vocab
dict的键应该与
.indexword
列表中的条目一一匹配。)因此,这表明模型存在问题,而不是输入文件。model.wv.indexword`return
True
中的
'di'是否存在?这个模型是否以任何非标准的方式构建或修改过?不,我照抄了gensim教程。我对英语模型中的“the”一词也有同样的问题。我的想法是,
index2word
列表中仍然存在由于子采样而在词汇表中被丢弃的单词。如何从
indexword
中删除这些单词?不,
indexword
中的每个单词都应该在
vocab
目录中。并且,在进行二次采样之前,要决定保留哪些单词。如果没有,就有一个bug。如果您可以提供一个创建任何单词x的最小示例,其中model.wv.indexword中的
x返回
True
,而model.wv.vocab中的
x返回
False
,我可以找出触发差异的原因。
如果model.wv.indexword中的“the”打印(“单词在indexword中”)else:print(“Ups,找不到它”)如果model.wv.vocab:print(“单词在vocab中”)else:print(“Ups,找不到它”)单词在index2word中单词在vocab中
mmmmmmmm现在我更困惑了……但是
'di'
呢?