Tải bản đầy đủ (.doc) (59 trang)

Phân loại cảm xúc người dùng trong mạng xã hội

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.09 MB, 59 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

PHÂ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


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

PHÂN LOẠI CẢM XÚC NGƯỜI DÙNG
TRONG MẠNG XÃ HỘI
CHUYÊN NGÀNH :

MÃ SỐ:

HỆ THỐNG THÔNG TIN

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



1

LỜ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


2

LỜ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 Đình
Quế, 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ảng
viên trong 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 đã 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


3

MỤC LỤC

LỜI CAM ĐOAN....................................................................................................1
LỜI CẢM ƠN..........................................................................................................2
MỤC LỤC................................................................................................................ 3
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..................................................................................................................8
CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN PHÂN LOẠI CẢM XÚC NGƯỜI
DÙNG..................................................................................................................... 10
1.1. Bài toá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 toá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 toán phân loại cảm xúc......................................12
1.1.4. Những thách thức trong bài toán phân loại cảm xúc..........................................13
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
..........................................................................................................................................14
1.1.5. Phân loại dựa trên Naïve Bayes.........................................................................15
1.1.6. 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 TOÁ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 toán........................................................................................20
1.4. Pha thu thập dữ liệu...................................................................................................22
1.5. Pha tiền xử lý dữ liệu.................................................................................................23
1.6. Pha trích chọn đặc trưng và vec-tơ hóa văn bản.......................................................24
1.1.7. N-grams..............................................................................................................25
1.1.8. Mô hình không gian vec-tơ (Vector Space Model)............................................29
1.7. Phân loại sử dụng SVM & Naïve Bayes với Weka...................................................37
1.1.14. Giới thiệu về file arff........................................................................................37

1.1.15. Sử dụng Weka để phân loại SVM và Naïve bayes...........................................37
1.8. Kết luận chương........................................................................................................39

CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ................................41
1.9. Thông tin dữ liệu và môi trường thực nghiệm..........................................................41
1.10. Phát biểu bài toán thực nghiệm...............................................................................42
1.11. Kết quả thử nghiệm ................................................................................................42
2.1.1. Bài toán 1: So sánh mô hình Unigram và VSM trong bộ phân loại Support
Vector Machine............................................................................................................44
2.1.2. Bài toán 2: So sánh mô hình Unigram và VSM trong bộ phân loại Naïve Bayes
......................................................................................................................................45


4

2.1.3. Bài toán 3: So sánh tính hiệu quả của 2 bộ phân loại SVM và Naïve Bayes với
phương pháp xây dựng vec-tơ đặc trưng Unigram......................................................47
2.1.4. Bài toán 4: So sánh tính hiệu quả của 2 bộ phân loại SVM và Naïve Bayes với
phương pháp xây dựng vec-tơ đặc trưng Vector Space Model....................................48
1.12. Thảo luận, đánh giá, so sánh...................................................................................49
1.13. Kết luận chương......................................................................................................50

KẾT LUẬN............................................................................................................52
DANH MỤC CÁC TÀI LIỆU THAM KHẢO....................................................55
PHỤ LỤC...............................................................................................................57


5

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT

Viết tắt
NLP
HCI
VSM
SVM
TF
TF-IDF

Tiếng Anh
Natural Language Processing
Human Computer Interaction
Vector Space Model

Tiếng Việt
Xử lý ngôn ngữ tự nhiên
Tương tác người – máy
Mô hình không gian vec-tơ

Support Vector Machine
Term Frequency
Term Frequency–Inverse Document
Frequency

Máy vec-tơ hỗ trợ
Tần suất từ
Tần suất từ - tuần suất
ngược trong văn bản


6


