--- license: mit language: - id metrics: - accuracy - f1 base_model: - indobenchmark/indobert-base-p2 pipeline_tag: text-classification library_name: transformers tags: - finance - review - produk - ulasan - e commerce datasets: - siRendy/dataset-analisis-sentimen-review-produk --- # IndoBERT klasifikasi Sentiment ID - 2 Kelas Model ini merupakan hasil fine-tuning dari `indobenchmark/indobert-base-p2` untuk tugas klasifikasi sentimen review produk dalam Bahasa Indonesia dengan dua label (positif dan negatif). model di-pretrain terlebih dahulu menggunakan 78.536 baris ulasan produk agar lebih mengenali gaya bahasa informal yang umum digunakan dalam review, seperti singkatan "banget" โ†’ "bgt", "enggak" โ†’ "gk", dsb. kemudian model di finetune dengan Dataset yang terdiri dari 19.728 ulasan produk di e-commerce tokopedia dan juga berasal dari ulasan sintesis menggunakan LLM Gemini. ## ๐ŸŽฏ Tujuan Model ini ditujukan untuk mengklasifikasikan komentar/review produk/ulasan menjadi dua kelas sentimen: `POSITIF` dan `NEGATIF`. ## ๐Ÿงช Metrics Model ini dievaluasi menggunakan metrik: - Accuracy - F1 Score ## ๐Ÿง  Base Model - [`indobenchmark/indobert-base-p2`](https://huggingface.co/indobenchmark/indobert-base-p2) ## โš™๏ธ Training Arguments Berikut adalah konfigurasi training (`TrainingArguments`) yang digunakan saat pelatihan: ```python from transformers import TrainingArguments training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, gradient_accumulation_steps=2, per_device_eval_batch_size=4, weight_decay=0.05, eval_strategy="epoch", save_strategy="epoch", seed=42, load_best_model_at_end=True, metric_for_best_model="f1", logging_dir="./logs", report_to="tensorboard", logging_steps=100, warmup_ratio=0.05, ) ``` ## ๐Ÿ“Š Hasil Evaluasi Model dievaluasi selama 3 epoch menggunakan metrik Accuracy dan F1 Score. Berikut adalah performa model pada setiap epoch: | Epoch | Training Loss | Validation Loss | Accuracy | F1 Score | |-------|---------------|-----------------|----------|----------| | 1 | 0.2670 | 0.2374 | 0.9564 | 0.9564 | | 2 | 0.4904 | 0.2951 | 0.9356 | 0.9356 | | 3 | 0.3650 | 0.2176 | 0.9442 | 0.9441 | ## ๐Ÿ‘จโ€๐Ÿ’ป Cara Inferensi ``` python # Load model dan tokenizer from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline import torch # Load dari Hugging Face Hub model = AutoModelForSequenceClassification.from_pretrained("siRendy/indobert-analisis-sentimen-review-produk-datathon2025") tokenizer = AutoTokenizer.from_pretrained("siRendy/indobert-analisis-sentimen-review-produk-datathon2025") # Fungsi prediksi def predict_sentiment(text): classifier = pipeline( "text-classification", model=model, tokenizer=tokenizer, device=0 if torch.cuda.is_available() else -1 ) result = classifier(text)[0] return { "sentiment": str(result["label"]), "confidence": round(result["score"], 4) } # Contoh penggunaan text = "aih jelek nya ngawur iki opo seh, mo nipu lu ya" prediction = predict_sentiment(text) print(prediction) ```