我正在尝试使用以下代码从Google加载预训练的单词向量:
from gensim import models
w = models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin.gz', binary=True)
但我收到的错误告诉我
文件" C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ gensim \ models \ keyedvectors.py",第197行,在load_word2vec_format中 result.syn0 = zeros((vocab_size,vector_size),dtype = datatype)
ValueError:数组太大;
arr.size * arr.dtype.itemsize
大于最大可能大小。
有人可以建议一个可能的解决方案。提前谢谢。
答案 0 :(得分:7)
这可能是因为您安装的Python使用32位寻址而触发,因此无法分配加载GoogleNews向量所需大小的数组。一些选择:
limit
方法的可选load_word2vec_format()
参数来仅读取文件中的某些早期条目。该文件似乎是最频繁到最不频繁的令牌顺序,因此通常早期的条目都是您需要的。例如,您可以尝试limit=500000
只读取前500,000个条目(而不是全部300万个)