모델 입력을 위한 텍스트 데이터 준비
앞서 단어에 대한 인덱스 사전과 그 반대 사전을 만드는 방법을 배웠습니다. 이 연습 문제에서는 텍스트를 문자 단위로 분할하고, 지도 학습을 위한 데이터 준비를 이어서 진행해 보겠습니다.
텍스트를 문자 단위로 나누는 방식이 다소 낯설게 느껴질 수 있지만, 텍스트 생성(task)에서는 흔히 사용하는 방법입니다. 또한 데이터 준비 과정은 동일하고, 달라지는 점은 텍스트를 분할하는 방식뿐입니다.
고정 길이의 텍스트 목록과 그 레이블(해당 텍스트 다음에 올 문자)로 구성된 학습 데이터를 만들게 됩니다.
sheldon_quotes 변수에 들어 있는 Sheldon(The Big Bang Theory)의 인용문 데이터셋을 계속 사용합니다.
print_examples() 함수는 변환된 데이터의 쌍을 출력해 보여줍니다. 자세한 내용은 help()를 사용해 확인하세요.
이 연습은 강의의 일부입니다
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)
연습 안내
step을2로,chars_window를10으로 정의하세요.- 다음 문장을
sentences변수에 추가하세요. - 텍스트
sheldon에서 올바른 위치의 문자를next_chars변수에 추가하세요. print_examples()함수를 사용해 문장10개와 다음 문자를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create lists to keep the sentences and the next character
sentences = [] # ~ Training data
next_chars = [] # ~ Training labels
# Define hyperparameters
step = ____ # ~ Step to take when reading the texts in characters
chars_window = ____ # ~ Number of characters to use to predict the next one
# Loop over the text: length `chars_window` per time with step equal to `step`
for i in range(0, len(sheldon_quotes) - chars_window, step):
sentences.____(sheldon_quotes[i:i + chars_window])
next_chars.append(sheldon_quotes[____])
# Print 10 pairs
print_examples(____, ____, 10)