Metin sınıflandırma için yinelenen sinir ağları

PyTorch ile Metin için Deep Learning

Shubham Jain

Data Scientist

Metin için RNN’ler

  • Farklı uzunluktaki dizileri işler
  • Kısa süreli dahili bellek tutar
  • CNN’ler örüntüleri parçalarda yakalar
  • RNN’ler anlam için önceki sözcükleri hatırlar
PyTorch ile Metin için Deep Learning

Metin sınıflandırma için RNN’ler

İroni Görseli

Neden?

  • RNN’ler cümleleri insanlar gibi, kelime kelime okur
  • Bağlamı ve sıralamayı anlar

Örnek: Bir tweette ironiyi tespit etme

"Trafikte sıkışmaya bayılıyorum."

  • İronik
PyTorch ile Metin için Deep Learning

Özet: Dataset ve DataLoader uygulaması

# Import libraries
from torch.utils.data import Dataset, DataLoader

# Create a class class TextDataset(Dataset):
def __init__(self, text): self.text = text
def __len__(self): return len(self.text)
def __getitem__(self, idx): return self.text[idx]
PyTorch ile Metin için Deep Learning

RNN uygulaması

sample_tweet = "This movie had a great plot and amazing acting."
# Preprocess the review and convert it to a tensor (not shown for brevity)
# ...
sentiment_prediction = model(sample_tweet_tensor)
  • Bir RNN modeli eğiterek tweet’i pozitif/negatif sınıflandırın
  • Çıktı: "Positive"
PyTorch ile Metin için Deep Learning

RNN çeşidi: LSTM

Duygu Analizi Görseli

Tweet:

  "Sinematografisini sevdim,
  diyaloglarından nefret ettim.
  Oyunculuk olağanüstüydü,
  ama olay örgüsü sönüktü."
  • Long Short Term Memory (LSTM), RNN’lerin zorlandığı karmaşıklıkları yakalayabilir
PyTorch ile Metin için Deep Learning

LSTM

LSTM mimarisi: Giriş kapısı, unutma kapısı ve çıkış kapısı

class LSTMModel(nn.Module):

def __init__(self, input_size, hidden_size, output_size): super(LSTMModel, self).__init__() self.lstm = nn.LSTM(input_size, hidden_size, batch_first=True) self.fc = nn.Linear(hidden_size, output_size)
def forward(self, x): _, (hidden, _) = self.lstm(x) output = self.fc(hidden.squeeze(0)) return output
PyTorch ile Metin için Deep Learning

RNN çeşidi: GRU

  • E-posta konusu:

       "Tebrikler!
        Hawaii’ye ücretsiz
        bir gezi kazandınız!"
    

 

  • Gated Recurrent Unit (GRU), tam bağlam gerekmeden spam desenlerini hızla tanır

E-posta spami

PyTorch ile Metin için Deep Learning

GRU

class GRUModel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(GRUModel, self).__init__()
        self.gru = nn.GRU(input_size, hidden_size, batch_first=True)
        self.fc = nn.Linear(hidden_size, output_size)

def forward(self, x): _, hidden = self.gru(x) output = self.fc(hidden.squeeze(0)) return output
PyTorch ile Metin için Deep Learning

Hadi pratik yapalım!

PyTorch ile Metin için Deep Learning

Preparing Video For Download...