Introduktion till maskinöversättning

Maskinöversättning med Keras

Thushan Ganegedara

Data Scientist and Author

Maskinöversättning

Hej översättningar

Maskinöversättning med Keras

Maskinöversättning

Hej översättning med Google-ikon

Maskinöversättning med Keras

Kursöversikt

  • Kapitel 1 – Introduktion till maskinöversättning
  • Kapitel 2 – Implementera en maskinöversättningsmodell (encoder-decoder-arkitektur)
  • Kapitel 3 – Träna modellen och generera översättningar
  • Kapitel 4 – Förbättra översättningsmodellen
Maskinöversättning med Keras

Datamängd (engelskt-franskt meningskorpus)

  • Engelskt korpus
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 .
  • Franskt korpus
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
Maskinöversättning med Keras

Maskinöversättning – översikt

Engelska till franska

Maskinöversättning med Keras

Maskinöversättning – översikt

Termer för käll- och målspråk

Maskinöversättning med Keras

Maskinöversättning – översikt

Maskinöversättningsmodell

Maskinöversättning med Keras

Maskinöversättning – översikt

Maskinöversättningsmodell

Maskinöversättning med Keras

One-hot-kodade vektorer

  • En vektor av ettor och nollor
  • Vektorns längd bestäms av vokabulärets storlek
  • Vokabulär – samlingen av unika ord i datamängden

One-hot-vektorer

Maskinöversättning med Keras

One-hot-kodade vektorer

En mappning med ord och deras motsvarande index

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

Omvandla ord till ID:n eller index

words = ["I", "like", "cats"]
word_ids = [word2index[w] for w in words]
print(word_ids)
[0, 1, 2]
Maskinöversättning med Keras

One-hot-kodade vektorer

One-hot-kodning utan att ange utdatavektorns längd

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-kodning med angiven utdatavektorlängd

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])]
Maskinöversättning med Keras

Nu kör vi en övning!

Maskinöversättning med Keras

Preparing Video For Download...