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
Instrukcje do ćwiczenia
- Zainicjalizuj warstwę osadzeń (embedding) w metodzie
__init__(). - W metodzie
forward()zastosuj warstwę konwolucyjnąself.convdo osadzonego tekstuembedded. - 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)