Trong dự án này, nhóm chúng em tập trung nghiên cứu và xâydựng mô hình phân tích cảm xúc dựa trên phương pháp phân loại Naive Bayes nhằm đánhgiá các bình luận về phim, xác định xem chúng
Trang 1MINISTRY OF EDUCATION AND TRAINING
UNIVERSITY OF ECONOMICS AND FINANCE
-FINAL PROJECT
PATTERN RECOGNITION
TOPIC
Sentiment Analysis Using Naive-Bayes Classifier
Major : Artificial Intelligence
Supervisor: Nguyen Quoc Minh
Class: 242.ITE1175E.A01E
Nguyen Van Manh Class : 21D1TH-NT01 ID : 215051286
Le Vinh Ngoc Class : 21D1TH-NT01 ID : 215051045
Nguyen Cao Bang Class : 21D1TH-NT01 ID : 215
Trang 2Ho Chi Minh City, 2025
Trang 3MỤC LỤC
CHAPTER 1: OVERVIEW 7
1.1 Introduction 7
1.2 Lý do chọn đề tài 7
1.3 Mục tiêu đề tài 8
1.4 Đối tượng nghiên cứu 8
CHAPTER 2: CƠ SỞ LÝ THUYẾT 9
2.1 Khái quát về Nạve Bayes 9
2.2 Nạve bayes theorem 9
2.2.1 Bayes Theorem Theory: 9
2.3 How to Apply Bayes Theorem in Machine Learning 10
2.4 Types of Naive Bayes Model 11
2.5 Advantage, Disadvantage and Applications of Nạve - Bayes Classifier 12
2.6 Sentimental analysis 13
CHAPTER 3: SENTIMENTAL ANALYSIS FOR MOVIE REVIEW USING NẠVE-BAYES 14 3.1 Phân tích từng thành phần chính 14
3.1.2 Data Preprocessing 14
3.1.3 Xử lý dữ liệu và xây dựng bộ từ điển 15
3.1.4 Training the Model 16
3.1.5 Testing and Prediction 17
CHAPTER 4: CONCLUDE 19
4.1 Đánh giá và kết quả thực nghiệm 19
4.2 Kết luận và đề xuất cải tiến 19
Trang 4DANH SÁCH HÌNH ẢNH
Figure 2-1: Equation for Naive Bayes Algorithm 8Figure 2-2: Applications using Nạve Bayes Algorithm 11Figure 3-1: Hình ảnh cơng thức Nạve Bayes 15
Trang 5MỤC LỤC BẢNG
Trang 6LỜI MỞ ĐẦU
Trong thời đại kỹ thuật số phát triển mạnh mẽ hiện nay, lượng thông tin trực tuyến màngười dùng tạo ra và chia sẻ ngày càng nhiều, đặc biệt là các ý kiến đánh giá về sản phẩm,dịch vụ và giải trí, trong đó có bình luận về các bộ phim Những bình luận này không chỉ thểhiện trải nghiệm của người dùng mà còn cung cấp thông tin quý giá cho các nhà sản xuất,người tiêu dùng và các bên liên quan để đưa ra quyết định đúng đắn
Để khai thác hiệu quả nguồn thông tin phong phú này, phân tích cảm xúc (SentimentAnalysis) nổi lên như một lĩnh vực quan trọng của xử lý ngôn ngữ tự nhiên (NaturalLanguage Processing - NLP) Trong dự án này, nhóm chúng em tập trung nghiên cứu và xâydựng mô hình phân tích cảm xúc dựa trên phương pháp phân loại Naive Bayes nhằm đánhgiá các bình luận về phim, xác định xem chúng mang sắc thái tích cực hay tiêu cực Việc sửdụng mô hình Naive Bayes giúp đơn giản hóa việc xử lý văn bản, đảm bảo tốc độ nhanh vàhiệu quả trong việc phân loại cảm xúc từ nguồn dữ liệu lớn
Thông qua nghiên cứu này, nhóm chúng em hy vọng sẽ đóng góp một giải pháp hữuích trong việc tự động hóa việc phân loại cảm xúc, giúp các bên liên quan nhanh chóng nắmbắt phản hồi từ người xem, từ đó đưa ra các điều chỉnh kịp thời và phù hợp nhằm nâng caochất lượng sản phẩm điện ảnh
Trang 7CHAPTER 1: OVERVIEW
1.1 Introduction
Phân tích cảm xúc (Sentiment Analysis) là một lĩnh vực thuộc xử lý ngôn ngữ tự nhiên(Natural Language Processing - NLP), giúp xác định thái độ, cảm nhận hoặc ý kiến chủ quancủa người viết thông qua các văn bản Trong bối cảnh số hóa mạnh mẽ như hiện nay, việcthu thập và phân tích các bình luận trực tuyến về phim ảnh đã trở thành một công cụ hữu íchkhông chỉ cho khán giả mà còn cả các nhà sản xuất phim để đánh giá mức độ hài lòng vàphản hồi từ cộng đồng
Đồ án này tập trung vào việc sử dụng phương pháp phân loại Naive Bayes để xây dựng
mô hình phân tích cảm xúc cho các bình luận phim trên nền tảng trực tuyến Naive Bayes làthuật toán học máy dựa trên lý thuyết xác suất, phù hợp với các bài toán phân loại văn bảnnhờ tính đơn giản, hiệu quả cao và tốc độ xử lý nhanh Đồ án bao gồm các giai đoạn nhưtổng hợp dữ liệu bình luận phim, tiền xử lý dữ liệu để làm sạch và chuẩn hóa văn bản, xâydựng và huấn luyện mô hình phân loại, và cuối cùng là đánh giá hiệu quả và kết quả thuđược
Kết quả nghiên cứu từ đồ án này không chỉ cung cấp công cụ hỗ trợ phân tích tự động màcòn góp phần giúp người dùng, đặc biệt là các nhà làm phim, nhanh chóng nắm bắt đượcphản hồi từ cộng đồng, từ đó có thể điều chỉnh chiến lược quảng bá và cải thiện chất lượngsản phẩm
1.2 Lý do chọn đề tài
Chúng em lựa chọn đề tài này xuất phát từ thực tế hiện nay, lượng thông tin đánh giá trựctuyến về phim ảnh ngày càng tăng nhưng việc phân tích và đánh giá thủ công thường mấtnhiều thời gian và không thể đảm bảo tính khách quan, đầy đủ Vì vậy, việc xây dựng một hệthống tự động dựa trên công nghệ NLP, đặc biệt là thuật toán Naive Bayes, sẽ giúp giảiquyết hiệu quả vấn đề này, tạo điều kiện thuận lợi cho các nhà sản xuất phim và khán giả cóđược cái nhìn tổng quan và chính xác hơn về các sản phẩm điện ảnh
Trang 81.3 Mục tiêu đề tài
Xây dựng một mô hình phân tích cảm xúc hiệu quả dựa trên phương pháp phân loạiNaive Bayes
Thu thập và xử lý dữ liệu bình luận phim trên các nền tảng trực tuyến
Đánh giá và so sánh hiệu quả của mô hình với các tiêu chí như độ chính xác, độ nhạy,
và độ đặc hiệu
Đề xuất hướng cải tiến cho các nghiên cứu tiếp theo dựa trên kết quả phân tích
1.4 Đối tượng nghiên cứu
Đối tượng nghiên cứu của đồ án là các bình luận, đánh giá về phim được người dùngđăng tải trên các nền tảng trực tuyến (mạng xã hội, trang đánh giá phim, diễn đàn ) Cácbình luận này sẽ được phân tích nhằm xác định thái độ tích cực hay tiêu cực của người dùng
về các bộ phim
Trang 9CHAPTER 2: CƠ SỞ LÝ THUYẾT
2.1 Khái quát về Nạve Bayes
Nạve Bayes là thuật tốn phân loại dựa trên lý thuyết xác suất của Thomas Bayes, mộtnhà tốn học người Anh Thuật tốn này tính tốn xác suất hậu nghiệm (posteriorprobability) dựa trên các điều kiện xác suất trước đĩ (prior probability), qua đĩ dự đốn mộtmẫu dữ liệu thuộc lớp nào với độ chính xác cao
Nạve Bayes được áp dụng rộng rãi trong lĩnh vực học máy, đặc biệt phù hợp với cácnhiệm vụ phân loại văn bản như phân tích cảm xúc, phát hiện spam email, và nhận dạng vănbản Ưu điểm nổi bật của thuật tốn này là tốc độ xử lý nhanh, khả năng xử lý tốt các dữ liệuvăn bản lớn, và hiệu suất cao ngay cả khi lượng dữ liệu huấn luyện tương đối nhỏ
Tuy nhiên, thuật tốn cũng tồn tại một số hạn chế, trong đĩ cĩ giả định quan trọng nhất là
sự độc lập giữa các thuộc tính trong tập dữ liệu Trong thực tế, điều này khĩ xảy ra vì cácthuộc tính thường cĩ mối tương quan với nhau
2.2 Nạve bayes theorem
2.2.1 Bayes Theorem Theory:
Bayes Formula:
Figure 2-1: Equation for Naive Bayes Algorithm
Trang 10Let’s Look into the terms:
P(C | x) = Probability of event C happening given that event x happened P(x | C) =Probability of event x happening given that event C happened P(C) = Probability of event Chappening P(x) = Probability of event x happening
The Bayes Theorem thus gives us a way to find the Conditional Probability Bayes Theoremlies in the heart of the Naive Bayes theorem
2.3 How to Apply Bayes Theorem in Machine Learning
The Naive Bayes Classifier, a simplified version of the Bayes Theorem, is used as aclassification algorithm to classify data into various classes with accuracy and speed
Let’s see how the Naive Bayes Classifier can be applied as a classification algorithm.
Consider a general example: X is a vector consisting of ‘n’ attributes, that is, X = {x1,x2, x3, …, xn}
Say we have ‘m’ classes {C1, C2, …, Cm} Our classifier will have to predict Xbelongs to a certain class The class delivering the highest posterior probability will
be chosen as the best class So mathematically, the classifier will predict for class Ciiff P(Ci | X) > P(Cj | X) Applying Bayes Theorem:
P(Ci | X) = [P(X | Ci) * P(Ci)] / P(X)
In this formula, P(X) is the condition-independent entity, which means it will beconstant throughout the classes It won’t change the value whenever the classeschange Therefore, to maximize P(Ci/X), which can also be termed as the preciseanswer to be derived, we will have to maximize the P(X/Ci) * P(Ci) value
With n number classes on the probability list let’s assume that the possibility of anyclass being the right answer is equally likely Considering this factor, we can say that:P(C1) = P(C2)-P(C3) = P(C4) =… =P(Cn)
Trang 11 It is now easy to compute the smaller probabilities One important thing to note here:since xk belongs to each attribute, we also need to check whether the attribute we aredealing with is categorical or continuous.
Ultimately, we will have P(x | Ci) = F(xk, ?k, ?k)
Now, we have all the values we need to use Bayes Theorem for each class Ci Our predictedclass will be the class achieving the highest probability P(X | Ci) * P(Ci)
2.4 Types of Naive Bayes Model
There are three types of Naive Bayes Model:
Gaussian Naive Bayes
In Gaussian Naive Bayes, continuous values associated with each feature are assumed
to be distributed according to a Gaussian distribution A Gaussian distribution is also calledNormal distribution When plotted, it gives a bell-shaped curve which is symmetric aboutthe meaning of the feature values as shown below:
Multinomial Naive Bayes
Multinomial Naive Bayes is used when features represent the frequency of terms(such as word counts) in a document It is commonly applied in text classification, whereterm frequencies are important
Bernoulli Naive Bayes
Bernoulli Naive Bayes deals with binary features, where each feature indicates whether aword appears or not in a document It is suited for scenarios where the presence or absence
of terms is more relevant than their frequency Both models are widely used in documentclassification tasks
Trang 122.5 Advantage, Disadvantage and Applications of Nạve - Bayes Classifier
It performs well in case of categorical input variables compared to numericalvariable(s) For numerical variable, normal distribution is assumed (bell curve, which
Applications:
Trang 13Figure 2-2: Applications using Nạve Bayes Algorithm
Spam Email Filtering: Classifies emails as spam or non-spam based on features
Text Classification: Used in sentiment analysis, document categorization, and topicclassification
Medical Diagnosis: Helps in predicting the likelihood of a disease based onsymptoms
Credit Scoring: Evaluates creditworthiness of individuals for loan approval
Weather Prediction: Classifies weather conditions based on various factors
of the person with respect to a given source of content
I am proposing a highly accurate model of sentiment analysis from a dataset containingmovie review score with the help of classifiers such as Nạve Bayes, the application cancorrectly classify the reviews of the given datasets as positive and negative to give sentiment
of each movie
Trang 14CHAPTER 3: SENTIMENTAL ANALYSIS FOR MOVIE
REVIEW USING NẠVE-BAYES
In this kernel, we must predict the number of positive and negative reviews based onsentiments by using Nạve - Bayes classification models
Datasets: IMDB Dataset of 50K Movie Reviews
IMDB dataset has 50K movie reviews for natural language processing or Text analytics.This is a dataset for binary sentiment classification containing substantially more data thanprevious benchmark datasets We provide a set of 25,000 highly polar movie reviews fortraining and 25,000 for testing
3.1.2 Data Preprocessing
Bao gồm 2 hàm quan trọng là:
tokenize_custom:
Trang 15Hàm này tách các từ và loại bỏ dấu câu khỏi các từ trong văn bản.Hàm clean xử lý dữ liệu bằng cách:
Chuyển tất cả thành chữ thường
Loại bỏ các stop words
Loại bỏ các từ bắt đầu bằng dấu '
3.1.3 Xử lý dữ liệu và xây dựng bộ từ điển
Hàm process() xử lý từng bình luận:
Trang 16Hàm này xử lý từng review trong tập dữ liệu:
Phân loại từng từ vào 2 lớp positive hoặc negative
Đếm số lần xuất hiện của từ trong từng lớp bằng Counter
Tạo ra tập từ vựng (vocabulary) chung của toàn bộ dữ liệu
Kết quả của bước này là:
Số lượng review tích cực và tiêu cực
Tổng số lượng các từ trong lớp positive và negative
Tổng số lượng các từ khác nhau (vocabulary size)
3.1.4 Training the Model
Hàm train() tính xác suất tiên nghiệm (prior):
Trang 17Tính xác suất hậu nghiệm cĩ điều kiện (conditional probability) cho từng từ (áp dụngLaplace smoothing để tránh xác suất bằng 0):
Figure 3-3: Hình ảnh cơng thức Nạve Bayes
Trang 183.1.5 Testing and Prediction
Hàm test():
Hàm này tính xác suất một review thuộc lớp positive hay negative bằng cách cộngdồn log xác suất hậu nghiệm của các từ trong review:
Trang 19Lý do sử dụng log: tránh underflow (tràn số) khi nhân quá nhiều xác suất nhỏ.
Kết quả cuối cùng dựa trên việc so sánh log xác suất tổng của hai class, chọn lớp có logxác suất lớn hơn
3.1.6 Phần đọc dữ liệu từ file CSV
Đọc dữ liệu IMDB từ file CSV
Phân loại các reviews vào 2 nhãn "POSITIVE" hoặc "NEGATIVE"
Trang 20CHAPTER 4: CONCLUDE
4.1 Đánh giá và kết quả thực nghiệm
Sau khi xây dựng và huấn luyện mô hình trên bộ dữ liệu IMDB với 50.000 bình luận(25.000 tích cực và 25.000 tiêu cực), mô hình được kiểm tra trên các bình luận mẫu Các tiêuchí đánh giá mô hình bao gồm:
Accuracy: Tỉ lệ dự đoán đúng tổng thể của mô hình.
Precision: Độ chính xác khi dự đoán các bình luận tích cực.
Recall: Tỷ lệ các bình luận tích cực được mô hình phát hiện đúng.
F1-score: Trung bình điều hòa giữa precision và recall.
4.2 Kết luận và đề xuất cải tiến
Kết quả nghiên cứu đã cho thấy hiệu quả rõ ràng của mô hình Naive Bayes trong phântích cảm xúc đối với bình luận phim trực tuyến, với khả năng xử lý nhanh chóng và độ chínhxác cao
Tuy nhiên, mô hình vẫn tồn tại hạn chế như việc giả định độc lập giữa các từ trong vănbản Trong tương lai, nghiên cứu có thể mở rộng bằng việc kết hợp Naive Bayes với các môhình học sâu như RNN hoặc Transformer, nhằm cải thiện khả năng hiểu ngữ cảnh và tăng độchính xác cho các bài toán phân tích cảm xúc phức tạp hơn
Trang 21TÀI LIỆU THAM KHẢO