입력 텍스트 준비하기
영상에서 입력과 출력 텍스트를 준비하는 방법을 보셨죠. 이 연습 문제에서는 문장들의 최대 길이를 기준으로 패딩을 적용해 모든 문장의 길이를 맞추는 일반적인 방법을 실습해 볼 거예요. 이렇게 하면 정보가 손실되지 않아요.
RNN 모델은 입력의 크기가 동일해야 하므로, 더 짧은 문장에는 0을 채워 넣고 긴 문장은 자르지 않는 방식으로 모든 문장의 길이를 맞춥니다.
또한 토큰을 문자 단위가 아닌 단어 단위로 표현할 거예요. 이는 NMT 모델에서 흔히 쓰이는 접근 방식입니다.
포르투갈어 텍스트는 pt_sentences 변수에 로드되어 있고, 학습이 완료된 tokenizer 는 input_tokenizer 변수에 준비되어 있어요.
이 연습은 강의의 일부입니다
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)
연습 안내
- 각 문장에
.split()메서드를 사용해 공백으로 분할하고, 문장의 단어 개수를 구하세요. .texts_to_sequences()메서드를 사용해 텍스트를 인덱스 시퀀스로 변환하세요.- 구한 문장 최대 길이를 사용해 패딩을 적용하세요.
- 변환된 첫 번째 문장을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Get maximum length of the sentences
pt_length = max([len(sentence.____) for sentence in pt_sentences])
# Transform text to sequence of numerical indexes
X = input_tokenizer.____(pt_sentences)
# Pad the sequences
X = pad_sequences(X, maxlen=____, padding='post')
# Print first sentence
print(pt_sentences[0])
# Print transformed sentence
print(____)