Tải bản đầy đủ (.pdf) (87 trang)

ỨNG DỤNG MÁY VECTƠ HỖ TRỢ PHÂN LOẠI Ý KIẾN CỦA NGƯỜI XEM TRÊN CÁC TRANG WEB PHIM TRỰC TUYẾN LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

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 (6.31 MB, 87 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

PHÙNG VĂN HÒA

ỨNG DỤNG MÁY VECTƠ HỖ TRỢ PHÂN LOẠI Ý KIẾN CỦA
NGƯỜI XEM TRÊN CÁC TRANG WEB PHIM TRỰC TUYẾN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Đà Nẵng – Năm 2018


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

PHÙNG VĂN HÒA

ỨNG DỤNG MÁY VECTƠ HỖ TRỢ PHÂN LOẠI Ý KIẾN CỦA
NGƯỜI XEM TRÊN CÁC TRANG WEB PHIM TRỰC TUYẾN

Chuyên ngành: Khoa học máy tính
Mã ngành: 60.48.01.01

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. Phạm Minh Tuấn


Đà Nẵng – Năm 2018


i

LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực
tiếp của TS. Phạm Minh Tuấn.
Những nội dung trình bày trong luận văn là những kiến thức của riêng cá nhân
tơi tích lũy trong q trình học tập, nghiên cứu, khơng sao chép lại một cơng trình nghiên
cứu hay luận văn của bất cứ tác giả nào khác.
Trong nội dung của luận văn, những phần tơi nghiên cứu, trích dẫn đều được nêu
trong phần các tài liệu tham khảo, có nguồn gốc, xuất xứ, tên tuổi của các tác giả, nhà
xuất bản rõ ràng.
Những điều tơi cam kết hồn tồn là sự thật, nếu sai, tơi xin chịu mọi hình thức
xử lý kỷ luật theo quy định.
TÁC GIẢ LUẬN VĂN
PHÙNG VĂN HÒA


ii

ỨNG DỤNG MÁY VECTƠ HỖ TRỢ PHÂN LOẠI Ý KIẾN BÌNH LUẬN
NGƯỜI DÙNG XEM PHIM TRỰC TUYẾN
Học viên:Phùng Văn Hịa
Mã số: 60.48.01.01

Khóa: 32


Chun ngành: Khoa học máy tính
Trường Đại học Bách khoa - ĐHĐN

Tóm tắt - Quan điểm và phản hồi của cộng đồng luôn được chứng minh là nguồn dữ liệu
cần thiết và có giá trị cho các cơng ty và tổ chức. Với sự sẵn có của một khối lượng lớn dữ
liệu đánh giá trực tuyến, phân tích cảm xúc ngày càng trở nên quan trọng. Đối với tiếng
Anh, có rất nhiều bộ dữ liệu và mơ hình cho mục đích này nhưng vẫn cịn tương đối mới
đối với ngôn ngữ tiếng Việt. Một phần là do thiếu một kho dữ liệu từ đã được chú thích,
dữ liệu huấn luyện có nhãn, các mơ hình phân lớp cảm xúc mã nguồn mở và các công cụ
phục vụ cho xử lý ngôn ngữ tiếng Việt.
Trong luận văn này, mục tiêu nghiên cứu là thiết kế, khởi tạo và đánh giá mơ hình phân
lớp cảm xúc bình luận tiếng Việt bằng cách sử dụng Thuật toán Máy Vector (SVM) để
phân lớp nhận xét bình luận phim tiếng Việt là tích cực hay tiêu cực. Để đánh giá hiệu suất
của SVM, một số mơ hình phân loại khác và nhiều phương pháp trích xuất tính năng được
sử dụng và để phân tích so sánh, ba biện pháp được sử dụng: Precision, Recall and FMeasure.
Từ khóa – Máy vector hỗ trợ, Mơ hình phân lớp, phân tích cảm xúc, nlp, đánh giá phân
lớp.

APPLICATION OF SVM IN SENTIMENT CLASSIFICATION OF USERS
REVIEWS ON ONLINE MOVIE WEBSITES
Abstract - Community's view and feedback have always proved to be the most essential and
valuable resource for companies and organizations. Giving the availability of a large volume
of online review data, sentiment analysis becomes increasingly important. For the English
language, There are many datasets and models for this purpose but is still relatively new for
Vietnamese. It is partly due to the lack of a large annotated corpus, labelled training data, opensource sentiment classification models and tools for Vietnamese.
In this thesis, the research goal is to design, instantiate and evaluate a Vietnamese sentiment
classification model using the Support Vector Machine algorithm (SVM) which evaluates
the polarity of a piece of vietnamese film's comments being either positive or negative. To
benchmark the performance of SVM, several other classifier model and multiple feature
extraction methods are used and for comparative analysis, three measures are used:

Precision, Recall and F-Measure.
Key words - Support Vector Machine, classification model, sentiment analysis, nlp,
classification evaluation.


iii

LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn chân thành và sâu sắc đến thầy Phạm Minh Tuấn, thầy
đã dành nhiều thời gian tận tình chỉ bảo, hướng dẫn em trong suốt quá trình tìm hiểu,
triển khai và nghiên cứu đề tài. Thầy là người đã định hướng và đưa ra nhiều góp ý trong
q trình em thực hiện luận văn này.
Em xin gửi lời cảm ơn chân thành tới tồn thể các thầy giáo, cơ giáo trong khoa
Cơng nghệ thông tin - Trường Đại học Bách Khoa Đà Nẵng đã dạy bảo tận tình, trang
bị cho em những kiến thức bổ ích và tạo điều kiện thuận lợi trong suốt quá trình em học
tập và nghiên cứu tại trường. Các kiến thức, kinh nghiệm quý báu của các thầy cơ giáo
khơng chỉ giúp cá nhân em hồn thiện hệ thống kiến thức trong học tập mà còn giúp em
ứng dụng các kiến thức đó trong cơng việc hiện tại.
Do có nhiều hạn chế về thời gian và kiến thức nên luận văn khơng tránh khỏi những
thiếu sót, rất mong nhận được những ý kiến đóng góp của quý thầy cô và các bạn cùng
quan tâm.
Xin chân thành cảm ơn!

HỌC VIÊN
PHÙNG VĂN HÒA


iv

MỤC LỤC

LỜI CAM ĐOAN .........................................................................................................i
LỜI CẢM ƠN ........................................................................................................... iii
MỤC LỤC .................................................................................................................. iv
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ................................................vii
DANH SÁCH BẢNG ...............................................................................................viii
DANH SÁCH HÌNH VẼ ............................................................................................ ix
MỞ ĐẦU ..................................................................................................................... 1
CHƯƠNG 1: TỔNG QUAN BÀI TOÁN PHÂN LOẠI Ý KIẾN NGƯỜI DÙNG ....... 5
1.1. Bài toán phân loại ý kiến bình luận người dùng xem phim trực tuyến ............... 5
1.2. Các nghiên cứu liên quan bài toán phân lớp cảm xúc bình luận người dùng hiện
nay ......................................................................................................................... 8
1.2.1. Các kỹ thuật liên quan đến bài toán phân loại cảm xúc bình luận ............... 8
1.2.2. Các nghiên cứu liên quan đến bài toán phân loại ý kiến người dùng .......... 8
1.2.3. 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 ................................................................................................................ 9
1.3. Xử lý ngôn ngữ tự nhiên ................................................................................. 10
1.3.1. Khái niệm ................................................................................................ 10
1.3.2. Các bước xử lý......................................................................................... 10
1.3.3. Ứng dụng ................................................................................................. 11
1.4. Các bài toán và khái niệm cơ bản liên quan..................................................... 12
1.4.1. Biểu thức chính quy (regular expressions) ............................................... 12
1.4.2. Corpus ..................................................................................................... 16
1.4.3. Morphological Analysis (phân tích hình thái) .......................................... 17
1.4.4. Tokenization (tách từ) .............................................................................. 17
1.4.5. Ambiguous (nhập nhằng nghĩa) ............................................................... 19
1.4.6. Stopwords (từ dừng) ................................................................................ 20
1.4.7. Named Entities Recognition (nhận dạng tên thực thể) .............................. 21
1.4.8. Lemmatization và Stemming ................................................................... 21
1.4.9. Part of Speech (gán nhãn từ loại) ............................................................. 22
1.5. Khó khăn trong xử lý ngơn ngữ tự nhiên tiếng việt ......................................... 23

1.6. Trích xuất đặc trưng ........................................................................................ 25


v

1.6.1. TF-IDF .................................................................................................... 25
1.6.2. Bag-of-Word (mơ hình túi từ) .................................................................. 27
1.6.3. Word2Vec ............................................................................................... 27
CHƯƠNG 2: MÁY HỌC VECTƠ HỖ TRỢ ............................................................. 30
2.1. Tổng quan về bài toán phân lớp ...................................................................... 30
2.1.1. Khái niệm ................................................................................................ 30
2.1.2. Một số thuật toán phân lớp phổ biến ........................................................ 32
2.1.2.1. Naive Bayes ....................................................................................... 32
2.1.2.2. K-Nearest Neighbors .......................................................................... 33
2.1.2.3. Maximum Entropy ............................................................................. 33
2.1.3. Đánh giá mô hình phân loại ..................................................................... 34
2.1.4. Phân tích giá trị đơn ................................................................................. 37
2.2. Support Vector Machine (SVM) ..................................................................... 38
2.2.1. Giới thiệu................................................................................................. 38
2.2.2. Cơ sở toán học ......................................................................................... 40
2.2.2.1. Ý tưởng .............................................................................................. 40
2.2.2.2. Xây dựng bài toán tối ưu cho SVM .................................................... 41
2.2.3. Biên mềm (Soft Margin) .......................................................................... 43
2.2.4. Các hàm thiệt hại cho SVM ..................................................................... 46
2.3. Hàm hạt nhân SVM (Kernel) .......................................................................... 46
2.3.1. Giới thiệu................................................................................................. 46
2.3.2. Cơ sở toán học ......................................................................................... 47
2.3.3. Tính chất hàm hạt nhân ............................................................................ 49
2.4. Phân lớp cảm xúc bình luận phim bằng SVM.................................................. 50
2.4.1. Thu thập dữ liệu ....................................................................................... 51

2.4.2. Tiền xử lý ................................................................................................ 51
2.4.2.1. Làm sạch dữ liệu ................................................................................ 51
2.4.2.2. Tách từ ............................................................................................... 52
2.4.3. Trích xuất đặc trưng bình luận ................................................................. 53
2.4.3.1. Trích xuất đặc trưng TF-IDF .............................................................. 53
2.4.3.2. Giảm chiều dữ liệu ............................................................................. 54
2.4.4. Huấn luyện và đánh giá mơ hình .............................................................. 55


vi

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ ..................................... 58
3.1. Dữ liệu, công cụ và môi trường thực hiện ....................................................... 58
3.2. Tiền xử lý dữ liệu............................................................................................ 58
3.3. Trích xuất đặc trưng bình luận ........................................................................ 62
3.4. Huấn luyện mơ hình SVM và đánh giá............................................................ 64
KẾT LUẬN ............................................................................................................... 69
DANH MỤC CÁC TÀI LIỆU THAM KHẢO ........................................................... 71
PHỤ LỤC .................................................................................................................. 73


vii

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt


NLP

Natural Language Processing

Xử lý ngôn ngữ tự nhiên

SVM

Support Vector Machine

Máy vec-tơ hỗ trợ

TF

Term Frequency

Tần suất từ

IDF

Inverse Document Frequency

Tần số tài liệu nghịch đảo

KNN

K-Nearest Neighbors

K-láng giềng gần


MaxEnt

Maximum Entropy

Entropy cực đại

RBF

Radial Basis Function

Hàm cơ sở bán kính

SVD

Singular Value Decomposition

Phân tích giá trị đơn

NB

Naive Bayes
Precision

Độ chính xác

Recall

Độ bao phủ

Corpus


Khối dữ liệu văn bản

BOW

Bag of Words

Túi đựng Từ

ACC

Accuracy

Độ chính xác

TF-IDF

Term Frequency–Inverse
Document Frequency

Tần suất từ - tuần suất
ngược trong văn bản


viii

DANH SÁCH BẢNG
Bảng 1.1: Bảng các ký tự đặc biệt dùng trong Regex ................................................. 16
Bảng 2.1: Cấu trúc biểu diễn ma trận nhầm lẫn .......................................................... 34
Bảng 2.2: So sánh điểm tương đồng giữa SVM, Mạng Nơron.................................... 39

Bảng 2.3: Một số hàm SVM kernel thông dụng ......................................................... 49
Bảng 2.4: Một số bình luận được làm sạch ................................................................ 52
Bảng 2.5: Một số bình luận tiến hành tách từ thơng thường ....................................... 53
Bảng 2.6: Một số bình luận tiến hành tách từ áp dụng regex nâng cao ....................... 53
Bảng 3.1: Môi trường, thư viện và dữ liệu thực nghiệm ............................................. 58
Bảng 3.2: Kết quả phân lớp SVM trên tập dữ liệu kiểm thử ....................................... 67
Bảng 3.3: Kết quả phân lớp SVM trên tập dữ liệu kiểm thử không áp dụng regex nâng
cao ở bước tiền xử lý ................................................................................................. 67
Bảng 3.4: So sánh hiệu quả của một số phương pháp trích xuất đặc trưng và giải thuật
phân lớp phổ biến ...................................................................................................... 68


ix

DANH SÁCH HÌNH VẼ
Hình 1.1: Các loại hình video theo nhu cầu được xem nhiều nhất tại Việt Nam ........... 6
Hình 1.2: Các thiết bị được sử dụng để xem video trực tuyến ...................................... 7
Hình 1.3: Mơ hình phân lớp cảm xúc bình luận SVM .................................................. 7
Hình 1.4: Quy trình xử lý ngơn ngữ tự nhiên phổ biến ............................................... 11
Hình 1.5: Các bước tiền xử lý dữ liệu ........................................................................ 11
Hình 1.6: Ví dụ tách từ trong câu ............................................................................... 18
Hình 1.7: Phân tích gán nhãn cho các từ trong câu ..................................................... 20
Hình 1.8: Gán nhãn loại từ cho các từ trong câu ........................................................ 23
Hình 1.9: Trích xuất đặc trưng bằng mơ hình Bag-of-Word ....................................... 27
Hình 1.10: Biểu diễn từ Queen bằng phương pháp one-hot-vector ............................. 28
Hình 1.11: Biểu diễn từ bằng phương pháp word2vec................................................ 28
Hình 1.12: Minh họa 2 mơ hình CBOW và Skip-gram............................................... 29
Hình 2.1: Minh họa hai mơ hình học giám sát và học khơng giám sát ........................ 31
Hình 2.2: Ma trận nhầm lẫn cho mơ hình phát hiện ảnh mèo ..................................... 35
Hình 2.3: Minh họa độ chính xác và độ bao phủ ........................................................ 36

Hình 2.4: Siêu phẳng phân tách dữ liệu trong không gian 𝑹𝟐 và 𝑹𝟑 ......................... 39
Hình 2.5: Các mặt phẳng phân chia 2 lớp dữ liệu ....................................................... 40
Hình 2.6: Một số siêu phẳng phân chia 2 lớp dữ liệu trong đó mặt phẳng 𝑯𝟐 là tối ưu
nhất............................................................................................................................ 41
Hình 2.7: Siêu phẳng với lề cực đại trong khơng gian 𝑹𝟐 ......................................... 42
Hình 2.8: Xuất hiện điểm dữ liệu nhiễu ..................................................................... 44
Hình 2.9: Dữ liệu gần như khơng thể phân tách tuyến tính ......................................... 44
Hình 2.10: Bổ sung thêm biến slack 𝝃𝒏 đối với các điểm nhiễu ................................ 45
Hình 2.11: Hàm hạt nhân chuyển dữ liệu từ khơng gian 𝑹𝟐 chiều sang 𝑹𝟑 ............... 47
Hình 2.12: Quy trình xây dựng phân lớp cảm xúc bình luận phim trực tuyến ............. 51
Hình 2.13: Nén ảnh bằng phương pháp SVD. Với số chiều càng giảm nhiều thì ảnh
càng mất nhiều chi tiết so với ảnh gốc ....................................................................... 54
Hình 2.14: Phân lớp SVM sử dụng và không sử dụng tham số trọng số lớp
class_weight .............................................................................................................. 55
Hình 2.15: Đường bao phân lớp SVM với các giá trị C khác nhau ............................. 56
Hình 2.16: Đường bao phân lớp SVM với các giá trị gamma khác nhau .................... 56


x

Hình 3.1: Biểu đồ số lượng dữ liệu bình luận và tổng số token riêng biệt trong các bình
luận............................................................................................................................ 59
Hình 3.2: Biểu đồ phân bố độ dài các bình luận tích cực ............................................ 60
Hình 3.3: Biểu đồ phân bố độ dài các bình luận tiêu cực ............................................ 60
Hình 3.4: WordCloud bình luận tích cực.................................................................... 61
Hình 3.5: WordCloud bình luận tiêu cực.................................................................... 62
Hình 3.6: 40 từ có điểm trung bình tf-idf cao nhất trong các bình luận thuộc 2 lớp dữ
liệu huấn luyện .......................................................................................................... 63
Hình 3.7: Biểu đồ tương quan giữa số chiều dữ liệu và lượng thông tin được giữ lại . 64
Hình 3.8: Biểu đồ nhiệt độ chính xác của SVM sử dụng kernel linear với các giá trị C

và class_weight khác nhau ......................................................................................... 65
Hình 3.9: Biểu đồ nhiệt độ chính xác của SVM sử dụng kernel rbf với các giá trị C,
class_weight, gamma khác nhau ................................................................................ 66


1

MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay, ngành công nghiệp điện ảnh đang bùng nổ khiến cho người xem khó
khăn trong việc chọn phim khó khăn hơn. Ngồi ra khán giả càng ngày càng khó tính
hơn và bận rộn nhiều hơn nên trước khi xem một bộ phim nào đó, họ cân nhắc đủ thứ
từ nội dung, xem trailer, diễn viên, đạo diễn, nhận xét phim, điểm phim, thậm chí là cả
kinh phí làm phim để quyết định những phim đáng xem mà khơng lãng phí thời gian.
Đa phần người xem vẫn thường có xu hướng dựa vào những bình luận, nhận xét phim
từ những người xem trước để quyết định việc xem phim vì nó cung cấp một cái nhìn
tổng qt về phim nhanh chóng và thực tế. Do đó, những lời bình luận về phim đóng vai
trị rất quan trọng trong việc quyết định xem phim của người xem.
Có nhiều lý do khiến cho việc đọc bình luận phim là không nên. Một khi chúng
ta đọc những lời bình luận, nhận xét ấy, trí nhớ ngắn hạn của chúng ta sẽ lưu giữ chúng
và ít nhiều, việc đó sẽ ảnh hưởng tới cảm xúc của chúng ta khi xem phim. Ngồi ra, tổng
số các bình luận, nhận xét từ người xem có thể rất lớn và một số bình luận có thể cần
phải có kiến thức chun ngành để nhận biết được đó là bình luận khen hay chê. Do đó
cần phải có một cơng cụ khai thác dữ liệu để khám phá thông tin từ các lời bình luận
phim nhằm tiết kiệm thời gian và cơng sức cho người xem trong việc lựa chọn phim để
xem.
May mắn là tốc độ xử lý của máy tính càng ngày càng lớn và sự phát triển mạnh
mẽ của trí tuệ nhân tạo đã giúp máy tính thực sự trở thành một công cụ đắc lực, hỗ trợ
con người trong nhiều lĩnh vực, trong đó có lĩnh vực phân loại thơng tin. Ở Việt Nam,
cũng đã có nhiều nghiên cứu về lĩnh vực xử lý văn bản tiếng Việt, như đề tài nghiên cứu

về Máy dịch tự động Anh –Việt (EVTRan) của viện nghiên cứu ứng dụng công nghệ,
đề tài nhận dạng, xử lý tiếng Việt VnDoc của viện công nghệ thông tin và nhiều luận
văn tốt nghiệp cao học đại học khác. Nhưng nghiên cứu về phân loại văn bản tiếng Việt
chưa nhiều và kết quả còn hạn chế. Bởi vậy, trong luận văn này em chỉ tập trung phát
triển hệ thống phân loại bình luận phim tiêu cực và tích cực nhằm phục vụ cho người
xem chọn phim nhanh chóng mà khơng tốn nhiều cơng sức.
Hệ thống sẽ sử dụng mơ hình Support Vector Machines để phân loại các bình
luận phim bởi các đặc tính của thuật tốn rất phù hợp cho việc phân loại dữ liệu có số
lượng đặc trưng lớn như văn bản và bản chất của SVM phù hợp cho bài toán phân lớp
nhị phân. Ngoài ra, qua các thực tế đã được kiểm chứng thì hệ thống phân loại văn bản
sử dụng thuật tốn SVM có độ chính xác cao và tốc độ xử lý nhanh.
2. Mục tiêu và nhiệm vụ nghiên cứu


2

a) Mục tiêu
Nghiên cứu và xây dựng một chương trình có khả năng phân loại ý kiến bình luận
phim của người dùng theo cảm xúc tích cực và tiêu cực một cách tự động dựa trên việc
phân tích nội dung của bình luận thành các từ hoặc cụm từ khóa và áp dụng bộ phân lớp
nhị phân SVM.
b) Nhiệm vụ
-

