Analisis sentimen komentar YouTube menggunakan AI multilingual (XLM-RoBERTa).
# Copy env file dan isi API Key
cp .env.example .env
# Edit .env → isi YOUTUBE_API_KEYcd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000cd frontend
npm install
npm run dev
# Buka http://localhost:5173Lihat model/README_training.md untuk panduan lengkap.
Cara cepat (Google Colab — Gratis):
- Upload
model/train.pyke Google Colab - Aktifkan GPU: Runtime → Change runtime type → T4 GPU
- Install deps:
!pip install transformers datasets accelerate scikit-learn -q - Jalankan:
!python train.py --output_dir ./fine_tuned_model --epochs 3 - Download hasil dan extract ke
backend/fine_tuned_model/
Tanpa fine-tuned model, backend otomatis pakai model pre-trained
cardiffnlp/twitter-xlm-roberta-base-sentiment
# Pastikan fine_tuned_model/ sudah ada di backend/
# Pastikan .env sudah diisi
docker compose up --build -d
# Frontend: http://localhost:80
# Backend API: http://localhost:8000YoutubeSentimentAnalysis/
├── backend/ # FastAPI API server
│ ├── main.py # Entry point + routes
│ ├── services/ # Scraper, filter, model, cache
│ ├── fine_tuned_model/ # ← Taruh model di sini setelah training
│ └── Dockerfile
├── frontend/ # React + Vite UI
│ ├── src/
│ │ ├── pages/ # Home, Results
│ │ └── components/# Chart, WordCloud, Stats, dll.
│ └── Dockerfile
├── model/ # Fine-tuning pipeline
│ ├── train.py # Training script
│ ├── evaluate.py # Evaluasi model
│ └── README_training.md
├── docker-compose.yml
└── .env.example
- Buka Google Cloud Console
- Buat project baru
- Enable YouTube Data API v3
- Buat API Key di Credentials
- Masukkan ke
.env:YOUTUBE_API_KEY=your_key
- ✅ Scraping komentar YouTube (hingga 10.000)
- ✅ Filter otomatis: spam, promo link, emoji-only
- ✅ Sentimen multilingual: Indonesia + Inggris
- ✅ Donut chart interaktif
- ✅ Statistik detail (total, waktu, kecepatan)
- ✅ Top 5 komentar representatif per sentimen
- ✅ Word cloud terpisah positif/negatif
- ✅ Cache hasil (1 jam per video)
- ✅ Non-blocking UI (background task + polling)
- ✅ Docker ready