无法加载.bin.gz预训练的words2vecx

时间:2017-05-18 10:57:40

标签: gensim word2vec

我正在尝试加载我在此处找到的预训练的words2vecs(https://github.com/mmihaltz/word2vec-GoogleNews-vectors) 我使用了以下命令:

model = gensim.models.KeyedVectors.load_word2vec_format('word2vec.bin.gz', binary=False)

它会抛出此错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/deeplearning/anaconda3/lib/python3.6/site-
packages/gensim/models/keyedvectors.py", line 193, in 
 load_word2vec_format
    header = utils.to_unicode(fin.readline(), encoding=encoding)
  File "/home/deeplearning/anaconda3/lib/python3.6/gzip.py", line 374, 
in readline
    return self._buffer.readline(size)
  File "/home/deeplearning/anaconda3/lib/python3.6/_compression.py", 
line 68, in readinto
    data = self.read(len(byte_view))
  File "/home/deeplearning/anaconda3/lib/python3.6/gzip.py", line 463, 
in read
    if not self._read_gzip_header():
  File "/home/deeplearning/anaconda3/lib/python3.6/gzip.py", line 411, 
in _read_gzip_header
    raise OSError('Not a gzipped file (%r)' % magic)
OSError: Not a gzipped file (b've')

2 个答案:

答案 0 :(得分:0)

因为错误显示“不是gzip压缩文件”,该文件可能无意中未压缩,但仍然具有误导性的.gzip扩展名? (尝试在没有.gzip的情况下重命名,加载该文件。)

因为文件名包含.bin,所以它可能是'二进制'样式的word2vec格式。因此可选参数可能需要为binary=True

您使用的文件名word2vec.bin.gz与您提供的链接GoogleNews-vectors-negative300.bin.gz的文件名不匹配。这表明可能发生了可能导致问题的其他变化。

该错误还会报告来自文件b've'的“幻数”(指示性前缀),它看起来像一些纯文本,而不是真正的gzip文件的开头。您可能希望通过类似head word2vec.bin.gz之类的内容查看问题文件的前几行,以查看是否有其他指示(除了您的预期之外)。

答案 1 :(得分:0)

例如,我保存了一个名为“ GoogleNews-vectors-negative300.bin.gz”的文件

curl -o - https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz | gunzip > ./GoogleNews-vectors-negative300.bin

说明:

  • 代表标准输出。标准输出是使用|进行管道重定向的内容。 来自man curl

将输出指定为“-”(一个破折号)将强制输出到 完成标准输出。

因此,根据您的情况,对文件进行相同操作

有关更多信息,请参见原始解决方案:

issue and solution