【发布时间】: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