Những số liệu trongcác bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thuthập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo.Ngoài ra, trong
TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP CUỐI KÌ XỬ LÝ NGƠN NGỮ TỰ NHIÊN Người hướng dẫn: TS NGUYỄN TUẤN ĐĂNG Người thực hiện: LÝ PHI HỌC Lớp : 22BD848010101 Khố : 24 TRƯƠNG ĐÌNH KIÊN Lớp: 19H50204 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023 i LỜI CẢM ƠN Cảm ơn thầy Nguyễn Tuấn Đăng giảng dạy lý thuyết môn “Xử lý ngôn ngữ tự nhiên” cho chúng em suốt học kì vừa qua Nhờ có trợ giúp thầy, chúng em có đủ kiến thức tảng để hồn thành báo cáo cách trọn vẹn Chúng em xin chân thành cảm ơn! ii ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan sản phẩm đồ án riêng hướng dẫn thầy Nguyễn Tuấn Đăng; Các nội dung nghiên cứu, kết đề tài trung thực chưa công bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, đồ án sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung đồ án Trường đại học Tơn Đức Thắng không liên quan đến vi phạm tác quyền, quyền tơi gây q trình thực (nếu có) TP Hồ Chí Minh, ngày tháng năm Tác giả (ký tên ghi rõ họ tên) Lý Phi Học Trương Đình Kiên iii PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận GV hướng dẫn _ _ _ _ _ _ _ Tp Hồ Chí Minh, ngày tháng năm (kí ghi họ tên) Phần đánh giá GV chấm _ _ _ _ _ _ _ Tp Hồ Chí Minh, ngày tháng năm (kí ghi họ tên) MỤC LỤC PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN .iii MỤC LỤC DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ CHƯƠNG - MỞ ĐẦU 1.1 Giới thiệu đề tài 1.2 Hướng tiếp cận CHƯƠNG - TỔNG QUAN .4 2.1 Kỹ thuật phân tích quan điểm (Sentiment Analysis) 2.2 Mạng hồi quy (RNN) 2.2.1 Mạng nơ – ron thông thường 2.2.2 Tổng quan mạng nơ-ron hồi quy 2.3 Long short term memory (LSTM) .6 CHƯƠNG - THỰC NGHIỆM 3.1 Thu thập tiền xử lí liệu .9 3.2 Xây dựng huấn luyện mô hình 12 3.3 Đánh giá kiểm thử mơ hình 14 3.3.1 Đánh giá mô hình 14 3.3.2 Kiểm thử mơ hình 15 3.4 Kết luận hướng phát triển 16 TÀI LIỆU THAM KHẢO 17 DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ HÌNH VẼ Hình 2.1 Cấu trúc mạng nơ-ron Nguồn [2] Hình 2.2 Mơ hình mạng nơ-ron hồi quy [3] Hình 2.3 Mất mát đạo hàm RNN Hình 2.4 Cấu trúc mạng LSTM [3] Hình 2.5 Ví dụ Word embedding [7] .8 Hình 3.1 Một bình luận người dùng tập liệu Hình 3.2 Gán nhãn cho liệu 10 Hình 3.3 Dữ liệu sau gán nhãn 11 Hình 3.4 Dữ liệu sau xử lí 11 Hình 3.5 Mơ hình dự dốn tập liệu train với độ xác 0.89 sau epoch 13 Hình 3.6 Kết mơ hình dự đốn tập liệu test có kết xác 77,66% 14 Hình 3.7 Kiểm thử mơ hình .15 BẢNG BIỂU Bảng 3.1 Kết kiểm thử 15 Document continues below Discover more Machine from: Learning 502022 Đại học Tôn Đức… 6 documents Go to course Dự kiến cơng việc cần hồn thành của… Machine Learning None Exercise Machine Learning None Don-xin-viec-viet1 tay 1410095408 Machine Learning None 2309 - paper 77 Machine Learning None Bao cáo kỳ 34 Machine Learning None THE LAZY MAN - ddd 3 Lịch Sử Đảng 100% (11) CHƯƠNG - MỞ ĐẦU 1.1 Giới thiệu đề tài Nhóm em chọn đề tài Sentiment Analysis: Xây dựng mơ hình RNN để phân tích cảm xúc bình luận đánh giá, nhằm xác định xem người viết có ý tích cực, tiêu cực hay trung lập 1.2 Hướng tiếp cận Nhóm chúng em tiến hành tìm hiểu tổng quan kiến thức liên quan đến đề tài như: Sentiment Analysis gì; ôn lại kiến thức mạng hồi quy RNN LSTM; cuối tìm hiểu thư viện Keras để giải đề tài Toàn code thực google colab qua link sau 4 CHƯƠNG - TỔNG QUAN 2.1 Kỹ thuật phân tích quan điểm (Sentiment Analysis) Phân tích quan điểm ứng dụng trí tuệ nhân tạo, sử dụng thuật tốn phức tạp để xử lý ngơn ngữ tự nhiên người (NLP) xác định đặc điểm cảm xúc tiêu cực/tích cực thời điểm thơng qua văn lời nói Các nguồn liệu phân tích phổ biến Social media, Blog, Website đánh giá sản phẩm, tổng đài Contact center,… Có loại phân tích quan điểm như: dựa điểm số; dựa cảm xúc; dựa khía cạnh; phân tích đa ngơn ngữ ,.v.v Hiện nay, học sâu biết đến kỹ thuật học máy mạnh mẽ, tạo kết tiên tiến nhiều lĩnh vực ứng dụng từ thị giác máy tính nhận dạng giọng nói,… Áp dụng học sâu vào tốn phân tích cảm xúc trở nên phổ biến Trong đề tài này, chúng em tìm hiểu áp dụng mơ hình mạng hồi quy (RNN) để giải toán 2.2 Mạng hồi quy (RNN) 2.2.1 Mạng nơ – ron thông thường Như biết, mạng nơ - ron bao gồm phần Input layer, Hidden layer Output layer 5 Hình 2.1 Cấu trúc mạng nơ-ron Nguồn [2] Như hình 2.1, đầu vào đầu mạng neuron độc lập với Vậy nên gặp phải toán liên quan đến xử lí ngơn ngữ mơ hình khơng phù hợp để giải Vì tốn ngơn ngữ dự đốn từ hay hồn thành câu,… phụ thuộc vào vị trí từ câu vị trí từ đằng trước Và RNN đời với ý tưởng sử dụng nhớ để lưu lại thơng tin từ từ bước tính tốn xử lý trước để dựa vào đưa dự đốn xác cho bước dự đốn 2.2.2 Tổng quan mạng nơ-ron hồi quy Hình 2.2 Mơ hình mạng nơ-ron hồi quy [3] Hình 2.2 thể hai đồ thị Đồ thị bên trái mạng mở với chu kỳ, đồ thị bên phải mạng dãy gấp khúc với ba time step (bước thời gian) Độ dài time step xác định độ dài đầu vào Ví dụ: chuỗi từ xử lý câu gồm sáu từ, RNN mở thành mạng thần kinh có sáu time step Một lớp tương ứng với từ Trong Hình 2.2, x t vector đầu vào ht hidden state time step t Hidden state tính tốn dựa vào hidden trước đầu vào time step hh hx ht =f (w h t−1+ w xt ) Hàm kích hoạt f công thức thường hàm ReLU w hx ma trận trọng số dùng để điều chỉnh đầu vào x t w hh ma trận trọng số dùng để điều chỉnh hiddent state trước ht −1 y t phân phối xác suất đầu từ vựng bước t Ví dụ: muốn dự đoán từ câu, vectơ xác suất từ từ điển yh y t =softmax (w ht ) 2.3 Long short term memory (LSTM) Theo nguồn [1] [4], RNN ứng dụng thành cơng nhiều tốn, đặc biệt lĩnh vực xử lý ngôn ngữ tự nhiên Trên lý thuyết RNN có khả nhớ tính tốn (thơng tin) trước nó, mơ hình RNN truyền thống khơng thể nhớ bước xa bị mát đạo hàm nên thành cơng mơ hình chủ yếu đến từ mơ hình cải tiến khác LSTM Hình 2.3 Mất mát đạo hàm RNN Nguồn: SuperDataScience LSTM giống với RNN truyền thống việc thêm cổng tính tốn hidden layer để định giữ lại thơng tin 7 Hình 2.4 Cấu trúc mạng LSTM [3] Hình 2.4 thể cấu trúc mạng LSTM Tại time step t, LSTM định thông tin giữ lại hàm sigmoid, gọi “forget gate” (cổng quên) Hàm nhận vào ht −1 (output từ hidden layer trước đó) x t (đầu vào tại), cho output xác suất khoảng [0,1] Trong đó, nghĩa “Giữ lại hoàn toàn” “loại bỏ hoàn toàn” f f f t=σ (W x t +U h t−1) Sau LSTM định thơng tin lưu vào cell state qua bước Bước 1, hàm sigmoid gọi “input gate” (cổng vào) định giá trị LSTM cập nhật i i i t =σ (W x t +U ht −1) ~ Bước 2, hàm tạo vector chứa giá trị C t ~ n n Ct =tanh(W x t +U ht −1 ) LSTM kết hợp giá trị cập nhật cho state C t−1 thành cell state C t ~ C t=f t∗C t−1 +i t∗C t Cuối cùng, LSTM dùng hàm sigmoid gọi “output gate” (cổng ra) để tính tốn xem phần cell state output Sau LSTM đưa cell state qua hàm nhân với output cổng sigmoid để tính tốn output o o o t=σ (W x t +U ht−1 ) ht =o t∗tanh (Ct ) 2.4 Word embedding Trong NLP, mơ hình học sâu cần word embedding làm biến đầu vào Word embedding q trình lập mơ hình ngôn ngữ chuyển đổi văn thành số thực Hay nói cách khác, tạo thành khơng gian vector dùng để biểu diễn liệu có khả miêu tả mối liên hệ, tương đồng mặt ngữ nghĩa, ngữ cảnh liệu Không gian bao gồm nhiều chiều từ không gian mà có văn cảnh ngữ nghĩa có vị trí gần Ví dụ ta có hai câu : "Hôm ăn táo " "Hôm ăn xoài " Khi ta thực Word Embedding, "táo" "xồi" có vị trí gần khơng gian biễu diễn chúng có vị trị giống câu Hình 2.5 Ví dụ Word embedding [7] CHƯƠNG - THỰC NGHIỆM 3.1 Thu thập tiền xử lí liệu Dữ liệu lấy từ streetcode [6] (với bình luận đánh giá sản phẩm, dịch vụ giải trí, quán ăn) Tổng số lượng mẫu data_train data_test 50.000 mẫu liệu bình luận (review) Được phân chia sau: - Số lượng mẫu tập train 30.000 bình luận - Số lượng mẫu tập validate 10.000 bình luận - Số lượng mẫu tập test 10.000 bình luận Nhóm em sử dụng 30.000 bình luận tập train để thực đề tài Hình 3.6 Một bình luận người dùng tập liệu 10 Sau thu thập, tiến hành gán nhãn Tập liệu được chia sẵn thành thư mục negative positive, chúng em gán nhãn cho chúng POS NEG với label 0: Hình 3.7 Gán nhãn cho liệu Nếu liệu chưa phân loại dùng dịng code để gán nhãn dựa vào than điểm (đối với tập liệu có điểm đánh giá): Với điểm thang điểm đánh giá 10, đánh giá điểm coi tích cực, cịn lại tiêu cực 11 Hình 3.8 Dữ liệu sau gán nhãn Tiếp tục tiền xử lý cách xoá dấu câu kí tự đặc biệt, xố dịng khơng có giá trị (có giá trị NaN): Hình 3.9 Dữ liệu sau xử lí 12 Sau đó, chia liệu thành tập train tập test (train 75% test 25%) 3.2 Xây dựng huấn luyện mơ hình Các bước xậy dựng mơ sau: - Tạo từ điển số nguyên tương ứng cho chữ tập liệu bình luận Sau chuyển đổi câu tập huấn luyện tập kiểm tra thành chuỗi số tương ứng với từ câu - Dùng pad_sequences để điều chỉnh độ dài dãy số nguyên tạo cho ( thêm bớt số 0) - Xây dựng mơ hình RNN với lớp: + Lớp đầu vào Embedding: câu biểu diễn dạng dãy số nguyên, đầu vector biểu diễn từ câu (là đầu vào lớp thứ 2) + Lớp thứ LSTM: đầu vector biểu diễn đặc trưng toàn câu + Lớp thứ Dropout: tránh overfitting + Lớp cuối Dense: với đầu giá trị xác suất dự đốn tích cực tiêu cực tính hàm sigmoid 13 Hình 3.10 Mơ hình dự dốn tập liệu train với độ xác 0.89 sau epoch 14 3.3 Đánh giá kiểm thử mô hình 3.3.1 Đánh giá mơ hình Mơ hình đánh giá cách cho chạy tập test, tách liệu cho, tính điểm xác confusion matrix Hình 3.11 Kết mơ hình dự đốn tập liệu test có kết xác 77,66% 15 3.3.2 Kiểm thử mơ hình Cho đoạn text bình luận ngẫu nhiên để kiểm thử mơ hình Hình 3.12 Kiểm thử mơ hình Sau kiểm thử mơ hình với số đoạn text tự cho, thu kết sau: Text Kết đồ ăn vừa nhiều vừa ngon quán phục vụ tệ chán khiến ăn ngon đồ ăn dở thực có ấn tượng tốt với gà quán phục vụ tốt đồ ăn ok tới ăn nhiều lần - POS POS - NEG NEG - NEG - NEG NEG POS - POS POS Bảng 3.1 Kết kiểm thử Kết mong muốn 16 3.4 Kết luận hướng phát triển Tóm tắt lại, kĩ thuật phân tích quan điểm trình trích xuất tình cảm, thái độ, cảm xúc ý kiến câu định Và báo cáo này, nhóm chúng em sử dụng mơ hình học sâu phổ biến RNN để giải tốn đạt độ xác 77,6% chạy thử tập liệu bình luận đánh giá qn ăn Nhìn chung mơ hình toán xây dựng đơn giản với mục đích áp dụng kiến thức học mức độ Trong tương lai chúng em tìm hiểu thêm nhiều mơ hình học máy khía cạnh khác tốn phân tích quan điểm Từ cho kết xác cụ thể hơn, để áp dụng vào toán thực tế 17 TÀI LIỆU THAM KHẢO [1] Recurrent Neural Network [2] towardsdatascience.com [3] Lei Zang, Shuai Wang, Bing Liu “Deep Learning for Sentiment Analysis: A Survey” [4] Long short term memory (LSTM) [5] Kỹ thuật phân tích quan điểm [6] Dataset Sentiment Analysis Vietnamese [7] Embeddings meaning examples and how to compute