Dự án Sentiment Analysis được thực hiện trong khuôn khổ môn học Data Mining.
Mục tiêu chính của dự án là:
- Phân tích cảm xúc (Sentiment Analysis) từ dữ liệu đánh giá sản phẩm Amazon
- So sánh nhiều kỹ thuật khai phá dữ liệu khác nhau
- Xây dựng hệ thống trực quan hóa kết quả bằng Dashboard
Dự án áp dụng đầy đủ các hướng tiếp cận trong Data Mining:
- 🔗 Association Rule Mining – Khai phá luật kết hợp
- 🔍 Clustering – Phân cụm đánh giá
- 🤖 Classification – Phân lớp cảm xúc
- 🔄 Semi-Supervised Learning – Học bán giám sát
- Môn học: Data Mining
- Giảng viên hướng dẫn: ThS. Lê Thị Thùy Trang
- Nhóm thực hiện: Nhóm 7
- Học kỳ: II – Năm học 2025–2026
SENTIMENT_ANALYSIS_PROJECT/
│
├── configs
│
├── data/
│ ├── raw/ # Dữ liệu gốc
│ └── processed/ # Dữ liệu đã xử lý
│
├── notebooks/ # Phân tích bằng Jupyter
│
├── src/ # Source code chính
│
├── scripts/ # Chạy pipeline tự động
│
├── outputs/ # Kết quả (models, figures, tables, reports)
│
├── app.py # Streamlit Dashboard
├── requirements.txt
├── README.md
└── .gitignore
Cấu trúc được thiết kế theo chuẩn Machine Learning Project Structure, dễ mở rộng và tái sử dụng.
git clone https://github.com/ngocsonn2005/btlDataMining.git
cd btlDataMiningSử dụng conda (khuyến nghị):
conda create -n sentiment_env python=3.9
conda activate sentiment_envHoặc:
python -m venv sentiment_env
sentiment_env\Scripts\activate # Windowspip install -r requirements.txtĐặt file:
train.csv
test.csv
vào thư mục:
data/raw/
| Column | Mô tả |
|---|---|
| label | 1 = negative, 2 = positive |
| title | Tiêu đề đánh giá |
| review_text | Nội dung đánh giá |
python scripts/run_pipeline.pyjupyter notebook hoặc chạy tất với lệnh python scripts/run_papermill.pyMở và chạy lần lượt các notebook trong thư mục notebooks/.
streamlit run app.pyTruy cập tại:
http://localhost:8501
- Tổng số luật: 2
- Luật mạnh nhất:
book → read - Lift cao nhất: 2.36
- Confidence: 0.55
-
Số cụm tối ưu: 2
- Cluster 0 (2.3%) – Book / Fiction Reviews
- Cluster 1 (97.7%) – Product / CD Reviews
| Metric | Giá trị |
|---|---|
| Accuracy | 0.8267 |
| Precision | 0.8298 |
| Recall | 0.8306 |
| F1-Score | 0.8302 |
🔹 Mô hình tốt nhất: Logistic Regression 🔹 Hiệu suất ổn định và thời gian huấn luyện nhanh
- Tỷ lệ dữ liệu có nhãn: 5%
- Số vòng self-training: 39
- Pseudo-labels thêm vào: 37,500
- Cải thiện tốt nhất: +0.0013
Dashboard gồm 6 trang:
- Overview
- Association Rules
- Clustering
- Classification
- Semi-Supervised
- Reports
Tính năng:
- Biểu đồ tương tác (Plotly)
- So sánh mô hình
- Tải kết quả CSV
- Tự động phát hiện dữ liệu
- Python 3.9+
- Pandas, NumPy
- Scikit-learn
- TensorFlow / Keras
- XGBoost
- NLTK, Gensim
- MLxtend
- Streamlit
- Plotly
- Jupyter Notebook
Dự án đã:
✅ Ứng dụng đầy đủ các kỹ thuật khai phá dữ liệu ✅ So sánh nhiều mô hình khác nhau ✅ Xây dựng pipeline hoàn chỉnh ✅ Tạo dashboard trực quan hóa chuyên nghiệp
Logistic Regression là mô hình phù hợp nhất cho bài toán Sentiment Analysis trên tập dữ liệu Amazon Reviews, với:
- Hiệu suất cao
- Độ ổn định tốt
- Thời gian huấn luyện nhanh
- Dễ triển khai thực tế
Dự án được phát hành theo giấy phép MIT License.
Xin chân thành cảm ơn ThS. Lê Thị Thùy Trang đã hướng dẫn tận tình trong suốt quá trình thực hiện dự án.
Cảm ơn các thành viên Nhóm 7 đã hợp tác và đóng góp để hoàn thành dự án.
- Nhóm 7 – Data Mining
- Email: docongngocson2005@gmail.com
© 2026 – Bài tập lớn | Data Mining | Học kỳ II – 2025–2026