#python #tensorflow #word-embedding
#python #тензорный поток #встраивание слов
Вопрос:
Я пытаюсь запустить этот код в течение нескольких часов, но я мог бы решить проблему. Кто-нибудь знает, как я мог бы исправить ist? Он выдает ошибку имени: имя ’embedding_weights’ не определено, но я его уже определил.
Большое спасибо!
def get_glove(path_to_glove, word2index_map):
embedding_weights = {}
count_all_words = 0
with zipfile.ZipFile(path_to_glove) as z:
with open("glove.6B.300d.zip") as f:
for line in f:
vals = line.split()
word = str(vals[0].decode("utf-8"))
if word in word2index_map:
print(word)
count_all_words =1
coefs = np_asarray(vals[:1],dtype='float32')
coefs/=np.linalg.norm(coefs)
embedding_weights[word] = coefs
if count_all_words==vocabulary_size-1:
break
return embedding_weights
word2embedding_dict = get_glove(path_to_glove,word2index_map)
Комментарии:
1. В вашем исходном сообщении возврат не был внутри функции (пропущенные пробелы). Это была проблема форматирования вашего вопроса или проблема?
2. Да, спасибо, проблема была в форматировании. Извините, я думаю, что я долго сидел над этим! Можете ли вы узнать, почему в строке 9 также есть ошибка? Он выдает ошибку UnicodeDecodeError: кодек ‘utf-8’ не может декодировать байт 0xbb в позиции 53: недопустимый начальный байт.
3. Я уже пробовал это с помощью ‘ignore’.
4. Возможно, ваш доступ к zip-файлу неверен. Вы не используете диспетчер контекста
z
и получаете доступ к zip-каталогу напрямую, а не к одному файлу. Может взглянуть на docs.python.org/3/library/zipfile.html#zipfile . ZipFile.open