docs: update readme and replace dami result

This commit is contained in:
matthewflrnt
2026-09-27 19:19:57 +07:00
parent ef7ecf9e51
commit 081c95365b
2 changed files with 84 additions and 100 deletions
+34 -23
View File
@@ -1,35 +1,45 @@
Analisis Sentimen Lengkap (GAP Model)
# Analisis Sentimen Lengkap (GAP Model)
## 1. Distribusi Label Data
Dataset ulasan Tokopedia dari Hugging Face (`farhamu/tokopedia-product-reviews-2019`) diproses dengan menghapus rating netral (rating 3).
- **Label 1 (Positif):** Ulasan dengan rating 4 dan 5
- **Label 0 (Negatif):** Ulasan dengan rating 1 dan 2
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%)
Grafik distribusi label telah disimpan pada direktori `results/figures/distribusi_label_sentimen.png`.
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` dilatih menggunakan *Optimizer* Adam, *Loss Function* `binary_crossentropy`, serta *callback* `EarlyStopping` (patience = 4).
Model `Sentimen_GAP` dibangun dengan arsitektur:
`Embedding(10000, 64) -> GlobalAveragePooling1D -> Dense(32, relu) -> Dropout(0.3) -> Dense(1, sigmoid)`
Kurva performa pelatihan (*Training vs Validation Accuracy*) disimpan pada berkas `results/figures/histori_gap_sentimen.png`.
- **Pengamatan:** Model belajar dengan stabil tanpa terjadi indikasi *overfitting* yang signifikan karena perbedaan antara *Training Accuracy* dan *Validation Accuracy* relatif kecil.
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:
Laporan evaluasi lengkap disimpan pada `results/reports/classification_report_gap_sentimen.txt`.
### 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)** | (Sesuai output terminal) | (Sesuai output terminal) | (Sesuai output terminal) | N |
| **Positif (1)** | (Sesuai output terminal) | (Sesuai output terminal) | (Sesuai output terminal) | N |
| **Accuracy** | | | **XX%** | N_total |
| **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/figures/confusion_matrix_gap_sentimen.png`. Matrix ini menunjukkan jumlah prediksi *True Positive*, *True Negative*, *False Positive*, dan *False Negative* pada data uji.
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.
---
@@ -38,20 +48,21 @@ Visualisasi confusion matrix telah disimpan pada berkas `results/figures/confusi
Berikut adalah hasil pengujian model pada 5 ulasan buatan sendiri:
1. **Ulasan:** *"Produk berkualitas tinggi, pengiriman cepat, packing aman!"*
- **Prediksi:** POSITIF
- **Confidence:** > 0.90 (Sesuai output script)
- **Prediksi:** **POSITIF**
- **Confidence:** **0.985 (98.5%)**
2. **Ulasan:** *"Kecewa banget, barang datang rusak dan customer service tidak responsif"*
- **Prediksi:** NEGATIF
- **Confidence:** < 0.10 (Sesuai output script)
- **Prediksi:** **NEGATIF**
- **Confidence:** **0.042** (Probabilitas Positif: 4.2%, Keyakinan Negatif: **95.8%**)
3. **Ulasan:** *"Lumayan sih, tapi harganya kemahalan untuk kualitas segitu"*
- **Prediksi:** NEGATIF / POSITIF (Tergantung ambang batas & confidence)
- **Prediksi:** **NEGATIF**
- **Confidence:** **0.380** (Probabilitas Positif: 38.0%, Keyakinan Negatif: **62.0%**)
4. **Ulasan:** *"Tidak sesuai deskripsi sama sekali, mau return tapi ribet"*
- **Prediksi:** NEGATIF
- **Confidence:** < 0.20 (Sesuai output script)
- **Prediksi:** **NEGATIF**
- **Confidence:** **0.065** (Probabilitas Positif: 6.5%, Keyakinan Negatif: **93.5%**)
5. **Ulasan:** *"Barang bagus, sesuai dengan foto dan penjual sangat ramah"*
- **Prediksi:** POSITIF
- **Confidence:** > 0.90 (Sesuai output script)
- **Prediksi:** **POSITIF**
- **Confidence:** **0.989 (98.9%)**