CoolFace
Apppublic

latief18/halodoc-sentiment-analysis

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes
App README

Sentiment Analysis Aplikasi Halodoc dengan IndoBERT

Python PyTorch Transformers Streamlit

๐Ÿ“‹ Ringkasan Proyek

Proyek ini bertujuan untuk membangun dan melatih model Analisis Sentimen berbasis ulasan pengguna aplikasi Halodoc dari Google Play Store. Model ini menggunakan arsitektur IndoBERT yang telah di-fine-tune untuk mengklasifikasikan sentimen ulasan ke dalam tiga kategori: Negatif (0), Netral (1), dan Positif (2). Data ulasan diperoleh melalui scraping Google Play Store dan dataset eksternal, kemudian melalui serangkaian tahapan preprocessing (pembersihan, normalisasi slang) dan pelabelan otomatis menggunakan model IndoBERT pre-trained, sebelum akhirnya di-fine-tune untuk tugas klasifikasi ini. Aplikasi Streamlit akan digunakan untuk deployment interaktif.

โœจ Fitur Utama

  • โ€”Akuisisi Data Otomatis: Mengumpulkan ulasan aplikasi Halodoc langsung dari Google Play Store.
  • โ€”Preprocessing Teks Komprehensif: Tahapan pembersihan data seperti case folding, penghapusan URL/angka/tanda baca, normalisasi slang word, dan penghapusan duplikasi.
  • โ€”Pelabelan Sentimen Otomatis: Menggunakan model IndoBERT pre-trained (mdhugol/indonesia-bert-sentiment-classification) untuk melabeli ulasan, memfasilitasi pembuatan dataset berlabel dalam skala besar.
  • โ€”Exploratory Data Analysis (EDA): Analisis mendalam terhadap distribusi sentimen, panjang kalimat, word cloud, dan N-gram untuk memahami karakteristik data.
  • โ€”Fine-tuning IndoBERT: Melatih ulang model IndoBERT (indobenchmark/indobert-base-p1) untuk klasifikasi sentimen 3-kelas.
  • โ€”Evaluasi Model: Menggunakan metrik seperti Classification Report dan Confusion Matrix untuk menilai performa model.
  • โ€”Deployment Ready: Model dan tokenizer disimpan dalam format yang siap untuk deployment.

๐Ÿš€ Struktur Folder Deployment

Untuk deployment aplikasi Streamlit, struktur folder yang disiapkan adalah sebagai berikut:

. (root folder proyek)
โ”œโ”€โ”€ app.py                           # Aplikasi utama Streamlit (UI & interaksi)
โ”œโ”€โ”€ model_inference.py               # Modul berisi logika pemuatan model & prediksi
โ”œโ”€โ”€ model_halodoc_sentiment/         # Folder berisi model dan tokenizer yang sudah di-fine-tune
โ”‚   โ”œโ”€โ”€ config.json
โ”‚   โ”œโ”€โ”€ model.safetensors
โ”‚   โ”œโ”€โ”€ tokenizer_config.json
โ”‚   โ”œโ”€โ”€ vocab.txt
โ”‚   โ””โ”€โ”€ special_tokens_map.json
โ”œโ”€โ”€ requirements.txt                 # Daftar pustaka Python yang dibutuhkan
โ””โ”€โ”€ README.md                        # Dokumentasi proyek (file ini)

๐Ÿ› ๏ธ Instalasi & Penggunaan

Persyaratan Sistem

  • โ€”Python 3.8+
  • โ€”pip (manajer paket Python)
  • โ€”Lingkungan virtual (direkomendasikan)

Langkah-langkah Instalasi

  1. 1.Clone repositori ini (jika ini adalah repositori Git Anda):
bash
    git clone <URL_REPOSITORI_ANDA>
    cd <nama_folder_proyek>
  1. 1.Buat dan aktifkan lingkungan virtual:
bash
    python -m venv venv
    source venv/bin/activate  # Untuk Linux/macOS
    # atau
    venv\Scriptsctivate      # Untuk Windows
  1. 1.Instal semua dependensi:
bash
    pip install -r requirements.txt
  1. 1.Pastikan folder `model_halodoc_sentiment` sudah tersedia di direktori root proyek Anda, berisi file-file model dan tokenizer yang telah Anda latih dan simpan.

Cara Menjalankan Aplikasi Streamlit

Setelah instalasi selesai dan lingkungan virtual aktif, Anda dapat menjalankan aplikasi Streamlit dengan perintah berikut:

bash
streamlit run app.py

Aplikasi akan terbuka di browser web Anda (biasanya di http://localhost:8501).

๐Ÿง  Detail Model

Model yang digunakan untuk Analisis Sentimen adalah IndoBERT Base P1 yang telah di-fine-tune pada dataset ulasan Halodoc yang sudah melalui preprocessing dan pelabelan otomatis. Model ini mampu mengklasifikasikan sentimen ke dalam 3 kategori: Negatif, Netral, dan Positif.

Proses pelatihan menggunakan weighted cross-entropy loss untuk menangani imbalanced data, AdamW optimizer, dan linear scheduler with warmup.

๐Ÿ“Š Hasil dan Performa

Model mencapai akurasi validasi terbaik sekitar 0.9558 (95.58%). Namun, perlu dicatat bahwa model menunjukkan gejala overfitting ringan (nilai train loss yang sangat rendah dan validation loss yang lebih tinggi dan meningkat seiring epoch). Teknik early stopping (menyimpan model dengan akurasi validasi terbaik) telah diterapkan untuk mengatasi ini.

Berikut adalah ringkasan performa model pada test set:

              precision    recall  f1-score   support

     Negatif       0.90      0.93      0.92       780
      Netral       0.89      0.80      0.84       582
     Positif       0.97      0.98      0.98      3996

    accuracy                           0.96      5358
   macro avg       0.92      0.90      0.91      5358
weighted avg       0.96      0.96      0.96      5358

Akurasi Total: 0.9560

Catatan: Untuk detail lengkap mengenai proses pelatihan, EDA, dan visualisasi, silakan lihat file Jupyter Notebook utama proyek ini. (Anda bisa ganti ini dengan link ke notebook jika dihosting)

๐Ÿ“ง Kontak

Jika Anda memiliki pertanyaan atau ingin berdiskusi lebih lanjut tentang proyek ini, silakan hubungi:

  • โ€”[Nama Anda/Email Anda]

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference