Deep Learning für Text mit PyTorch
Shubham Jain
Instructor
"- Tweets als
- Negativ
"
"
"- Faltungsoperation
"- Filter:
"
"
"- Faltungsschicht: wendet Filter auf Eingabedaten an
"`python
class SentimentAnalysisCNN(nn.Module):
----CODE_GLUE---- ```python def __init__(self, vocab_size, embed_dim):super().__init__()self.embedding = nn.Embedding(vocab_size, embed_dim)self.conv = nn.Conv1d(embed_dim, embed_dim, kernel_size=3, stride=1, padding=1)
----CODE_GLUE----
python
self.fc = nn.Linear(embed_dim, 2)
...{{6}}"
"- __init__ Methode konfiguriert die Architektur
super() initialisiert die Basisklasse nn.Modulenn.Embedding erstellt dichte Wortvektorennn.Conv1d für eindimensionale Daten {{5}}""`python
...
def forward(self, text):
embedded = self.embedding(text).permute(0, 2, 1)
----CODE_GLUE---- ```python conved = F.relu(self.conv(embedded))conved = conved.mean(dim=2)
----CODE_GLUE----
python
return self.fc(conved){{4}}"
"- Die Embedding-Schicht wandelt Text in Einbettungen um
"`python
vocab = [\"i\", \"love\", \"this\", \"book\", \"do\", \"not\", \"like\"]
word_to_idx = {word: i for i, word in enumerate(vocab)}
----CODE_GLUE---- ```python vocab_size = len(word_to_ix)embed_dim = 10book_samples = [ (\"Die Geschichte war fesselnd und hat mich bis zum Ende gefesselt.\".split(),1), (\"Ich fand die Charaktere oberflächlich und die Handlung vorhersehbar.\".split(),0) ]
----CODE_GLUE----
python
model = SentimentAnalysisCNN(vocab_size, embed_dim)
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.1){{5}}"
"python
for epoch in range(10): for sentence, label in data:
"python
for sample in book_samples:
----CODE_GLUE----
python input_tensor = torch.tensor([word_to_idx[w] for w in sample], dtype=torch.long).unsqueeze(0)
Deep Learning für Text mit PyTorch