Arsitektur encoder–decoder

Penerjemahan Mesin dengan Keras

Thushan Ganegedara

Data Scientist and Author

Model encoder–decoder

Model penerjemahan mesin

Penerjemahan Mesin dengan Keras

Encoder

Encoder

Penerjemahan Mesin dengan Keras

Encoder dan decoder

Encoder–decoder

Penerjemahan Mesin dengan Keras

Analogi: arsitektur encoder–decoder

Analogi encoder

Analogi decoder

Penerjemahan Mesin dengan Keras

Membalik kalimat – model encoder–decoder

Teks balik encoder–decoder

Penerjemahan Mesin dengan Keras

Menulis 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
Penerjemahan Mesin dengan Keras

Menulis encoder

onehot = words2onehot(["I", "like", "cats"], word2index)
context = encoder(onehot)
print(context)
[0, 1, 2]
Penerjemahan Mesin dengan Keras

Menulis decoder

  • Decoder: ID kata → balik ID → vektor one-hot
def decoder(context_vector):
  word_ids_rev = context_vector[::-1]
  onehot_rev = to_categorical(word_ids_rev, 3)
  return onehot_rev
  • Fungsi bantu: ubah vektor one-hot menjadi kata yang terbaca
def onehot2words(onehot, index2word):
  ids = np.argmax(onehot, axis=1)
  return [index2word[id] for id in ids]
Penerjemahan Mesin dengan Keras

Menulis decoder

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

print(reversed_words)
['cats', 'like', 'I']
Penerjemahan Mesin dengan Keras

Ayo berlatih!

Penerjemahan Mesin dengan Keras

Preparing Video For Download...