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!"))
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
π
Ask for provider support