开发聊天机器人加载GoogleNews Word2Vec二进制文件遇UnpicklingError错误
解决GoogleNews Word2Vec二进制文件加载的UnpicklingError问题
嘿,我来帮你搞定这个报错!你遇到的UnpicklingError: invalid load key, '3'是因为用错了加载方法哦~
问题原因
GoogleNews-vectors-negative300.bin是原始二进制格式的预训练词向量文件,而gensim.models.Word2Vec.load()这个方法是用来加载gensim自己训练后保存的模型文件(通常后缀是.model,是经过gensim序列化的格式),用它来加载原始bin文件自然会报错。
正确的加载方式
你需要用KeyedVectors.load_word2vec_format()方法来加载这种原始的词向量文件,记得加上binary=True参数(因为文件是二进制格式):
import gensim model = gensim.models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
额外小提示
如果你的内存有限,加载整个300维的GoogleNews模型可能会占用大量内存(大概3.6GB左右),可以通过limit参数限制加载的词数量,比如只加载前5万个最常用的词:
model = gensim.models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True, limit=50000)
这样既能快速加载,又能节省内存资源~
内容的提问来源于stack exchange,提问作者surya
相关产品推荐
相关产品推荐

