Partie 1 : Prétraiter les données

Traduction automatique avec Keras

Thushan Ganegedara

Data Scientist and Author

Présentation des données

  • Données

    • en_text : une liste Python de phrases ; chaque phrase est une chaîne de mots séparés par des espaces.
    • fr_text : une liste Python de phrases ; chaque phrase est une chaîne de mots séparés par des espaces.
  • Afficher quelques données du jeu de données

for en_sent, fr_sent in zip(en_text[:3], fr_text[:3]):
  print("English: ", en_sent)
  print("\tFrench: ", fr_sent)
English:  new jersey is sometimes quiet during autumn , and it is snowy in april .
    French:  new jersey est parfois calme pendant l' automne , et il est neigeux en avril .
English:  the united states is usually chilly during july , and it is usually freezing in november .
    French:  les états-unis est généralement froid en juillet , et il gèle habituellement en novembre .
...
Traduction automatique avec Keras

Tokenisation de mots

  • Tokenisation

    • Processus consistant à découper une phrase/locution en mots/caractères individuels
    • Par ex. "I watched a movie last night, it was okay." devient :
    • [I, watched, a, movie, last, night, it, was, okay]
  • Tokenisation avec Keras

    • Apprend une correspondance entre chaque mot et un identifiant à partir d'un corpus donné.
    • Permet de convertir une chaîne en séquence d'identifiants
from tensorflow.keras.preprocessing.text import Tokenizer
en_tok = Tokenizer()
Traduction automatique avec Keras

Ajuster le Tokenizer

  • Ajuster le Tokenizer sur des données
    • Le Tokenizer doit être ajusté sur des phrases pour apprendre la correspondance mot → identifiant.
en_tok = Tokenizer()
en_tok.fit_on_texts(en_text)
  • Obtenir la correspondance mot → identifiant
    • Utilisez l'attribut word_index du Tokenizer.
id = en_tok.word_index["january"] # => returns 51
  • Obtenir la correspondance identifiant → mot
w = en_tok.index_word[51] # => returns 'january'
Traduction automatique avec Keras

Transformer des phrases en séquences

seq = en_tok.texts_to_sequences(['she likes grapefruit , peaches , and lemons .'])
[[26, 70, 27, 73, 7, 74]]
Traduction automatique avec Keras

Limiter la taille du vocabulaire

  • Vous pouvez limiter la taille du vocabulaire dans un Tokenizer Keras.
tok = Tokenizer(num_words=50)
  • Mots hors vocabulaire (OOV)

    • Mots rares dans le corpus d'entraînement (c.-à-d. l'ensemble de textes).
    • Mots absents de l'ensemble d'entraînement.
  • Par ex.

    • tok.fit_on_texts(["I drank milk"])
    • tok.texts_to_sequences(["I drank water"])
    • Le mot water est OOV et sera ignoré.
Traduction automatique avec Keras

Traiter les mots hors vocabulaire

  • Définir un jeton OOV
tok = Tokenizer(num_words=50, oov_token='UNK')
  • Par ex.
    • tok.fit_on_texts(["I drank milk"])
    • tok.texts_to_sequences(["I drank water"])
    • Le mot water est OOV et sera remplacé par UNK.
      • c.-à-d. Keras verra "I drank UNK"
Traduction automatique avec Keras

Passons à la pratique !

Traduction automatique avec Keras

Preparing Video For Download...