Part 2_Sentiment Analysis from Film Reviews | Vietnamese NLP with PhoBERT & Telegram Chatbot
Part 2_Sentiment Analysis from Film Reviews | Vietnamese NLP with PhoBERT & Telegram Chatbot
Làm sạch và chuẩn hóa dữ liệu review phim MoMo
(Bước tiền xử lý quan trọng trong Sentiment Analysis tiếng Việt)
Vai trò của bước làm sạch dữ liệu
Sau khi hoàn thành bước thu thập dữ liệu ở Notebook 1 – Scrape dataset, chúng ta đã có một tập dữ liệu review phim thô (raw data) từ MoMo. Tuy nhiên, dữ liệu dạng này chưa thể đưa trực tiếp vào mô hình học máy, bởi:
-
Review chứa nhiều ký tự đặc biệt, emoji, HTML
-
Có review trống hoặc rất ngắn, không mang ý nghĩa cảm xúc
-
Dữ liệu không đồng nhất về định dạng chữ hoa – chữ thường
-
Nhiều nội dung nhiễu làm giảm hiệu quả mô hình
Vì vậy, Notebook 2_cleaned_dataset.ipynb được xây dựng nhằm:
Làm sạch, chuẩn hóa và chuẩn bị dữ liệu văn bản tiếng Việt cho các bước huấn luyện mô hình phía sau.
Vị trí của notebook trong pipeline dự án
Pipeline tổng thể của dự án:
-
Scrape dữ liệu review phim (Notebook 1)
-
Làm sạch & chuẩn hóa dữ liệu (Notebook 2) ⬅️
-
Cân bằng dữ liệu (Notebook 3)
-
Huấn luyện nhiều mô hình sentiment
-
Deep Learning & PhoBERT
Notebook 2 đóng vai trò “lọc thô”, giúp dữ liệu trở nên gọn gàng, đồng nhất và có giá trị ngữ nghĩa hơn.
Đọc dữ liệu gốc và khảo sát ban đầu
Notebook bắt đầu bằng việc:
-
Đọc file
momo_reviews_scrape.csv -
Kiểm tra số dòng, số cột
-
Quan sát nhanh nội dung review
Việc khảo sát này giúp xác định:
-
Tỷ lệ dữ liệu rỗng
-
Những trường cần giữ lại cho bài toán sentiment
-
Những nội dung cần loại bỏ hoặc xử lý đặc biệt
Loại bỏ dữ liệu không hợp lệ
Một số review trong dataset:
-
Bị trống (
NaN) -
Chỉ chứa vài ký tự vô nghĩa
-
Không mang nội dung đánh giá cảm xúc
Notebook tiến hành:
-
Loại bỏ các dòng có review rỗng
-
Lọc các review quá ngắn (không đủ thông tin cảm xúc)
👉 Bước này giúp giảm nhiễu, tránh để mô hình “học sai” từ dữ liệu kém chất lượng.
Chuẩn hóa văn bản tiếng Việt
Đây là phần quan trọng nhất của notebook.
Dữ liệu review được chuẩn hóa thông qua các bước:
-
Chuyển toàn bộ về chữ thường
-
Loại bỏ:
-
Ký tự đặc biệt
-
Emoji
-
Số không cần thiết
-
-
Chuẩn hóa khoảng trắng
-
Giữ lại chữ cái tiếng Việt để đảm bảo ngữ nghĩa
Mục tiêu của bước này:
Giữ lại nội dung cảm xúc cốt lõi, loại bỏ phần “trang trí” không cần thiết cho mô hình.
Tạo cột dữ liệu mới cho mô hình
Thay vì ghi đè dữ liệu gốc, notebook thường:
-
Giữ lại cột review ban đầu (raw)
-
Tạo cột mới chứa review đã làm sạch
Cách làm này có lợi vì:
-
Dễ so sánh trước – sau làm sạch
-
Thuận tiện debug hoặc cải tiến pipeline
-
Phục vụ nhiều mô hình khác nhau (ML & DL)
Kiểm tra lại chất lượng dữ liệu sau làm sạch
Sau khi tiền xử lý, notebook tiếp tục:
-
Kiểm tra số lượng dòng còn lại
-
In thử một số review đã được clean
-
Đảm bảo dữ liệu không còn giá trị rỗng
Đây là bước xác nhận chất lượng, trước khi đưa dữ liệu sang:
-
Cân bằng nhãn
-
Vector hóa
-
Huấn luyện mô hình
Xuất dataset đã làm sạch
Kết quả cuối cùng của notebook là một file CSV mới, ví dụ: momo_reviews_cleaned.csv
Dataset này:
-
Gọn gàng
-
Đồng nhất định dạng
-
Sẵn sàng cho bước cân bằng dữ liệu và huấn luyện mô hình
Ý nghĩa của bước làm sạch trong Sentiment Analysis
Trong bài toán xử lý ngôn ngữ tự nhiên, đặc biệt với tiếng Việt:
Tiền xử lý dữ liệu tốt có thể cải thiện kết quả mô hình nhiều hơn cả việc đổi thuật toán.
Notebook 2_cleaned_dataset.ipynb giúp:
-
Mô hình học đúng cảm xúc, không bị nhiễu
-
Giảm overfitting do dữ liệu bẩn
-
Tăng độ ổn định khi so sánh nhiều mô hình khác nhau
Kết luận và hướng sang bài tiếp theo
Bài viết này đã trình bày chi tiết quá trình làm sạch và chuẩn hóa dữ liệu review phim MoMo, chuẩn bị đầu vào cho các mô hình học máy và học sâu.
👉Toàn bộ code, notebook và dữ liệu của dự án được công khai tại GitHub:
https://github.com/lanhuongsocute/Sentiemt_Analysis_MomoReviewFilm.git
Bạn có thể:
- Clone về chạy lại toàn bộ pipeline
- Tùy chỉnh các bước làm sạch
- Áp dụng cho các bài toán sentiment khác bằng tiếng Việt
👉 Ở bài tiếp theo (Nội dung #3), tôi sẽ trình bày:
-
Vấn đề mất cân bằng dữ liệu sentiment
-
Các kỹ thuật cân bằng dữ liệu
-
Chuẩn bị dataset cho huấn luyện mô hình
Notebook tiếp theo: 3_balanced_dataset.ipynb
📚 Danh sách các bài blog trong series
-
Part 1 – Thu thập và tạo dataset từ review phim MoMo
🔗 https://mimibeoxu.com/2025/12/09/sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Giới thiệu dự án, crawl dữ liệu review, lọc link phim, scrape review và lưu CSV. -
Part 2 – Làm sạch và chuẩn hóa dữ liệu review
🔗 https://mimibeoxu.com/2025/12/26/part-2_sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Xử lý text tiếng Việt: loại bỏ ký tự đặc biệt, chuẩn hóa, chuẩn bị dữ liệu cho mô hình. -
Part 3 – Cân bằng dữ liệu sentiment
🔗 https://mimibeoxu.com/2025/12/26/part-3_sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Phân tích phân phối nhãn, sampling để cân bằng các lớp sentiment. -
Part 4 – So sánh mô hình Machine Learning cho Sentiment Analysis
🔗 https://mimibeoxu.com/2025/12/26/part-4_sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Huấn luyện NB, SVM, Logistic Regression… với TF-IDF; đánh giá accuracy, F1, confusion matrix. -
Part 5 – Deep Learning với CNN + LSTM cho dữ liệu review
🔗 https://mimibeoxu.com/2025/12/26/part-5_sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Xây dựng mô hình CNN + LSTM, embedding layer, huấn luyện và đánh giá. -
Part 6 – Fine-tune PhoBERT cho Sentiment Analysis tiếng Việt
🔗 https://mimibeoxu.com/2025/12/26/part-6_sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Áp dụng PhoBERT pretrained, tokenization, attention mask, classification head, kết quả. -
Part 7 – Kiểm tra và đánh giá chất lượng data sau pipeline
🔗 https://mimibeoxu.com/2025/12/26/part-7_sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Kiểm tra lại dataset cuối cùng, thống kê độ dài, phân phối nhãn, đảm bảo không lỗi. -
Part 8 – Phân loại nhị phân sentiment (tích cực vs tiêu cực)
🔗 https://mimibeoxu.com/2025/12/26/part-8_sentiment-analysis-from-film-reviews-vietnamese-nlp-with-phobert-telegram-chatbot/
Nội dung: Chuyển bài toán sang binary classification, huấn luyện và đánh giá mô hình phục vụ triển khai thực tế.


