Sentiment Analysis
Bài viết hay,  Nhật kí coding

Part 4_Sentiment Analysis from Film Reviews | Vietnamese NLP with PhoBERT & Telegram Chatbot

Part 4_Sentiment Analysis from Film Reviews | Vietnamese NLP with PhoBERT & Telegram Chatbot

Huấn luyện và so sánh nhiều mô hình Sentiment Analysis cho review phim MoMo

(Từ Machine Learning truyền thống đến baseline cho Deep Learning)

Mục tiêu của bước huấn luyện đa mô hình

Sau khi hoàn thành:

  • Thu thập dữ liệu (Notebook 1)

  • Làm sạch dữ liệu (Notebook 2)

  • Cân bằng dữ liệu sentiment (Notebook 3)

Chúng ta đã có một dataset sạch – cân bằng – sẵn sàng cho huấn luyện mô hình.

Notebook 4_sentiment_multimodel.ipynb được xây dựng với mục tiêu:

Huấn luyện và so sánh nhiều mô hình Sentiment Analysis trên cùng một tập dữ liệu, từ đó lựa chọn baseline phù hợp cho các bước nâng cao (Deep Learning, PhoBERT).

Vị trí của notebook trong pipeline dự án

Pipeline tổng thể của dự án:

  1. Scrape dữ liệu review

  2. Làm sạch và chuẩn hóa

  3. Cân bằng dữ liệu

  4. Huấn luyện nhiều mô hình sentiment (Notebook 4) ⬅️

  5. Deep Learning (CNN + LSTM)

  6. PhoBERT cho tiếng Việt

Notebook 4 đóng vai trò bước đánh giá trung tâm, giúp trả lời câu hỏi quan trọng:

Mô hình nào phù hợp nhất cho bài toán sentiment review phim tiếng Việt?

Chuẩn bị dữ liệu cho mô hình

Tách tập train – test

Notebook tiến hành:

  • Chia dữ liệu thành tập huấn luyệntập kiểm tra

  • Đảm bảo phân phối nhãn được giữ ổn định

Việc tách dữ liệu rõ ràng giúp:

  • Đánh giá đúng khả năng tổng quát hóa của mô hình

  • Tránh hiện tượng học thuộc dữ liệu (overfitting)

Vector hóa văn bản

Do các mô hình Machine Learning không làm việc trực tiếp với văn bản, notebook sử dụng kỹ thuật:

  • TF-IDF Vectorization

TF-IDF giúp:

  • Biến văn bản thành vector số

  • Nhấn mạnh các từ quan trọng

  • Giảm ảnh hưởng của các từ xuất hiện quá nhiều nhưng ít ý nghĩa

Các mô hình được huấn luyện

Notebook thử nghiệm nhiều thuật toán Machine Learning phổ biến, bao gồm:

  • Naive Bayes

  • Logistic Regression

  • Support Vector Machine (SVM)

  • Random Forest (nếu có)

Mỗi mô hình đều được:

  • Huấn luyện trên cùng một tập dữ liệu

  • Đánh giá bằng cùng một bộ chỉ số

👉 Điều này đảm bảo so sánh công bằng giữa các mô hình.

Các chỉ số đánh giá mô hình

Notebook sử dụng các chỉ số chuẩn trong Sentiment Analysis:

  • Accuracy – độ chính xác tổng thể

  • Precision – mức độ chính xác của dự đoán

  • Recall – khả năng phát hiện đúng các mẫu thuộc từng lớp

  • F1-score – cân bằng giữa Precision và Recall

Ngoài ra, Confusion Matrix được sử dụng để:

  • Phân tích chi tiết lỗi dự đoán

  • Quan sát mô hình hay nhầm lẫn giữa các lớp nào

Kết quả và phân tích so sánh

Qua thực nghiệm, notebook cho thấy:

  • Một số mô hình đơn giản (như Logistic Regression, SVM) đạt hiệu quả khá tốt

  • Naive Bayes cho tốc độ nhanh nhưng độ chính xác có thể thấp hơn

  • Không phải mô hình phức tạp hơn luôn cho kết quả tốt hơn

👉 Đây là minh chứng cho nguyên lý quan trọng trong Machine Learning:

Không có mô hình “tốt nhất”, chỉ có mô hình “phù hợp nhất”.

Vai trò của notebook 4 trong toàn bộ dự án

Notebook 4_sentiment_multimodel.ipynb đóng vai trò:

  • Thiết lập baseline cho bài toán sentiment

  • Làm cơ sở so sánh cho:

    • CNN + LSTM (Notebook 5)

    • PhoBERT (Notebook 6)

  • Giúp đánh giá xem Deep Learning có thực sự cải thiện so với ML truyền thống hay không

Xuất kết quả và tái sử dụng mô hình

Tùy mục đích, notebook có thể:

  • Lưu mô hình đã huấn luyện

  • Lưu vectorizer (TF-IDF)

  • Phục vụ cho hệ thống dự đoán sentiment sau này

Điều này giúp:

  • Tái sử dụng mô hình mà không cần huấn luyện lại

  • Triển khai nhanh cho ứng dụng thực tế

Kết luận và hướng sang bài tiếp theo

Bài viết này đã trình bày quá trình huấn luyện và so sánh nhiều mô hình Sentiment Analysis cho dữ liệu review phim MoMo.

📌 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 #5), tôi sẽ trình bày:

  • Áp dụng Deep Learning cho Sentiment Analysis

  • Xây dựng mô hình CNN + LSTM

  • So sánh kết quả với các mô hình Machine Learning truyền thống

Notebook tiếp theo: 5_sentiment_analysis_with_CNN+LSTM.ipynb

📚 Danh sách các bài blog trong series

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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á.

  6. 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ả.

  7. 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.

  8. 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ế.

Don’t get older. I level up.

Leave a Reply

Your email address will not be published. Required fields are marked *