Twitter Sentiment Transformer πŸ¦πŸ€–

Model ini adalah implementasi Transformer Encoder dari awal menggunakan PyTorch untuk klasifikasi sentimen pada data Twitter. Model dilatih menggunakan dataset Sentiment140 (Kaggle).

πŸš€ Fitur

  • Arsitektur: Transformer Encoder (Multi-head Attention).
  • Input: Teks Tweet (Maksimal 64 token).
  • Output: Klasifikasi Biner (0: Negatif, 1: Positif).

πŸ“‚ Struktur File di Repositori

  • pytorch_model.bin: Bobot model yang sudah dilatih.
  • vocab.pkl: Kamus kata (mapping string ke integer).
  • README.md: Dokumentasi penggunaan.

πŸ’» Cara Menggunakan Kembali (Re-use)

Untuk menggunakan model ini kembali, Anda harus mendefinisikan ulang kelas SpamTransformer yang sama dengan saat pelatihan.

1. Persiapan

Pastikan Anda memiliki file pytorch_model.bin dan vocab.pkl di folder yang sama.

import torch
import pickle
import re

# Definisikan ulang arsitektur model (sesuai spesifikasi saat training)
# (Sertakan kelas PositionalEncoding dan SpamTransformer di sini)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# Muat Vocab
with open('vocab.pkl', 'rb') as f:
    vocab = pickle.load(f)

# Inisialisasi Model
model = SpamTransformer(vocab_size=len(vocab), embed_dim=128, nhead=8, num_layers=3)
model.load_state_dict(torch.load('pytorch_model.bin', map_location=device))
model.to(device)
model.eval()

def predict(text):
    # Cleaning
    text = re.sub(r'@[A-Za-z0-9]+', '', text).lower().strip()
    
    # Encoding
    tokens = [vocab.get(word, 1) for word in text.split()] # 1 adalah <UNK>
    if len(tokens) < 64:
        tokens += [0] * (64 - len(tokens)) # 0 adalah <PAD>
    else:
        tokens = tokens[:64]
    
    # Inference
    input_tensor = torch.tensor([tokens]).to(device)
    with torch.no_grad():
        output = model(input_tensor)
        prediction = torch.argmax(output, dim=1).item()
    
    return "Positif" if prediction == 1 else "Negatif"

# Contoh Penggunaan
print(predict("I really love how this technology works!"))
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Dataset used to train dzakyfaispir/transformer-sentimen-twitter-dz