DANH SÁCH BẢNG
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 .....................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.........................................................18
Hình 2.1. Mô hình tổng quát của bài toá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 toán TF, IDF với mô hình VSM.....................................35
Hình 2.8. Kết quả trích chọn đặc trưng với mô hình VSM................................36
Hình 2.9. Nhóm 3 vec-tơ khảo sát với mô hình VSM..........................................36
Hình 2.10: Mẫu file arff chuẩn.............................................................................37
Hình 2.11: Các bước sử dụng Weka để phân loại dữ liệu..................................39
Hình 2.12: Kết quả đánh giá mô hình bài toán...................................................39
Hình 3.1: Biểu đồ so sánh mô hình unigram và VSM trong SVM với k-folds=5
................................................................................................................................. 44
Hình 3.2: Biểu đồ so sánh mô hình unigram và VSM trong SVM với k-folds=10
................................................................................................................................. 45
Hình 3.4: Biểu đồ so sánh mô hình Unigram và VSM trong Naïve Bayes với kfolds=5.................................................................................................................... 46
Hình 3.5: Biểu đồ so sánh mô hình Unigram và VSM trong Naïve Bayes với kfolds=10..................................................................................................................46
Hình 3.6: Kết quả so sánh hai bộ phân lớp SVM và Naïve Bayes với Unigram
với k-folds=5........................................................................................................... 47
Hình 3.7: Kết quả so sánh hai bộ phân lớp SVM và Naïve Bayes với Unigram
với k-folds=10.........................................................................................................48
Hình 3.8: Kết quả so sánh hai bộ phân lớp SVM và Naïve Bayes với VSM với
k-folds=5 & k-folds=10..........................................................................................49



7

DANH SÁCH HÌNH VẼ
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 .....................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.........................................................18
Hình 2.1. Mô hình tổng quát của bài toá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 toán TF, IDF với mô hình VSM.....................................35
Hình 2.8. Kết quả trích chọn đặc trưng với mô hình VSM................................36
Hình 2.9. Nhóm 3 vec-tơ khảo sát với mô hình VSM..........................................36
Hình 2.10: Mẫu file arff chuẩn.............................................................................37
Hình 2.11: Các bước sử dụng Weka để phân loại dữ liệu..................................39
Hình 2.12: Kết quả đánh giá mô hình bài toán...................................................39
Hình 3.1: Biểu đồ so sánh mô hình unigram và VSM trong SVM với k-folds=5
................................................................................................................................. 44
Hình 3.2: Biểu đồ so sánh mô hình unigram và VSM trong SVM với k-folds=10
................................................................................................................................. 45
Hình 3.4: Biểu đồ so sánh mô hình Unigram và VSM trong Naïve Bayes với kfolds=5.................................................................................................................... 46
Hình 3.5: Biểu đồ so sánh mô hình Unigram và VSM trong Naïve Bayes với kfolds=10..................................................................................................................46
Hình 3.6: Kết quả so sánh hai bộ phân lớp SVM và Naïve Bayes với Unigram
với k-folds=5........................................................................................................... 47
Hình 3.7: Kết quả so sánh hai bộ phân lớp SVM và Naïve Bayes với Unigram

với k-folds=10.........................................................................................................48
Hình 3.8: Kết quả so sánh hai bộ phân lớp SVM và Naïve Bayes với VSM với
k-folds=5 & k-folds=10..........................................................................................49


8

MỞ ĐẦ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,… Internet
khô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ùng
bà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ác
vấn đề mà chính người dùng đó đang đọc. Có rất nhiều các nghiên cứu trong việc
khai phá nội dung văn bản để tìm ra những điều mới mẻ phục vụ kinh doanh. Chẳng
hạ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ên
Internet để đưa ra kết luận một sản phẩm có tốt hay không? Phản ứng của khách
hà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úc
ngườ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 trang
thô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ười
dù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ếp
cậ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 đến
việ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ùng
cho 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ích cá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ủa bài toán này. Đánh giá những thành phần và những yếu tố quan trọng trong việc

khai 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ên
Support Vectors Machine và Naive Bayes. Đánh giá, so sánh hai phương pháp này
vớ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úc
củ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
mp3.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.


