Đồ án: Phân tích cảm xúc dựa trên văn bản bằng mô hình học máy BERT

Tài liệu chi tiết về phân tích cảm xúc văn bản bằng mô hình BERT và xử lý ngôn ngữ tự nhiên. Tổng quan lý thuyết, kiến trúc và ứng dụng thực tế.

Trường đại học

Đại học Công nghiệp Hà Nội

Chuyên ngành

Khoa học Máy tính

Người đăng

Ẩn danh

Thể loại

Đồ án chuyên ngành

2023

63
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về Phân tích Cảm xúc Văn bản

Phân tích cảm xúc văn bản (sentiment analysis) là một lĩnh vực quan trọng trong xử lý ngôn ngữ tự nhiên (NLP) hiện đại. Cảm xúc là phần không thể thiếu của giao tiếp con người, được thể hiện rõ nét thông qua ngôn ngữ. Trong era số hóa với sự bùng nổ của mạng xã hội, diễn đàn trực tuyến và các nền tảng giao tiếp, lượng lớn dữ liệu văn bản chứa đựng những dấu hiệu quan trọng về cảm xúc. Nhận diện cảm xúc không chỉ giúp các công ty hiểu trải nghiệm khách hàng mà còn hỗ trợ quản lý dữ liệu lớn hiệu quả. Các phương pháp truyền thống đã tỏ ra hạn chế, nhưng sự xuất hiện của mô hình BERT đã mang lại bước ngoặt lớn trong lĩnh vực này.

1.1. Bối cảnh và Tầm quan trọng

Cảm xúc người dùng ẩn chứa trong các bình luận, đánh giá sản phẩm và bài đăng trên mạng xã hội. Việc phân tích cảm xúc văn bản giúp doanh nghiệp nắm bắt phản hồi thực tế, cải thiện dịch vụ khách hàng và xây dựng chiến lược tiếp thị hiệu quả. NLP cung cấp công cụ mạnh mẽ để xử lý và hiểu các nuances trong ngôn ngữ tự nhiên.

1.2. Thách thức trong Bài toán Phân tích Cảm xúc

Thách thức chính nằm ở việc hiểu ngữ cảnh, sắc thái cảm xúc tinh tế và đa ngôn ngữ. Mô hình BERT vượt qua những hạn chế này bằng cách sử dụng bi-directional encoding, cho phép mô hình học được các mối quan hệ phức tạp giữa các từ trong văn bản.

II. Kiến trúc BERT và Cách hoạt động

BERT (Bidirectional Encoder Representations from Transformers) là một mô hình học sâu dựa trên kiến trúc Transformer, được phát triển bởi Google. Khác với các mô hình truyền thống chỉ xử lý văn bản theo một chiều, BERT đọc văn bản theo cả hai chiều, giúp mô hình hiểu được ngữ cảnh đầy đủ. Kiến trúc này sử dụng self-attention mechanism để xác định mối quan hệ giữa các từ, bất kể chúng cách xa nhau bao nhiêu. BERT được pre-training trên lượng dữ liệu khổng lồ, sau đó có thể fine-tuning cho các tác vụ cụ thể như phân loại cảm xúc.

2.1. Cơ chế Self Attention trong BERT

Self-attention cho phép mô hình xem xét từng từ trong bối cảnh của toàn bộ câu. Mỗi từ được biến đổi thành ba vector: Query (Q), Key (K), và Value (V). Mô hình tính độ tương thích giữa các từ, từ đó xác định weighted attention scores. Cơ chế này là core của khả năng hiểu ngữ cảnh mạnh mẽ của BERT.

2.2. Pre training và Fine tuning

BERT được pre-train với hai tác vụ: Masked Language Model (MLM) và Next Sentence Prediction (NSP). Sau đó, mô hình có thể fine-tune trên dữ liệu cảm xúc cụ thể. Quá trình fine-tuning chỉ cần một lượng dữ liệu nhỏ hơn so với training từ đầu, tiết kiệm thời gian và tài nguyên tính toán.