Nghiên cứu về bài toán phân lớp và các giải thuật phân lớp cho bài toán phân
lớp văn bản.

-

Nghiên cứu thuật toán phân lớp SVM và các hàm nhân sử dụng với SVM


-

Nghiên cứu đặc trưng của tiếng Việt.

-

Nghiên cứu các bài tốn cơ bản của xử lý ngơn ngữ tự nhiên. Trích xuất đặc
trưng từ dữ liệu văn bản qua đó có thể biểu diễn văn bản dưới dạng vector
nhằm phục vụ cho mục đích huấn luyện và phân loại

-

Tìm hiểu các phương pháp đánh giá phân lớp.

-

Chuẩn bị dữ liệu bình luận đã được gán nhãn cảm xúc cho việc huấn luyện và
đánh giá mơ hình phân lớp

3. Đối tượng và phạm vi nghiên cứu
Trong khuôn khổ của luận văn thuộc loại nghiên cứu và ứng dụng, đề tải chỉ giới
hạn nghiên cứu các vấn đề sau:
-

Các mơ hình, thuật tốn phân lớp dữ liệu. Đặc biệt là mơ hình phân lớp dữ
liệu SVM.

-


Đặc trưng của tiếng Việt.

-

Các thuật tốn cơ bản của xử lý ngơn ngữ tự nhiên.

