14,752
Diperiksa
10,210
Asli
4,542
Palsu
31%
Rasio palsu
Landing page: radar sweep animation dengan shield, floating chips, dan 4 stat widget real-time dari database.
07 / Data & AI
Fake Review Detection
AI-powered fake review detection for e-commerce — identify suspicious patterns in product reviews.
03 / Context
Problem
E-commerce platforms struggle with fake reviews that mislead buyers. Manual detection is slow and inconsistent, damaging trust and sales.
04 / Concept
Solution
Built an AI system using IndoBERT to classify reviews as genuine or fake based on text patterns, account behavior, and review timing. Provides confidence scores and explanations.
01 / Outcome
Deliverable
- Public interface: paste product link to check reviews
- Admin panel: upload CSV, batch processing, and caching
- IndoBERT + LOF + XGBoost fusion pipeline
- Duplicate handling and confidence scoring
02 / Process
Workflow
- 1User pastes a marketplace product link
- 2System scrapes reviews → preprocess with IndoBERT tokenizer
- 3LOF detects rating burst anomalies
- 4XGBoost fuses text embeddings + LOF scores → classification
- 5Results show: Genuine / Fake with confidence percentage
05 / System
Architecture
- Frontend: Next.js with API routes for scraping and inference
- ML Pipeline: IndoBERT embeddings → LOF anomaly → XGBoost classifier
- Caching: Redis for processed product results
- Deployment: Docker with model versioning
06 / Diagram
Flowchart
Publik menempel link produk — sistem parse otomatis. Admin login dan upload CSV. Pipeline hybrid IndoBERT + LOF + XGBoost memproses semuanya.
Publik
Cek UlasanTempel link produk di halaman cek, sistem parse product_id otomatis, lalu tampilkan ringkasan Asli/Palsu dari database. Jika belum ada, isi email untuk notifikasi.
Admin
Upload CSVLogin session-based ke panel admin. Upload CSV ulasan, pipeline hybrid memproses preprocessing hingga klasifikasi IndoBERT+LOF+XGBoost dengan cache.
Sistem
Prediction PipelinePipeline otomatis: deteksi duplikat → preprocessing teks (SymSpell, Sastrawi, slang) → IndoBERT embeddings → PCA → LOF anomaly → XGBoost fusion → simpan ke SQLite.
| Menu | Publik | Admin | Sistem |
|---|---|---|---|
| Landing page statistik | ● | ○ | ○ |
| Cek via link produk | ● | ○ | ○ |
| Risk level banner | ● | ○ | ○ |
| Filter hasil label + teks | ● | ● | ○ |
| Form email notifikasi | ● | ○ | ○ |
| Upload CSV + prediksi | ○ | ● | ○ |
| Lihat semua ulasan (pagination) | ○ | ● | ○ |
| Riwayat pencarian publik | ○ | ● | ○ |
| Preprocessing: case fold, slang, stem | ○ | ○ | ● |
| IndoBERT embedding + PCA | ○ | ○ | ● |
| LOF anomaly scoring | ○ | ○ | ● |
| XGBoost fusion klasifikasi | ○ | ○ | ● |
| Flask-Caching + duplikat handling | ○ | ○ | ● |
PUBLIK
Cek via linkBuka website
Tempel link produk
Parse product_id
regex i.shopid.productidAda di DB?
Tidak · Form emailYa · Tampilkan hasilLihat Asli/Palsu
ADMIN
Upload CSVLogin admin
Upload CSV ulasan
Cek duplikat
skip baris samaPipeline hybrid
Hasil & pagination
SISTEM
Pipeline hybridCSV diterima
Preprocessing teks
SymSpell · Sastrawi · slangIndoBERT embeddings
base-p1 → 768PCA reduksi
768 → 50LOF anomaly
suspicion_degreeXGBoost fusion
Asli / PalsuSimpan ke SQLite
07 / Data
Database Design
Skema database SQLite aplikasi Fake Review Detection. Dua tabel independen: reviews menyimpan data ulasan + hasil prediksi, dan history mencatat riwayat pencarian publik. PK emas.
08 / Features
Full Features
Marketplace fake review detection: public check via product link, admin CSV upload, IndoBERT + LOF + XGBoost pipeline, caching, and duplicate handling.
Public landing page
Hero with shield animation + live stats (total reviews checked, fake ratio). Framework section explains IndoBERT, LOF, XGBoost. Hybrid architecture SVG from review → label.
Check via product link
User pastes marketplace product URL, system parses product_id automatically (regex i.shopid.productid), then shows Real/Fake summary from database.
Risk level banner
Automatic banner (green = low, yellow = mid, red = high) based on fake review percentage. Quick visual guide before reading details.
Result filter & pagination
Filter by label (All/Real/Fake) and text availability (All/With/Without). Pagination 12 per page with prev/next navigation.
Email notification form
If product is not in database yet, show email form. Admin gets notification to upload that product's data.
Separate admin panel
Session-based login (admin password). Three menus: Upload CSV (drag & drop), View Reviews (global pagination + filter), Check History (link & status log).
Text preprocessing pipeline
Case folding → URL/HTML/mention cleaning → typo correction (SymSpell) → slang normalization (JSON + CSV) → stopword removal (with negation exceptions) → stemming (Sastrawi).
Hybrid IndoBERT + LOF + XGBoost
IndoBERT base-p1 extracts 768-dim embeddings → PCA reduction to 50 → LOF computes suspicion_degree per product_id from daily rating bursts → XGBoost fusion classifies Real/Fake + confidence score.
Caching & duplicate handling
Flask-Caching (FileSystemCache, 1-hour timeout) memoizes process_and_predict_file results. Duplicate detection by username + product_id + posting_time + review_text before insert.