Декодуйте свої передбачення
Вашу LSTM‑модель model уже натреновано (деталі — у повідомленні про успіх попередньої вправи), тож чекати не доведеться. Час визначити функцію, яка декодує її передбачення. Навчена model буде передана до цієї функції як параметр за замовчуванням.
Оскільки ви робите передбачення на моделі, що використовує функцію softmax, можна застосувати argmax() з numpy, щоб отримати індекс/позицію найімовірнішого наступного слова з вихідного вектора ймовірностей.
Створений і підігнаний вами раніше tokenizer уже завантажено. Ви використаєте його внутрішній словник index_word, щоб перетворити передбачення наступного слова від model (яке є цілим числом) на фактичне написане слово, яке воно представляє.
Ви зовсім близько до експериментів із вашою моделлю!
Ця вправа є частиною курсу
Вступ до Deep Learning з Keras
Інструкції до вправи
- Використайте
texts_to_sequences()щоб перетворити параметрtest_textна послідовність чисел. - Отримайте передбачення наступного слова від моделі, передавши
test_seq. Індекс/позицію слова з найвищою ймовірністю отримайте, викликавши.argmax(axis=1)[0]на масиві передбачень numpy. - Поверніть слово, яке відповідає передбаченню, використавши словник
index_wordтокенайзера.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
def predict_text(test_text, model = model):
if len(test_text.split()) != 3:
print('Text input should be 3 words!')
return False
# Turn the test_text into a sequence of numbers
test_seq = tokenizer.texts_to_sequences([____])
test_seq = np.array(test_seq)
# Use the model passed as a parameter to predict the next word
pred = ____.predict(____).argmax(axis = 1)[0]
# Return the word that maps to the prediction
return tokenizer.____[____]