Introduzione alla traduzione automatica

Traduzione automatica con Keras

Thushan Ganegedara

Data Scientist and Author

Traduzione automatica

Traduzioni di ciao

Traduzione automatica con Keras

Traduzione automatica

Traduzione di ciao con icona Google

Traduzione automatica con Keras

Programma del corso

  • Capitolo 1 - Introduzione alla traduzione automatica
  • Capitolo 2 - Implementare un modello di traduzione (architettura encoder-decoder)
  • Capitolo 3 - Addestrare il modello e generare traduzioni
  • Capitolo 4 - Migliorare il modello di traduzione
Traduzione automatica con Keras

Dataset (corpus di frasi inglese-francese)

  • Corpus inglese
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 francese
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
Traduzione automatica con Keras

Traduzione automatica - Panoramica

Inglese a francese

Traduzione automatica con Keras

Traduzione automatica - Panoramica

Termini: lingua sorgente e di arrivo

Traduzione automatica con Keras

Traduzione automatica - Panoramica

Modello di traduzione automatica

Traduzione automatica con Keras

Traduzione automatica - Panoramica

Modello di traduzione automatica

Traduzione automatica con Keras

Vettori one-hot

  • Un vettore di zeri e uni
  • La lunghezza dipende dalla dimensione del vocabolario
  • Vocabolario: insieme di parole uniche nel dataset

Vettori one-hot

Traduzione automatica con Keras

Vettori one-hot

Una mappa con parole e indici corrispondenti

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

Convertire parole in ID/indici

words = ["I", "like", "cats"]
word_ids = [word2index[w] for w in words]
print(word_ids)
[0, 1, 2]
Traduzione automatica con Keras

Vettori one-hot

One-hot encoding senza specificare la lunghezza del vettore di output

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 con lunghezza di output specificata

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])]
Traduzione automatica con Keras

Passiamo alla pratica!

Traduzione automatica con Keras

Preparing Video For Download...