我正在使用gensim编写代码,在我的代码中对ValueError进行故障排除非常困难。我终于能够压缩GoogleNews-vectors negative300.bin.gz文件,这样我就可以在我的模型中实现它。我也尝试了gzip,但结果并不成功。代码中的错误出现在最后一行。我想知道可以做些什么来修复这个错误。有什么变通方法吗?最后,有没有我可以参考的网站?
非常感谢您的帮助!
import gensim
from keras import backend
from keras.layers import Dense, Input, Lambda, LSTM, TimeDistributed
from keras.layers.merge import concatenate
from keras.layers.embeddings import Embedding
from keras.models import Mode
pretrained_embeddings_path = "GoogleNews-vectors-negative300.bin"
word2vec =
gensim.models.KeyedVectors.load_word2vec_format(pretrained_embeddings_path,
binary=True)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-3-23bd96c1d6ab> in <module>()
1 pretrained_embeddings_path = "GoogleNews-vectors-negative300.bin"
----> 2 word2vec =
gensim.models.KeyedVectors.load_word2vec_format(pretrained_embeddings_path,
binary=True)
C:\Users\green\Anaconda3\envs\py35\lib\site-
packages\gensim\models\keyedvectors.py in load_word2vec_format(cls, fname,
fvocab, binary, encoding, unicode_errors, limit, datatype)
244 word.append(ch)
245 word = utils.to_unicode(b''.join(word),
encoding=encoding, errors=unicode_errors)
--> 246 weights = fromstring(fin.read(binary_len),
dtype=REAL)
247 add_word(word, weights)
248 else:
ValueError: string size must be a multiple of element size
发布于 2018-04-02 19:19:20
发布于 2019-12-02 18:09:39
试试这个-
import gensim.downloader as api
wv = api.load('word2vec-google-news-300')
vec_king = wv['king']
发布于 2021-10-30 09:43:34
以下是对我起作用的方法。我加载了模型的一部分,而不是整个模型,因为它太大了。
!pip install wget
import wget
url = 'https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz'
filename = wget.download(url)
f_in = gzip.open('GoogleNews-vectors-negative300.bin.gz', 'rb')
f_out = open('GoogleNews-vectors-negative300.bin', 'wb')
f_out.writelines(f_in)
import gensim
from gensim.models import Word2Vec, KeyedVectors
from sklearn.decomposition import PCA
model = KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True, limit=100000)
https://stackoverflow.com/questions/46433778
复制相似问题