import streamlit as st
from utils.metrics_data import load_metrics
from utils.model_loader import model_is_available
st.set_page_config(
page_title="SentiMart - Analisis Sentimen E-Commerce",
page_icon="๐๏ธ",
layout="wide",
initial_sidebar_state="expanded",
)
# ---------- Global style ----------
st.markdown("""
""", unsafe_allow_html=True)
with st.sidebar:
st.markdown("### ๐๏ธ SentiMart")
st.caption("v1.0")
st.markdown("---")
if model_is_available():
st.success("Model IndoBERT: siap")
else:
st.warning("Mode DEMO (model belum di-load)")
metrics = load_metrics()
status = "" if not metrics.get("is_demo") else " ยท demo data"
st.markdown('๐ค IndoBERT ยท fine-tuned' + status + '', unsafe_allow_html=True)
st.markdown("## SentiMart")
st.markdown("#### Analisis Sentimen Ulasan E-Commerce Indonesia")
st.write(
"Platform analisis sentimen berbasis deep learning untuk ulasan produk "
"e-commerce berbahasa Indonesia. Dibangun dengan model **IndoBERT** yang "
"di-fine-tune pada dataset **PRDECT-ID** (5.400 ulasan nyata)."
)
st.write("")
c1, c2, c3 = st.columns(3)
with c1:
st.markdown(
'
5,400
'
'
Total Ulasan
'
'
Dataset PRDECT-ID
',
unsafe_allow_html=True,
)
with c2:
st.markdown(
f'{metrics["accuracy"]*100:.1f}%
'
'
Akurasi Model
'
'
Test set evaluation
',
unsafe_allow_html=True,
)
with c3:
st.markdown(
'2
'
'
Kelas Sentimen
'
'
Positif & Negatif
',
unsafe_allow_html=True,
)
st.write("")
st.markdown("##### FITUR APLIKASI")
r1c1, r1c2 = st.columns(2)
with r1c1:
st.markdown(
'๐ Prediksi Sentimen
'
'
Analisis sentimen satu ulasan produk secara real-time '
'menggunakan model IndoBERT terlatih.
',
unsafe_allow_html=True,
)
with r1c2:
st.markdown(
'๐ Analisis Batch
'
'
Unggah file CSV berisi banyak ulasan dan dapatkan hasil '
'prediksi sentimen secara massal.
',
unsafe_allow_html=True,
)
st.write("")
r2c1, r2c2 = st.columns(2)
with r2c1:
st.markdown(
'๐ Performa Model
'
'
Lihat metrik evaluasi model: akurasi, precision, recall, '
'F1-Score, dan kurva pelatihan.
',
unsafe_allow_html=True,
)
with r2c2:
st.markdown(
'โน๏ธ Tentang Aplikasi
'
'
Informasi dataset, metodologi penelitian, dan tim '
'pengembang aplikasi SentiMart.
',
unsafe_allow_html=True,
)
st.write("")
st.caption("SentiMart ยท Indonesia ยท 2026 โ Proyek Akhir Praktikum NLP, Politeknik Caltex Riau")