Réseaux de neurones récurrents pour la classification de texte

Deep Learning pour le texte avec PyTorch

Shubham Jain

Data Scientist

RNN pour le texte

"- Gérer des séquences de longueurs variables

  • Maintenir une mémoire à court terme interne
  • Les CNN détectent des motifs par segments
  • Les RNN se souviennent des mots précédents pour une meilleure compréhension {{4}}"
Deep Learning pour le texte avec PyTorch

RNN pour la classification des textes

"Image de sarcasme {{1}}"

"Pourquoi ?

  • Les RNN peuvent lire les phrases comme les humains, un mot à la fois
  • Comprendre le contexte et l’ordre

Exemple : Détecter le sarcasme dans un tweet

\"J'adore rester coincé dans les embouteillages.\"

  • Sarcastique {{5}}"
Deep Learning pour le texte avec PyTorch

"Résumé : Implémentation de Dataset et DataLoader"

"`py

Import libraries

from torch.utils.data import Dataset, DataLoader


----CODE_GLUE----
```py
# Create a class
class TextDataset(Dataset):

def __init__(self, text): self.text = text
def __len__(self): return len(self.text)

----CODE_GLUE---- py def __getitem__(self, idx): return self.text[idx]{{5}}"

Deep Learning pour le texte avec PyTorch

Implémentation RNN

"`py sample_tweet = \"Ce film avait un excellent scénario et un jeu d'acteur incroyable.\"

Preprocess the review and convert it to a tensor (not shown for brevity)

...

sentiment_prediction = model(sample_tweet_tensor)

  • Entraîner un modèle RNN pour classer le tweet comme positif ou négatif
  • Sortie : « Positif » {{2}}"
Deep Learning pour le texte avec PyTorch

"Variation de RNN : LSTM"

"Image d’analyse de sentiment {{1}}"

"Tweet :

  \"J'ai adoré la cinématographie, détesté les dialogues.  Le jeu d'acteur était exceptionnel, mais l'intrigue manquait de relief.\"
  • Les réseaux de mémoire à long terme (LSTM) peuvent saisir des complexités là où les RNN peuvent rencontrer des difficultés {{2}}"
Deep Learning pour le texte avec PyTorch

LSTM

"Architecture LSTM : Porte d’entrée, porte d’oubli et porte de sortie

class LSTMModel(nn.Module):

def __init__(self, input_size, hidden_size, output_size): super(LSTMModel, self).__init__() self.lstm = nn.LSTM(input_size, hidden_size, batch_first=True) self.fc = nn.Linear(hidden_size, output_size)

----CODE_GLUE---- py def forward(self, x): _, (hidden, _) = self.lstm(x) output = self.fc(hidden.squeeze(0)) return output{{4}}"

Deep Learning pour le texte avec PyTorch

"Variation de RNN : GRU"

"- Objet de l’e-mail :

     \"Félicitations ! Vous avez gagné un voyage gratuit à Hawaï !\"
  • L'unité récurrente à portes (GRU) peut rapidement reconnaître des schémas de spam sans avoir besoin du contexte complet {{3}}"

"Spam par e-mail"

Deep Learning pour le texte avec PyTorch

GRU

"py class GRUModel(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(GRUModel, self).__init__() self.gru = nn.GRU(input_size, hidden_size, batch_first=True) self.fc = nn.Linear(hidden_size, output_size)

----CODE_GLUE---- py def forward(self, x): _, hidden = self.gru(x) output = self.fc(hidden.squeeze(0)) return output{{2}}"

Deep Learning pour le texte avec PyTorch

Passons à la pratique !

Deep Learning pour le texte avec PyTorch

Preparing Video For Download...