3.6 KiB
Analisis Sentimen Lengkap (GAP Model)
1. Distribusi Label Data
Dataset ulasan Tokopedia dari Hugging Face (farhamu/tokopedia-product-reviews-2019) berisi 40.607 baris ulasan. Setelah membersihkan rating netral (rating 3 sebanyak 1.823 baris), tersisa 38.784 ulasan dengan pembagian:
- Label 1 (Positif): Ulasan dengan rating 4 dan 5 (37.860 sampel / ~97,62%)
- Label 0 (Negatif): Ulasan dengan rating 1 dan 2 (924 sampel / ~2,38%)
Dataset kemudian dibagi menjadi 80% data latih (31.027 ulasan) dan 20% data uji (7.757 ulasan) secara bertingkat (stratified).
Grafik distribusi label telah disimpan pada direktori results/03_nlp_sentiment/figures/distribusi_label_sentimen.png.
2. Training History
Model Sentimen_GAP dibangun dengan arsitektur:
Embedding(10000, 64) -> GlobalAveragePooling1D -> Dense(32, relu) -> Dropout(0.3) -> Dense(1, sigmoid)
Dilatih menggunakan Optimizer Adam, Loss Function binary_crossentropy, serta callback EarlyStopping (patience = 4).
Kurva performa pelatihan (Training vs Validation Accuracy & Loss) disimpan pada berkas results/03_nlp_sentiment/figures/histori_gap_sentimen.png.
- Pengamatan: Model belajar dengan stabil tanpa terjadi indikasi overfitting yang signifikan karena perbedaan antara Training Accuracy (~98%) dan Validation Accuracy (~97.8%) relatif kecil dan konvergen.
3. Classification Report & Confusion Matrix (GAP Evaluation)
Classification Report pada Test Set (7.757 Ulasan):
Laporan evaluasi lengkap disimpan pada results/03_nlp_sentiment/reports/classification_report_gap_sentimen.txt.
| Kelas | Precision | Recall | F1-Score | Support |
|---|---|---|---|---|
| Negatif (0) | 0.59 | 0.22 | 0.32 | 185 |
| Positif (1) | 0.98 | 1.00 | 0.99 | 7.572 |
| Accuracy | 97.6% (0.98) | 7.757 | ||
| Macro Avg | 0.78 | 0.61 | 0.65 | 7.757 |
| Weighted Avg | 0.97 | 0.98 | 0.97 | 7.757 |
Analisis Ketimpangan Data (Imbalance):
Karena kelas positif jauh mendominasi (97,6% ulasan Tokopedia bersifat positif), model mencetak akurasi keseluruhan yang sangat tinggi (97,6%), namun memiliki recall lebih rendah pada kelas minoritas negatif (22%). Untuk meningkatkan sensitivitas terhadap komplain pelanggan negatif, penyesuaian bobot kelas (class weights) atau teknik oversampling dapat diterapkan pada tahap iterasi berikutnya.
Confusion Matrix:
Visualisasi confusion matrix telah disimpan pada berkas results/03_nlp_sentiment/figures/confusion_matrix_gap_sentimen.png. Matrix ini menunjukkan jumlah prediksi True Positive, True Negative, False Positive, dan False Negative pada data uji.
4. Hasil Prediksi 5 Ulasan Custom (Inference)
Berikut adalah hasil pengujian model pada 5 ulasan buatan sendiri:
-
Ulasan: "Produk berkualitas tinggi, pengiriman cepat, packing aman!"
- Prediksi: POSITIF
- Confidence: 0.985 (98.5%)
-
Ulasan: "Kecewa banget, barang datang rusak dan customer service tidak responsif"
- Prediksi: NEGATIF
- Confidence: 0.042 (Probabilitas Positif: 4.2%, Keyakinan Negatif: 95.8%)
-
Ulasan: "Lumayan sih, tapi harganya kemahalan untuk kualitas segitu"
- Prediksi: NEGATIF
- Confidence: 0.380 (Probabilitas Positif: 38.0%, Keyakinan Negatif: 62.0%)
-
Ulasan: "Tidak sesuai deskripsi sama sekali, mau return tapi ribet"
- Prediksi: NEGATIF
- Confidence: 0.065 (Probabilitas Positif: 6.5%, Keyakinan Negatif: 93.5%)
-
Ulasan: "Barang bagus, sesuai dengan foto dan penjual sangat ramah"
- Prediksi: POSITIF
- Confidence: 0.989 (98.9%)