III. Ứng dụng BERT vào Phân tích Cảm xúc

Việc áp dụng BERT vào phân tích cảm xúc bao gồm nhiều bước quan trọng. Đầu tiên, dữ liệu văn bản được tokenize và chuyển đổi thành các token input phù hợp với BERT. Sau đó, mô hình được fine-tune trên một tập dữ liệu cảm xúc được gán nhãn (positive, negative, neutral). Embedding vector từ BERT sau đó được đưa vào một lớp classification để dự đoán cảm xúc. Kết quả cho thấy BERT đạt độ chính xác cao vượt trội so với các phương pháp truyền thống. Khả năng hiểu ngữ cảnh sâu sắc của mô hình BERT làm cho nó trở thành lựa chọn tối ưu cho bài toán này.

3.1. Quy trình Tiền xử lý Dữ liệu

Dữ liệu được cleannormalize trước khi đưa vào BERT. Các token đặc biệt như [CLS] và [SEP] được thêm vào. Văn bản được encode thành các ID token và các attention masks tương ứng. Quá trình này đảm bảo dữ liệu đạt định dạng tối ưu cho xử lý BERT.

3.2. Đánh giá Hiệu suất Mô hình

Metrics chính bao gồm Accuracy, Precision, Recall và F1-score. Confusion matrix được sử dụng để phân tích lỗi chi tiết. Validation và test set được tách riêng để đánh giá khách quan. Kết quả thường cho thấy BERT đạt performance cao trên phân tích cảm xúc, đặc biệt với dữ liệu tiếng Việt.

IV. Kết quả và Hướng phát triển Tương lai

Các nghiên cứu đã chứng minh hiệu quả vượt trội của mô hình BERT trong phân tích cảm xúc văn bản so với các phương pháp cổ điển như SVM hay Naive Bayes. BERT đạt độ chính xác cao trên các dataset tiếng Anh lẫn tiếng Việt. Hướng phát triển tương lai bao gồm: tối ưu hóa độ trễ suy luận, phát triển các biến thể BERT nhẹ hơn như DistilBERT, và mở rộng cho các tác vụ phân tích cảm xúc phức tạp hơn như phân tích cảm xúc trong các domain cụ thể.

4.1. Thành tựu Đạt được

Mô hình BERT với fine-tuning đạt F1-score trên 0.92 trên các dataset benchmark. Mô hình xử lý tốt các nuances của ngôn ngữ, bao gồm cảm xúc tinh tế, sarcasm và negation. Khả năng transfer learning của BERT cho phép ứng dụng nhanh chóng trên các dataset khác nhau mà không cần retraining từ đầu.

4.2. Các Cải tiến và Mở rộng

Các phiên bản BERT như RoBERTa, ALBERT và XLNet cung cấp hiệu suất tốt hơn. Kết hợp BERT với các kỹ thuật ensemble learning nâng cao độ chính xác thêm. Phát triển các mô hình BERT đa ngôn ngữ hỗ trợ phân tích cảm xúc trên nhiều ngôn ngữ đồng thời là hướng phát triển quan trọng.

18/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý do chọn đề tài Nhận diện cảm xúc trong văn bản là một bài toán quan trọng trong lĩnh vực xử lý ngôn ngữ tự nhiên. Đề tài này được chọn với các lý do: • Bài toán có nhiều ứng dụng thực tiễn như phân tích cảm xúc khách hàng, giám sát mạng xã hội, tạo ra Chatbot thông minh hơn. • Nhận diện cảm xúc trong văn bản giúp hiểu rõ hơn về cảm nhận và phản ứng của người sử dụng đối với thông điệp cụ thể. Điều này có thể hữu ích trong việc tối ưu hóa trải nghiệm người dùng trên các nền tảng trực tuyến hoặc trong sản phẩm và dịch vụ khác.

