Sinh bản dịch Anh–Pháp
Bạn có biết ngân hàng HSBC từng tốn 10 triệu đô để tái định vị khẩu hiệu chỉ vì một lỗi dịch thuật?
Chúng ta sẽ dùng mô hình đã huấn luyện để dự đoán bản dịch tiếng Pháp của một câu tiếng Anh bằng model.predict(). Bạn sẽ được cung cấp mô hình đã huấn luyện (model). Mô hình này được huấn luyện 50 epoch trên 100.000 câu và đạt khoảng 90% độ chính xác trên tập kiểm định hơn 35.000 từ. Bài tập này có thể mất nhiều thời gian tải hơn vì cần nạp mô hình đã huấn luyện trước khi bắt đầu. Ngoài ra, bạn cũng sẽ được cung cấp một từ điển (fr_id2word) để chuyển chỉ số từ thành từ. Cuối cùng, bạn sẽ dùng hàm sents2seqs mà bạn đã triển khai trước đó để tiền xử lý dữ liệu trước khi đưa vào mô hình.
Bạn có thể dùng help(sents2seqs) để xem lại sents2seqs() nhận những tham số nào.
Bài tập này là một phần của khóa học
Machine Translation với Keras
Hướng dẫn bài tập
- Tiền xử lý nguồn
en_stđể chuyển thành mảngnumpyonehot bằng hàmsents2seqsđã định nghĩa trước đó. - Dự đoán đầu ra cho
en_seqbằngmodelđã huấn luyện được cung cấp. - Trích xuất chỉ số lớn nhất cho mỗi dự đoán trong
fr_predbằngnp.argmaxvà gán vàofr_seq. - Chuyển dãy ID tiếng Pháp thành một câu bằng list comprehension (nhớ bỏ qua các số 0) và gán vào
fr_sent.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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")