#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 выполняет такую обработку. Идеально, если это работает для вас!