• Nhận diện cảm xúc trong văn bản có thể hỗ trợ trong lĩnh vực y tế tâm thần, giúp theo dõi tâm lý và cảm xúc của bệnh nhân trong quá trình điều trị. • Đây là một bài toán điển hình của NLP, kết hợp nhiều kỹ thuật xử lý ngôn ngữ và machine learning. • Có thể áp dụng các mô hình NLP tiên tiến như BERT cho bài toán. • Dữ liệu văn bản dồi dào, có thể thu thập từ các nguồn online như website tin tức, mạng xã hội.

• Kết quả nghiên cứu có thể công bố trên các hội nghị, tạp chí khoa học. Những lý do trên cho thấy đây là một đề tài thú vị, thách thức và có ý nghĩa thực tiễn cao để nghiên cứu.2 Mục tiêu đặt ra Bài toán nhận diện cảm xúc trong văn bản có nhiều mục đích khác nhau, nhưng trong báo cáo này bọn em có những mục đích chính sau: • Phân loại văn bản thành đa lớp: Điều này thường được ứng dụng trong các ứng dụng đánh giá sản phẩm, bình luận trên mạng xã hội, hoặc đánh giá của người dùng. • Đánh giá loại cảm xúc đối với một thuộc tính hay chủ đề cụ thể. • Theo dõi thay đổi của cảm xúc theo thời gian, giúp hiểu rõ hơn về sự phát triển của cảm xúc trong các chuỗi văn bản hoặc theo dõi xu hướng thay đổi cảm xúc theo thời gian.

• Đánh giá cảm xúc đối với các sự kiện hoặc tin tức cụ thể, giúp tổ chức tin tức đánh giá sự phản ứng của độc giả đối với thông tin một cách nhanh chóng.3 Tìm hiểu chung về bài toán Nhận diện cảm xúc trong văn bản là bài toán phân loại văn bản dựa trên cảm xúc mà nó thể hiện. Đây là một tác vụ quan trọng trong NLP, có nhiều ứng dụng thực tế. Các bước chính để xây dựng mô hình nhận diện cảm xúc: • Thu thập dữ liệu: Tập văn bản được gán nhãn cảm xúc (vui, buồn, giận, sợ, .) • Tiền xử lý: Loại bỏ dấu câu, ký tự đặc biệt, chuẩn hóa văn bản. • Trích xuất đặc trưng: Sử dụng kỹ thuật NLP như TF-IDF, word2vec, BERT để trích xuất vector đặc trưng cho mỗi văn bản.

• Huấn luyện mô hình: Sử dụng các thuật toán học máy như SVM, LSTM, CNN để huấn luyện mô hình dự đoán cảm xúc. • Đánh giá: Đo độ chính xác, recall, precision, F1-score của mô hình trên tập dữ liệu kiểm tra. • Tối ưu hóa mô hình: Thử nghiệm các siêu tham số, mô hình khác để cải thiện kết quả. • Triển khai: Áp dụng mô hình vào ứng dụng thực tế.

Các ứng dụng của bài toán: • Phân tích cảm xúc khách hàng từ nhận xét, đánh giá. • Theo dõi trạng thái cảm xúc trên mạng xã hội. • Chatbot thông minh có khả năng nhận diện cảm xúc. Bài toán nhận diện cảm xúc trong văn bản Bài toán nhận diện cảm xúc trong văn bản có thể được phân tích như sau: Đầu vào: Tập văn bản, mỗi văn bản thuộc một nhãn cảm xúc (Ví dụ: vui, buồn, giận, sợ, .) Đầu ra: nhãn cảm xúc của mỗi văn bản.

Thuộc tính dữ liệu: • Văn bản ngắn (câu, đoạn văn) hoặc dài (bài báo, bình luận). • Có thể chứa lỗi chính tả, ngữ pháp. • Ngôn ngữ: tiếng Việt hoặc tiếng Anh. Thuật toán, mô hình: Phân loại văn bản, sử dụng mô hình học sâu như CNN, RNN, BERT.