9

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 vectơ (Vector Space Model) và xử lý dữ liệu của các thuật toán học máy, đi sâu hơn
vào nghiên cứu thuật toán SVM & Naï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 toá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ướng
tiế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ới
thiệ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 toán.
Phần cuối của chương 1 luận văn sẽ giới thiệu về các thuật toán học máy.
Chươ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: 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ước
cuối cùng là sử dụng Weka để áp dụng các bộ phân loại Naïve Bayes và Máy vec-tơ
hỗ trợ (SVM) vào mô hình bài toá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 toá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.


10

CHƯƠ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ồi
hà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ình
luận… Ẩn trong những bình luận đó là những cảm xúc vui, buồn, yêu, ghét… của
người dùng. Những thứ mang hướng “cảm tính” như thế nếu không phải là con
ngườ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ười
dù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át
hiệ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 (Liu
2012) [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.
Gerrod 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ích


11

thích khác nhau trong những điều kiện, hoàn cảnh khác nhau mà cảm xúc của con
ngườ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ại
trong 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úc
phụ 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ảm
xú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 – Lexicon
Based (Hu and Liu. 2004) và dựa trên phương pháp học máy - Machine Learning
Based 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áp
dựa trên học máy, ví dụ: SVM, Naïve Bayes, kết quả phụ thuộc nhiều vào cách trích
chọ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ông
gian - Vector Space Model (Taner Danisman & Adil Alpkocak. 2008) [10] cũng
cho 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ày

còn ít, chẳng hạn như “A featủe-based opinion mining model on product reviews in
Vietnames” 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ên
phươ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 Naïve Bayes và
máy vec-tơ hỗ trợ (Support Vector Machine).


12

1.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ên
nhóm nghiên cứu của Pravesh đã đưa ra mô hình chung cho bài toán này trong hội
nghị quốc tế về công nghệ tính toán mềm năm 2014 (International Journal on Soft
Computing-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ện
bước này có thể sử dụng cơ sở dữ liệu của trang web hoặc sử dụng Crawler hoặc
Agent để thực hiện tự động. Kết quả bước này sẽ thu thập được toàn bộ các định
dạng dữ liệu của website đối tượng ở dạng HTML hay TXT, dữ liệu này sẽ được đi
qua 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ặc
PHP, 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ời
gian, 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ận
ngườ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ặc

ngữ 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ới
việc Gán nhãn hay Trích chọn đặc trưng ở bước sau.
1.1.3.3. Gán nhãn dữ liệu


13

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ựa
và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ấn
luyệ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ác
thuậ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ác
luậ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
• Có nhiều nghiên cứu tiếng việt về khai phá quan điểm, tuy nhiên những
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.
• Do một số đặc điểm của của ngôn ngữ trên mạng xã hội, ví dụ nội dung bình
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 dung
người dùng đang đọc, nghe hoặc tâm trạng của họ trước đó. Nên việc phân
loại cảm xúc người dung trong mạng xã hội là một vấn đề đầy thử thách.
• Các ký tự cảm xúc (emoticons) trên mạng xã hội khá đa dạng, có nhiều loại
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.
• Trong mạng xã hội, do nội dung do người dùng viết ra không phải là văn bản
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à
sai 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ỏ.


14

• Đối với bài toán phân tích quan điểm nói chung, ý kiến của người dùng là về
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ỗi
lầ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ứu
sâ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 cho
từ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ây
dự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 (Feature
selection). 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 để đảm
bảo cho dữ liệu đạt chuẩn yêu cầu về ngôn ngữ. Ở pha tiếp theo, dữ liệu sẽ được
phâ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ặc
nhậ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
ngữ 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.


15

- Lựa chọn đặc trưng (Feature selection): Ở bước này, các thành phần ngôn
ngữ 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:
Doci = {v1, v2, … vn }
Trong đó
Doci là văn bản thứ i của tập dữ liệu.
v1, v2... vn là tập các vec-tơ đặc trưng
Sau 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ư Naïve Bayes hoặc Máy vec-tơ hỗ trợ (SVM)

1.1.5. Phân loại dựa trên Naïve Bayes
Naï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ự đoán văn bản mới cần phần loại thuộc lớp nào. Naïve Bayes
được ứng dụng nhiều trong giải quyết các bài toá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 toá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 Naïve Bayes là sử dụng xác suất có điều
kiện giữa các đặc trưng và nhãn để dự đoán xác suất nhãn của một văn bản cần phân
loại. Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất
hiệ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àm
cho việc tính toán Naï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 đoán nhãn. Kết quả dự
đoá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 đặc
trưng…
Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:
Áp dụng trong bài toá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
Ci: phân loại i, với i = {1,2,…,m}.
Các thuộc tính độc lập điều kiện đôi một với nhau.
Theo định lý Bayes:


16

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.
xác suất thuộc tính thứ k mang giá trị x k khi đã biết X thuộc phân
loại i.
Các bước thực hiện thuật toán Naïve Bayes:
Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính

Bước 2: Phân loại



, ta cần tính xác suất thuộc từng phân

loại khi đã biết trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo công
thức


17

1.1.6. 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
phân loại được đề xuất bởi Cortes & Vapnik [17]. Ý tưởng chính của thuật toán là
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ạn
chiề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à hai
lớ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ên
củ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êu
phẳ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 đường

thẳ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
là véc tơ đặc trưng,

làm hàm ánh xạ từ không gian đầu vào sang

không gian đặc trưng.
Tập dữ liệu đầu vào gồm N mẫu input vec-tơ {x 1, x2,...,xN}, với các giá trị
nhãn tương ứng là {t1,…,tN} trong đó

.


18

Lưu ý cách dùng từ ở đây: điểm dữ liệu, mẫu… đều được hiểu là input vec-tơ
xi; nếu là không gian 2 chiều thì đường phân cách là đường thẳng, nhưng trong
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á
trị tham số w và b theo (1) thỏa

cho những điểm có

cho những điểm có nhãn
, vì thế mà



cho mọi điểm dữ liệu

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ề, đường
biên… (margin). Lề được chọn là khoảng cách nhỏ nhất từ đường phân cách đến
mọ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 margin
lớ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ác
nhau, và ta chọn ra đường phân cách mà có khoảng cách margin là lớn nhất).

Hình 1.4: Mô tả về đường biên trong SVM


19

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ét

mộ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ũng
như 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.


20

CHƯƠ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ài
toá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ết
quả 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án
vớ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 nhau
phụ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


21

Đầ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ạc
như ZingMp3, Keeng. Các bình luận trên các website này có dạng html hoặc
json. 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ửa
nhữ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àm
mị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àm
mị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ơ đặc
trư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ật
phân loại như Naïve Bayes, SVM. Có một số cách để xây dựng vec-tơ đặc
trư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 Naïve
Bayes và SVM bằng công cụ Weka. Trong phạm vi của luận văn, dữ liệu bình
luậ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úc
tiê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ích
thú, 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ại
như hình 2.2.


22

Bả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ăn
gồ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 ngrams và mô hình vec-tơ không gian (Vector Space Model), phân loại sử dụng
hai bộ phân loại Naï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.
• Đối với Keeng, nội dung bình luận khá ngắn, thiên về chát chít, bàn
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.
• Đối với ZingMp3, dữ liệu bình luận vừa đủ. Tiến trình Crawler sẽ thu
thập dữ liệu bình luận theo 2 chủ đề là “Top 100 bài nhạc cách mạng hay
nhất”[19] và “Top 100 bài nhạc trẻ hay nhất”[20].


23

Hì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 đính
kè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

1.5.

Pha tiền xử lý dữ liệu



×