【问题标题】:Load Freebase using python使用 python 加载 Freebase
【发布时间】:2019-05-10 01:39:50
【问题描述】:

我得到了 freebase-vectors-skipgram1000-en.bin.gz 来自https://code.google.com/archive/p/word2vec/ 然后将其重命名为 freebase-vectors-skipgram1000-en.bin 并在我的代码中使用它

import gensim.models.keyedvectors as word2vec
gvc='freebase-vectors-skipgram1000-en.bin'
model=word2vec.KeyedVectors.load_word2vec_format(gvc,binary=True)

它给了我这个错误

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

我将不胜感激有关此问题的任何帮助。

【问题讨论】:

  • 将压缩的.gz 文件重命名为不带.gz 的另一个名称(但仍是压缩的),通常会混淆使用文件名作为文件格式提示的工具。要么保留文件的原始名称,要么真正解压缩它,你的加载应该可以工作。 (Gensim 也可以读取压缩的.gz 文件!)
  • 我使用 .gz 现在它给了我这个:数组太大; arr.size * arr.dtype.itemsize 大于最大可能大小。
  • 您可能会发现像/usr/bin/split -l 100 这样的命令会有所帮助。但最有可能的是,正如 Roy Scheider 的角色所宣布的,你需要一艘更大的船!获得具有更多内存的主机是合适的。
  • 非常感谢。
  • 是的,您可能需要更多 RAM。 (即使您可以使用虚拟内存,这些模型上典型的 most_similar() 操作也会触及每个元素,以找到前 N 个结果,这意味着任何交换对性能都是灾难性的。)另外,如果您使用的是 32 位Python 可执行文件(有时在 Windows 上仍然是一个问题),您可能会遇到数组大小的实现限制。

标签: python-3.x utf-8 word2vec freebase


【解决方案1】:

不要重命名您下载的内容,而是使用它来正确解压缩它:

$ gunzip -v freebase-vectors-skipgram1000-en.bin.gz

【讨论】:

    猜你喜欢
    • 2015-04-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多