4.5 KiB
4.5 KiB
Analisis Sentimen Program MBG (Makan Bergizi Gratis)
Dashboard analisis sentimen berbahasa Indonesia untuk menganalisis opini publik terhadap Program Makan Bergizi Gratis (MBG) menggunakan Support Vector Machine (SVM) kernel Radial Basis Function (RBF) dan pembobotan TF-IDF.
Deskripsi
Aplikasi web berbasis Streamlit untuk melakukan analisis sentimen terhadap teks berbahasa Indonesia, khususnya terkait Program MBG. Aplikasi ini menggunakan algoritma Support Vector Machine (SVM) dengan preprocessing teks yang komprehensif.
Fitur Utama
1. Dashboard Utama
- Visualisasi distribusi sentimen (pie chart)
- Word cloud untuk sentimen positif dan negatif
- Top 15 kata teratas per sentimen
- Tampilan dataset training lengkap dengan text wrapping
2. Prediksi Sentimen
- Input teks manual untuk prediksi real-time
- Menampilkan confidence score
- Demo preprocessing step-by-step
3. Analisis CSV Batch
- Upload file CSV untuk analisis massal
- Deteksi otomatis kolom tanggal
- Visualisasi temporal (distribusi per tahun dan bulan)
- Filter berdasarkan confidence threshold
- Export hasil ke CSV
- Interpretasi dan rekomendasi otomatis
4. Demo Preprocessing
- Visualisasi tahapan preprocessing:
- Text Cleaning
- Case Folding
- Tokenization
- Normalization
- Stopwords Removal
- Stemming
Instalasi
Prasyarat
- Python 3.8 atau lebih tinggi
- pip (Python package manager)
Langkah Instalasi
- Clone repository:
git clone https://github.com/nand999/analisis-sentimen-mbg.git
cd analisis-sentimen-mbg
- Install dependencies:
pip install -r requirements.txt
- Download NLTK data (jika belum ada):
python -c "import nltk; nltk.download('punkt')"
Struktur File
analisis-sentimen-mbg/
├── dashboard.py # Aplikasi Streamlit utama
├── sentiment_model.py # Model SVM dan preprocessing
├── sentiment_model.pkl # Model terlatih
├── kolom_lengkap.csv # Dataset training
├── requirements.txt # Dependencies Python
├── generate_test_data.py # Untuk generate data test csv
├── README.md # Dokumentasi ini
Cara Penggunaan
Menjalankan Dashboard
streamlit run dashboard.py
Dashboard akan terbuka di browser pada http://localhost:8501
Menggunakan Fitur Prediksi
- Pilih menu "Prediksi Sentimen"
- Masukkan teks dalam bahasa Indonesia
- Klik "Prediksi Sentimen"
- Lihat hasil prediksi dan confidence score
Analisis CSV Batch
- Pilih menu "📁 Analisis CSV"
- Upload file CSV dengan kolom
textataufull_text - Atur confidence threshold (default: 0.5)
- Klik "🚀 Proses Prediksi Sentimen"
- Lihat hasil analisis dan visualisasi
- Download hasil jika diperlukan
Format CSV untuk Upload
File CSV harus memiliki minimal kolom berikut:
textataufull_text: Kolom berisi teks untuk dianalisis
Opsional:
created_atatau kolom tanggal lainnya untuk analisis temporal
Contoh:
text,created_at
"Program MBG sangat membantu anak-anak",2025-07-06 10:30:00
"MBG tidak efektif dan boros anggaran",2025-07-07 14:20:00
Preprocessing Pipeline
- Text Cleaning: Menghapus URL, mention, hashtag, angka, dan karakter khusus
- Case Folding: Mengubah semua teks menjadi lowercase
- Tokenization: Memecah teks menjadi token/kata
- Normalization: Menormalkan kata-kata tidak baku
- Stopwords Removal: Menghapus kata-kata umum yang tidak bermakna
- Stemming: Mengubah kata ke bentuk dasarnya menggunakan Sastrawi
Model
- Algoritma: Support Vector Machine (SVM) dengan kernel Radial Basis Function (RBF)
- Features: TF-IDF Vectorization
- Dataset: 1,906 data tweet tentang Program MBG
- Positif: 793 data
- Negatif: 1,113 data
Dependencies
- streamlit >= 1.28.0
- pandas >= 2.0.0
- numpy >= 1.24.0
- scikit-learn >= 1.3.0
- nltk >= 3.8.0
- Sastrawi >= 1.0.1
- plotly >= 5.17.0
- wordcloud >= 1.9.0
- matplotlib >= 3.7.0
- python-dateutil >= 2.8.0
Lihat requirements.txt untuk daftar lengkap.
Catatan Penting
Confidence Threshold
- Data dengan confidence score di bawah threshold tidak dimasukkan dalam analisis utama
- Default threshold: 0.5 (50%)
- Dapat disesuaikan melalui slider di halaman Analisis CSV
Lisensi
Acknowledgments
- Dataset: Twitter/X data tentang Program MBG
- Sastrawi: Indonesian stemmer library
- NLTK: Natural Language Toolkit
- Streamlit: Framework untuk web app