예측 결과 디코딩하기
이미 LSTM model은 학습되어 있어요(대기 시간을 줄이기 위해 이전 연습 문제의 성공 메시지에 세부 정보가 있습니다). 이제 이 모델의 예측을 디코딩하는 함수를 정의해 볼게요. 학습된 model은 이 함수의 기본 매개변수로 전달됩니다.
이 모델은 softmax 함수를 사용하므로, numpy의 argmax()를 이용해 확률 벡터에서 가장 가능성이 높은 다음 단어를 나타내는 인덱스(위치)를 얻을 수 있습니다.
이전에 생성하고 학습시킨 tokenizer가 이미 로드되어 있습니다. model의 다음 단어 예측값(정수)을 실제 단어로 바꾸기 위해 내부의 index_word 사전을 사용할 거예요.
이제 곧 모델로 직접 실험해 볼 수 있어요!
이 연습은 강의의 일부입니다
Keras로 시작하는 딥 러닝
연습 안내
texts_to_sequences()를 사용해test_text매개변수를 숫자 시퀀스로 변환하세요.test_seq를 모델에 전달해 다음 단어 예측을 얻으세요. 예측값의 numpy 배열에서 가장 높은 확률의 단어를 나타내는 인덱스/위치는.argmax(axis=1)[0]호출로 얻습니다.- 토크나이저의
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.____[____]