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

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

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

Kiểm tra và đánh giá chất lượng dữ liệu trong dự án Sentiment Analysis review phim MoMo

(Đảm bảo độ tin cậy trước khi triển khai phân loại nhị phân)

Vì sao cần kiểm tra lại dữ liệu?

Sau khi đã lần lượt thực hiện:

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

  • Làm sạch và chuẩn hóa (Notebook #2)

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

  • Huấn luyện nhiều mô hình ML (Notebook #4)

  • Deep Learning CNN + LSTM (Notebook #5)

  • Fine-tune PhoBERT (Notebook #6)

Dữ liệu đã trải qua nhiều bước biến đổi liên tiếp. Vì vậy, trước khi tiếp tục với các bài toán nâng cao (như phân loại nhị phân), cần một bước trung gian để:

Kiểm tra lại tính toàn vẹn, phân phối và độ ổn định của dữ liệu.

Đây chính là mục tiêu của Notebook 7_check_data.ipynb.

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

Pipeline tổng thể:

  1. Scrape dữ liệu

  2. Làm sạch dữ liệu

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

  4. Huấn luyện ML baseline

  5. Deep Learning CNN + LSTM

  6. PhoBERT

  7. Kiểm tra và đánh giá dữ liệu (Notebook 7)

  8. Phân loại nhị phân sentiment

Notebook 7 đóng vai trò “bộ lọc cuối” trước khi dữ liệu được sử dụng cho các kịch bản triển khai cụ thể.

Kiểm tra cấu trúc và kích thước dataset

Notebook bắt đầu bằng việc:

  • Đọc lại dataset đã xử lý

  • Kiểm tra số dòng, số cột

  • Đảm bảo dữ liệu không bị thiếu hoặc sai định dạng

Việc này giúp xác nhận:

  • Không có dữ liệu bị mất trong quá trình xử lý

  • Các cột quan trọng (review, label…) vẫn còn nguyên vẹn

Kiểm tra giá trị rỗng và dữ liệu bất thường

Notebook tiếp tục:

  • Thống kê số lượng giá trị NaN

  • Phát hiện các dòng dữ liệu bất thường

  • Đảm bảo không còn review trống hoặc lỗi

👉 Bước này rất quan trọng vì:

Chỉ một tỷ lệ nhỏ dữ liệu lỗi cũng có thể làm sai lệch kết quả mô hình.

Phân tích lại phân phối nhãn sentiment

Sau khi cân bằng và huấn luyện nhiều mô hình, notebook tiến hành:

  • Thống kê lại số lượng mẫu mỗi lớp sentiment

  • So sánh phân phối nhãn

Mục tiêu:

  • Xác nhận dữ liệu vẫn giữ được tính cân bằng

  • Tránh tình trạng lệch lớp do xử lý hoặc lọc dữ liệu ở các bước trước

Kiểm tra độ dài và đặc trưng văn bản

Notebook phân tích thêm:

  • Độ dài trung bình của review

  • Sự phân bố độ dài câu

  • Tính đa dạng của nội dung văn bản

Những phân tích này giúp:

  • Xác định dữ liệu có phù hợp cho LSTM/Transformer không

  • Điều chỉnh max length nếu cần cho các mô hình sau

Vai trò của notebook 7 trong dự án

Notebook 7_check_data.ipynb không trực tiếp huấn luyện mô hình, nhưng có vai trò rất quan trọng:

  • Đảm bảo dữ liệu đủ “sạch” cho các bài toán tiếp theo

  • Tăng độ tin cậy của kết quả nghiên cứu

  • Giúp phát hiện sớm các lỗi tiềm ẩn trong pipeline

👉 Trong nghiên cứu và ứng dụng thực tế, bỏ qua bước này thường dẫn đến sai lệch khó phát hiện.

Chuẩn bị dữ liệu cho bài toán phân loại nhị phân

Một mục tiêu quan trọng của notebook này là:

  • Chuẩn bị dữ liệu cho binary classification

  • Gộp hoặc ánh xạ nhãn sentiment (ví dụ: tích cực vs tiêu cực)

Việc kiểm tra kỹ dữ liệu giúp quá trình chuyển đổi nhãn ở bước sau:

  • Chính xác

  • Minh bạch

  • Dễ đánh giá hiệu quả mô hình

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 kiểm tra và đánh giá chất lượng dữ liệu sau toàn bộ pipeline xử lý và huấn luyện mô hình sentiment.

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

  • Bài toán phân loại nhị phân sentiment

  • Cách xây dựng và đánh giá mô hình

  • So sánh kết quả với bài toán phân loại đa lớp

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