Прогнозирование моих нейронных сетей выдает мне ошибку: IndexError: индекс списка вне диапазона

#python #machine-learning #keras #neural-network #data-analysis

#python #машинное обучение #keras #нейронная сеть #анализ данных

Вопрос:

Я выполняю простую классификацию текста ham / spam. Мой Keras NN обучен и оценен должным образом; однако, когда я пытаюсь предсказать новый текст в следующем формате, я получаю ошибку «IndexError: индекс списка вне диапазона»:

 model.predict(cleaning_funcs('my bus departs in five minutes'))
  

Я также использовал следующее, если это поможет:

 from keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer(num_words=5000)
tokenizer.fit_on_texts(x_train)

x_train = tokenizer.texts_to_sequences(x_train)
x_test = tokenizer.texts_to_sequences(x_test)

vocab_size = len(tokenizer.word_index)   1
print(x_train[2])

from keras.preprocessing.sequence import pad_sequences
maxlen = 100
x_train = pad_sequences(x_train, padding='post', maxlen=maxlen)
x_test = pad_sequences(x_test, padding='post', maxlen=maxlen)
  

Ответ №1:

Я предполагаю, что ваши cleaning_funcs не возвращают массив, функция прогнозирования ожидает попытки массива

 model.predict([cleaning_funcs('my bus departs in five minutes')])
  

дополнительная информация https://www.tensorflow.org/api_docs/python/tf/keras/Model#predict

Комментарии:

1. Спасибо! Вы указали мне правильное направление. Приветствия

2. Вы можете опубликовать правильный ответ и пометить его как исправление, чтобы помочь сообществу, если этот ответ не совсем соответствует вашему вопросу.

3. Кажется, работает, если я делаю: model.predict(pad_sequences(tokenizer.texts_to_sequences([cleaning_funcs(‘мой автобус отправляется через пять минут’)]), padding=’post’, maxlen=maxlen)). round ()

4. Ах, хорошо, я понимаю! Я думал, что cleaning_funcs выполняет такую обработку. Идеально, если это работает для вас!