-

Các phương pháp đánh giá phân lớp.

4. Phương pháp nghiên cứu
a) Phương pháp lý thuyết
-

Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến đề tài.

-

Nghiên cứu các mơ hình, thuật tốn phân lớp dữ liệu. Đặc biệt là mơ hình
SVM.

-

Tìm hiểu các thuật tốn xử lý văn bản cơ bản.

-

Tìm hiểu các phương pháp trích xuất đặc trưng văn bản.



3

b) Phương pháp thực nghiệm
-

Xây dựng chương trình demo dựa trên giải pháp đề xuất

-

Thực nghiệm trên dữ liệu đầu vào là các ý kiến thuộc dữ liệu kiểm thử đã
được thu thập ban đầu

-

Kiểm tra, nhận xét và đánh giá kết quả

5. Ý nghĩa khoa học và thực tiễn của đề tài
a) Ý nghĩa khoa học
-

Hiểu được cách thức hoạt động cơ bản của một số thuật toán phân loại phổ
biến.

-

Nắm vững được mơ hình phân loại Support Vector Machines (SVM).

-

Nắm được kiến thức cơ bản về xử lý ngôn ngữ tự nhiên, đặc biệt là xử lý tiếng

Việt. Hiểu rõ hơn các đặc trưng của tiếng Việt.

