テキスト向けの CNN モデルを構築する
PyBooks は書籍レコメンデーションエンジンの構築に成功しました。次の課題は、ユーザーレビューを理解して書籍の嗜好を把握するための感情分析モデルを実装することです。
ここでは、畳み込みニューラルネットワーク(CNN)モデルを使って、テキストデータ(書評)を感情に基づいて分類します。
torch、torch.nn は nn として、torch.nn.functional は F として読み込まれています。
この演習はコースの一部です
PyTorch で学ぶテキストの Deep Learning
演習の手順
__init__()メソッドで埋め込み層を初期化します。forward()メソッド内で、embeddedテキストに畳み込み層self.convを適用します。forward()メソッド内で、この層に ReLU 活性化を適用します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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)