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

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

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

Sentiment Analysis review phim MoMo với PhoBERT

(Khai thác sức mạnh mô hình ngôn ngữ tiền huấn luyện cho tiếng Việt)

Vì sao chọn PhoBERT cho tiếng Việt?

Sau khi thử nghiệm:

  • Machine Learning truyền thống (Notebook #4)

  • Deep Learning CNN + LSTM (Notebook #5)

chúng ta nhận thấy Deep Learning đã cải thiện rõ rệt khả năng hiểu ngữ cảnh. Tuy nhiên, các mô hình này vẫn phải học từ đầu biểu diễn ngôn ngữ, trong khi tiếng Việt có nhiều đặc thù (tách từ, dấu, ngữ cảnh).

PhoBERT là mô hình ngôn ngữ tiền huấn luyện (pretrained language model) dành riêng cho tiếng Việt, được huấn luyện trên tập dữ liệu rất lớn. Vì vậy, Notebook 6_Phobert_FilmMomo.ipynb được xây dựng với mục tiêu:

Fine-tune PhoBERT để phân tích cảm xúc review phim tiếng Việt một cách chính xác và sâu ngữ cảnh hơn.

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

Pipeline tổng thể:

  1. Thu thập dữ liệu

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

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

  4. Machine Learning baseline

  5. Deep Learning CNN + LSTM

  6. Fine-tune PhoBERT (Notebook 6) ⬅️

Notebook 6 là đỉnh cao của pipeline, nơi mô hình ngôn ngữ hiện đại được áp dụng trực tiếp cho bài toán sentiment.

Chuẩn bị dữ liệu cho PhoBERT

Tokenization theo chuẩn PhoBERT

Khác với tokenizer thông thường, PhoBERT:

  • Yêu cầu tokenizer riêng

  • Xử lý tách từ và mã hóa theo chuẩn đã được huấn luyện trước

Notebook thực hiện:

  • Chuyển văn bản review thành token IDs

  • Thêm token đặc biệt ([CLS], [SEP])

  • Padding và attention mask

Việc này giúp PhoBERT:

  • Hiểu đúng cấu trúc câu tiếng Việt

  • Giữ được ngữ cảnh dài và mối quan hệ giữa các từ

Chuẩn bị nhãn (labels)

Dữ liệu sentiment sau cân bằng được:

  • Chuyển sang dạng số

  • Phù hợp với bài toán phân loại (multi-class hoặc binary)

Đây là bước quan trọng để đảm bảo loss function hoạt động chính xác.

Fine-tuning mô hình PhoBERT

Notebook tiến hành:

  • Load mô hình PhoBERT pretrained

  • Gắn thêm classification head cho bài toán sentiment

  • Fine-tune trên dataset review phim MoMo

Trong quá trình huấn luyện:

  • Chỉ cần số epoch nhỏ

  • Mô hình hội tụ nhanh

  • Hạn chế overfitting tốt hơn so với mô hình học từ đầu

👉 Đây chính là ưu thế lớn nhất của transfer learning trong NLP.

Huấn luyện và theo dõi quá trình học

Notebook theo dõi:

  • Loss trên tập train

  • Độ chính xác trên tập validation

  • Sự ổn định của mô hình qua các epoch

Nhờ biểu diễn ngôn ngữ mạnh mẽ, PhoBERT:

  • Học nhanh

  • Dự đoán ổn định

  • Ít bị nhiễu bởi các review dài hoặc cấu trúc phức tạp

Đánh giá kết quả mô hình PhoBERT

Sau khi huấn luyện, notebook tiến hành:

  • Dự đoán sentiment trên tập test

  • Tính các chỉ số: Accuracy, Precision, Recall, F1-score

  • So sánh với CNN + LSTM và các mô hình ML trước đó

Kết quả cho thấy:

  • PhoBERT vượt trội trong việc hiểu ngữ cảnh

  • Phân loại tốt hơn các review nhiều sắc thái cảm xúc

  • Đặc biệt hiệu quả với tiếng Việt tự nhiên, không chuẩn hóa quá mức

So sánh PhoBERT với CNN + LSTM

Tiêu chí CNN + LSTM PhoBERT
Học ngữ cảnh Tốt Rất tốt
Dữ liệu cần Trung bình Ít hơn
Thời gian huấn luyện Dài Ngắn
Hiệu quả tổng thể Cao Rất cao

👉 Điều này khẳng định:

Mô hình ngôn ngữ tiền huấn luyện là hướng đi hiệu quả cho NLP tiếng Việt.

Ý nghĩa của PhoBERT trong dự án

Notebook 6_Phobert_FilmMomo.ipynb giúp:

  • Nâng chất lượng sentiment analysis lên mức cao hơn

  • Khai thác tri thức ngôn ngữ đã được học sẵn

  • Làm nổi bật giá trị của transfer learning trong NLP

Đây là bước then chốt giúp dự án:

  • Có chiều sâu học thuật

  • Có tính ứng dụng cao trong 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 quy trình fine-tune PhoBERT cho bài toán Sentiment Analysis review phim MoMo, đồng thời so sánh với CNN + LSTM và các mô hình 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 #7), tôi sẽ trình bày:

  • Kiểm tra và phân tích dữ liệu sau toàn bộ pipeline

  • Đánh giá độ ổn định của dataset

  • Chuẩn bị cho bài toán phân loại nhị phân

Notebook tiếp theo: 7_check_data.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 *