-

Tạo được bộ dữ liệu phục vụ cho việc huấn luyện các mơ hình phân loại văn
bản tích cực và tiêu cực của tiếng Việt.

-

Kết quả có thể làm tài liệu tham khảo cho các học viên – sinh viên trong việc
nghiên cứu xử lý ngôn ngữ tự nhiên.

b) Ý nghĩa thực tiễn
Ứng dụng cho các hệ thống phân tích người dùng của các trang phim trực tuyến
hoặc cho chính những người xem phim trực tuyến. Góp phần giúp ban quản trị có thể
quan sát và lấy ý kiến người dùng tốt hơn và giảm sức lao động của con người. Đồng
thời cũng giúp người dùng giảm thiểu thời gian và công sức trong việc đọc bình luận để
quyết định xem phim. Ngồi ra đề tài cịn có ý nghĩa thúc đẩy phát triển và ứng dụng trí
tuệ nhân tạo trong xử lý ngôn tự nhiên tiếng Việt.
6. Cấu trúc luận văn
Luận văn được trình bày bao gồm 3 chương:
Chương 1. Tổng quan bài toán phân loại ý kiến người dùng: Nội dung của
chương trình bày tổng quan về bài tốn phân loại ý kiến bình luận phim của người dùng
theo cảm xúc tích cực và tiêu cực trên các trang xem phim trực tuyến phổ biến ở Việt
Nam. Đồng thời cũng trình bày các nội dung chính về cơ sở lý thuyết của lĩnh vực xử lý
ngôn ngữ tự nhiên.
Chương 2. Phương pháp học máy SVM: Nội dung chương sẽ giới thiệu tổng
quan về bài toán phân lớp dữ liệu trong lĩnh vực học máy, các mơ hình phân lớp phổ