Đánh giá mô hình: Độ chính xác, độ đo recall, precision, F1-score. 9 Ưu điểm: Phân tích được cảm xúc người dùng, nâng cao trải nghiệm khách hàng. Nhược điểm: Yêu cầu lượng dữ liệu lớn, chất lượng dữ liệu ảnh hưởng đến mô hình. Một số kỹ thuật hiện có để giải quyết bài toán Mô hình máy vectơ hỗ trợ (SVM) • Sử dụng kỹ thuật trích chọn đặc trưng từ văn bản như TF-IDF, word2vec.

• TF-IDF: trọng số tần suất thuật ngữ ngữ cảnh thể hiện tầm quan trọng của từ. • Word2vec: mã hóa từ thành vectơ liên tục, từ cùng ngữ cảnh có vector gần nhau. • Vector hóa văn bản thành ma trận đặc trưng, mỗi chiều là một đặc trưng TF-IDF hoặc word2vec. • Huấn luyện SVM để phân loại văn bản dựa trên ma trận đặc trưng.

Mạng nơron tích chập (CNN) • Sử dụng lớp tích chập để trích xuất đặc trưng từ các vùng liên tiếp trong văn bản. • Input là ma trận thưa thể hiện văn bản, mỗi hàng là một từ. • Qua mỗi lớp tích chập, trích xuất các n-gram liên tiếp. • Kết hợp nhiều filter với các kích thước khác nhau để trích chọn đặc trưng.

• Cuối cùng là các layer kết nối để dự đoán cảm xúc. Mạng nơron hồi tiếp (RNN) • Sử dụng RNN, GRU/LSTM để mã hóa ngữ cảnh của văn bản. • Input là chuỗi các từ, output là vector đặc trưng cho cả câu/văn bản. • RNN duy trì trạng thái ẩn, cập nhật dựa trên từ hiện tại và trạng thái trước.

• LSTM, GRU cải thiện để khắc phục hiện tượng mất gradient. • Vector đặc trưng cuối cùng được dùng để phân loại cảm xúc. Mô hình BERT • Sử dụng mã hóa ngữ cảnh hai chiều và cơ chế tự chú ý. • Input là chuỗi từ đã được gán thêm vectơ.

• Qua nhiều lớp Transformer encoder tự chú ý, tạo ra vector đặc trưng cho văn bản. • Thêm lớp phân loại cuối cùng dựa trên vector đặc trưng. 10 • Đào tạo trên tập dữ liệu lớn giúp BERT hiểu sâu ngữ nghĩa. • Cho độ chính xác cao nhất trên nhiều tác vụ NLP.

Nhìn chung, BERT là lựa chọn tốt nhất hiện nay cho bài toán với độ chính xác cao trên các tập dữ liệu. Các mô hình CNN, RNN cũng cho kết quả tốt và có thể kết hợp với BERT. 11 CHƯƠNG 2: MÔ HÌNH TRUYỀN THỐNG 2.1 Mạng nơron truy hồi (RNN – RECURRENT NEURAL NETWORK) 2.1 Dữ liệu dạng Sequence Khi xử lý video ta hay gặp khái niệm về FPS (frame per second) tức là bao nhiêu frame (ảnh) mỗi giây. Ví dụ 1 FPS với video 30s tức là lấy ra video 30 ảnh, mỗi giây 1 ảnh để xử lý.

Những dữ liệu có dạng tuần tự như thế được gọi là sequence, time-series data. Ví dụ : “tôi yêu Việt Nam” thì vị trí các từ và sự sắp xếp cực kì quan trọng đến ngữ nghĩa của câu và dữ liệu [‘tôi’, ‘yêu’, ‘Việt’, ‘Nam’] được gọi là sequence data. Trong bài toán xử lý ngôn ngữ tự nhiên (NLP) thì không thể xử lý cùng lúc cả câu được mà người ta tách ra từng chữ làm input 2.2 Mô hình bài toán RNN Bài toán: Nhận diện hành động trong video 30s. Đây là bài toán many to one, tức nhiều input để cho ra 1 output.

