我正在尝试将预训练的手套作为gensim中的word2vec模型加载。我已经从这里下载了手套文件。我正在使用以下脚本:
from gensim import models
model = models.KeyedVectors.load_word2vec_format('glove.6B.300d.txt', binary=True)
但出现以下错误
ValueError Traceback (most recent call last)
<ipython-input-38-e0b48b51f433> in <module>()
1 from gensim import models
----> 2 model = models.KeyedVectors.load_word2vec_format('glove.6B.300d.txt', binary=True)
2 frames
/usr/local/lib/python3.6/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: 'the'
潜在的问题是什么?gensim是否需要特定格式才能加载它?
GLoVe格式与支持的格式略有不同-缺少向量计数和维的第一行声明load_word2vec_format()
。
其中glove2word2vec
包含一个实用程序脚本,您可以运行一次以转换文件:
https://radimrehurek.com/gensim/scripts/glove2word2vec.html
同样,从Gensim 4.0.0(当前在预发行版测试中)开始,该load_word2vec_format()
方法将获得一个新的可选no_header
参数:
如果设置为no_header=True
,则该方法将从文件的初步扫描中得出计数/尺寸-因此它可以使用该选项读取GLoVe文件-但以两次读取完整文件而不是一次读取为代价。(因此,您可能仍想使用来重新保存对象.save_word2vec_format()
,或使用glove2word2vec
脚本来使以后的加载更快。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句