4

biến và cách đánh giá hiệu quả của mơ hình phân lớp. Đồng thời trình bày các cơ sở lý
thuyết chính để xây dựng mơ hình phân lớp SVM cho bài tốn phân loại ý kiến bình
luận.
Chương 3. Thực nghiệm và đánh giá kết quả: Nội dung chương trình bày về
sử dụng SVM để huấn luyện dữ liệu bình luận phim và tiến hành phân loại bình luận
theo cảm xúc. Xây dựng ứng dụng demo và đánh giá các kết quả từ các phương pháp
trích xuất đặc trưng văn bản và thuật tốn phân lớp khác nhau. Từ đó rút ra những kết
luận quan trọng trong bài toán phân loại ý kiến bình luận người dùng theo cảm xúc.
Phần 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.


5

CHƯƠNG 1: TỔNG QUAN BÀI TOÁN PHÂN LOẠI Ý KIẾN
NGƯỜI DÙNG
1.1. Bài tốn phân loại ý kiến bình luận người dùng xem phim trực tuyến
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, 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.
Bài tốn phân loại bình luận ý kiến theo cảm xúc tích cực, tiêu cực là một trong
những bài toán biến thể của phân lớp văn bản. Mục đích chính của bài tốn phân tích
cảm xúc (hay còn gọi là khai thác ý kiến), xác định cảm xúc liên kết với văn bản bằng
cách trích xuất ngữ cảnh cảm xúc từ văn bản. Đây là một trong những bài tốn có tính
ứng dụng rất cao trong xử lý ngơn ngữ tự nhiên vì các bình luận sản phẩm có tác động
trực tiếp đến việc hỗ trợ người dùng quyết định có sử dụng hoặc mua sản phẩm nào đó

