Construire un modèle CNN pour le texte
PyBooks a conçu avec succès un moteur de recommandation de livres. Leur prochaine étape est de mettre en place un modèle d’analyse de sentiments pour comprendre les avis des utilisateurs et mieux cerner leurs préférences de lecture.
Vous allez utiliser un modèle de réseau de neurones convolutif (CNN) pour classifier des données textuelles (avis de livres) selon leur sentiment.
torch, torch.nn sous le nom nn, et torch.nn.functional sous le nom F ont été chargés pour vous.
Cet exercice fait partie du cours
Deep Learning pour le texte avec PyTorch
Instructions
- Initialisez la couche d’embedding dans la méthode
__init__(). - Appliquez la couche de convolution
self.convau texteembeddeddans la méthodeforward(). - Appliquez l’activation ReLU à cette couche dans la méthode
forward().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
class TextClassificationCNN(nn.Module):
def __init__(self, vocab_size, embed_dim):
super(TextClassificationCNN, self).__init__()
# Initialize the embedding layer
self.embedding = ____.____(vocab_size, embed_dim)
self.conv = nn.Conv1d(embed_dim, embed_dim, kernel_size=3, stride=1, padding=1)
self.fc = nn.Linear(embed_dim, 2)
def forward(self, text):
embedded = self.embedding(text).permute(0, 2, 1)
# Pass the embedded text through the convolutional layer and apply a ReLU
conved = ____.____(self.conv(____))
conved = conved.mean(dim=2)
return self.fc(conved)