- Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh (ĐHQG-HCM)
- Khoa: Khoa học và kỹ thuật thông tin (KTTT)
- GVHD: TS. Đỗ Trọng Hợp
- Nhóm sinh viên thực hiện: Nhóm 7
STT | Họ tên | MSSV | Chức vụ |
---|---|---|---|
1. | Đặng Huỳnh Vĩnh Tân | 21520442 | Nhóm trưởng (Leader) |
2. | Nguyễn Thị Hồng Nhung | 21522436 | |
3. | Nguyễn Viết Kha | 21520949 | |
4. | Nguyễn Huy Hoàng | 21522093 |
Trong đồ án này, chúng tôi thực hiện xây dựng hệ khuyến nghị nhằm gợi ý địa điểm dựa trên dự đoán điểm đánh giá của các nhận xét trên Google. Chúng tôi sử dụng tập dữ liệu tự thu thập trên các địa bàn ở Thành Phố Hồ Chí Minh để thực hiện và huấn luyện mô hình. Chúng tôi sử dụng mô hình hồi quy để huấn luyện mô hình sau đó dữ liệu này sẽ qua Spark Streaming và Spark SQL để xử lý, truy vấn và trích xuất dữ liệu, và được lưu vào hệ quản trị cơ sở dữ liệu MongoDB. Sau sử dụng mô hình k-Nearest Neighbors (kNN) với thuật toán "Brute Force" để tìm các địa điểm gần nhất.
Xem sản phẩm tại đây: https://drive.google.com/drive/u/0/folders/1cPzsr6DJnKSKsKvxrmfRsA0HQgQwn6SQ
Dữ liệu được thu thập bằng công cụ có sẵn trên trang web https://console.apify.com/
Sử dụng 2 công cụ:
- Lấy dữ liệu địa điểm:
Google Maps Scraper
- Lấy dữ liệu đánh giá:
Google Maps Reviews Scraper
Dữ liệu thu thập được bao gồm:
data_vi_tphcm/places_HCM_2024.json.gz
: Đây là dữ liệu chứa các địa điểm được tính từ năm 30/01/2024 trở về trướcdata_vi_tphcm/reviews_HCM_before_31_01_2024.jsonl.gz
: Đây là dữ liệu chứa các đánh giá của các địa điểm được tính từ 30/01/2024 trở về trướcdata_vi_tphcm/reviews_HCM_after_31_01_2024.jsonl.gz
: Đây là dữ liệu chứa các đánh giá của các địa điểm được tính từ 30/01/2024 đến 04/02/2024. Đây cũng chính là bộ dữ liệu đượcproducer
sử dụng để gửi dữ liệu.
Dữ liệu kết quả bao gồm:
data_result/places_results.jsonl.gz
: Đây là dữ liệu chứa các địa điểm được tính từ năm 30/01/2024 trở về trước đã được xử lý.data_result/review_results.jsonl.gz
: Đây là dữ liệu chứa các đánh giá của các địa điểm được tính từ 30/01/2024 trở về trước đã được xử lý
Dữ liệu có thể tải tại đây: https://drive.google.com/drive/folders/1cPzsr6DJnKSKsKvxrmfRsA0HQgQwn6SQ?usp=drive_link
- Python
- MongoDB
- Kafka
Nếu như không có kafka hoặc không cần thực hiện việc truyền nhận dữ liệu mới, chỉ cần thực hiện B1, B2, B3, B4, B7, B8 (bỏ bước B5, B6), app visualzation vẫn hoạt động bình thường (app chỉ không nhận được dữ liệu mới mà thôi)
git clone https://github.com/NunNunIT/IE212.O11.Group7.git
** Có thể bỏ qua bước này, nếu như trong thư mục data_vi_tphcm
đã có file reviews_HCM_after_31_01_2024.jsonl.gz
**
Truy cập https://drive.google.com/drive/folders/1cPzsr6DJnKSKsKvxrmfRsA0HQgQwn6SQ?usp=drive_link và tải file reviews_HCM_after_31_01_2024.jsonl.gz
về.
Đảm bảo rằng được lưu đúng thư mục data_vi_tphcm
Kết quả sẽ được như này
pip install -r requirements.txt
Truy cập vào thư mục data_result
cd data_result
Chạy đoạn lệnh sau để xây dựng cơ sở dữ liệu trên MongoDB
python mongoDB.py
Líc này ta sẽ được cơ sở dữ liệu như sau
- cd đến thư mục kafka, sau đó thực hiện câu lệnh sau
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
- mở thêm 1 terminal cd đến thư mục kafka, sau đó thực hiện câu lệnh sau
bin\windows\kafka-server-start.bat config\server.properties
-
Truy cập vào thư mục
streaming
-
Mở file
producer.ipynb
và chạy hết tất cả các cell -
Mở file
consumer.ipynb
và chạy hết tất cả các cell
- Truy cập vào thư mục
visualization_app
cd visualization_app
- Chạy đoạn lệnh sau
python app.py
Lúc này đây, trang web đã được hoạt động
- Cách 1: Ctrl + Click vào đường link http://127.0.0.1:8050/ trên terminal
- Cách 2: Mở trình duyệt bất kỳ và dán đường dẫn sau http://127.0.0.1:8050/