Views
No views yet
Anger (Marah), Fear (Takut), Happy (Senang), Love (Suka), dan Sadness (Sedih).indobenchmark/indobert-base-p1transformers berbasis PyTorch:1import torch
2import torch.nn.functional as F
3from transformers import AutoTokenizer, AutoModelForSequenceClassification
4
5# 1. Inisialisasi
6model_path = "Rasyy/indobert_multiclass_emotion_classifier_for_indonesian_e_commerce_reviews"
7label_map = {0: 'Anger', 1: 'Fear', 2: 'Happy', 3: 'Love', 4: 'Sad'}
8
9def load_model_and_tokenizer(path):
10 try:
11 print("Memuat tokenizer & model...")
12 tokenizer = AutoTokenizer.from_pretrained(path)
13 model = AutoModelForSequenceClassification.from_pretrained(path)
14 print("Model siap digunakan!")
15 return tokenizer, model
16 except Exception as e:
17 print(f"Error: {e}")
18 return None, None
19
20tokenizer, model = load_model_and_tokenizer(model_path)
21
22# 2. Prediksi
23text = "Barangnya bagus banget, pengiriman cepat dan kurir ramah. Suka!"
24inputs = tokenizer(
25 text,
26 max_length=128, # Sesuaikan dengan max_length saat training
27 truncation=True,
28 padding='max_length',
29 return_tensors='pt'
30)
31
32with torch.no_grad():
33 outputs = model(**inputs)
34 logits = outputs.logits
35
36# 3. Hitung Probabilitas
37probabilities = F.softmax(logits, dim=-1).squeeze().cpu().numpy()
38predicted_class_id = torch.argmax(logits, dim=1).item()
39predicted_label = label_map.get(predicted_class_id, "Unknown")
40
41# Output hasil
42print(f"Teks: {text}")
43print(f"Prediksi: {predicted_label}")
44print(f"Skor Probabilitas: {probabilities[predicted_class_id]:.4f}")