Wprowadzenie do tłumaczenia maszynowego

Tłumaczenie maszynowe z Keras

Thushan Ganegedara

Data Scientist and Author

Tłumaczenie maszynowe

Tłumaczenia słowa Hello

Tłumaczenie maszynowe z Keras

Tłumaczenie maszynowe

Tłumaczenie słowa Hello z ikoną Google

Tłumaczenie maszynowe z Keras

Plan kursu

  • Rozdział 1 – Wprowadzenie do tłumaczenia maszynowego
  • Rozdział 2 – Implementacja modelu (architektura koder-dekoder)
  • Rozdział 3 – Trenowanie modelu i generowanie tłumaczeń
  • Rozdział 4 – Ulepszanie modelu tłumaczenia
Tłumaczenie maszynowe z Keras

Zbiór danych (korpus zdań angielsko-francuskich)

  • Korpus angielski
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 .
  • Korpus francuski
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
Tłumaczenie maszynowe z Keras

Tłumaczenie maszynowe – przegląd

Angielski na francuski

Tłumaczenie maszynowe z Keras

Tłumaczenie maszynowe – przegląd

Terminy języka źródłowego i docelowego

Tłumaczenie maszynowe z Keras

Tłumaczenie maszynowe – przegląd

Model tłumaczenia maszynowego

Tłumaczenie maszynowe z Keras

Tłumaczenie maszynowe – przegląd

Model tłumaczenia maszynowego

Tłumaczenie maszynowe z Keras

Wektory kodowane one-hot

  • Wektor złożony z jedynek i zer
  • Długość wektora zależy od rozmiaru słownika
  • Słownik – zbiór unikalnych słów w zbiorze danych

Wektory one-hot

Tłumaczenie maszynowe z Keras

Wektory kodowane one-hot

Słownik mapujący słowa na odpowiadające im indeksy

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

Konwersja słów na identyfikatory (indeksy)

words = ["I", "like", "cats"]
word_ids = [word2index[w] for w in words]
print(word_ids)
[0, 1, 2]
Tłumaczenie maszynowe z Keras

Wektory kodowane one-hot

Kodowanie one-hot bez określania długości wektora wyjściowego

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])]

Kodowanie one-hot z określaniem długości wektora wyjściowego

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])]
Tłumaczenie maszynowe z Keras

Czas na ćwiczenia!

Tłumaczenie maszynowe z Keras

Preparing Video For Download...