以 10 为底的 int() 的无效文字:'<!DOCTYPE

invalid literal for int() with base 10: '<!DOCTYPE

我正在尝试在 Google Colab 中使用预训练的 word2vec。之前我将模型下载到我的 C:/,然后将其上传到我的 Google 驱动器。但是,我收到这个错误,我似乎无法在任何地方找到它。

我的代码是:

from gensim.models import word2vec
import urllib.request

urllib.request.urlretrieve("https://drive.google.com/file/d/1lgCddPxJC__QA-qGtYTdNNoHRiYWyOpQ/view?usp=sharing/GoogleNews-vectors-negative300.bin", "GoogleNews-vectors-negative300.bin")

word2vec_path = 'GoogleNews-vectors-negative300.bin'
word2vec = gensim.models.KeyedVectors.load_word2vec_format(word2vec_path, binary=True)

错误信息:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-354-492ef9dcbbcc> in <module>()
      1 word2vec_path = 'GoogleNews-vectors-negative300.bin'
----> 2 word2vec = gensim.models.KeyedVectors.load_word2vec_format(word2vec_path, binary=True)

2 frames
/usr/local/lib/python3.7/dist-packages/gensim/models/utils_any2vec.py in <genexpr>(.0)
    171     with utils.smart_open(fname) as fin:
    172         header = utils.to_unicode(fin.readline(), encoding=encoding)
--> 173         vocab_size, vector_size = (int(x) for x in header.split())  # throws for invalid file format
    174         if limit:
    175             vocab_size = min(vocab_size, limit)

ValueError: invalid literal for int() with base 10: '<!DOCTYPE'

作为使用 ~deceze 注释,该错误提示该文件有一些典型的 HTML 样板文件 (<~DOCTYPE),其中代码期望 2 ints 声明即将到来的计数-向量 (vocab_size) 及其维度 (vector_size).

很可能您的 urlrequest() 操作没有收到您期望的文件,可能收到 'file not found' 或其他错误。所以:

  • 检查其大小和内容是否符合您的预期。
  • 检查您的请求代码,以确保它甚至可以从随机的云笔记本中获取您需要的内容。 (也许 Google Drive URL 需要登录用户,而您的 Colab notebook 无法作为登录版本发出网络请求?)
  • 如果您在其他地方有有效文件,请查看是否可以将该有效副本直接发送到笔记本的临时存储 space。