Introduction au prétraitement de texte

Apprentissage profond pour le texte avec PyTorch

Shubham Jain

Data Scientist

Ce que nous allons apprendre

  • Classification de texte
  • Génération de texte
  • Encodage
  • Modèles d'apprentissage profond pour le texte
  • Architecture Transformer
  • Protection des modèles

Cas d'usage :

  • Analyse de sentiment
  • Résumé automatique
  • Traduction automatique

Analyse de sentiment

Apprentissage profond pour le texte avec PyTorch

Ce que vous devez savoir

Cours préalable : Intermediate Deep Learning with PyTorch

  • Modèles d'apprentissage profond avec PyTorch
  • Boucles d'entraînement et d'évaluation
  • Réseaux de neurones convolutifs (CNN) et récurrents (RNN)
Apprentissage profond pour le texte avec PyTorch

Pipeline de traitement de texte

 

 

Pipeline de traitement Pytorch

Apprentissage profond pour le texte avec PyTorch

Pipeline de traitement de texte

 

 

Pipeline de traitement Pytorch

 

  • Nettoyer et préparer le texte
Apprentissage profond pour le texte avec PyTorch

PyTorch et NLTK

Logo PyTorch

Logo NLTK

  • Natural Language Toolkit
    • Transformer le texte brut en texte traité
Apprentissage profond pour le texte avec PyTorch

Techniques de prétraitement

  • Tokenisation
  • Suppression des mots vides
  • Stemming
  • Suppression des mots rares
Apprentissage profond pour le texte avec PyTorch

Tokenisation

  • Des jetons ou mots sont extraits du texte
  • Tokenisation avec torchtext
from torchtext.data.utils import get_tokenizer

tokenizer = get_tokenizer("basic_english")
tokens = tokenizer("I am reading a book now. I love to read books!") print(tokens)
["I", "am", "reading", "a", "book", "now", ".", "I", "love", "to", "read", 
"books", "!"]
Apprentissage profond pour le texte avec PyTorch

Suppression des mots vides

  • Éliminer les mots courants qui n'apportent pas de sens
  • Mots vides : « a », « the », « and », « or », etc.
import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords

stop_words = set(stopwords.words('english'))
tokens = ["I", "am", "reading", "a", "book", "now", ".", "I", "love", "to", "read", "books", "!"] filtered_tokens = [token for token in tokens if token.lower() not in stop_words]
print(filtered_tokens)
["reading", "book", ".", "love", "read", "books", "!"]
Apprentissage profond pour le texte avec PyTorch

Stemming

  • Réduire les mots à leur forme de base
  • Par exemple : « running », « runs », « ran » devient run
import nltk
from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
filtered_tokens = ["reading", "book", ".", "love", "read", "books", "!"]
stemmed_tokens = [stemmer.stem(token) for token in filtered_tokens]
print(stemmed_tokens)
["read", "book", ".", "love", "read", "book", "!"]
Apprentissage profond pour le texte avec PyTorch

Suppression des mots rares

  • Supprimer les mots peu fréquents qui n'ajoutent pas de valeur
from nltk.probability import FreqDist
stemmed_tokens= ["read", "book", ".", "love", "read", "book", "!"]  
freq_dist = FreqDist(stemmed_tokens)

threshold = 2
common_tokens = [token for token in stemmed_tokens if freq_dist[token] > threshold] print(common_tokens)
["read", "book", "read", "book"]
Apprentissage profond pour le texte avec PyTorch

Techniques de prétraitement

Tokenisation, suppression des mots vides, stemming et suppression des mots rares

  • Réduire les caractéristiques
  • Jeux de données plus propres et représentatifs
  • D'autres techniques existent
Apprentissage profond pour le texte avec PyTorch

Passons à la pratique !

Apprentissage profond pour le texte avec PyTorch

Preparing Video For Download...