Построение модели CNN для текста
Команда PyBooks успешно создала систему рекомендаций книг. Следующая задача — реализовать модель анализа тональности, которая поможет понять отзывы пользователей и выявить их предпочтения в чтении.
Вы будете использовать свёрточную нейронную сеть (CNN) для классификации текстовых данных (отзывов о книгах) по тональности.
Библиотеки torch, torch.nn как nn и torch.nn.functional как F уже загружены.
Это упражнение является частью курса
Глубокое обучение для работы с текстом на PyTorch
Инструкции к упражнению
- Инициализируйте слой эмбеддинга (векторного представления) в методе
__init__(). - Примените свёрточный слой
self.convк текстуembeddedв методеforward(). - Примените функцию активации ReLU к этому слою в методе
forward().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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)