Chương 1. GIỚI THIỆU VÀ PHÂN TÍCH ĐẶC ĐIỂM CỦA BỘ DỮ LIỆU 1.1 Giới thiệu về bộ dữ liệu 1.1 Tên bộ dữ liệu: UIT – VSMEC 1.2 Nguồn Google Drive: https://drive.com/drive/folders/ 1HooABJyrddVGzll7fgkJ6VzkG_XuWfRu Bộ dữ liệu được thu thập bởi: Vọng Anh Hồ, Dương Huỳnh-Công Nguyên, Danh Hoàng Nguyên, Linh Thị-Văn Phạm, Đức-Vũ Nguyễn, Kiệt Văn Nguyễn, và Ngân Lưu-Thúy Nguyễn. [1] Bộ dữ liệu được thu thập từ mạng xã hội Facebook bằng cách sử dụng API Facebook để lấy bình luận tiếng Việt từ các bài đăng công khai.3 Nội dung bộ dữ liệu Bộ dữ liệu dùng để phân tích cung bậc cảm xúc của các bình luận của người dùng trên mạng xã hội. Bộ dữ liệu gồm 3 tập tin: Tập huấn luyện (train_nor_8121.xlsx), tập kiểm thử (test_nor_811.xlsx) , tập kiểm định (valid_nor_811.4 Bài toán Phân loại cảm xúc của các bình luận trên mạng xã hội Input: Sentence (câu bình luận) Output: Đưa ra một nhãn trong các nhãn sau: Enjoyment, Sadness, Anger, Disgust, Fear, Surprise, Other (Nhãn thể hiện cảm xúc của câu bình luận) 2 1.2 Phân tích đặc điểm của bộ dữ liệu 1.1 Mô tả chi tiết bộ dữ liệu 1.1 Kích thước bộ dữ liệu và số thuộc tính Bộ dữ liệu gồm 6927 điểm dữ liệu được chia làm 3 tập: Tập huấn luyện (train_nor_8121.xlsx – 5548 điểm dữ liệu – 80% bộ dữ liệu), tập kiểm thử (test_nor_811.xlsx – 693 điểm dữ liệu – 10% bộ dữ liệu) , tập kiểm định (valid_nor_811.xlsx – 686 điểm dữ liệu – 10% bộ dữ liệu).
Mỗi điểm dữ liệu gồm 2 thuộc tính: Sentence, Emotion. Hình minh họa dữ liệu trong bộ dữ liệu Hình 1. Hình minh họa dữ liệu trong tập Test của bộ dữ liệu 3 1.2 Mô tả chi tiết các thuộc tính Số thứ tự Tên thuộc tính Mô tả thuộc Kiểu dữ liệu Miền giá trị tính 1 Sentence Câu bình luận String Chữ cái, chữ của người dùng số, kí tự đặc mạng xã hội biệt. 2 Emotion Nhãn phân loại String Enjoyment, các cảm xúc Sadness, Surprise, Disgust, Fear, Anger, Other.
Bảng mô tả chi tiết các thuộc tính trong bộ dữ liệu 1.3 Mô tả chi tiết các nhãn Số thứ tự Tên nhãn Ý nghĩa 1 Anger Nhãn cho những bình luận thể hiện sự giận dữ, cảm giác phiền toái, bực tức, tức giận,… 2 Disgust Nhãn cho những bình luận thể hiện sự ghê tởm, không thích, ác cảm,… 3 Enjoymen Nhãn cho những bình luận thể hiện cảm xúc thích t thú, vui vẻ, nó bao gồm cả các trạng thái tích cực, hài lòng, lạc quan hoặc những cảm xúc tương tự như vậy. 4 Fear Nhãn cho những bình luận thể hiện sự lo lắng, sợ hãi, có thể hơn thế nữa là hoảng loạn, kinh hoang – hỗn hợp của sợ hãi, ghê tởm, sốc. 4 5 Other Nhãn cho những bình luận không thuộc các loại cảm xúc: Anger, Disgust, Enjoyment, Fear, Other, Sadness, Surprise, hoặc không chứa đựng cảm xúc. 6 Sadness Nhãn cho những bình luận thể hiện cảm xúc buồn, chán nản, thất vọng, tuyệt vọng, đau khổ, thống khổ, hoặc những cảm xúc tương tự như vậy.
7 Surprise Nhãn cho những bình luận thể hiện sự bất ngờ, như vừa gặp phải một điều gì đó khó tin, mạnh hơn có thể là sốc. Bảng mô tả chi tiết các nhãn trong bộ dữ liệu 1.4 Ví dụ về phân loại cảm xúc câu Số thứ tự Sentence Emotion 1 hãy xử tù chung thân bọn người mất nhân tính gây Anger ra nghiệp chướng này 2 ngửa thấy mùi là đã thấy kinh rồi Disgust 3 ngưỡng mộ quá đi ạ. chúc 2 ac mãi mãi hạnh phúc Enjoyment như này nha :))) 4 xã hội thật phức tợp , huhu. không muốn sống Fear chung loài người nữa , tao về núi đây 5 có gì vui không nhỉ Other 6 còn buồn hơn là cố quan tâm thế nào họ vẫn không Sadness hề rep lại 7 hot đến vậy cơ à ? mình chưa nghe bao giờ luôn Surprise Bảng 3.
Bảng ví dụ về các câu bình luận và nhãn tương ứng 5 1.2 Thống kê bộ dữ liệu 1.1 Thống kê dữ liệu tập huấn luyện (Train set) Số thứ tự Tên nhãn Số lượng Tỉ lệ 1 Anger 391 0. Thống kê dữ liệu tập huấn luyện 1.2 Thống kê dữ liệu tập kiểm thử (Test set) Số thứ tự Tên nhãn Số lượng Tỉ lệ 1 Anger 40 0. Thống kê dữ liệu tập kiểm thử 6 1.3 Thống kê dữ liệu tập kiểm định (Validation set) Số thứ tự Tên nhãn Số lượng Tỉ lệ 1 Anger 49 0. Thống kê dữ liệu tập kiểm định 7 Chương 2.1 Multinomial Naive Bayes (MultinomialNB) [2] Mô hình MultinomialNB được sử dụng chủ yếu trong các bài toán phân loại văn bản mà vector đặc trưng được xây dựng trên thuật toán bag of words (BoW).
Ở mô hình, các vector đặc trưng là các giá trị số tự nhiên mà giá trị thể hiện số lần xuất hiện trong văn bản. Ta tính xác suất các từ xuất hiện trong văn bản P( x i | y ) như sau: Ni P( x i| y ) = N c Trong đó: N i là tổng số lần từ x i không xuất hiện lần nào trong văn bản. N c là tổng số lần từ của tất cả các từ x 1 , … x n xuất hiện trong văn bản. Công thức trên có hạn chế là khi từ x i không xuất hiện lần nào trong văn bản, ta sẽ có N i = 0.
Điều nãy sẽ làm cho P( x i| y ) = 0. Để khắc phục vấn đề này, người ta sử dụng kĩ thuật gọi là Laplace Smoothing bằng cách cộng thêm vào tử và mẫu để giá trị luôn khác 0. Ni + α P( x i| y ) = N + dα c Trong đó: α thường là số dương, bằng 1. dα được cộng vào mẫu để đảm bảo.2 Support Vector Machine (SVM) [3] 2.1 Định nghĩa Support Vector Machine (SVM) là một thuật toán thuộc nhóm Supervised Learning (Học có giám sát) dùng để phân chia dữ liệu (Classification) thành các nhóm riêng biệt.
Hình dung ta có bộ data gồm các điểm xanh và đỏ đặt trên cùng một mặt phẳng. Ta có thể tìm được đường thẳng để phân chia riêng biệt các bộ điểm xanh và đỏ như hình bên dưới. Minh họa đường thẳng phân chia dữ liệu trong thuật toán SVM Với những bộ dữ liệu phức tạp hơn ta cần dùng thuật toán để ánh xạ bộ dữ liệu đó vào không gian nhiều chiều hơn (n chiều), từ đó tìm ra siêu mặt phẳng (hyperplane) để phân chia. Ví dụ trong hình bên dưới là việc ánh xạ tập dữ liệu từ không gian 2 chiều sang không gian 3 chiều.
Minh họa việc ánh xạ tập dữ liệu từ không gian 2 chiều sang 3 chiều 2.2 Tối ưu trong thuật toán SVM Các đường thẳng tối ưu là đường tạo cho ta cảm giác 2 lớp dữ liệu nằm cách xa nhau và cách xa đường đó nhất. Trong SVM, người ta sử dụng thuật ngữ là Margin. Margin là khoảng cách giữa siêu phẳng (trong trường hợp không gian 2 chiều là đường thẳng) đến 2 điểm dữ liệu gần nhất tương ứng với 2 phân lớp. Minh họa Margin trên không gian 2 chiều 1 0 SVM tối ưu thuật toán bằng cách tìm maximize của margin này, từ đó tìm ra siêu phẳng tốt nhất để phân lớp dữ liệu.
Support Vectors là các điểm nằm trên 2 đường biên và chúng có nhiệm vụ hỗ trợ tìm ra siêu phẳng. Mô hình dự đoán kết quả đầu ra của của những điểm dữ liệu mới dựa trên các vector đặc biệt này.1 Long Short – Term Memory (LSTM) [4] 2.1 Giới thiệu Long Short – Term Memory (LSTM) Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), thường được gọi là LSTM - là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc xa. LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997), và sau đó đã được cải tiến và phổ biến bởi rất nhiều người trong ngành. Chúng hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay.
LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency). Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta không cần phải huấn luyện nó để có thể nhớ được. Tức là ngay nội tại của nó đã có thể ghi nhớ được mà không cần bất kì can thiệp nào. Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng nơ-ron.
Với mạng RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản, thường là một tầng tanh.The repeating module in a standard RNN contains a single layer. LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó có cấu trúc khác với mạng RNN chuẩn. Thay vì chỉ có một tầng mạng nơ-ron, chúng có tới 4 tầng tương tác với nhau một cách rất đặc biệt. The repeating module in an LSTM contains four interacting layers.
Các ký hiệu trong cấu trúc LSTM 2.2 Ý tưởng cốt lõi của Long Short – Term Memory (LSTM) Chìa khóa của LSTM là trạng thái tế bào (cell state) - chính đường chạy thông ngang phía trên của sơ đồ hình vẽ. Trạng thái tế bào là một dạng giống như băng truyền. Nó chạy xuyên suốt tất cả các mắt xích (các nút mạng) và chỉ tương tác tuyến tính đôi chút. Vì vậy mà các thông tin có thể dễ dàng truyền đi thông suốt mà không sợ bị thay đổi.Mô phỏng cấu trúc trạng thái tế bào của Long Short - Term Memory LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái tế báo, chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là cổng (gate).
Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân. Mô phỏng cổng Tầng sigmoid sẽ cho đầu ra là một số trong khoản [0, 1][0,1], mô tả có bao nhiêu thông tin có thể được thông qua. Khi đầu ra là 00 thì có nghĩa là không cho thông tin nào qua cả, còn khi là 11 thì có nghĩa là cho tất cả các thông tin đi qua nó. Một LSTM gồm có 3 cổng như vậy để duy trì và điều hành trạng thái của tế bào.3 Bên trong Long Short – Term Memory (LSTM) Bước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ trạng thái tế bào.
Quyết định này được đưa ra bởi tầng sigmoid - gọi là “tầng cổng quên” (forget gate layer). Nó sẽ lấy đầu vào là ht - 1 và x t rồi đưa ra kết quả là một số trong khoảng [0, 1] cho mỗi số trong trạng thái tế bào C t - 1.Đầu ra là 1 thể hiện rằng nó giữ toàn bộ thông tin lại, còn 0 chỉ rằng toàn bộ thông tin sẽ bị bỏ đi.