Xây dựng mô hình CNN cho văn bản
PyBooks đã xây dựng thành công một hệ thống gợi ý sách. Nhiệm vụ tiếp theo là triển khai mô hình phân tích cảm xúc để hiểu các bài đánh giá của người dùng và rút ra insight về sở thích sách.
Bạn sẽ dùng mô hình Convolutional Neural Network (CNN) để phân loại dữ liệu văn bản (các đánh giá sách) theo cảm xúc của chúng.
torch, torch.nn là nn, và torch.nn.functional là F đã được nạp sẵn cho bạn.
Bài tập này là một phần của khóa học
Deep Learning cho Văn bản với PyTorch
Hướng dẫn bài tập
- Khởi tạo lớp nhúng (embedding layer) trong phương thức
__init__(). - Áp dụng lớp tích chập
self.convlên văn bảnembeddedtrong phương thứcforward(). - Áp dụng hàm kích hoạt ReLU cho lớp này trong phương thức
forward().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)