Part 5_Sentiment Analysis from Film Reviews | Vietnamese NLP with PhoBERT & Telegram Chatbot
Part 5_Sentiment Analysis from Film Reviews | Vietnamese NLP with PhoBERT & Telegram Chatbot
Sentiment Analysis review phim MoMo với Deep Learning (CNN + LSTM)
(Khi học sâu phát huy sức mạnh trên dữ liệu văn bản tiếng Việt)
Vì sao cần Deep Learning cho Sentiment Analysis?
Ở Nội dung #4, các mô hình Machine Learning truyền thống (Naive Bayes, Logistic Regression, SVM…) đã cho kết quả khá tốt và đóng vai trò baseline. Tuy nhiên, các mô hình này vẫn có những hạn chế:
-
Phụ thuộc mạnh vào đặc trưng thủ công (TF-IDF)
-
Khó nắm bắt ngữ cảnh dài và thứ tự từ
-
Chưa khai thác tốt cấu trúc ngôn ngữ tiếng Việt
Để khắc phục các hạn chế đó, Notebook 5_sentiment_analysis_with_CNN+LSTM.ipynb được xây dựng nhằm:
Ứng dụng Deep Learning để tự động học đặc trưng cảm xúc từ văn bản review phim.
Vị trí của notebook trong pipeline dự án
Pipeline tổng thể của dự án:
-
Scrape dữ liệu
-
Làm sạch dữ liệu
-
Cân bằng dữ liệu
-
Huấn luyện nhiều mô hình ML
-
Deep Learning với CNN + LSTM (Notebook 5) ⬅️
-
PhoBERT cho tiếng Việt
Notebook 5 là bước chuyển quan trọng từ Machine Learning sang Deep Learning.
Chuẩn bị dữ liệu cho mô hình Deep Learning
Tokenization và Padding
Khác với TF-IDF, Deep Learning làm việc trực tiếp với chuỗi từ. Notebook tiến hành:
-
Tokenize văn bản (chuyển từ → chỉ số)
-
Giới hạn độ dài câu (max length)
-
Padding để các câu có cùng chiều dài
Việc này giúp:
-
Chuẩn hóa đầu vào
-
Tăng tốc quá trình huấn luyện
-
Tránh lỗi kích thước dữ liệu
Embedding layer
Notebook sử dụng Embedding Layer để:
-
Chuyển chỉ số từ thành vector dense
-
Học biểu diễn ngữ nghĩa của từ trong ngữ cảnh review phim
Embedding cho phép mô hình:
-
Nhận biết các từ có ý nghĩa tương tự
-
Học mối quan hệ giữa các từ mà TF-IDF không thể biểu diễn
Kiến trúc mô hình CNN + LSTM
Mô hình trong notebook kết hợp hai kiến trúc mạnh mẽ:
🔹 CNN (Convolutional Neural Network)
-
Trích xuất đặc trưng cục bộ (n-grams)
-
Phát hiện các cụm từ mang cảm xúc mạnh
-
Giảm nhiễu trong dữ liệu văn bản
🔹 LSTM (Long Short-Term Memory)
-
Ghi nhớ ngữ cảnh dài
-
Xử lý tốt thứ tự từ trong câu
-
Hiệu quả với các review dài, nhiều ý
👉 Sự kết hợp CNN + LSTM giúp mô hình:
Vừa “nhìn” được cụm từ quan trọng, vừa “hiểu” mạch ngữ nghĩa toàn câu.
Huấn luyện mô hình
Trong notebook, mô hình được:
-
Compile với hàm loss phù hợp cho bài toán sentiment
-
Huấn luyện trên tập train
-
Theo dõi độ chính xác và loss trên tập validation
Quá trình huấn luyện cho phép:
-
Quan sát khả năng hội tụ của mô hình
-
Phát hiện dấu hiệu overfitting
-
Điều chỉnh siêu tham số nếu cần
Đánh giá kết quả mô hình
Sau huấn luyện, notebook tiến hành:
-
Dự đoán sentiment trên tập test
-
So sánh kết quả với các mô hình ML trước đó
-
Phân tích độ chính xác và khả năng phân loại từng lớp cảm xúc
Kết quả cho thấy:
-
CNN + LSTM thường cải thiện khả năng nhận diện ngữ cảnh
-
Đặc biệt hiệu quả với các review dài, nhiều sắc thái cảm xúc
-
Thể hiện ưu thế so với các mô hình ML truyền thống trong nhiều trường hợp
Ý nghĩa của CNN + LSTM trong dự án
Notebook 5_sentiment_analysis_with_CNN+LSTM.ipynb giúp:
-
Chứng minh hiệu quả của Deep Learning cho NLP tiếng Việt
-
Tạo cầu nối giữa ML truyền thống và mô hình ngôn ngữ lớn
-
Là bước đệm cần thiết trước khi áp dụng PhoBERT
👉 Đây là bước “nâng cấp tư duy” từ đặc trưng thủ công sang học đặc trưng tự động.
So sánh với các mô hình trước
So với Notebook 4:
-
CNN + LSTM học được ngữ cảnh tốt hơn
-
Ít phụ thuộc vào việc thiết kế feature
-
Thời gian huấn luyện lâu hơn nhưng chất lượng dự đoán cao hơn
Điều này cho thấy:
Deep Learning phù hợp khi dữ liệu đủ lớn và đã được xử lý tốt.
Kết luận và hướng sang bài tiếp theo
Bài viết này đã trình bày cách áp dụng Deep Learning (CNN + LSTM) cho Sentiment Analysis review phim MoMo, đồng thời so sánh với các mô hình Machine Learning trước đó.
📌 Toàn bộ code và notebook của dự án được công khai tại GitHub:
👉 https://github.com/lanhuongsocute/Sentiemt_Analysis_MomoReviewFilm.git
Bạn có thể:
-
Xem chi tiết cách cân bằng dữ liệu
-
Điều chỉnh chiến lược sampling
-
Áp dụng pipeline cho các bài toán NLP tiếng Việt khác
👉 Ở bài tiếp theo (Nội dung #6), tôi sẽ trình bày:
-
Áp dụng mô hình ngôn ngữ PhoBERT
-
Fine-tune PhoBERT cho dữ liệu review phim
-
So sánh kết quả với CNN + LSTM
Notebook tiếp theo: 6_Phobert_FilmMomo.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ế.


