首页 文章

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

提问于
浏览
3

我正在尝试使用以下代码从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:array is太大; arr.size * arr.dtype.itemsize大于最大可能大小 .

任何人都可以建议一个可能的解提前致谢 .

1 回答

  • 6

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

    • 切换到64位Python . 请注意,完整的向量集需要3GB才能加载,所以除非你有超过4GB的RAM,否则无论如何都很难使用全套 .

    • 使用gensim的 load_word2vec_format() 方法的可选 limit 参数只读取文件中的某些早期条目 . 该文件似乎是最频繁到最不频繁的令牌顺序,所以通常早期的条目都是您需要的 . 例如,您可以尝试使用 limit=500000 来读取第一个500,000个条目(而不是全部300个条目)

相关问题