Encodage des données textuelles

Deep Learning pour le texte avec PyTorch

Shubham Jain

Data Scientist

Encodage de texte

"Pipeline de traitement Pytorch

  • Convertir le texte en nombres lisibles par la machine
  • Permettre l’analyse et la modélisation{{2}}"

"Image de données séquentielles pour trouver des informations{{3}}"

Deep Learning pour le texte avec PyTorch

Techniques d'encodage

"- Encodage one-hot : transforme les mots en représentations numériques uniques

  • Sac de mots (BoW) : capture la fréquence des mots, sans tenir compte de l'ordre
  • TF-IDF : équilibre l'unicité et l'importance
  • Embedding : convertit les mots en vecteurs, capturant le sens sémantique (Chapitre 2) {{4}}"
Deep Learning pour le texte avec PyTorch

Encodage one-hot

"- Associer chaque mot à un vecteur distinct

  • Vecteur binaire :
    • 1 pour la présence d’un mot
    • 0 pour l’absence d’un mot {{1}}"

"- ['chat', 'chien', 'lapin']

  • 'chat' [1, 0, 0]
  • 'chien' [0, 1, 0]
  • 'lapin' [0, 0, 1] {{5}}"
Deep Learning pour le texte avec PyTorch

Encodage one-hot avec PyTorch

"`py import torch vocab = ['chat', 'chien', 'lapin']


----CODE_GLUE----
```py
vocab_size = len(vocab)

one_hot_vectors = torch.eye(vocab_size)
one_hot_dict = {word: one_hot_vectors[i] for i, word in enumerate(vocab)}
print(one_hot_dict)

out {'chat': tensor([1., 0., 0.]), 'chien': tensor([0., 1., 0.]), 'lapin': tensor([0., 0., 1.])}{{5}}"

Deep Learning pour le texte avec PyTorch

Sac de mots

"- Exemple : « Le chat était assis sur le tapis »

  • Sac de mots :
    • {'the': 2, 'chat' : 1, 'sat': 1, 'on': 1, 'tapis' : 1} {{4}}"

"- Considérer chaque document comme une collection non ordonnée de mots

  • Se concentre sur la fréquence, pas sur l’ordre {{2}}"
Deep Learning pour le texte avec PyTorch

CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()
corpus = ['Ceci est le premier document.', 'Ce document est le deuxième document.', 'Et ceci est le troisième.', 'Est-ce le premier document ?']
X = vectorizer.fit_transform(corpus)
print(X.toarray())
print(vectorizer.get_feature_names_out())

out [[0 1 1 1 0 0 1 0 1] [0 2 0 1 0 1 1 0 1] [1 0 0 1 1 0 1 1 1] [0 1 1 1 0 0 1 0 1]] DNT_CURLY_TAG_5 out ['and' 'document' 'first' 'is' 'one' 'second' 'the' 'third' 'this']

Deep Learning pour le texte avec PyTorch

TF-IDF

"- Fréquence Terme-Fréquence Inverse de Document

  • Évalue l'importance des mots dans un document
  • Les mots rares ont un score plus élevé
  • Les mots courants ont un score plus faible
  • Met en avant les mots informatifs {{5}}"
Deep Learning pour le texte avec PyTorch

TfidfVectorizer

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()

corpus = ['Ceci est le premier document.','Ce document est le deuxième document.', 'Et ceci est le troisième.','Est-ce le premier document ?']
X = vectorizer.fit_transform(corpus)
print(X.toarray())
print(vectorizer.get_feature_names_out())
[[0.         0.         0.68091856 0.51785612 0.51785612 0.        ] [0.         0.         0.          0.51785612 0.51785612 0.68091856] [0.85151335 0.42575668 0.         0.32274454 0.32274454 0.        ] [0.         0.         0.68091856 0.51785612 0.51785612 0.        ]] ```
Deep Learning pour le texte avec PyTorch

TfidfVectorizer

"Code TFIDF"

Deep Learning pour le texte avec PyTorch

Techniques d'encodage

"Techniques : L'encodage one-hot, le sac de mots et le TF-IDF

  • Permettent aux modèles de comprendre et de traiter le texte
  • Choisissez une technique pour éviter la redondance
  • D'autres techniques existent {{3}}"
Deep Learning pour le texte avec PyTorch

Passons à la pratique !

Deep Learning pour le texte avec PyTorch

Preparing Video For Download...