hay khơng. Ngồi ra,theo thống kê thu thập được thì tỉ lệ xem video mỗi ngày cũng có
sự tang đáng kể qua từng năm. Báo cáo chỉ ra rằng, trong 4 năm vừa qua tính đến năm
2016, tỉ lệ xem video trực tuyến mỗi ngày đã tăng chỉ từ 10% lên đến 64% trong số
những người sử dụng internet tại Việt Nam [14]. Với tốc độ tăng trưởng như vậy sẽ
khiến lượng dữ liệu cần phân tích càng ngày càng lớn và sẽ gần như khơng thể xử lý
hồn tồn bằng sức người mà cần có một quy trình xử lý tự động.


6

Hình 1.1: Các loại hình video theo nhu cầu được xem nhiều nhất tại Việt
Nam [14]
Phân loại cảm xúc bình luận khác với bài tốn phân lớp văn bản thơng thường ở
chỗ các bình luận thường ngắn, phi cấu trúc, nhiễu và chứa rất nhiều lỗi như lỗi chính
tả, viết tắt, thiếu dấu câu, sử dụng các từ ngữ không chính thống và thường chứa rất
nhiều ký tự đặc biệt [11]. Một trong những lý do chính của việc này là số lượng người
dùng sử dụng các thiết bị cầm tay có khả năng nhập dữ liệu hạn chế để xem phim trực
tuyến chiếm số lượng rất lớn và tăng trưởng với tốc độ rất nhanh


7

Hình 1.2: Các thiết bị được sử dụng để xem video trực tuyến [14]
Mục đích của bài tốn: Xác định, phân loại được bình luận của người dùng dành
cho các bộ phim trên các trang xem phim trực tuyến là tiêu cực hay tính cực.
Đầu vào: Các bình luận phim của người dùng được chia sẻ trên các trang xem
phim trực tuyến.
Đầu ra: Phân lớp, gán nhãn cho các bình luận của người dùng vào 2 lớp tiêu cực
và tích cực


Hình 1.3: Mơ hình phân lớp cảm xúc bình luận SVM
Ví dụ về bài tốn phân loại cảm xúc:
Đầu vào: Phim dở q khơng hay tí nào
Đầu ra: Tiêu cực


8

1.2. Các nghiên cứu liên quan bài toán phân lớp cảm xúc bình luận người dùng
hiện nay
1.2.1. Các kỹ thuật liên quan đến bài tốn phân loại cảm xúc bình luận
Bài toán phân loại ý kiến của người dùng sử dụng phương pháp phân lớp. Phân
lớp (hay phân loại) là một tiến trình xử lý nhằm xếp các mẫu dữ liệu hay các đối tượng
vào một trong các lớp đã được định nghĩa trước. Các thuật toán phân lớp tiêu biểu cho
bài toán phân loại văn bản bao gồm [8]: Cây quyết định (Decision Tree), máy vector hỗ
trợ (Support Vector Machine - SVM), K láng giềng gần nhất (KNN), Maximum Entropy
Model (MaxEnt), Naive Bayes. Trong luận văn của mình, tác giả tiến hành thực nghiệm
với cả bốn mơ hình phân lớp tiêu biểu trên để chứng minh hiệu quả của mơ hình phân
lớp SVM cho bài tốn phân lớp cảm xúc bình luận.
1.2.2. Các nghiên cứu liên quan đến bài tốn phân loại ý kiến người dùng
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. Các nghiên cứu
thường thiên 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ó. Đặc biệt với bài tốn phân lớp cảm xúc bình luận phim ngơn
ngữ tiếng Việt thì chưa có nghiên cứu nào được công bố trước đây.
Sau đây là một vài nghiên cứu có liên quan đến xử lý và phân tích văn bản tiếng
Việt:
-

Trích xuất ý định người dùng mua hàng trên mạng xã hội sử dụng

phương pháp suy luận các mô hình: Cơng trình nghiên cứu luận văn thạc sĩ
của tác giả Dỗn Huyền Trang trường Đại Học Cơng nghệ, đại học Quốc gia
Hà Nội sử dụng phương pháp suy luận các mơ hình vào bài tốn khai thác ý
định mua hàng người dùng trên mạng xã hội cụ thể là trên Facebook dựa vào
hành vi đăng tải và bình luận của họ trên các trang bán hàng.

-

Phân loại văn bản với máy học vector hỗ trợ: Nghiên cứu của Trần Cao Đệ
và Phạm Nguyên Khang đăng trên Tạp chí Khoa học 2012 sử dụng công cụ
SVM áp dụng cho bài toán gán các nhãn phân loại lên một văn bản.

-

Phân loại văn bản dựa trên rút trích tự động tóm tắt của văn bản: Bài
báo khoa học của tác giả Trương Quốc Định Khoa Công nghệ thông tin &
Truyền thông, Trường Đại học Cần Thơ sử dụng máy học vectơ hỗ trợ để
phân lớp văn bản và thực hiện đối chiếu, so sánh giải với phương pháp phân
loại khác.


9

-

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ĩ của tác
giả Đỗ Hoàng Đạt sử dụng máy học vector để phân lớp bình luận tiêu cực và
tích cực của người nghe nhạc trực tuyến.

-


Phân loai ý kiến trên Twitter: Bài báo khoa học của tác giả Võ Tuyết Ngân
trên tạp chí khoa học Trường Đại học Cần Thơ tiến hành phân loại ý kiến trên
Twitter là phân loại cho từng bình luận theo hướng quan điểm tích cực hay
tiêu cực dựa trên nội dung bình luận. Tác giả sử dụng thuật tốn SVM và
Multinomial Nạve Bayes để tiến hành phân lớp ý kiến của người dùng theo
cảm xúc.

1.2.3. 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ể [5]:
-

Giai đoạn huấn luyện: Từ tập dữ liệu huấn luyện đưa ra được mơ hình có thể
phân chia dữ liệu 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 vectơ đặc trưng cho văn bản. Cụ
thể các bước này như sau [5]:
-

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, script, css…) 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.

