Phân loại cảm xúc người dùng trong mạng xã hội
Trang 1PHÂN LOẠI CẢM XÚC NGƯỜI DÙNG
TRONG MẠNG XÃ HỘI
LUẬN VĂN THẠC SĨ KỸ THUẬT
HÀ NỘI - 2015
Trang 2PHÂN LOẠI CẢM XÚC NGƯỜI DÙNG
TRONG MẠNG XÃ HỘI
CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN
MÃ SỐ: 60.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS TRẦN ĐÌNH QUẾ
HÀ NỘI - 2015
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kì tài liệu nào khác
TÁC GIẢ LUẬN VĂN
Trang 4LỜI CẢM ƠN
Được sự đồng ý của Khoa Quốc tế và Sau Đại học của Học Viện Công NghệBưu Chính Viễn Thông và giảng viên hướng dẫn khoa học: PGS.TS Trần ĐìnhQuế, tôi đã thực hiện luận văn: “Phân loại cảm xúc người dùng trong mạng xã hội”
Để hoàn thành luận văn này, tôi xin chân thành cảm ơn các thầy cô giảngviên trong khoa Quốc Tế và Sau Đại Học của Học Viện Công Nghệ Bưu ChínhViễn Thông đã tận tình giảng dạy, hướng dẫn tôi trong suốt quá trình học tập vànghiên cứu ở Học Viện
Xin chân thành cảm ơn thầy giáo Trần Đình Quế, người đã trực tiếp hướng dẫn nghiên cứu khoa học cho tôi Trong quá trình thực hiện luận văn, thầy đã chỉ bảo và truyền đạt những kiến thức khoa học quý báu, đồng thời cũng đưa những góp ý thiết thực giúp tôi hoàn thành luận văn này
HỌC VIÊN
Trang 5MỤC LỤC
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT 5
DANH SÁCH BẢNG 6
DANH SÁCH HÌNH VẼ 7
MỞ ĐẦU 7
CHƯƠNG 1: TỔNG QUAN VỀ BÀI TỐN PHÂN LOẠI CẢM XÚC NGƯỜI DÙNG 10
1.1 Bài tốn phân loại cảm xúc người dùng trong mạng xã hội 10
1.1.1 Lý do phân loại cảm xúc người dùng 10
1.1.2 Giới thiệu bài tốn và một số nghiên cứu liên quan 10
1.1.3 Mơ hình xử lý dữ liệu cho bài tốn phân loại cảm xúc 12
1.1.4 Những thách thức trong bài tốn phân loại cảm xúc 13
1.2 Hướng tiếp cận giải quyết bài tồn phân loại cảm xúc dựa vào các kỹ thuật học máy 14
1.2.1 Phân loại dựa trên Nạve Bayes 15
1.2.2 Phân loại dựa trên máy vec-tơ hỗ trợ (Support Vector Machine) 17
1.3 Kết luận chương 19
CHƯƠNG 2: MƠ HÌNH BÀI TỐN VÀ CÁC BƯỚC TRONG PHÂN LOẠI CẢM XÚC NGƯỜI DÙNG 20
2.1 Mơ hình tổng quát bài tốn 20
2.2 Pha thu thập dữ liệu 22
2.3 Pha tiền xử lý dữ liệu 24
2.4 Pha trích chọn đặc trưng và vec-tơ hĩa văn bản 25
2.4.1 N-grams 25
2.4.2 Mơ hình khơng gian vec-tơ (Vector Space Model) 29
2.5 Phân loại sử dụng SVM & Nạve Bayes với Weka 38
2.5.1 Giới thiệu về file arff 38
2.5.2 Sử dụng Weka để phân loại SVM và Nạve bayes 39
2.6 Kết luận chương 41
Trang 6CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 42
3.1 Thơng tin dữ liệu và mơi trường thực nghiệm 42
3.2 Phát biểu bài tốn thực nghiệm 43
3.3 Kết quả thử nghiệm 44
3.3.1 Bài tốn 1: So sánh mơ hình Unigram và VSM trong bộ phân loại Support Vector Machine 45
3.3.2 Bài tốn 2: So sánh mơ hình Unigram và VSM trong bộ phân loại Nạve Bayes 46
3.3.3 Bài tốn 3: So sánh tính hiệu quả của 2 bộ phân loại SVM và Nạve Bayes với phương pháp xây dựng vec-tơ đặc trưng Unigram 48
3.3.4 Bài tốn 4: So sánh tính hiệu quả của 2 bộ phân loại SVM và Nạve Bayes với phương pháp xây dựng vec-tơ đặc trưng Vector Space Model 50
3.4 Thảo luận, đánh giá, so sánh 51
3.5 Kết luận chương 52
KẾT LUẬN 53
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 56
PHỤ LỤC 58
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
NLP Natural Language Processing Xử lý ngôn ngữ tự nhiênHCI Human Computer Interaction Tương tác người – máyVSM Vector Space Model Mô hình không gian vec-tơSVM Support Vector Machine Máy vec-tơ hỗ trợ
TF-IDF Term Frequency–Inverse
Document Frequency
Tần suất từ - tuần suất ngược trong văn bản
Trang 8DANH SÁCH BẢNG
Hình 1.1: Mơ hình xử lý dữ liệu cho bài tốn phân loại cảm xúc 12
Hình 1.2: Mơ tả về siêu phẳng trong SVM 17
Hình 1.3: Mơ tả về đường biên trong SVM 18
Hình 1.4: Mơ tả về đường biên trong SVM 19
Hình 2.1 Mơ hình tổng quát của bài tốn 20
Hình 2.2: Dữ liệu thơ trên trang mp3.zing.vn 23
Hình 2.3: Dữ liệu sau khi crawl về lưu trữ vào cơ sở dữ liệu 23
Hình 2.4 Túi từ vựng được tạo bởi mơ hình n-grams 28
Hình 2.5 Nhĩm 3 vec-tơ khảo sát với mơ hình n-grams 29
Hình 2.6: Minh họa của Christian S Perone 30
Hình 2.7 Kết quả tính tốn TF, IDF với mơ hình VSM 37
Hình 2.8 Kết quả trích chọn đặc trưng với mơ hình VSM 37
Hình 2.9 Nhĩm 3 vec-tơ khảo sát với mơ hình VSM 38
Hình 2.10: Mẫu file arff chuẩn 39
Hình 2.11: Các bước sử dụng Weka để phân loại dữ liệu 40
Hình 2.12: Kết quả đánh giá mơ hình bài tốn 41
Hình 3.1: Biểu đồ so sánh mơ hình unigram và VSM trong SVM với k-folds=5 45
Hình 3.2: Biểu đồ so sánh mơ hình unigram và VSM trong SVM với k-folds=10 46
Hình 3.4: Biểu đồ so sánh mơ hình Unigram và VSM trong Nạve Bayes với k-folds=5 47
Hình 3.5: Biểu đồ so sánh mơ hình Unigram và VSM trong Nạve Bayes với k-folds=10.47 Hình 3.6: Kết quả so sánh hai bộ phân lớp SVM và Nạve Bayes với Unigram với k-folds=5 49
Hình 3.7: Kết quả so sánh hai bộ phân lớp SVM và Nạve Bayes với Unigram với k-folds=10 49
Hình 3.8: Kết quả so sánh hai bộ phân lớp SVM và Nạve Bayes với VSM với k-folds=5 & k-folds=10 50
Trang 9DANH SÁCH HÌNH VẼ
Hình 1.1: Mơ hình xử lý dữ liệu cho bài tốn phân loại cảm xúc 12
Hình 1.2: Mơ tả về siêu phẳng trong SVM 17
Hình 1.3: Mơ tả về đường biên trong SVM 18
Hình 1.4: Mơ tả về đường biên trong SVM 19
Hình 2.1 Mơ hình tổng quát của bài tốn 20
Hình 2.2: Dữ liệu thơ trên trang mp3.zing.vn 23
Hình 2.3: Dữ liệu sau khi crawl về lưu trữ vào cơ sở dữ liệu 23
Hình 2.4 Túi từ vựng được tạo bởi mơ hình n-grams 28
Hình 2.5 Nhĩm 3 vec-tơ khảo sát với mơ hình n-grams 29
Hình 2.6: Minh họa của Christian S Perone 30
Hình 2.7 Kết quả tính tốn TF, IDF với mơ hình VSM 37
Hình 2.8 Kết quả trích chọn đặc trưng với mơ hình VSM 37
Hình 2.9 Nhĩm 3 vec-tơ khảo sát với mơ hình VSM 38
Hình 2.10: Mẫu file arff chuẩn 39
Hình 2.11: Các bước sử dụng Weka để phân loại dữ liệu 40
Hình 2.12: Kết quả đánh giá mơ hình bài tốn 41
Hình 3.1: Biểu đồ so sánh mơ hình unigram và VSM trong SVM với k-folds=5 45
Hình 3.2: Biểu đồ so sánh mơ hình unigram và VSM trong SVM với k-folds=10 46
Hình 3.4: Biểu đồ so sánh mơ hình Unigram và VSM trong Nạve Bayes với k-folds=5 47
Hình 3.5: Biểu đồ so sánh mơ hình Unigram và VSM trong Nạve Bayes với k-folds=10.47 Hình 3.6: Kết quả so sánh hai bộ phân lớp SVM và Nạve Bayes với Unigram với k-folds=5 49
Hình 3.7: Kết quả so sánh hai bộ phân lớp SVM và Nạve Bayes với Unigram với k-folds=10 49
Hình 3.8: Kết quả so sánh hai bộ phân lớp SVM và Nạve Bayes với VSM với k-folds=5 & k-folds=10 50
Trang 10MỞ ĐẦU
Ngày nay, với sự gia tăng về số lượng và nội dung các trang thông tin điện tửnhư mp3.zing.vn, keeng.vn và các mạng xã hội như Facebook, Twitter,… Internetkhông chỉ còn là nơi cung cấp thông tin ở dạng sự kiện mà còn là nơi người dùngbày tỏ cảm xúc, trao đổi cảm nhận, kinh nghiệm về các vấn đề đời sống hoặc về cácvấn đề mà chính người dùng đó đang đọc Có rất nhiều các nghiên cứu trong việckhai phá nội dung văn bản để tìm ra những điều mới mẻ phục vụ kinh doanh Chẳnghạn như nhu cầu tổng hợp những phản hồi hay bình luận của người dùng trênInternet để đưa ra kết luận một sản phẩm có tốt hay không? Phản ứng của kháchhàng đối với một sự kiện nào đó như thế nào?…
Đối với lĩnh vực khai phá dữ liệu truyền thống, thay vì tập trung vào lịch sửngười dùng như lịch sử mua bán, thời gian truy cập…, lĩnh vực khai phá cảm xúcngười dùng lại tập trung vào việc phân tích ý nghĩa của các bình luận trên các trangthông tin hay mạng xã hội Do đó, có thể hiểu bài toán phân loại cảm xúc ngườidùng là sự kết hợp của lĩnh vực Khai phá dữ liệu và Xử lý ngôn ngữ tự nhiên Tínhđến hiện nay, việc xử lý bài toán phân loại cảm xúc người dùng có nhiều hướng tiếpcận khác nhau và nhiều mức xử lý khác nhau, tuy nhiên các tài liệu liên quan đếnviệc xử lý đa phần là áp dụng cho tiếng Anh Việc phân loại cảm xúc người dùngcho Tiếng việt còn nhiều hạn chế
Mục đích của luận văn “Phân loại cảm xúc người dùng trong mạng xã hội” làtìm hiểu tổng quan về bài toán phân loại cảm xúc người dùng, tập trung và phân tíchcác phương pháp tiếp cận, các phương thức hoạt động và xử lý dữ liệu chung củabài toán này Đánh giá những thành phần và những yếu tố quan trọng trong việckhai phá ngữ nghĩa Tìm hiểu về các thuật toán học máy, tập trung vào phương thức
và cách trích chọn đặc trưng Đặc biệt với hai phương pháp phân loại dựa trênSupport Vectors Machine và Naive Bayes Đánh giá, so sánh hai phương pháp nàyvới các phương pháp trích chọn đặc trưng khác nhau
Đối tượng nghiên cứu của luận văn là tập trung khai phá phân loại cảm xúccủa người dùng khi đang nghe nhạc dựa trên các bình luận vào bài hát của
Trang 11mp3.zing.vn Dữ liệu thu thập trên ba miền nhạc trẻ, nhạc cách mạng và tổng hợp.Luận văn tập trung vào cách trích chọn đặc trưng n-grams, mơ hình khơng gian vec-
tơ (Vector Space Model) và xử lý dữ liệu của các thuật tốn học máy, đi sâu hơnvào nghiên cứu thuật tốn SVM & Nạve Bayes Luận văn sẽ thực hiện phân loại
cảm xúc dựa vào tính chất của cảm xúc là: cảm xúc tích cực và cảm xúc tiêu cực.
Cụ thể những nội dung này sẽ được bố cục theo từng chương như sau:
Chương 1 Tổng quan về bài tốn phân loại cảm xúc: Nội dung chương
này sẽ trình bày về lý do và cơ sở lý thuyết cho việc phân loại cảm xúc Các hướngtiếp cận, các hướng nghiên cứu trước đĩ của một số tác giả, đồng thời cũng giớithiệu mơ hình xử lý tổng quát và các khĩ khăn phức tạp khi giải quyết bài tốn.Phần cuối của chương 1 luận văn sẽ giới thiệu về các thuật tốn học máy
Chương 2 Mơ hình bài tốn và các bước trong phân loại cảm xúc người dùng: Nội dung chương này sẽ trình bày mơ hình tiến trình xử lý của ứng dụng mà
luận văn đã xây dựng, bắt đầu bằng tiến trình thu thập dữ liệu, chuẩn hĩa dữ liệu, sửdụng các phương pháp trích chọn đặc trưng khác nhau để vec-tơ hĩa văn bản Bướccuối cùng là sử dụng Weka để áp dụng các bộ phân loại Nạve Bayes và Máy vec-tơ
hỗ trợ (SVM) vào mơ hình bài tốn để đưa ra các kết quả đánh giá sau này
Chương 3 Thử nghiệm và đánh giá kết quả: Sau khi xây dựng ứng dụng,
chương này sẽ tiến hành cài đặt và thử nghiệm hiệu quả của các đặc trưng sử dụng,
từ đĩ chọn ra những đặc trưng cho kết quả cao nhất theo thơng số độ đo Fscore Từ
đĩ rút ra những kết luận quan trọng trong bài tốn phân loại cảm xúc người dùng
Kết luận Phần này sẽ trình bày những kết quả đạt được của luận văn, đồng
thời cũng chỉ ra những hạn chế và hướng phát triển trong tương lai
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN PHÂN LOẠI CẢM
XÚC NGƯỜI DÙNG
1.1. Bài toán phân loại cảm xúc người dùng trong mạng xã hội
1.1.1. Lý do phân loại cảm xúc người dùng
Ngày nay, với sự phát triển mạnh mẽ của internet… người ta có thể ngồihàng giờ mỗi ngày để đọc báo, nghe nhạc và chia sẻ cảm xúc, viết các ghi chú, bìnhluận… Ẩn trong những bình luận đó là những cảm xúc vui, buồn, yêu, ghét… củangười dùng Những thứ mang hướng “cảm tính” như thế nếu không phải là conngười tự đọc, tự hiểu được thì nó thực sự là một thách thức lớn đối với máy tính
Đứng trên quan điểm thương mại điện tử, thì việc phát hiện ra cảm xúc ngườidùng đúng sẽ giúp ta hiển thị những nội dung quảng cáo tốt hơn Chẳng hạn, pháthiện một người có tâm trạng mệt mỏi, có thể gợi ý một số đồ uống tăng lực, địađiểm giải trí, hay đơn giản là phát một bản nhạc nhẹ nhàng để phục vụ khách hàng
Với những vấn đề đặt ra như thế, luận văn xin chọn đề tài nghiên cứu về
“Phân loại cảm xúc người dùng trong mạng xã hội”.
1.1.2. Giới thiệu bài toán và một số nghiên cứu liên quan
Phân tích tâm lý và khai phá quan điểm người dùng là một trong những vấn
đề được nghiên cứu sôi động nhất trong lĩnh vực xử lý ngôn ngữ tự nhiên (Liu2012) [11]
Cảm xúc được định nghĩa là phản ứng của con người đối với các sự kiện,hiện tượng (kể cả bên trong hoặc bên ngoài cơ thể) cái mà có một ý nghĩa nào đóđối với con người [5]
Cảm xúc, tình cảm là vấn đề được nhiều nhà khoa học quan tâm, nghiên cứu
Vì thế có nhiều quan điểm khác nhau về số lượng các loại cảm xúc Căn cứ vào tính
chất của cảm xúc có thể chia cảm xúc thành 2 loại: cảm xúc tích cực và cảm xúc
tiêu cực Căn cứ vào biểu hiện và nội dung, chúng ta có thể chia cảm xúc thành 6
loại cơ bản: vui, buồn, giận dữ, ngạc nhiên, ghét, sợ hãi Theo nghiên cứu của W.
Trang 13Gerrod Parrot [1] Từ những cảm xúc cơ bản nhưng dưới sự tác động của các kíchthích khác nhau trong những điều kiện, hồn cảnh khác nhau mà cảm xúc của conngười cũng cĩ lúc đan xen, pha lẫn nhiều cảm xúc khác loại nhưng cùng tồn tạitrong một thời điểm Và chính điều này đã tạo ra hàng loạt các cảm xúc khác.
Trong những năm gần đây, với sự bùng nổ của internet, facebook, twiter…
cĩ rất nhiều những nghiên này cứu tập trung vào miền mạng xã hội Do một số đặcđiểm của của ngơn ngữ trên mạng xã hội, ví dụ hạn chế về số ký tự hoặc cảm xúcphụ thuộc nhiều vào nội dung người dùng đang đọc, nghe nên việc phân loại cảmxúc người dung trong mạng xã hội là một vấn đề đầy thử thách
Các nghiên cứu trước đây chủ yếu tập trưng dựa trên từ vựng – LexiconBased (Hu and Liu 2004) và dựa trên phương pháp học máy - Machine LearningBased Methods (Pang et al 2002) Đối với phương pháp dựa trên từ vựng, kết quảphụ thuộc nhiều vào chất lượng của các từ miêu tả cảm xúc Đối với phương phápdựa trên học máy, ví dụ: SVM, Nạve Bayes, kết quả phụ thuộc nhiều vào cách tríchchọn đặc trưng, mà ở đây sử dụng phổ biến là n-gram hoặc đặc trưng từ vựng(Lexicon-based features) Một số nghiên cứu khác sử dụng mơ hình vec-tơ khơnggian - Vector Space Model (Taner Danisman & Adil Alpkocak 2008) [10] cũngcho thấy sự những ưu điểm của mình
Đối với các nghiên cứu Tiếng Việt trong phạm vi khai phá quan điểm nàycịn ít, chẳng hạn như “A featủe-based opinion mining model on product reviews inVietnames” của Vũ Tiến Thành [4] nghiên cứu về khai phá quan điểm nĩi chung,nhưng chuyên về miền cảm xúc người dùng thì hầu như chưa cĩ
Trong phạm vi luận văn, chúng ta sẽ nghiên cứu phân loại cảm xúc dựa trênphương pháp học máy với hai mơ hình xây dựng vec-tơ đặc trưng N-Grams và mơhình khơng gian vec-tơ (Vector Space Model), và hai bộ phân lớp Nạve Bayes vàmáy vec-tơ hỗ trợ (Support Vector Machine)
Trang 141.1.3. Mô hình xử lý dữ liệu cho bài toán phân loại cảm xúc
Mặc dù có những hướng tiếp cận để giải quyết bài toán khác nhau, tuy nhiênnhóm nghiên cứu của Pravesh đã đưa ra mô hình chung cho bài toán này trong hộinghị quốc tế về công nghệ tính toán mềm năm 2014 (International Journal on SoftComputing-IJSC) [18]
Hình 1.1: Mô hình xử lý dữ liệu cho bài toán phân loại cảm xúc
Ý nghĩa và nhiệm vụ từng tiến trình cụ thể như sau:
1.1.3.1 Thu thập dữ liệu
Bước này sẽ thu thập các trang web chứa bình luận người dùng Để thực hiệnbước này có thể sử dụng cơ sở dữ liệu của trang web hoặc sử dụng Crawler hoặcAgent để thực hiện tự động Kết quả bước này sẽ thu thập được toàn bộ các địnhdạng dữ liệu của website đối tượng ở dạng HTML hay TXT, dữ liệu này sẽ được điqua xử lý ở các bước sau
1.1.3.2 Chuẩn hóa dữ liệu
Về mặt cấu trúc, dữ liệu thu được ở bước thứ nhất ở định dạng HTML hoặcPHP, do đó bước Chuẩn hóa dữ liệu sẽ lọc lấy những thông tin cần thiết như thờigian, tiêu đề bài viết cùng với bình luận người dùng Ngoài ra, những bình luậnngười dùng thu thập được có thể không thỏa mãn những yêu cầu về ngữ pháp hoặcngữ nghĩa Bước này cũng sẽ loại bỏ những mẫu bình luận không phù hợp hoặc sửađổi (như thêm dấu với Tiếng Việt) để đảm bảo dữ liệu thu thập được phù hợp vớiviệc Gán nhãn hay Trích chọn đặc trưng ở bước sau
Trang 151.1.3.3 Gán nhãn dữ liệu
Với cách tiếp cận bằng bộ từ vựng, bước này sẽ sử dụng dữ liệu từ bộ từvựng đó để so khớp hay gán nhãn những từ trong văn bản tương ứng trong từ điển.Với phương pháp tiếp cận bằng thuật toán học máy, dữ liệu sẽ được gán nhãn dựavào đặc trưng ngôn ngữ của văn bản Cụ thể như gán nhãn câu, gán nhãn từ và từloại hay các biểu tượng cảm xúc trong bình luận
1.1.3.4 Trích chọn đặc trưng
Dựa trên dữ liệu được gán nhãn, đặc trưng để phân lớp là trọng số hướng ngữnghĩa của bình luận với cách sử dụng bộ từ vựng Các thuật toán học máy sẽ sửdụng đặc trưng ngôn ngữ như n-grams sau khi tách từ hay gán nhãn từ loại để huấnluyện và kiểm thử với bộ dữ liệu chuẩn được chọn ra từ các bước trước đó
1.1.3.5 Phân lớp dữ liệu
Dữ liệu đầu vào đã qua các bước tiền xử lý sẽ qua bộ phân lớp sử dụng cácthuật toán học máy Với cách tiếp cận bằng bộ từ vựng, bước này sẽ áp dụng cácluật ngữ pháp hay các quy tắc thay đổi ngữ nghĩa để tính ra trọng số cuối cùng sau
đó quyết định hướng ngữ nghĩa của bình luận
1.1.4. Những thách thức trong bài toán phân loại cảm xúc
nghiên cứu trong chuyên về phân tích cảm xúc người dùng ở Việt Nam cònít
luận, tán gẫu trên mạng của người dùng có số ký tự khá ngắn, thường chỉmột đến hai câu Cảm xúc của người dùng phụ thuộc nhiều vào nội dungngười dùng đang đọc, nghe hoặc tâm trạng của họ trước đó Nên việc phânloại cảm xúc người dung trong mạng xã hội là một vấn đề đầy thử thách
ký tự được thay đổi liên tục Nắm bắt được những biểu tượng cảm xúc đó thểhiện cho tâm trạng nào cũng là một thử thách khác biệt
chính thống nên ngôn ngữ bị viết tắt hoặc biến tướng đi rất nhiều, thậm chí là
Trang 16sai chính tả Chẳng hạn từ “Không” có thể viết tắt thành “ko”, “o”, hoặc “k”.Việc xử lý những ngoại lệ này cũng là một thử thách không nhỏ.
một sự vật hiện tượng được nói đến trong chính nội dung câu đó Ví dụ:
“Chiếc điện thoại này đẹp đấy”, thì quan điểm lúc này là tốt, và đối tượngđược nói tới là “chiếc điện thoại” Nhưng trong miền khai phá cảm xúc, thìđối tượng nói tới không phải là hẳn có sẵn Ví dụ: “Bài hát này rất hay, mỗilần nghe nó tôi lại cảm thấy buồn” thì đối tượng nói tới ở đây là “tôi” chứkhông phải là bài hát Đây là một thách thức lớn dành cho những nghiên cứusâu trong lĩnh vực này
1.2. Hướng tiếp cận giải quyết bài toàn phân loại cảm xúc dựa vào các
kỹ thuật học máy
Mục tiêu của học máy (Machine Learning) là xây dựng một giải thuật đểnhận biết được dữ liệu đầu vào mới từ những dữ liệu đã được huấn luyện trước đó
Có hai giai đoạn chính trong việc phân lớp dữ liệu, cụ thể:
- Giai đoạn huấn luyện: Từ tập dữ liệu huấn luyện đưa ra được mô hình chotừng lớp
- Giai đoạn áp dụng: Phân lớp văn bản mới dựa vào mô hình đã được xâydựng từ giai đoạn huấn luyện
Ở cả hai giai đoạn huấn luyện và áp dụng, dữ liệu đều phải qua hai pha chính
là Tiền xử lý dữ liệu (Data preprocessing) và trích chọn vec-tơ đặc trưng (Featureselection) Cụ thể các bước này như sau:
- Tiền xử lý dữ liệu (Data preprocessing): Ở bước này, dữ liệu sẽ được xử lý
để loại bỏ hay chỉnh sửa cho phù hợp với mục tiêu của bộ phân loại Với việc xử lýngôn ngữ tự nhiên, dữ liệu thu thập được sẽ chứa những thông tin dư thừa ( thẻHTML, PHP…) hoặc gặp những sai sót về ngữ pháp chính tả Tập dữ liệu thô sẽđược loại bỏ những thông tin dư thừa này hay chỉnh sửa lại những sai sót để đảmbảo cho dữ liệu đạt chuẩn yêu cầu về ngôn ngữ Ở pha tiếp theo, dữ liệu sẽ đượcphân tích thành các đơn vị nhỏ về cú pháp như tách câu, tách từ, gán nhãn hoặcnhận diện từ loại Những thông tin về các đơn vị ngôn ngữ này sẽ ảnh hưởng đến
Trang 17ngữ nghĩa của câu hay văn bản và sẽ được sử dụng trong việc lựa chọn đặc trưng đểxây dựng mơ hình phân lớp.
- Lựa chọn đặc trưng (Feature selection): Ở bước này, các thành phần ngơnngữ sẽ được lựa chọn hợp lý sao cho một văn bản cĩ thể được vec-tơ hĩa Cụ thể,một văn bản sẽ được biểu diễn như sau:
Trong đĩ
v1, v2 vn là tập các vec-tơ đặc trưngSau khi lựa chọn đặc trưng xong, ta cĩ thể áp dụng một trong nhiều bộ phân loại khác nhau ví dụ như Nạve Bayes hoặc Máy vec-tơ hỗ trợ (SVM)
1.2.1. Phân loại dựa trên Nạve Bayes
Nạve Bayes là kỹ thuật phân loại phổ biến trong học máy cĩ giám sát Ýtưởng chính của kỹ thuật này dựa vào xác suất cĩ điều kiện giữa từ hay cụm từ vànhãn phân loại để dự đốn văn bản mới cần phần loại thuộc lớp nào Nạve Bayesđược ứng dụng nhiều trong giải quyết các bài tốn phân loại văn bản [12]; xây dựng
bộ lọc thư rác tự động [13],[14]; hay trong bài tốn khai phá quan điểm [15],[16]bởi tính dễ hiểu, đễ triển khai cũng như độ chính xác tốt
Ý tưởng cơ bản của cách tiếp cận Nạve Bayes là sử dụng xác suất cĩ điềukiện giữa các đặc trưng và nhãn để dự đốn xác suất nhãn của một văn bản cần phânloại Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuấthiện của tất cả các đặc trưng trong văn bản đều độc lập với nhau Giả định đĩ làmcho việc tính tốn Nạve Bayes hiệu quả và nhanh chĩng hơn các phương pháp khác
vì khơng sử dụng việc kết hợp các đặc trưng để đưa ra phán đốn nhãn Kết quả dựđốn bị ảnh hưởng bởi kích thước tập dữ liệu, chất lượng của khơng gian đặctrưng…
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau:
Trang 18Áp dụng trong bài tốn phân loại, các dữ kiện gồm cĩ:
D: tập dữ liệu huấn luyện đã được vec-tơ hĩa dưới dạng
Các thuộc tính độc lập điều kiện đơi một với nhau
Theo định lý Bayes:
Theo tính chất độc lập điều kiện:
Trong đĩ:
là xác suất thuộc phân loại i khi biết trước mẫu X
xác suất là phân loại i
loại i
Các bước thực hiện thuật tốn Nạve Bayes:
thức
Trang 191.2.2. Phân loại dựa trên máy vec-tơ hỗ trợ (Support Vector Machine)
Máy vec-tơ hỗ trợ (Support Vector Machine - SVM) là một phuơng pháp
tìm một siêu phẳng (Hyper Plane) hay tập các siêu phẳng trong không gian hữu hạnchiều của các vec-tơ biểu diễn văn bản, phân chia các vec-tơ này thành 2 phần là hailớp của bộ phân loại Khoảng cách từ siêu phẳng tới điểm gần nhất được gọi là biêncủa bộ phân loại Khi có một vec-tơ mới, khoảng cách từ vec-tơ này đến đến siêuphẳng được tính toán, sau đó sẽ được xếp vào phân loại phù hợp với nó
Để đơn giản ta sẽ xét bài toán phân loại nhị phân, sau đó sẽ mở rộng vấn đề
ra cho bài toán phân nhiều lớp
Xét một ví dụ của bài toán phân loại hình 1.2 ở đó ta phải tìm một đườngthẳng sao cho bên trái nó toàn là các điểm đỏ, bên phải nó toàn là các điểm xanh.Bài toán mà dùng đường thẳng để phân chia này được gọi là phân loại tuyến tính(linear classification)
Hình 1.2: Mô tả về siêu phẳng trong SVM
Hàm tuyến tính phân biệt hai lớp như sau:
(1)Trong đó:
là vec-tơ trọng số hay vec-tơ chuẩn của siêu phẳng phân cách, T là kíhiệu chuyển vị
là độ lệch
Trang 20là véc tơ đặc trưng, làm hàm ánh xạ từ không gian đầu vào sangkhông gian đặc trưng.
Lưu ý cách dùng từ ở đây: điểm dữ liệu, mẫu… đều được hiểu là input vec-tơ
không gian đa chiều thì gọi đó là siêu phẳng
Giả sử tập dữ liệu của ta có thể phân tách tuyến tính hoàn toàn (các mẫu đềuđược phân đúng lớp) trong không gian đặc trưng (feature space), do đó sẽ tồn tại giá
huấn luyện
SVM tiếp cận giải quyết vấn đề này thông qua khái niệm gọi là lề, đườngbiên… (margin) Lề được chọn là khoảng cách nhỏ nhất từ đường phân cách đếnmọi điểm dữ liệu hay là khoảng cách từ đường phân cách đến những điểm gần nhất
Hình 1.3: Mô tả về đường biên trong SVM
Trong SVM, đường phân loại tốt nhất chính là đường có khoảng cách marginlớn nhất (tức là sẽ tồn tại rất nhiều đường phân cách xoay theo các phương khácnhau, và ta chọn ra đường phân cách mà có khoảng cách margin là lớn nhất)
Trang 21Hình 1.4: Mô tả về đường biên trong SVM
Ta có công thức tính khoảng cách từ điểm dữ liệu đến mặt phân cách nhưsau:
1.3. Kết luận chương
Đây là chương mở đầu của luận văn nhằm giới thiệu và tập trung xem xétmột cách tổng quan về bài toán phân loại cảm xúc người dùng trong mạng xã hội.Điều này giúp chúng ta có một cái nhìn sơ lược về bài toán, những thách thức cũngnhư khó khăn khi nghiên cứu lĩnh vực này Luận văn cũng nêu ra hướng nghiên cứu
sẽ được sử dụng trong mà luận văn sẽ áp dụng trong chương 2, chương 3
Trang 22CHƯƠNG 2: MÔ HÌNH BÀI TOÁN VÀ CÁC BƯỚC TRONG
PHÂN LOẠI CẢM XÚC NGƯỜI DÙNG
Trong chương này, luận văn trình bày chi tiết các bước xây dựng mô hình bàitoán từ thu thập dữ liệu, trích chọn đặc trưng đến sử dụng công cụ để ra được kếtquả khảo sát Nắm vững được phần này thì hoàn toàn có thể xây dựng lại bài toánvới các mô hình trích chọn đặc trưng khác nhau, các kỹ thuật phân loại khác nhauphục vụ cho việc phát triển các hướng nghiên cứu khác sau này
2.1. Mô hình tổng quát bài toán
Hình 2.1 Mô hình tổng quát của bài toán
Trang 23Đầu vào của mơ hình là tập các dữ liệu bình luận trên các website âm nhạcnhư ZingMp3, Keeng Các bình luận trên các website này cĩ dạng html hoặcjson Bộ Crawler sẽ tiến hành thu thập dữ liệu, loại bỏ các tag khơng cần thiết vàlưu trữ vào database (dưới dạng text).
Các dữ liệu bình luận thơ sẽ được tách từ, loại bỏ các từ dừng (các từ khơng
cĩ ý nghĩa trong việc biểu diễn cảm xúc), các ký tự đặc biệt, ký tự trắng, sửanhững lỗi sai chính tả Dữ liệu bình luận thơ lúc này cĩ thể gọi là dữ liệu đã làmmịn
Cơng việc tiếp theo là xây dựng vec-tơ đặc trưng cho tập bình luận đã làmmịn Mục đích của việc này là biểu diễn dữ liệu bình luận dưới dạng vec-tơ đặctrưng Vec-tơ là kiểu biểu diễn chuẩn để bước tiếp theo ta sử dụng các kỹ thuậtphân loại như Nạve Bayes, SVM Cĩ một số cách để xây dựng vec-tơ đặctrưng, phổ biến là N-Grams và Vector Space Model Kết quả của phần này làfile cĩ đuơi arff
Sau khi cĩ vec-tơ đặc trưng, ta tiến hành phân loại dựa vào kỹ thuật NạveBayes và SVM bằng cơng cụ Weka Trong phạm vi của luận văn, dữ liệu bìnhluận sẽ được phân loại thành một trong hai lớp “Cảm xúc tích cực” và “Cảm xúctiêu cực”
Cảm xúc tích cực là những cảm xúc miêu tả niềm hạnh phúc, vui vẻ, thíchthú, yêu thương Cảm xúc tiêu cực là những cảm xúc miêu tả về sự buồn bã, đauđớn, nhớ thương, chán nản v.v.v Việc phân loại cảm xúc này được phân loạinhư hình 2.2
Trang 24Bảng 2.1: Bảng phân loại cảm xúc tích cực, tiêu cực
Cuối cùng ta sẽ tiến hành tổng hợp, đánh giá, so sánh về kết quả đạt được.Các pha cụ thể sẽ được trình bày chi tiết ở các mục tiếp theo của luận văngồm thu thập dữ liệu, tiền xử lý dữ liệu, trích chọn đặc trưng sử dụng mơ hình n-grams và mơ hình vec-tơ khơng gian (Vector Space Model), phân loại sử dụnghai bộ phân loại Nạve Bayes và SVM
1.4. Pha thu thập dữ liệu
Luận văn thực hiện thu thập dữ liệu trên 2 website nhạc hàng đầu Việt nam làZingMp3 và Keeng
chuyện phiếm nhiều hơn là bày tỏ cảm xúc / cảm nhận về bài hát Do đĩ,luận văn sẽ tạm thời khơng sử dụng bình luận từ website này
thập dữ liệu bình luận theo 2 chủ đề là “Top 100 bài nhạc cách mạng haynhất”[19] và “Top 100 bài nhạc trẻ hay nhất”[20]
Trang 25Hình 2.2: Dữ liệu thô trên trang mp3.zing.vn
Để lấy được nội dung dưới dạng json của bình luận, luận văn sử dụng thưviện Gson[21] của Google Dữ liệu sau khi được crawl về sẽ được lưu trực tiếp vào
cơ sở dữ liệu như hình 2.3 để tiện xử lý sau này
Luận văn thu thập các bình luận từ 01/02/2015 đến 01/05/2015
Tổng số bình luận thu thập được là 13645 bình luận
Code chi tiết phần thu thập dữ liệu tại project EmotionClassifications đínhkèm trong phụ lục 01, file CrawlingZing.java
Hình 2.3: Dữ liệu sau khi crawl về lưu trữ vào cơ sở dữ liệu
Trang 261.5. Pha tiền xử lý dữ liệu
Trong lĩnh vực xử lý ngôn ngữ tự nhiên, pha tiền xử lý dữ liệu vô cùng quantrọng giúp hiệu chỉnh lại nội dung bình luận, bỏ những phần thừa Điều này sẽ gópphần tăng độ chính xác cho bộ phân loại
Pha tiền xử lý dữ liệu gồm 2 phần chính:
hoặc không liên quan gì đến tâm trạng người dùng hoặc dễ gây hiểu lầm.Đồng thời, lúc này mỗi bình luận cũng được chia vào một trong hai lớp
“Cảm xúc tích cực” và “Cảm xúc tiêu cực” luôn Công việc này đượcthực hiện bởi phương pháp thủ công Sau khi thực hiện phần này, ta được
1034 bình luận Bao gồm 512 bình luận có cảm xúc tích cực, và 522 bìnhluận có cảm xúc tiêu cực
chuẩn các từ viết tắt các thao tác chuẩn hóa được thực hiện như ví dụbảng 2.2 Tại đây, các khoảng cách trắng đã được loại bỏ Các từ viết tắthoặc ngôn ngữ không chính thống đã được làm chuẩn Tại phần này, toàn
bộ câu sẽ được chuyển về dạng ký tự chữ thường để tiện xử lý sau này.Các dấu câu cũng bị loại bỏ
Bảng 2.2: Ví dụ về chuẩn hóa dữ liệu trong pha tiền xử lý
Ví dụ về bình luận
trước chuẩn hóa
Bài này hay wá nghe hoài ko chán
sau khi đã chuẩn hóa
bài này hay quá nghe hoài không
chánCode chi tiết phần tiền xử lý dữ liệu tại project EmotionClassifications đínhkèm trong phụ lục 01, file ReadDataAfterHandle.java
Trang 271.6. Pha trích chọn đặc trưng và vec-tơ hĩa văn bản
Để áp dụng được hai bộ phân lớp Nạve Bayes hay SVM, ta phải chuẩn hĩađược dữ liệu đầu vào của hai bộ phân lớp này Cụ thể là từ các tập dữ liệu thu thậpđược, đối với mỗi bình luận, ta phải tìm ra được những đặc trưng của bình luận đĩ,
và chuẩn hĩ nĩ thành vec-tơ Mơ hình tổng thể của bài tốn phân loại cảm xúc sửdụng hai mơ hình trích chọn đặc trưng là n-grams và mơ hình khơng gian vec-tơ(Vector Space Model)
1.6.1. N-grams
Đây là mơ hình phổ biến nhất và dễ áp dụng vì tính đơn giản của nĩ Mơhình cĩ thể áp dụng với hầu hết bài tốn phân loại nĩi chung để xây dựng vec-tơđặc trưng
Với mơ hình N-grams, ta định nghĩa một mẫu các từ cĩ độ dài n Giá trị n cĩthể thay đổi với n =1,2,3, Ta cĩ thể thay đổi nhiều giá trị n khác nhau để tìm ra kếtquả tối ưu nhất Với n = 1 cịn được gọi là Unigram hay Bag Of Words, n = 2bigram, n = 3 trigram Mơ hình này rất tốt trong việc trích chọn đặc trưng ‘phủđịnh’ trong văn bản Chẳng hạn “khơng vui”, “khơng thích” là những mẫu phủ địnhlàm thay đổi hồn tồn cảm xúc của người dùng trong văn bản
Để hiểu hơn về cách trích chọn đặc trưng này ta xét một ví dụ xây dựng
vec-tơ cụ thể dưới đây
Chẳng hạn ta cĩ 2 bình luận:
Bảng 2.3 Các nội dung bình luận ví dụ cho n – gram
như sau:
Bảng 2.4 Túi từ vựng unigram
ID Từ vựng
1 Nghe
Trang 28Bảng 2.5 Vec-tơ đặc trưng của unigram
Vậy ta được 02 vec-tơ đặc trưng trong mô hình trích chọn đặc trưng unigram
Trang 29Bảng 2.7 Vec-tơ đặc trưng của bigrams
bài
Bàihát
Hátrất
Rấtbuồn
Tôikhông
Khôngthích
Thíchbài
HátnàyBình
Bình
Vậy ta được 02 vec-tơ đặc trưng trong mô hình trích chọn đặc trưng bigrams
Trang 30Áp dụng giải thuật:
Code chi tiết phần trích chọn đặc trưng theo mô hình Unigram tại projectEmotionClassifications đính kèm trong phụ lục 01, file TestNgramsMain.java.Chương trình sẽ chạy gồm 2 bước:
Sau khi chạy bước “Tạo túi từ vựng”, ta được bộ gồm 2210 từ, cũng chính là
2210 đặc trưng của phương pháp này Ví dụ như “kiếm”, “kiến”, “niệm”…Các đặc trưng này có thể mang nghĩa không liên quan gì tới miêu tả cảm xúchoặc đôi khi là vô nghĩa
Hình 2.4 Túi từ vựng được tạo bởi mô hình n-grams
Sau khi có “Túi từ vựng”, chương trình sẽ tiến hành quét các bình luận đểxác định xem các đặc trưng trên có xuất hiện trong mỗi bình luận hay không Mỗibình luận là một vec-tơ gồm 2210 đặc trưng ở trạng thái 0 hoặc 1 Các vec-tơ đượcxây dựng theo 3 nhóm: nhạc trẻ, nhạc cách mạng và cả hai loại trên