fake-review.app

14,752

Diperiksa

10,210

Asli

4,542

Palsu

31%

Rasio palsu

Radar scan + live stats

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.

Data Scientist / Full-stack2025FlaskPythonIndoBERTXGBoostscikit-learnSQLitePyTorchPandasSastrawiJinja2

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

  1. 1User pastes a marketplace product link
  2. 2System scrapes reviews → preprocess with IndoBERT tokenizer
  3. 3LOF detects rating burst anomalies
  4. 4XGBoost fuses text embeddings + LOF scores → classification
  5. 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 Ulasan

Tempel link produk di halaman cek, sistem parse product_id otomatis, lalu tampilkan ringkasan Asli/Palsu dari database. Jika belum ada, isi email untuk notifikasi.

Cek via linkFilter Asli/PalsuRisk bannerPagination

Admin

Upload CSV

Login session-based ke panel admin. Upload CSV ulasan, pipeline hybrid memproses preprocessing hingga klasifikasi IndoBERT+LOF+XGBoost dengan cache.

Upload CSVLihat UlasanRiwayat Cek

Sistem

Prediction Pipeline

Pipeline otomatis: deteksi duplikat → preprocessing teks (SymSpell, Sastrawi, slang) → IndoBERT embeddings → PCA → LOF anomaly → XGBoost fusion → simpan ke SQLite.

PreprocessingIndoBERT + PCALOF anomalyXGBoost fusionCaching
MenuPublikAdminSistem
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
Mulai / selesai Proses Input / output Keputusan Proses sistem

PUBLIK

Cek via link
  1. Buka website

  2. Tempel link produk

  3. Parse product_id

    regex i.shopid.productid
  4. Ada di DB?

    Tidak · Form emailYa · Tampilkan hasil
  5. Lihat Asli/Palsu

ADMIN

Upload CSV
  1. Login admin

  2. Upload CSV ulasan

  3. Cek duplikat

    skip baris sama
  4. Pipeline hybrid

  5. Hasil & pagination

SISTEM

Pipeline hybrid
  1. CSV diterima

  2. Preprocessing teks

    SymSpell · Sastrawi · slang
  3. IndoBERT embeddings

    base-p1 → 768
  4. PCA reduksi

    768 → 50
  5. LOF anomaly

    suspicion_degree
  6. XGBoost fusion

    Asli / Palsu
  7. Simpan 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.

reviews
PKid
username
rating
posting_time
review_text
likes
store_name
product_name
product_id
merchant_id
label_pred
confidence
upload_id
tanggal_upload
nama_sumber_file
product_link
history
PKid
product_link
search_date
search_status
email
is_request_analysis
request_status

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.

← Back to work