Kiến trúc encoder–decoder

Machine Translation với Keras

Thushan Ganegedara

Data Scientist and Author

Mô hình encoder–decoder

Mô hình dịch máy

Machine Translation với Keras

Encoder

Encoder

Machine Translation với Keras

Encoder và decoder

Encoder và decoder

Machine Translation với Keras

Tương tự: kiến trúc encoder–decoder

So sánh tương tự cho encoder

So sánh tương tự cho decoder

Machine Translation với Keras

Đảo ngược câu – mô hình encoder–decoder

Đảo ngược văn bản bằng encoder–decoder

Machine Translation với Keras

Viết encoder

def words2onehot(word_list, word2index):
  word_ids = [word2index[w] for w in word_list]
  onehot = to_categorical(word_ids, 3)
  return onehot
def encoder(onehot):
  word_ids = np.argmax(onehot, axis=1)
  return word_ids
Machine Translation với Keras

Viết encoder

onehot = words2onehot(["I", "like", "cats"], word2index)
context = encoder(onehot)
print(context)
[0, 1, 2]
Machine Translation với Keras

Viết decoder

  • Decoder: ID từ → Đảo ngược ID → vector one-hot
def decoder(context_vector):
  word_ids_rev = context_vector[::-1]
  onehot_rev = to_categorical(word_ids_rev, 3)
  return onehot_rev
  • Hàm trợ giúp: đổi vector one-hot thành từ dễ đọc
def onehot2words(onehot, index2word):
  ids = np.argmax(onehot, axis=1)
  return [index2word[id] for id in ids]
Machine Translation với Keras

Viết decoder

onehot_rev = decoder(context)
reversed_words = onehot2words(onehot_rev, index2word)

print(reversed_words)
['cats', 'like', 'I']
Machine Translation với Keras

Ayo berlatih!

Machine Translation với Keras

Preparing Video For Download...