-

Trích xuất đặc trưng: Ở 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ể vectơ hóa để biểu diễn được như sau:
𝐷𝑜𝑐 = {𝑣 , 𝑣 ,…, 𝑣 }


10

Trong đó:
-

𝐷𝑜𝑐 là văn bản thứ i của tập dữ liệu.

-

𝑣 , 𝑣 ,…, 𝑣 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 các giải thuật phân lớp khác
nhau ví dụ như K-Nearest Neighbors, Naïve Bayes, Máy vector hỗ trợ (SVM)… để tiến
hành phân lớp bình luận theo cảm xúc.

1.3. Xử lý ngôn ngữ tự nhiên
1.3.1. Khái niệm
Ngôn ngữ tự nhiên là ngơn ngữ mà các lồi động vật sáng tạo ra để giao tiếp với
đồng loại. Con người cũng là một loại động vật sử dụng ngôn ngữ để giao tiếp. Thế giới
ngôn ngữ của con người rất phong phú, theo thơng kê của các nhà khoa học thì có tới
hàng ngàn ngôn ngữ tồn tại trên trái đất. Ngôn ngữ tự nhiên có 2 dạng là chữ viết và âm
thanh. Ngôn ngữ của mỗi dân tộc, quốc gia lại khác nhau bao gồm khác nhau cả về cách
viết cũng như cách phát âm.
Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một nhánh của
lĩnh vực trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người. Mục
tiêu của lĩnh vực này là làm cho máy tính thực hiện hiệu quả những nhiệm vụ liên quan
đến ngôn ngữ của con người như giao tiếp giữa người và máy, cải thiện hiệu quả giao
tiếp giữa người với người, hoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói.
Xử lý ngôn ngữ tự nhiên ra đời từ những năm 1940, với rất nhiều cơng trình
nghiên cứu theo hai hướng chính là: 1) ơ-tơ-mát (automaton) và các mơ hình xác suất
(probabilistic models) vào những năm 1950; 2) các phương pháp dựa trên ký hiệu
(symbolic) và các phương pháp ngẫu nhiên (stochastic) vào những năm 1970. Giai đoạn
tiếp theo (1970-1983) chứng kiến sự bùng nổ trong nghiên cứu về xử lý tiếng nói và
ngơn ngữ. Ngày nay với sự phát triển nhanh chóng, học máy (machine learning) đã trở
thành trung tâm của phần lớn các lĩnh vực thuộc khoa học máy tính, bao gồm xử lý ảnh
và thị giác máy tính, tin sinh học, các hệ gợi ý, kỹ nghệ phần mềm, và cả xử lý ngôn
ngữ tự nhiên.
Trong lĩnh vực trí tuệ nhân tạo thì xử lý ngơn ngữ tự nhiên là một trong những
phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ công cụ hoàn hảo
nhất của tư duy và giao tiếp.
1.3.2. Các bước xử lý
Q trình xử lý ngơn ngữ tự nhiên thường được thực hiện theo mơ hình như sau


11


Hình 1.4: Quy trình xử lý ngơn ngữ tự nhiên phổ biến
Trong đó bước tiền xử lý gồm 5 bước

Hình 1.5: Các bước tiền xử lý dữ liệu
1.3.3. Ứng dụng
Xử Lý Ngơn Ngữ Tự Nhiên đóng vai trị vơ cùng quan trọng trong ngành Khoa
Học Máy Tính và có rất nhiều ứng dụng hữu ích trong đời sống cũng như trong nghiên
cứu. Có thể điểm qua một vài ứng dụng điển hình của xử lý ngơn ngữ tự nhiên như:
-

Nhận dạng chữ viết: Có hai kiểu nhận dạng thường gặp, thứ nhất là nhận
dạng chữ in, ví dụ nhận dạng chữ trên giấy rồi chuyển nó thành dạng văn bản
điện tử như dưới định dạng doc của Microsoft Word chẳng hạn. Phức tạp hơn
là nhận dạng chữ viết tay, nó khó khăn hơn bởi vì chữ viết tay khơng có khuôn
dạng rõ ràng và khác nhau ở mỗi người. Với ứng dụng này ta có thể chuyển
các quyển sách trong thư viện thành văn bản điện tử trong thời gian ngắn mà
không tốn nhiều sức người. Nhận dạng chữ viết của con người có ứng dụng
trong khoa học hình sự và bảo mật thông tin (nhận dạng chữ ký điện tử).

-

Nhận dạng tiếng nói: Nhận dạng tiếng nói thường được dùng để chuyển các
câu nói thành văn bản tương ứng. Giúp con người thao tác trên các thiết bị
điện tử nhanh hơn và đơn giản hơn, chẳng hạn như gõ một tài liệu nào đó


12

bằng cách đọc thay vì phải gõ từng ký tự. Nhận dạng tiếng nói có khả năng

trợ giúp người khiếm thị và người khuyết tật rất nhiều.
-

Tổng hợp tiếng nói: Từ một văn bản ứng dụng sẽ tự động chuyển thành tiếng
nói. Thay vì phải tự đọc một cuốn sách hay nội dung một trang web, nó tự
động đọc cho chúng ta. Giống như nhận dạng tiếng nói, tổng hợp tiếng nói là
sự trợ giúp tốt và vơ cùng quan trọng cho người khiếm thị trong giao tiếp.

-

Dịch tự động (Machine translate): Chương trình dịch tự động từ ngơn ngữ
này sang ngơn ngữ khác. Một dịch vụ điển hình của ứng dụng này đó chính
là Google dịch đang được dùng rộng rãi trên tồn thế giới.

