| --- |
| title: Tokopedia Review Insights |
| emoji: ๐ |
| colorFrom: green |
| colorTo: blue |
| sdk: streamlit |
| sdk_version: 1.31.0 |
| app_file: src/app.py |
| pinned: false |
| --- |
| |
| # Tokopedia Review Insights |
|
|
| NLP topic modeling on Indonesian Tokopedia product reviews (PRDECT-ID). The app surfaces |
| **what customers praise and complain about** - not just sentiment, but the theme behind it. |
|
|
| Pages: |
| - **EDA** - sentiment balance, themes, emotions, categories. |
| - **Predict Theme** - paste a review, get its predicted theme (praise vs complaint). |
| - **Submit a Review** - save a new review to the database (Supabase). |
|
|
| ## How prediction works |
| A review is embedded with `paraphrase-multilingual-MiniLM-L12-v2` and cosine-matched to the |
| exported topic vectors (`artifacts/topic_index.npz`). No BERTopic/UMAP/HDBSCAN are needed at |
| runtime, so the Space stays light. |
|
|
| ## Run locally |
| ```bash |
| pip install -r requirements.txt |
| streamlit run src/app.py |
| ``` |
|
|
| ## Deploy to Hugging Face Spaces |
| 1. Create a new Space -> **SDK: Streamlit**. |
| 2. Upload these files/folders (NOT the notebook, raw dataset, or BERTopic models): |
| - `src/` |
| - `artifacts/topic_index.npz`, `artifacts/topic_index.json`, `artifacts/dashboard_data.csv` |
| - `colloquial-indonesian-lexicon.csv` |
| - `requirements.txt`, `README.md` |
| 3. Set the database credentials under **Space -> Settings -> Secrets** (do NOT commit `secrets.toml`). |
| Add a secret named `secrets.toml`-style connection, or set the `[connections.supabase]` values |
| via the Secrets UI. |
|
|
| ## Security |
| `.streamlit/secrets.toml` holds DB credentials and is gitignored. Use |
| `.streamlit/secrets.toml.example` as a template. Never commit real credentials to a public repo. |
|
|
| ## Project |
| Hacktiv8 FTDS-040-HCK - Final Project - Group 001. |
|
|