Zacznij terazZacznij za darmo

Zbuduj model CNN do analizy tekstu

PyBooks z powodzeniem zbudowało silnik rekomendacji książek. Kolejnym zadaniem jest implementacja modelu analizy sentymentu, który pomoże zrozumieć opinie użytkowników i lepiej poznać ich preferencje czytelnicze.

Do klasyfikacji danych tekstowych (recenzji książek) na podstawie sentymentu użyjesz modelu konwolucyjnej sieci neuronowej (CNN).

Biblioteki torch, torch.nn jako nn oraz torch.nn.functional jako F zostały już załadowane.

To ćwiczenie jest częścią kursu

Uczenie głębokie dla tekstu z PyTorch

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjalizuj warstwę osadzeń (embedding) w metodzie __init__().
  • W metodzie forward() zastosuj warstwę konwolucyjną self.conv do osadzonego tekstu embedded.
  • W metodzie forward() zastosuj funkcję aktywacji ReLU do tej warstwy.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod