Views
No views yet
pytorch_model.bin: Bobot model yang sudah dilatih.vocab.pkl: Kamus kata (mapping string ke integer).README.md: Dokumentasi penggunaan.SpamTransformer yang sama dengan saat pelatihan.pytorch_model.bin dan vocab.pkl di folder yang sama.1import torch
2import pickle
3import re
4
5# Definisikan ulang arsitektur model (sesuai spesifikasi saat training)
6# (Sertakan kelas PositionalEncoding dan SpamTransformer di sini)
7
8device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
9
10# Muat Vocab
11with open('vocab.pkl', 'rb') as f:
12 vocab = pickle.load(f)
13
14# Inisialisasi Model
15model = SpamTransformer(vocab_size=len(vocab), embed_dim=128, nhead=8, num_layers=3)
16model.load_state_dict(torch.load('pytorch_model.bin', map_location=device))
17model.to(device)
18model.eval()
19
20def predict(text):
21 # Cleaning
22 text = re.sub(r'@[A-Za-z0-9]+', '', text).lower().strip()
23
24 # Encoding
25 tokens = [vocab.get(word, 1) for word in text.split()] # 1 adalah <UNK>
26 if len(tokens) < 64:
27 tokens += [0] * (64 - len(tokens)) # 0 adalah <PAD>
28 else:
29 tokens = tokens[:64]
30
31 # Inference
32 input_tensor = torch.tensor([tokens]).to(device)
33 with torch.no_grad():
34 output = model(input_tensor)
35 prediction = torch.argmax(output, dim=1).item()
36
37 return "Positif" if prediction == 1 else "Negatif"
38
39# Contoh Penggunaan
40print(predict("I really love how this technology works!"))