テキスト分類のための再帰型ニューラルネットワーク

PyTorch で学ぶテキストの Deep Learning

Shubham Jain

Data Scientist

テキスト向けRNN

  • 可変長シーケンスに対応
  • 内部の短期記憶を保持
  • CNNはチャンク内のパターンを検出
  • RNNは過去の語を保持し意味を高める
PyTorch で学ぶテキストの Deep Learning

テキスト分類向けRNN

皮肉の画像

なぜ?

  • RNNは人のように1語ずつ読む
  • 文脈と語順を理解

例: ツイートの皮肉検出

"渋滞にハマるの、本当に大好き。"

  • 皮肉
PyTorch で学ぶテキストの Deep Learning

復習: Dataset と DataLoader の実装

# 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 で学ぶテキストの Deep Learning

RNNの実装

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)
  • ツイートを肯定/否定に分類するRNNを学習
  • 出力: "Positive"
PyTorch で学ぶテキストの Deep Learning

RNNの派生: LSTM

感情分析の画像

ツイート:

  "映像は素晴らしいが、
  セリフは最悪。
  演技は抜群だが、
  設定が平板。"
  • LSTM(Long Short-Term Memory)は、RNNが苦手な複雑さを捉えられる
PyTorch で学ぶテキストの Deep Learning

LSTM

LSTMの構造: 入力ゲート、忘却ゲート、出力ゲート

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 で学ぶテキストの Deep Learning

RNNの派生: GRU

  • メール件名:

       "おめでとう!
        ハワイ旅行が当選!"
    

     

  • GRU(Gated Recurrent Unit)は、全文脈がなくてもスパム的パターンを素早く検知できる

スパムメール

PyTorch で学ぶテキストの 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 で学ぶテキストの Deep Learning

Vamos praticar!

PyTorch で学ぶテキストの Deep Learning

Preparing Video For Download...