我正在尝试使用以下代码从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 回答
这很可能是因为您安装的Python使用32位寻址,因此无法分配加载GoogleNews向量所需大小的数组 . 一些选择:
切换到64位Python . 请注意,完整的向量集需要3GB才能加载,所以除非你有超过4GB的RAM,否则无论如何都很难使用全套 .
使用gensim的
load_word2vec_format()
方法的可选limit
参数只读取文件中的某些早期条目 . 该文件似乎是最频繁到最不频繁的令牌顺序,所以通常早期的条目都是您需要的 . 例如,您可以尝试使用limit=500000
来读取第一个500,000个条目(而不是全部300个条目)