Introduction à la traduction automatique

Traduction automatique avec Keras

Thushan Ganegedara

Data Scientist and Author

Traduction automatique

Traductions de « Hello »

Traduction automatique avec Keras

Traduction automatique

Traduction de Hello avec l'icône Google

Traduction automatique avec Keras

Plan du cours

  • Chapitre 1 — Introduction à la traduction automatique
  • Chapitre 2 — Mettre en œuvre un modèle de traduction (architecture encodeur-décodeur)
  • Chapitre 3 — Entraîner le modèle et générer des traductions
  • Chapitre 4 — Améliorer le modèle de traduction
Traduction automatique avec Keras

Ensemble de données (corpus de phrases anglais-français)

  • Corpus anglais
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 français
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
Traduction automatique avec Keras

Traduction automatique — Aperçu

Anglais vers français

Traduction automatique avec Keras

Traduction automatique — Aperçu

Termes langue source/cible

Traduction automatique avec Keras

Traduction automatique — Aperçu

Modèle de traduction automatique

Traduction automatique avec Keras

Traduction automatique — Aperçu

Modèle de traduction automatique

Traduction automatique avec Keras

Vecteurs one-hot encodés

  • Un vecteur de zéros et de uns
  • Sa longueur dépend de la taille du vocabulaire
  • Vocabulaire : ensemble des mots uniques du jeu de données

Vecteurs one‑hot

Traduction automatique avec Keras

Vecteurs one-hot encodés

Un mappage contenant les mots et leurs indices correspondants

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

Convertir les mots en ID ou indices

words = ["I", "like", "cats"]
word_ids = [word2index[w] for w in words]
print(word_ids)
[0, 1, 2]
Traduction automatique avec Keras

Vecteurs one-hot encodés

Encodage one-hot sans préciser la longueur du vecteur de sortie

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

Encodage one-hot en précisant la longueur du vecteur de sortie

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])]
Traduction automatique avec Keras

Passons à la pratique !

Traduction automatique avec Keras

Preparing Video For Download...