最近在使用Glove向量时,需要到一个错误,没办法将str转化为float。
ValueError: could not convert string to float: ‘.’
解决方法:
原代码为:
# load the GloVe vectors in a dictionary:
embeddings_index = {}
f = open('../input/glove840b300dtxt/glove.840B.300d.txt')
for line in f:
values = line.split()
word = values[0]
coefs = np.asarray(values[1:], 'float32')
embeddings_index[word] = coefs
f.close()
print('Found %s word vectors.' % len(embeddings_index))
加上try,解决了此问题。
修改成功的代码为:
# load the GloVe vectors in a dictionary:
embeddings_index = {}
f = open('../input/glove840b300dtxt/glove.840B.300d.txt')
try:
for line in f:
values = line.split()
word = values[0]
coefs = np.asarray(values[1:], 'float32')
embeddings_index[word] = coefs
except:
f.__next__()
f.close()
print('Found %s word vectors.' % len(embeddings_index))
出现这个错误的原因可能是某行的数据中混入了特殊的符号。