Giới thiệu về dịch máy

Machine Translation với Keras

Thushan Ganegedara

Data Scientist and Author

Dịch máy

Bản dịch “Hello”

Machine Translation với Keras

Dịch máy

Dịch “Hello” với biểu tượng Google

Machine Translation với Keras

Khung khóa học

  • Chương 1 - Giới thiệu về dịch máy
  • Chương 2 - Xây dựng mô hình dịch máy (kiến trúc encoder–decoder)
  • Chương 3 - Huấn luyện mô hình và sinh bản dịch
  • Chương 4 - Cải thiện mô hình dịch
Machine Translation với Keras

Tập dữ liệu (corpus câu Anh–Pháp)

  • Corpus tiếng Anh
new jersey is sometimes quiet during autumn , and it is snowy in april .
the united states is usually chilly during july , and it is usually freezing ...
california is usually quiet during march , and it is usually hot in june .
  • Corpus tiếng Pháp
new jersey est parfois calme pendant l' automne , et il est neigeux en avril .
les états-unis est généralement froid en juillet , et il gèle habituellement ...
california est généralement calme en mars , et il est généralement chaud en juin .
1 https://github.com/udacity/deep-learning/tree/master/language-translation/data
Machine Translation với Keras

Dịch máy - Tổng quan

Tiếng Anh sang Tiếng Pháp

Machine Translation với Keras

Dịch máy - Tổng quan

Thuật ngữ ngôn ngữ nguồn/đích

Machine Translation với Keras

Dịch máy - Tổng quan

Mô hình dịch máy

Machine Translation với Keras

Dịch máy - Tổng quan

Mô hình dịch máy

Machine Translation với Keras

Vector one-hot

  • Vector gồm 0 và 1
  • Độ dài vector phụ thuộc kích thước từ vựng
  • Từ vựng: tập các từ duy nhất trong dữ liệu

Vector one-hot

Machine Translation với Keras

Vector one-hot

Ánh xạ chứa các từ và chỉ số tương ứng

word2index = {"I":0, "like": 1, "cats": 2}

Chuyển từ thành ID hoặc chỉ số

words = ["I", "like", "cats"]
word_ids = [word2index[w] for w in words]
print(word_ids)
[0, 1, 2]
Machine Translation với Keras

Vector one-hot

One-hot encoding không chỉ định độ dài vector đầu ra

onehot_1 = to_categorical(word_ids)
print([(w,ohe.tolist()) for w,ohe in zip(words, onehot_1)])
[('I', [1.0, 0.0, 0.0]), ('like', [0.0, 1.0, 0.0]), ('cats', [0.0, 0.0, 1.0])]

One-hot encoding chỉ định độ dài vector đầu ra

onehot_2 = to_categorical(word_ids, num_classes=5)
print([(w,ohe.tolist()) for w,ohe in zip(words, onehot_2)])
[('I', [1.0, 0.0, 0.0, 0.0, 0.0]), ('like', [0.0, 1.0, 0.0, 0.0, 0.0]), 
('cats', [0.0, 0.0, 1.0, 0.0, 0.0])]
Machine Translation với Keras

Ayo berlatih!

Machine Translation với Keras

Preparing Video For Download...