BÁO CÁO MÔN HỌC NHẬP MÔN HỌC MÁY VÀ KHAI PHÁ DỮ LIỆU Đề tài: Nhận diện cảm xúc tích cực – tiêu cực dựa vào bình luận. 1.1 Giới thiệu bài toán Hiện nay, việc phân tích dữ liệu của các doanh nghiệp là rất cần thiết. Đặc biệt là đối với các doanh nghiệp kinh doanh, buôn bán các sản phẩm thì việc biết được đánh giá của người dùng đối với sản phẩm của mình là tích cực hay tiêu cực là rất quan trọng. Từ những dữ liệu được phân tích đó, có thể giúp doanh nghiệp cải thiện được chất lượng sản phẩm, chất lượng dịch vụ giữ chân khách hàng đối với sản phẩm. Dựa trên vấn đề đó, cùng với việc tìm hiểu môn “ Nhập môn học máy và khai phá dữ liệu”, nhóm chúng em quyết định lựa chọn bài toán nhận diện cảm xúc tích cực – tiêu cực dựa trên bình luận. 1.2 Mô tả bài toán Các trang thương mại điện tử là nơi trao đổi buôn bán giữa người bán và người mua, các dữ liệu về bình luận của người dùng là rất lớn. Nhiệm vụ của chúng ta đó là xây dựng một mô hình có thể dự đoán cám xúc của người dùng thông qua các bình luận đó. • Đầu vào: Một tệp dữ liệu chứa thông tin về bình luận của người dùng • Đầu ra: Tập dữ liệu bình luận đã được phân loại theo hai tiêu chí: bình luận tích cực và bình luận tiêu cực • Phương pháp: Nhóm sử dụng phương pháp SVM cho việc phân loại văn bản • Tập dữ liệu: Tập dữ liệu bình luận được lấy từ các trang thương mại điện tử
ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO MÔN HỌC NHẬP MÔN HỌC MÁY VÀ KHAI PHÁ DỮ LIỆU Đề tài: Nhận diện cảm xúc tích cực – tiêu cực dựa vào bình luận Giảng viên hướng dẫn: ThS Ngơ Văn Linh Mã lớp học: 132646 Danh sách sinh viên thực hiện: STT Họ tên MSSV HÀ NỘI, 06 – 2022 Lớp Lời cảm ơn Trong suốt trình thực tập lớn, chúng em quan tâm, hướng dẫn giúp đỡ tận tình thầy với động viên bạn bè đồng nghiệp Chúng em xin bày tỏ lòng biết ơn tới thầy giáo ThS Ngô Văn Linh trực tiếp giúp đỡ, hướng dẫn chúng em hoàn thành tập lớn Tóm tắt nội dung Bài báo cáo nói thuật toán SVM, phương pháp tiền xử lý liệu để sử dụng mơ hình SVM để phân loại nhãn tích cực, tiêu cực cho bình luận kết mơ hình Mục lục CHƯƠNG Giới thiệu mơ tả tốn 1.1 Giới thiệu toán .4 1.2 Mô tả toán CHƯƠNG Phân tích tập liệu sử dụng .5 2.1 Tổng quan tập liệu 2.1.1 Nguồn liệu .5 2.1.2 Các thuộc tính tập liệu 2.2 Phân tích liệu 2.3 Tiền xử lý liệu 2.3.1 Chuẩn hóa liệu .7 2.3.2 Làm giàu liệu .9 2.3.3 Dữ liệu sau xử lý .10 2.3.4 Chuyển đổi liệu sang vector 10 CHƯƠNG Mơ hình SVM tốn 13 3.1 3.2 Thuật toán SVM 13 3.1.1 Định nghĩa 13 3.1.2 Ý tưởng phương pháp 13 3.1.3 Cơ sở lý thuyết 15 SVM toán đặt 16 CHƯƠNG Q trình chạy mơ hình kết 17 4.1 Pipeline xử lý huấn luyện mơ hình .17 4.2 Tinh chỉnh (tuning) siêu tham số 18 4.3 Kết nhận xét 18 CHƯƠNG Khó khăn gặp phải, hướng phát triển kết luận 20 5.1 Khó khăn gặp phải 20 5.2 Hướng phát triển 20 5.3 Kết luận 20 Tài liệu tham khảo công nghệ sử dụng .21 Tài liệu tham khảo: 21 [1] Bài giảng Nhập môn Machine Learning and Data Mining, thầy Ngô Văn Linh 21 [2] Thư viện sklearn: https://scikit-learn.org/stable/ .21 [3] Bài 19: Support Vector Machine: https://machinelearningcoban.com/2017/04/09/smv/ 21 [4] Bộ liệu: NLP_Vietnamese | Kaggle .21 [5] N-gram wikipedia 21 [6] TF-IDF: https://nguyenvanhieu.vn/tf-idf-la-gi/ 21 Các công nghệ sử dụng 21 CHƯƠNG Giới thiệu mơ tả tốn 1.1 Giới thiệu tốn Hiện nay, việc phân tích liệu doanh nghiệp cần thiết Đặc biệt doanh nghiệp kinh doanh, bn bán sản phẩm việc biết đánh giá người dùng sản phẩm tích cực hay tiêu cực quan trọng Từ liệu phân tích đó, giúp doanh nghiệp cải thiện chất lượng sản phẩm, chất lượng dịch vụ giữ chân khách hàng sản phẩm Dựa vấn đề đó, với việc tìm hiểu mơn “ Nhập mơn học máy khai phá liệu”, nhóm chúng em định lựa chọn tốn nhận diện cảm xúc tích cực – tiêu cực dựa bình luận 1.2 Mơ tả tốn Các trang thương mại điện tử nơi trao đổi buôn bán người bán người mua, liệu bình luận người dùng lớn Nhiệm vụ xây dựng mơ hình dự đốn cám xúc người dùng thơng qua bình luận Đầu vào: Một tệp liệu chứa thơng tin bình luận người dùng Đầu ra: Tập liệu bình luận phân loại theo hai tiêu chí: bình luận tích cực bình luận tiêu cực Phương pháp: Nhóm sử dụng phương pháp SVM cho việc phân loại văn Tập liệu: Tập liệu bình luận lấy từ trang thương mại điện tử CHƯƠNG Phân tích tập liệu sử dụng 2.1 Tổng quan tập liệu 2.1.1 Nguồn liệu Đối với yêu cầu toán này, liệu chúng em sử dụng gồm có bình luận đánh giá sản phẩm mua hàng Dữ liệu sử dụng từ nguồn có sẵn Để phục vụ việc học mơ hình nhóm sử dụng hai tập liệu: Tập liệu thứ lấy từ thi NLP VietNamese Kaggle, tập liệu thứ hai lấy từ trang thương mại điện tử tinh chỉnh Bên cạnh liệu học, nhóm cịn sử dụng từ điển gồm từ mang ý nghĩa tích cực, tiêu cực phủ định Hình 2.1: Các từ điển sử dụng thêm 2.1.2 Các thuộc tính tập liệu Như đề cập trên, liệu sử dụng gồm có hai tập khác nhau: Tập liệu thứ gồm có 15776 hàng cột Trong đó, hàng thơng tin bình luận, cột “id” mã bình luận, cột “label” nhãn bình luận phân thành hai loại – tích cực – tiêu cực, cuối cột “review” nội dung bình luận Hình 2.2: Tập liệu thứ Tập liệu thứ hai gồm có file chứa nội dung bình luận số từ đến tương ứng với bình luận Số lượng bình luận số lương đánh giá 8429 Hình 2.3: Tập liệu thứ hai 2.2 Phân tích liệu Bộ liệu cào trang thương mại điện tử có phân phối sau: Length dataset 8429 1*: 274 2* 245 3* 1849 4* 1883 5* 4178 Bảng 2.1: Phân phối liệu cào từ trang thương mại điện tử Như ta thấy, liệu có nhãn tương ứng với số từ tới Tuy nhiên toán nhận diện nhãn tích cực tiêu cực nên phải ánh xa nhãn nhãn toán sau: Nhãn ban đầu Nhãn sau 5* Tích cực Từ 1* tới 4* Tiêu cực Bảng 2.2: Ánh xạ từ nhãn cũ liệu gốc sang nhãn phù hợp toán Lý ánh xạ thơng thường, đơn hàng khơng có vấn đề người dùng cho sao, trừ đơn hàng có vấn đề giao muộn giao thiếu v.v cho từ trở xuống Sau ánh xạ liệu cào được, kết hợp với liệu lấy từ thi NLP VietNamese Kaggle, ta có phân phối nhãn sau: Tích cực (nhãn 0) 12699 Tiêu cực (nhãn 1) 11506 Bảng 2.3: Phân phối nhãn sau xử lý 2.3 Tiền xử lý liệu 2.3.1 Chuẩn hóa liệu Việc chuẩn hóa liệu thực tập liệu thứ Dữ liệu lấy trực tiếp từ trang thương mại điện tử, bình luận người dùng cịn lộn xộn khơng dễ để học, cân chuẩn hóa liệu qua bước: Loại bỏ ký tự kéo dài Chuyển tất bình luận chữ thường Hình 2.4: Các bước chuẩn hóa liệu Chuẩn hóa tiếng Việt, xử lý biểu tượng cảm xúc, chuẩn hóa tiếng Anh thuật ngữ: Trong bình luận có từ khơng có nghĩa từ viết tắt tiếng Việt lẫn tiếng Anh, từ cần xóa thay từ xác Đối với biểu tượng cảm xúc quy hai loại biểu tượng tiêu cực tích cực Hình 2.5: Chuẩn hóa tiếng việt kiểu Hình 2.6: Đưa icon text Hình 2.7: Chuẩn hóa tiếng anh từ viết tắt Hình 2.8: Xóa dấu câu Loại bỏ ký tự thừa Hình 2.9: Loại bỏ kí tự thừa 2.3.2 Làm giàu liệu Với lượng liệu lấy được, sau cập nhật chuẩn hóa để liệu trở nên dễ hiểu hơn, ta cần bổ sung kết nối liệu với thông tin liên quan khác, nhằm cung cấp hiểu biết sâu sắc cho việc học Tăng thêm số lượng tập học cách biến đổi liệu sẵn có: Hình 2.10: Thêm vào liệu tiếng Việt không dấu 2.3.3 Dữ liệu sau xử lý Dữ liệu sau tiền xử lý: Hình 2.11: Một vài dịng liệu sau tiền xử lý Từ tập liệu ban đầu chia nhỏ thành tập train test với tỷ lệ 70% 30%, hai tập tiền xử lý liệu nêu sử dụng để chạy thử mơ hình Hình 2.12: Chia tập train-test theo tỉ lệ 7-3 2.3.4 Chuyển đổi liệu sang vector Để cho vào mơ hình học máy, văn cần phải chuyển đổi sang dạng liệu số học Việc thực nhiều cách BoW, TF- IDF,… Trong tập lớn chúng em dùng thư viện sklearn để tính TF-IDF Mơ hình TF-IDF: TF-IDF (Term Frequency – Inverse Document Frequency) kĩ thuật sử dụng khai phá liệu văn Trọng số sử dụng để đánh giá tầm quan trọng từ văn Giá trị cao thể độ quan trọng cao phụ thuộc vào số lần từ xuất văn bù lại tần suất từ tập liệu Một vài biến thể tf-idf thường sử dụng hệ thống tìm kiếm cơng cụ để đánh giá xếp văn dựa vào truy vấn người dùng Tf-idf sử dụng để lọc từ stopwords tốn tóm tắt văn phân loại văn 2.3.4.1 TF (Term Frequency) Hình 2.13: Cơng thức tính TF TF: Term Frequency (Tần suất xuất từ) số lần từ xuất văn Vì văn có độ dài ngắn khác nên số từ xuất nhiều lần văn dài văn ngắn Như vậy, term frequency thường chia cho độ dài văn (tổng số từ văn bản) Trong đó: tf (t, d): tần suất xuất từ t văn d f (t, d): Số lần xuất từ t văn d max ({f (w, d): w ∈ d}): Số lần xuất từ có số lần xuất nhiều văn d 2.3.4.2 IDF (Inverse Document Frequency) IDF: Inverse Document Frequency (Nghịch đảo tần suất văn bản), giúp đánh giá tầm quan trọng từ Khi tính tốn TF, tất từ coi có độ quan trọng Nhưng số từ “thì”, “là” “đó” thường xuất nhiều lần độ quan trọng không cao Như cần giảm độ quan trọng từ xuống Hình 2.14: Cơng thức tính IDF Trong đó: idf(t, D): giá trị idf từ t tập văn |D|: Tổng số văn tập D |{d ∈ D : t ∈ d}|: thể số văn tập D có chứa từ t 2.3.4.3 TF - IDF Cơng thức tính TF-IDF: tfidf ( t ,d , D )=tf (t , d )∗idf (t , D) Những từ có giá trị TF-IDF cao từ xuất nhiều văn này, xuất văn khác Việc giúp lọc từ phổ biến giữ lại từ có giá trị cao (từ khố văn đó) CHƯƠNG Mơ hình SVM tốn Trong phần này, chúng em xin trình bày phương pháp phân loại đơn nhãn SVM (Support Vector Machine), áp dụng phương pháp nhóm chọn vào tốn SVM lựa chọn phương pháp mạnh xác số mơ hình phân loại dựa phương pháp học máy 3.1 Thuật toán SVM 3.1.1 Định nghĩa SVM (viết tắt Support Vector Machine) phương pháp dựa tảng lý thuyết thống kê nên có nền tảng toán học chặt chẽ để đảm bảo kết tìm xác. Là thuật tốn học giám sát (supervied learning) sử dụng cho phân lớp liệu. Là phương pháp thử nghiệm, phương pháp mạnh xác số thuật toán tiếng phân lớp liệu. SVM phương pháp có tính tổng qt cao nên áp dụng cho nhiều loại toán nhận dạng phân loại. 3.1.2 Ý tưởng phương pháp Cho trước tập huấn luyện có class, điểm liệu biểu diễn điểm không gian nhiều chiều, ta giả sử có tồn siêu phằng (hyperplane) phân chia hai class Như có class nằm tồn phía dương siêu phẳng class cịn lại nằm phía âm, ta gọi hai class tương ứng class + class - Có nhiều mặt phân chia, đồng nghĩa với việc tốn có nhiều nghiệm Hình 3.15: Có nhiều siêu phẳng phân chia liệu học thành lớp + – (nguồn: machinelearningcoban.com) Vậy ta phải có tiêu chuẩn để nghiệm tốt nghiệm tốn Hình 3.16: Margin hai class lớn (nguồn: machinelearningcoban.com) Ở hình bên trái, ta thấy siêu phẳng nằm gần hẳn chấm màu đỏ, phần không gian chấm đỏ bị xâm lấn Cịn hình bên phải, khoảng cách gần từ chấm đỏ xanh tới siêu phẳng nhau, nhiên với siêu phẳng màu xanh siêu phẳng gần so với hai bên chấm đỏ chấm xanh Khoảng cách gọi margin (như ảnh mô tả) Việc margin rộng mang lại hiệu ứng phân lớp tốt phân chia hai classes rạch rịi Bài tốn tối ưu Support Vector Machine (SVM) tốn tìm đường phân chia cho margin lớn 3.1.3 Cơ sở lý thuyết Như nói trên, SVM thực chất toán tối ưu cho siêu phẳng tìm có margin lớn Ta có tập liệu training set N cặp ( x , y ),( x , y 2) , ,(x n , y n) với x vector có d chiều thể đầu vào điểm liệu y nhãn tương ứng điểm liệu Nhãn điểm liệu xác định y i=1 y i=−1 tương ứng với class + class - Để dễ biểu diễn ta giả sử điểm liệu có hai chiều, ta biểu diễn điểm liệu mặt phẳng bình thường Hình 3.17: Một siêu phẳng phân chia hai class không gian nhiều chiều Giả sử điểm vng xanh thuộc class 1, điểm trịn đỏ thuộc class −1 mặt w T x+ b=w1 x +w x +b=0 mặt phân chia hai classes, class nằm phía dương, class −1 nằm phía âm mặt phân chia Nếu ngược lại, ta cần đổi dấu w b Bây cần tìm hệ số w b cho margin lớn Để làm vậy, ta cần thiết lập hàm tính độ dài margin tối ưu hàm Với cặp liệu (x n , y n ) bất kỳ, khoảng cách từ điểm tới mặt phân chia là: T y n (w x n +b) ¿∨w∨¿2 Margin khoảng cách gần từ điểm tới mặt phẳng phân cách, ta có: margin= ❑ ❑ ❑❑ ❑ ❑❑ ‖w‖2 Bài toán tối ưu SVM tốn tìm w b cho margin đạt giá trị lớn { T ( w ,b )=arg max w ,b y n ( w x n+ b ) n ‖w‖2 } =argmax w ,b {‖ ‖ T y n ( w x n+ b ) w n } 3.2 SVM toán đặt Bài toán đặt nhận diện cảm xúc tích cực tiêu cực từ bình luận, tích cực tiêu cực hai nhãn + – mơ hình SVM mà ta cần phải phân loại CHƯƠNG Quá trình chạy mơ hình kết Đối với tốn nhóm đề thuộc nhóm tốn phân loại văn bản, với mơ hình sử dụng SVM (Support Vector Machine) với phương pháp xử lý LinearSVC Chúng hỗ trợ thư viện Scikit_learn 4.1 Pipeline xử lý huấn luyện mơ hình Hình 4.18: Các bước xử lý liệu pipeline Pipeline chế cho phép ta tạo luồng biến đổi liệu: output bước input bước sau Các bước biến đổi append vào mảng ảnh trên, ta giải thích bước sau CountVectorizer: Tập liệu gồm câu bình luận, từ bình luận đó, ta xây dựng từ điển từ xuất hiện, gọi vocabulary Ví dụ, ta có câu bình luận là: “quyển sách đẹp sách kia”, xây dựng từ điển là: {“quyển”, “sách”, “này”, “đẹp”, “hơn” , “kia”} Lưu ý từ điển bao gồm từ “đã từng” xuất câu bình luận, dù từ xuất lần từ điển xuất lần Ngoài ra, count vectorize bỏ qua từ stop word định nghĩa (ở từ: rằng, thì, là, mà,…), bỏ qua ln từ có tần suất xuất (df) nằm khoảng min_df max_df (hai tham số siêu tham số, đề cập phần sau) Sau xây dựng từ điển, câu bình luận vector hóa Count vectorize, xét câu bình luận ví dụ trên: “quyển sách đẹp sách kia”, từ điển xây dựng {“quyển”, “sách”, “này”, “đẹp”, “hơn” , “kia”} Dựa từ điện này, ta vector hóa câu bình luận thành {2, 2, 1, 1, 1, 1} tương ứng với số lần xuất từ câu bình luận (quyển: lần, sách: lần) TfidfTransformer: Như trình bày trên, tf-idf từ cao cho ta biết từ xuất nhiều câu này, ko xuất nhiều câu khác Có thể hiểu, từ có ifidf cao đặc điểm quan trọng để phân biệt câu chứa từ với câu khác Do đó, tham số quan trọng việc phân loại câu, TfidfTransformrmer dựa vào kết Count vectorize tính để sinh vector tfidf 4.2 Tinh chỉnh (tuning) siêu tham số ngram_range(1, 5): ngram chuỗi n phần tử đứng liên tiếp Các phần tử âm vị, âm tiết, chữ cái, từ tùy theo ứng dụng Ở đây, chúng em dùng ngram cho âm tiết [5] Hình 4.19: Minh họa ngram (Nguồn: text_preprocessing google colab) Qua trình tuning ta thấy với ngram_range(1, 5) cho độ xác tập test cao max_df=0.7, min_df=0: giá trị ngưỡng max cài đặt trình xây dựng từ điển (quá trình CountVectorizer) để loại bỏ từ không quan trọng, bao gồm từ xuất nhiều văn bản, cụ thể với tần suất xuất lớn max_df, từ xuất văn bản, khơng có ý nghĩa phân loại, cụ thể với suất xuất nhỏ min_df Qua trình tuning, ta có với min_df = 0, max_df = 0.7 cho kết có độ xác cao 4.3 Kết nhận xét Sau trình tuning, kết mơ hình thu sau: Hình 4.20: Kết sau tuning Confusion matrix: Predict Positive Ground Positive truth Negative Negative 6985 567 595 6377