시작하기무료로 시작하기

영어-프랑스어 번역 생성하기

HSBC 은행이 번역 실수 때문에 슬로건 리브랜딩에 1,000만 달러를 쓴 적이 있다는 사실을 아시나요?

이제 학습된 모델을 사용해 model.predict()로 영어 문장의 프랑스어 번역을 예측해 보겠습니다. 학습된 모델(model)이 제공됩니다. 이 모델은 10만 개 문장으로 50 epoch 동안 학습되었고, 35,000개 이상 단어로 구성된 검증 세트에서 약 90% 정확도를 달성했습니다. 이 연습 문제는 학습된 모델을 미리 로드하므로 로딩 시간이 조금 더 길 수 있습니다. 또한 단어 인덱스를 단어로 변환할 수 있는 사전(fr_id2word)도 제공됩니다. 마지막으로, 모델에 입력하기 전에 데이터를 전처리하기 위해 앞서 구현한 sents2seqs 함수를 사용합니다.

sents2seqs() 함수가 어떤 입력을 받는지 기억이 안 난다면 help(sents2seqs)를 사용해 확인하세요.

이 연습은 강의의 일부입니다

Keras로 배우는 Machine Translation

강의 보기

연습 안내

  • 이전에 정의한 sents2seqs 함수를 사용해 소스 en_st를 원-핫 인코딩된 numpy 배열로 변환해 전처리하세요.
  • 제공된 학습된 model을 사용해 en_seq의 출력을 예측하세요.
  • np.argmaxfr_pred의 각 예측에서 최대 인덱스를 추출하여 fr_seq에 할당하세요.
  • 리스트 컴프리헨션을 사용해 프랑스어 시퀀스 ID를 문장으로 변환하고(0은 무시하세요) fr_sent에 할당하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

en_st = ['the united states is sometimes chilly during december , but it is sometimes freezing in june .']
print('English: {}'.format(en_st))

# Convert the English sentence to a sequence
en_seq = ____(____, en_st, ____=True, reverse=____)

# Predict probabilities of words using en_seq
fr_pred = ____.____(en_seq)

# Get the sequence indices (max argument) of fr_pred
fr_seq = ____.____(fr_pred, axis=____)[0]

# Convert the sequence of IDs to a sentence and print
fr_sent = [____[i] for i in ____ if i != ____]
print("French (Custom): {}".format(' '.join(fr_sent)))
print("French (Google Translate): les etats-unis sont parfois froids en décembre, mais parfois gelés en juin")
코드 편집 및 실행