ValueError:加载GoogleNews-vectors-negative时数组太大

Win*_*ton 4 python gensim

我正在尝试使用以下代码从Google加载预训练的单词向量:

from gensim import models
w = models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin.gz', binary=True)
Run Code Online (Sandbox Code Playgroud)

但是我收到的错误告诉了我

文件"C:\ ProgramData\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py",第197行,in load_word2vec_format result.syn0 = zeros((vocab_size,vector_size),dtype = datatype)

ValueError:数组太大; arr.size * arr.dtype.itemsize大于最大可能的大小.

有谁能建议一个可能的解决方案 提前致谢.

goj*_*omo 8

这很可能是因为您安装的Python使用32位寻址,因此无法分配加载GoogleNews向量所需大小的数组.一些选择:

  • 切换到64位Python.请注意,完整的向量集需要3GB +才能加载,因此除非你有超过4GB的RAM,否则无论如何都很难使用全套.
  • 使用limitgensim load_word2vec_format()方法的可选参数只读取文件中的一些早期条目.该文件似乎是最频繁到最不频繁的令牌顺序,所以通常早期的条目都是您需要的.例如,您可以尝试limit=500000仅读取第一个500,000个条目(而不是全部300个条目)