Introduction à la prétraitement du texte

Deep Learning 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 {{6}}"

"Cas d’utilisation :

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

    Analyse de sentiment {{7}}"

Deep Learning pour le texte avec PyTorch

Ce que vous devez savoir

"Cours préalable : Apprentissage profond intermédiaire avec PyTorch

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

Pipeline de traitement de texte

Pipeline de traitement Pytorch

Deep Learning pour le texte avec PyTorch

Pipeline de traitement de texte

Pipeline de traitement Pytorch

  • Nettoyer et préparer le texte
Deep Learning pour le texte avec PyTorch

PyTorch et NLTK

"Logo PyTorch"

"Logo NLTK

  • Boîte à outils de traitement du langage naturel
    • Transformer le texte brut en texte traité {{2}}"
Deep Learning pour le texte avec PyTorch

Techniques de prétraitement

"- Tokenisation

  • Suppression des mots vides
  • Lemmatisation
  • Suppression des mots rares {{4}}"
Deep Learning pour le texte avec PyTorch

Tokenization

"- Les tokens ou mots sont extraits du texte

  • Tokenisation à l'aide de torchtext
from torchtext.data.utils import get_tokenizer

tokenizer = get_tokenizer(\"basic_english\")
tokens = tokenizer(\"I am reading a book now. J'adore lire des livres !\") print(tokens)

out [\"Je\", \"suis\", \"en train\", \"de\", \"lire\", \"un\", \"livre\", \"maintenant\", \".\", \"J'\", \"adore\", \"lire\", \"des livres\", \"!\"]{{5}}"

Deep Learning 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 », et d’autres encore
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)

out [\"reading\", \"book\", \".\", \"love\", \"read\", \"books\", \"!\"]{{5}}"

Deep Learning pour le texte avec PyTorch

Racinisation

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

out [\"read\", \"book\", \".\", \"love\", \"read\", \"book\", \"!\"]{{7}}"

Deep Learning pour le texte avec PyTorch

Suppression des mots rares

"- Suppression des mots peu fréquents qui n'apportent 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)

out [\"read\", \"book\", \"read\", \"book\"]{{5}}"

Deep Learning pour le texte avec PyTorch

Techniques de prétraitement

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

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

Passons à la pratique !

Deep Learning pour le texte avec PyTorch

Preparing Video For Download...