Decodifique suas previsões
Seu LSTM model já foi treinado (veja os detalhes na mensagem de sucesso do exercício anterior), assim você não precisa esperar. É hora de definir uma função que decodifica as previsões. O model treinado será passado como parâmetro padrão para essa função.
Como você está prevendo com um modelo que usa a função softmax, o argmax() do NumPy pode ser usado para obter o índice/posição que representa a próxima palavra mais provável a partir do vetor de probabilidades de saída.
O tokenizer que você criou e ajustou anteriormente já está carregado para você. Você usará seu dicionário interno index_word para transformar a previsão de próxima palavra do model (que é um número inteiro) na palavra escrita que ela representa.
Você está muito perto de experimentar seu modelo!
Este exercício faz parte do curso
Introdução ao Deep Learning com Keras
Instruções do exercício
- Use
texts_to_sequences()para transformar o parâmetrotest_textem uma sequência de números. - Obtenha a previsão de próxima palavra do modelo passando
test_seq. O índice/posição que representa a palavra com maior probabilidade é obtido chamando.argmax(axis=1)[0]no array do NumPy de previsões. - Retorne a palavra que corresponde à previsão usando o dicionário
index_worddo tokenizer.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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.____[____]