-

Tìm kiếm thơng tin (Information retrieval): Người dùng đặt câu hỏi và
chương trình sẽ tìm ra nội dung phù hợp nhất cho người dùng. Thông tin ngày
càng tăng lên theo hàm mũ, đặc biệt với sự trợ giúp của Internet việc tiếp cận
thông tin trở lên dễ dàng hơn bao giờ hết. Việc khó khăn lúc này là tìm đúng
thơng tin giữa khối lượng tri thức khổng lồ và đặc biệt thơng tin đó phải đáng
tin cậy.

-

Tóm tắt văn bản: Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn
theo mong muốn nhưng vẫn chứa những nội dung thiết yếu nhất.

-


Khai phá dữ liệu (Data mining) và phát hiện tri thức: Từ rất nhiều tài liệu
khác nhau phát hiện ra tri thức mới. Thực tế để làm được điều này rất khó, nó
gần như là mơ phỏng q trình học tập, khám phá khoa học của con người,
đây là lĩnh vực đang trong giai đoạn đầu phát triển. Ở mức độ đơn giản khi
kết hợp với máy tìm kiếm nó cho phép đặt câu hỏi để từ đó cơng cụ tự tìm ra
câu trả lời dựa trên các thông tin trên web mặc cho việc trước đó có câu trả
lời lưu trên web hay không (giống như trang Quora hay Reddit, nơi chuyên
đặt các câu hỏi để người khác trả lời), nói một cách ngắn gọn là máy tính đã
biết xử lý dữ liệu để trả lời câu hỏi của người sử dụng, thay vì chỉ đáp trả
những gì có sẵn trong bộ nhớ.

1.4. Các bài toán và khái niệm cơ bản liên quan [6]
1.4.1. Biểu thức chính quy (regular expressions)
Regular Expression hay cịn gọi là biểu thức chính quy là một chuỗi ký tự mô tả
mẫu văn bản, được dùng để xử lý chuỗi nâng cao thông qua biểu thức riêng của nó,
những biểu thức này sẽ có những nguyên tắc riêng và ta phải tn theo ngun tắc đó
thì biểu thức mới hoạt động được. Ngoài tên gọi Regular Expression ra thì nó cịn có thể
viết tắt thành RegEx.


13

RegEx đã trở thành kỹ thuật tiêu chuẩn được hỗ trợ bởi hầu hết các ngơn ngữ lập
trình (ví dụ, .NET, Java, Python, Perl, Ruby, AWK và Tcl). Nhiều nghiên cứu xử lý
ngôn ngữ tự nhiên sử dụng RegEx làm giải pháp cho một số bài toán con. Nguyên tắc
hoạt động của biểu thức RegEx là so khớp dựa vào khuôn mẫu, khuôn mẫu được xây
dựng từ các quy tắc căn bản của biểu thức RegEx. Khuôn mẫu được định nghĩa bởi biểu
thức chính quy có thể khớp một hoặc một vài lần, hoặc không khớp với một văn bản
cho trước. Những cụm từ thông dụng này thường được tạo bởi các nhà phát triển phần
mềm làm việc với các chun gia miền. Vì khơng có cách tiêu chuẩn để tạo hoặc kiểm

tra các biểu thức chính quy, việc bảo trì và mở rộng của chúng là một thách thức.
Về cơ bản Regex thường được ứng dụng với các mục đích sau:
-

Giảm bớt những dịng lệnh trong q trình xử lí chuỗi những biểu thức ngắn
gọn mà vẫn đem lại kết quả như mong đợi.

-

Kiểm tra tính hợp lệ của giá trị đầu vào ví dụ như các phần tử form

-

Xử lí u cầu phức tạp trong chuỗi (bóc tách, thay đổi nội dung, loại bỏ ký
tự…).

Một mẫu biểu thức chính quy là một tập các kí tự thường, như /abc/ sẽ tìm các
các đoạn 'abc' theo đúng thứ tự đó trong các chuỗi, hay một tập kết hợp cả kí tự thường
và kí tự đặc biệt như /ab*c/ hoặc /(\d+)\.\d*/. Các kí tự đặc biệt cho các mục đích tìm
kiếm nâng cao mà tìm kiếm trực tiếp sẽ khó khăn như tìm một đoạn chứa một hoặc nhiều
hơn một kí tự. Trong ví dụ cuối có sử dụng các dấu ngoặc đơn () như các thiết bị nhớ,
tức là các mẫu trong phần () này sau khi được tìm kiếm có thể được nhớ lại để sử dụng
cho các lần sau.
Ký tự
^

Ý nghĩa
Khớp các kí tự đứng đầu một chuỗi.
Nếu có nhiều cờ này thì nó cịn khớp
được cả các kí tự đứng đầu của mỗi

dịng (sau kí tự xuống dòng)

$

So khớp ở cuối chuỗi. Nếu gắn cờ
multiline (đa dịng), nó sẽ khớp ngay
trước kí tự xuống dịng
Cho phép kí tự trước nó lặp lại 0 lần
hoặc nhiều lần. Tương đương với cách
viết {0,}

*

Ví dụ
/^A/ sẽ khơng khớp được với 'A'
trong "an A" vì 'A' lúc này khơng
đứng đầu chuỗi, nhưng nó sẽ
khớp "An E" vì lúc này 'A' đã
đứng đầu chuỗi
/t$/ không khớp với 't' trong chuỗi
"eater" nhưng lại khớp trong
chuỗi "eat"
/bo*/ khớp với 'boooo' trong
chuỗi "A ghost booooed" nhưng
không khớp trong chuỗi "A birth
warbled"


×