Part 1: 보물 찾기
여러분은 최근에 모든 경비가 제공되는 푸른 열대 섬 여행에 당첨되었어요. 이곳을 둘러보다가 위대한 보물로 향하는 고대의 보물 지도를 발견했는데, 그 위에는 1과 0으로 적힌 비밀 메시지가 있었습니다. 방금 이 강의를 수강한 덕분에, 여러분은 그것이 onehot 인코딩된 벡터들의 시퀀스라는 것을 바로 알아봤죠. 운 좋게도 어떤 단어가 어떤 ID를 가리키는지 알 수 있는 단어-인덱스 매핑도 찾았습니다.
이제 이 비밀 메시지를 해독해 지도가 무엇을 말하는지 알아내야 합니다. 제공된 treasure_map은 문장 수 × 단어 수 × onehot 벡터 길이 형태의 행렬입니다. 또한 ID를 단어로 매핑하는 index2word Python 딕셔너리도 함께 제공됩니다.
이 연습은 강의의 일부입니다
Keras로 배우는 Machine Translation
연습 안내
treasure_map에 있는 onehot 인코딩 벡터들에서 단어 ID를 추출하세요(onehot 벡터 차원은 마지막 차원입니다).treasure_map에서 시퀀스 길이(즉, time step의 수)를 구해seq_len에 할당하세요.i번째 문장의t번째 위치에 있는 단어 ID를 가져오세요.wid에 해당하는String형 단어(단어 ID가 아니라 실제 단어)를 리스트words에 추가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Get the word IDs from the treasure map
word_ids = ____.____(____, axis=____)
# Get the sequence length from the treasure map
seq_len = treasure_map.shape[____]
for i in range(treasure_map.shape[0]):
words = []
for t in range(seq_len):
# Get the word ID for the i-th sentence and t-th position
wid = word_ids[i, ____]
if wid != 0:
# Append the word corresponding to wid
words.append(____[____])
print("Instruction ", i+1, ": ", ' '.join(words))