kitalulus/
├── data/
│ └── Womens Clothing E-Commerce Reviews.csv
├── models/
│ ├── recommendation_model.pkl
│ ├── sentiment_model.pkl
│ └── tfidf_vectorizer.pkl
├── src/
│ ├── components/
│ │ ├── data_ingestion.py
│ │ ├── data_preprocessing.py
│ │ ├── model_trainer.py
│ │ └── __init__.py
│ ├── utils/
│ │ ├── common.py
│ │ ├── logger.py
│ │ ├── exception.py
│ │ └── __init__.py
│ ├── web/
│ │ ├── api/
│ │ │ ├── routes.py
│ │ │ └── __init__.py
│ │ └── streamlit/
│ │ ├── app.py
│ │ └── __init__.py
├── README.md
└── requirements.txt
Instal dependensi dengan menjalankan:
pip install -r requirements.txt
Jalankan pipeline model_trainer:
python src/components/model_trainer.py
Pipeline ini akan:
- Membaca data dari folder
data/
. - Membersihkan teks menggunakan NLTK.
- Melakukan transformasi data menggunakan TF-IDF Vectorizer.
- Melatih beberapa model (Random Forest, Logistic Regression, dll.) untuk rekomendasi dan analisis sentimen.
- Menyimpan model terbaik di folder
models/
:recommendation_model.pkl
sentiment_model.pkl
tfidf_vectorizer.pkl
API berbasis FastAPI dapat digunakan untuk prediksi review. Jalankan perintah:
uvicorn src.web.api.routes:app --reload
- URL:
http://127.0.0.1:8000/predict
- Method:
POST
- Request Body:
{ "text": "I bought this lovely silk/velvet shirt in the "sky" color but it is more on the teal blue side than sky blue, which disappointed me. it is definitely darker than appears in photo. still a luxurious well-made beauty with sassy appeal. it drapes like a snake slithering down your body. it comes with attitude." }
- Response:
{ "recommendation": true, "sentiment": 5, "recommendation_confidence": 0.95, "sentiment_confidence": 0.87, "recommendation_probabilities": { "Not Recommended": 0.05, "Recommended": 0.95 }, "sentiment_probabilities": { "Rating 1": 0.02, "Rating 2": 0.03, "Rating 3": 0.05, "Rating 4": 0.15, "Rating 5": 0.75 }, "cleaned_text": "bought lovely silk velvet shirt quot sky quot color teal blue side sky blue disappointed definitely darker appears photo still luxurious well made beauty sassy appeal drape like snake slithering body come attitude" }
Untuk menampilkan visualisasi data dan menggunakan prediksi interaktif, jalankan Streamlit:
streamlit run src/web/streamlit/app.py
Fitur di Streamlit:
- Summary: Halaman eksplorasi data (EDA).
- Prediction: Masukkan teks ulasan dan dapatkan prediksi.
- Model Evaluation: Evaluasi performa model, termasuk metrik seperti akurasi, precision, recall, F1-score, dll.
- Advanced Analysis: Analisis atribut seperti qaulity, size, comfort, dan topik utama menggunakan LDA.
Pada halaman evaluasi, Anda dapat melihat:
- False Positive: Review yang salah diprediksi sebagai "Recommended".
- False Negative: Review yang salah diprediksi sebagai "Not Recommended".
Anda dapat melihat fitur (kata) mana yang paling berpengaruh pada keputusan model:
- Recommendation: Fitur yang penting untuk prediksi rekomendasi.
- Sentiment: Fitur yang penting untuk prediksi sentimen.
Pipeline akan memilih model terbaik berdasarkan:
- F1-Score dan Cross-Validation untuk rekomendasi.
- Akurasi dan RMSE untuk analisis sentimen.
Faktor Size Dominan:
Ukuran merupakan atribut yang paling banyak disebutkan dalam review dengan sekitar 27,000 mentions
Ini menunjukkan bahwa konsumen sangat memperhatikan dan peduli tentang aspek ukuran produk
Mungkin banyak pembeli yang membahas masalah fitting atau kesesuaian ukuran
Comfort & Style Seimbang:
Comfort (kenyamanan) dan style (gaya) memiliki jumlah mentions yang hampir setara, masing-masing sekitar 15,000 mentions
Ini mengindikasikan bahwa konsumen mementingkan keseimbangan antara kenyamanan dan penampilan
Kedua aspek ini menjadi pertimbangan penting setelah ukuran
Quality Mendapat Perhatian Lebih Rendah:
Quality memiliki mentions terendah, sekitar 9,000
Ini bisa mengindikasikan beberapa hal:
Konsumen mungkin lebih fokus pada aspek yang langsung terlihat/terasa
Kualitas produk mungkin sudah cukup baik sehingga tidak terlalu dibahas
Atau sebaliknya, konsumen kurang memperhatikan aspek kualitas
Rekomendasi untuk Bisnis:
Fokus pada sizing yang tepat dan konsisten karena ini adalah concern utama konsumen
Mempertahankan keseimbangan antara aspek kenyamanan dan gaya
Meskipun kualitas kurang dibahas, tetap penting untuk dijaga
Mungkin perlu edukasi konsumen tentang aspek kualitas produk
Prioritas Konsumen:
Urutan prioritas konsumen berdasarkan mentions:
Faktor Ukuran (Size) Dominan:
- Ukuran merupakan atribut yang paling banyak disebutkan dalam review dengan sekitar 27,000 mentions
- Ini menunjukkan bahwa konsumen sangat memperhatikan dan peduli tentang aspek ukuran produk
- Mungkin banyak pembeli yang membahas masalah fitting atau kesesuaian ukuran
comfort & style Seimbang:
- Comfort (kenyamanan) dan style (gaya) memiliki jumlah mentions yang hampir setara, masing-masing sekitar 15,000 mentions
- Ini mengindikasikan bahwa konsumen mementingkan keseimbangan antara kenyamanan dan penampilan
- Kedua aspek ini menjadi pertimbangan penting setelah ukuran
Quality Mendapat Perhatian Lebih Rendah:
- Quality (kualitas) memiliki mentions terendah, sekitar 9,000
- Ini bisa mengindikasikan beberapa hal:
* Konsumen mungkin lebih fokus pada aspek yang langsung terlihat/terasa
* Kualitas produk mungkin sudah cukup baik sehingga tidak terlalu dibahas
* Atau sebaliknya, konsumen kurang memperhatikan aspek kualitas
Rekomendasi untuk Bisnis:
- Fokus pada sizing yang tepat dan konsisten karena ini adalah concern utama konsumen
- Mempertahankan keseimbangan antara aspek kenyamanan dan gaya
- Meskipun kualitas kurang dibahas, tetap penting untuk dijaga
- Mungkin perlu edukasi konsumen tentang aspek kualitas produk
Prioritas Konsumen:
- Urutan prioritas konsumen berdasarkan mentions:
1. Size
2. Comfort
3. Style
4. Quality
Ukuran sangat penting bagi pembeli. Trigram terkait ukuran seperti "fit true size", "run true size", "size fit perfectly", dan "small fit perfectly" sering muncul, menunjukkan pentingnya kecocokan ukuran produk. <br>
Pembeli sangat memperhatikan komplimen yang mereka terima. "received many compliment" berada di urutan kedua, mengindikasikan konsumen senang saat orang lain memuji produk yang mereka beli. <br>
Kualitas adalah faktor kunci. Trigram seperti "love love love" dan "usually wear size" menandakan kepuasan konsumen dengan kualitas dan kesesuaian produk. <br>
Kenyamanan juga menjadi perhatian. "fit like glove" dan "look great jean" menunjukkan konsumen menghargai produk yang pas, nyaman dipakai dan tampak bagus. <br>
Konsumen memiliki preferensi ukuran tertentuBerdasarkan grafik di atas yang menunjukkan 20 trigram paling sering muncul dalam ulasan, beberapa insight yang dapat diperoleh dalam Bahasa Indonesia adalah: <br>
1. Ukuran sangat penting bagi pembeli. Trigram terkait ukuran seperti "fit true size", "run true size", "size fit perfectly", dan "small fit perfectly" sering muncul, menunjukkan pentingnya kecocokan ukuran produk.
2. Pembeli sangat memperhatikan komplimen yang mereka terima. "received many compliment" berada di urutan kedua, mengindikasikan konsumen senang saat orang lain memuji produk yang mereka beli.
3. Kualitas adalah faktor kunci. Trigram seperti "love love love" dan "usually wear size" menandakan kepuasan konsumen dengan kualitas dan kesesuaian produk.
4. Kenyamanan juga menjadi perhatian. "fit like glove" dan "look great jean" menunjukkan konsumen menghargai produk yang pas, nyaman dipakai dan tampak bagus.
5. Konsumen memiliki preferensi ukuran tertentu. "usually wear small" dan "every time wear" mengindikasikan pembeli cenderung setia pada ukuran yang biasa mereka kenakan.
Secara keseluruhan, ulasan menunjukkan pentingnya keakuratan ukuran, kualitas produk, kenyamanan pemakaian, dan pujian dari orang lain dalam menentukan kepuasan konsumen pada produk fashion yang mereka beli.. "usually wear small" dan "every time wear" mengindikasikan pembeli cenderung setia pada ukuran yang biasa mereka kenakan.