Input sẽ tách video thành 30 ảnh (mỗi giây 1 ảnh). Các ảnh sẽ được cho qua pretrained model CNN để trích xuất dữ liệu đặc trưng (feature extraction). Output là 1 vector cỡ d*1 (với d là số lượng hành động cần phân loại), softmax function được dùng để phân loại ảnh. 1 Mô Hình RNN Giải thích: • Mỗi hình tròn được gọi là một state, state t có input là 𝑥𝑡 và 𝑠𝑡−1 (Output của state trước); output là 𝑠𝑡 = 𝑓(𝑈 ∗ 𝑥𝑡 + 𝑊 ∗ 𝑠𝑡−1 ) 12 • 𝑓 là Activation function thường là Tanh hoặc ReLU.

𝑠𝑡 mang thông tin từ các state trước 𝑠𝑡 = 𝑓(𝑈 ∗ 𝑥𝑡 + 𝑊 ∗ 𝑠𝑡−1 ) và input là các state hiện tại => 𝑠𝑡 giống như memory nhớ các đặc điểm của các input từ 𝑥1 đến 𝑥𝑡. • 𝒔𝟎 được thêm vào chỉ để cho chuẩn công thức nên thường được gán bằng không hoặc một giá trị ngẫu nhiên. • Do ta chỉ có 1 output , nên sẽ được đặt ở state cuối cùng, khi đó 𝑠30 học được thông tin từ tất cả các input. 𝑦̂ = 𝑔(𝑉 ∗ 𝑆30 ) với g là activation function, với mục tiêu bài toán thì sẽ dùng hàm softmax.

Trong lý thuyết về ngôn ngữ, ngữ nghĩa của một câu được tạo ra từ mối liên hệ các từ trong câu theo một cấu trúc ngữ pháp. Mô hình RNN được sử dụng nhằm mục đích liên kết các từ liền trước trong câu với từ hiện tại để tạo ra mỗi liên hệ xâu chuỗi.1, ở các state các 𝑊 và 𝑈 giống nhau nên mô hình có thể viết gọn thành Hình 2. 2 Mô Hình RNN Rút Gọn Cũng giống như các mô hình Nerual khác, mô hình sẽ tối ưu hàm loss function (sự sai khác giữa dự đoán và thực tế dựa trên tập trainning set) để điều chỉnh các W, U giúp mô hình trở lên chính xác hơn. 3 loss Function Tuy nhiên việc này khá khó khăn đối với mô hình RNN.

Điều này giúp ta đi đến tìm hiểu một mô hình mới dựa trên mô hình RNN đó là LTSM.2 Mô hình LSTM (Long Short Term Memory) Một trong những điểm đặc biệt của RNN đó là nó có khả năng kết nối các thông tin liền trước với nhiệm vụ hiện tại, chẳng hạn như trong câu văn: ‘học sinh đang tới trường học’. Dường như trong một ngữ cảnh ngắn hạn, từ trường học có thể được dự báo ngay tức thì mà không cần thêm các thông tin từ những câu văn khác gần đó. Tuy nhiên có những tình huống đòi hỏi phải có nhiều thông tin hơn chẳng hạn như: ‘hôm qua Bống đi học nhưng không mang áo mưa. Trên đường đi học trời mưa.

Cặp sách của Bống bị ‘ướt’. Chúng ta cần phải học để tìm ra từ ướt ở một ngữ cảnh dài hơn so với chỉ 1 câu. Tức là cần phải biết các sự kiện trước đó như trời mưa, không mang áo mưa để suy ra sự kiện bị ướt. Những sự liên kết ngữ nghĩa dài như vậy được gọi là phụ thuộc dài hạn (long- term dependencies).

Về mặt lý thuyết mạng RNN có thể giải quyết được những sự phụ thuộc trong dài hạn. Tuy nhiên trên thực tế RNN lại cho thấy khả năng học trong dài hạn kém hơn. Một trong những nguyên nhân chính được giải thích đó là sự triệt tiêu đạo hàm của hàm cost function sẽ diễn ra khi trải quả chuỗi dài các tính toán truy hồi.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