Tải bản đầy đủ (.pdf) (31 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

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.51 MB, 31 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

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã ngành: 60.48.01.0

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

Đà Nẵng – Năm 2018


Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA

Người hướng dẫn khoa học: TS. Phạm Minh Tuấn
Phản biện 1: TS. Đặng Hoài Phương
Phản biện 2: TS. Nguyễn Thị Hoa Huệ

Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp
thạc sĩ khoa học máy tính họp tại Trường Đại học Bách khoa vào
ngày 13 tháng 10 năm 2018.

Có thể tìm hiểu luận văn tại:
- Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học Bách


khoa
- Thư viện Khoa Công nghệ thông tin Trường Đại học Bách khoa –
ĐHĐ


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 quá 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 hoàn toà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

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 quá 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 toà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 hoà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


iii

MỤC LỤC
LỜI CAM ĐOAN ................................................................................ i
LỜI CẢM ƠN..................................................................................... ii
MỤC LỤC .........................................................................................iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ....................... v
DANH SÁCH BẢNG......................................................................... v
DANH SÁCH HÌNH .......................................................................... v
MỞ ĐẦU ............................................................................................ 1

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN PHÂN LOẠI Ý KIẾN
NGƯỜI DÙNG .................................................................................. 5
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
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 .............................................................. 5
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 ..................................................................................... 5
Các nghiên cứu liên quan đến bài toán phân loại ý kiến
người dùng ................................................................................. 6
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 .................................................... 6
Xử lý ngôn ngữ tự nhiên........................................................ 6
Khái niệm...................................................................... 6
Các bước xử lý .............................................................. 7
Ứng dụng ...................................................................... 7
Các bài toán và khái niệm cơ bản liên quan .......................... 7
Biểu thức chính quy (regular expressions) ................... 7
Corpus ........................................................................... 8
Morphological Analysis (phân tích hình thái) .............. 8


iv

Tokenization (tách từ) ................................................... 8
Ambiguous (nhập nhằng nghĩa).................................... 9
Stopwords (từ dừng) ..................................................... 9
Named Entities Recognition (nhận dạng tên thực thể) . 9
Lemmatization và Stemming ...................................... 10
Part of Speech (gán nhãn từ loại)................................ 10

Khó khăn trong xử lý ngôn ngữ tự nhiên tiếng Việt............ 10
Trích xuất đặc trưng ............................................................ 11
TF-IDF ........................................................................ 11
Bag-of-Word (mô hình túi từ)..................................... 11
Word2Vec ................................................................... 11
CHƯƠNG 2: MÁY HỌC VECTƠ HỖ TRỢ ................................... 11
2.1 Tổng quan về bài toán phân lớp .......................................... 11
Khái niệm.................................................................... 11
Một số thuật toán phân lớp phổ biến .......................... 12
2.1.2.1 Naive Bayes ............................................................ 12
2.1.2.2 K-Nearest Neighbors .............................................. 12
2.1.2.3 Maximum Entropy ................................................. 12
Đánh giá mô hình phân loại ........................................ 12
Phân tích giá trị đơn .................................................... 12
2.2 Support Vector Machine (SVM) ......................................... 12
Giới thiệu .................................................................... 12
Cơ sở toán học ............................................................ 13
2.2.2.1 Ý tưởng................................................................... 13
2.2.2.2 Xây dựng bài toán tối ưu cho SVM ........................ 13
Biên mềm (Soft Margin) ............................................. 14
Các hàm thiệt hại cho SVM ........................................ 14
2.3 Hàm hạt nhân SVM (Kernel) .............................................. 14


v

Giới thiệu .................................................................... 14
Cơ sở toán học ............................................................ 15
Tính chất hàm hạt nhân............................................... 15
2.4 Phân lớp cảm xúc bình luận phim bằng SVM ..................... 15

Thu thập dữ liệu .......................................................... 15
Tiền xử lý .................................................................... 15
2.4.2.1 Làm sạch dữ liệu .................................................... 15
2.4.2.2 Tách từ.................................................................... 15
Trích xuất đặc trưng bình luận .................................... 15
2.4.3.1 Trích xuất đặc trưng TF-IDF .................................. 15
2.4.3.2 Giảm chiều dữ liệu ................................................. 15
Huấn luyện và đánh giá mô hình ................................ 15
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ .......... 16
3.1 Dữ liệu, công cụ và môi trường thực hiện ........................... 16
3.2 Tiền xử lý dữ liệu ................................................................ 16
3.3 Trích xuất đặc trưng bình luận ............................................ 18
3.4 Huấn luyện mô hình SVM và đánh giá ............................... 19
KẾT LUẬN ...................................................................................... 22
DANH MỤC CÁC TÀI LIỆU THAM KHẢO ................................ 24
PHỤ LỤC ......................................................................................... 24

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
DANH SÁCH BẢNG
DANH SÁCH HÌNH


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. Đ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 quát 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
và số lượng bình luận nhiều khi có số lượng lớn. 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.
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 toá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 cũng được dùng cho 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 toá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
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


2

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 toá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 toá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 toá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 toán phân lớp dữ liệu. Đặc
biệt là mô hình SVM.


3


-

Tìm hiểu các thuật toá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.

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. Ngoài ra đề tài còn có ý nghĩa thúc đẩy phát



4

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 toá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ổ 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 toá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 toá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 VỀ BÀI TOÁN PHÂN LOẠI
Ý KIẾN NGƯỜI DÙNG
Bài toán phân loại ý kiến bình luận người dùng xem phim
trực tuyến
Bài toá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 toá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 toán có tính ứng
dụng rất cao trong xử lý ngôn ngữ tự nhiên. Với tốc độ tăng trưởng
mạnh của internet 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ý hoàn toàn bằng sức người mà cần
có một quy trình xử lý tự động.
Phân loại cảm xúc bình luận khác với bài toá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 nhiều ký tự đặc biệt [11].

Hình 1.3: Mô hình phân lớp cảm xúc bình luận SVM
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
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
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. Các thuật toán phân lớp tiêu biểu cho bài toán phân lớp 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),


6


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 toán phân lớp cảm xúc bình luận.
Các nghiên cứu liên quan đến bài toá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 toán phân lớp cảm xúc bình luận
phim tiếng Việt thì chưa có nghiên cứu nào được công bố trước đây.
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 là giai đoạn
huấn luyện và giai đoạn áp dụng [5].
Ở 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).
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
vec-tơ hỗ trợ (SVM)… để phân loại bình luận theo cảm xúc.
Xử lý ngôn ngữ tự nhiên
Khái niệm



7

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.
Các bước xử lý
Quá trình xử lý ngôn ngữ tự nhiên thường được thực hiện theo
mô hình như sau

Hình 1.4: Quy trình xử lý ngôn ngữ tự nhiên phổ biến
Ứng dụng
Xử Lý Ngôn Ngữ Tự Nhiên có vai trò hết sức quan trọng trong
ngành Khoa Học Máy Tính. Nó có vô vàn ứng dụng hữu ích trong
cuộc sống cũng như nghiên cứu. Chúng ta có thể điểm qua một vài
ứng dụng của xử lý ngôn ngữ tự nhiên như: Nhận dạng chữ viết, nhận
dạng tiếng nói, tổng hợp tiếng nói, dịch tự động, tìm kiếm thông tin,
tóm tắt văn bản, khai phá dữ liệu.
Các bài toán và khái niệm cơ bản liên quan [6]
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


8


nguyên tắc riêng và ta phải tuân theo nguyên tắc đó thì biểu thức mới
hoạt động được.
Một mẫu biểu thức chính quy là một tập các kí tự thường. 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.
Corpus
Trong ngôn ngữ học, corpus là 1 dữ liệu tập hợp các văn bản,
ngôn ngữ đã được số hoá. Corpus là 1 tài nguyên quan trọng trong
NLP. Chúng được sử dụng để phân tích thống kê và kiểm tra giả
thuyết, chiết suất 1 cách tự động các qui tắc ngữ pháp “văn mạch tự
do”, kiểm tra các lần xuất hiện hoặc xác nhận các quy tắc ngôn ngữ
trong một ngôn ngữ cụ thể.
Corpus có thể bao gồm ngôn ngữ viết, ngôn ngữ nói hoặc cả
hai. Kho dữ liệu văn bản nói thường được lưu trữ ở dạng bản ghi âm.
Corpus có thể chứa các văn bản bằng một ngôn ngữ (monolingual
corpus) hoặc dữ liệu văn bản bằng nhiều ngôn ngữ (multilingual
corpus).
Morphological Analysis (phân tích hình thái)
Trong ngôn ngữ học, phân tích hình thái học là nghiên cứu các
từ, cách chúng được hình thành và mối quan hệ của chúng với các từ
khác trong cùng một ngôn ngữ chẳng hạn như từ gốc, ranh giới từ,
dấu, phần của lời nói, v.v. Qua đó tìm ra cấu trúc và hình thành các từ.
Đơn vị quan trọng nhất của nó là morpheme. Có ba bài toán điển hình
trong lĩnh vực này, bao gồm việc phân đoạn từ (word segmentation),
nhận diện tên riêng (named entity recognition) và gắn thẻ một phần lời
nói (Part-of-speech tagging).
Tokenization (tách từ)


9


Tách từ là một quá trình xử lý nhằm mục đích xác định ranh
giới của các từ trong câu văn, cũng có thể hiểu đơn giản rằng tách từ
là quá trình xác định các từ đơn, từ ghép… có trong câu. Đối với xử
lý ngôn ngữ, để có thể xác định cấu trúc ngữ pháp của câu, xác định
từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là phải xác định
được đâu là từ trong câu.
Ambiguous (nhập nhằng nghĩa)
Nhập nhằng là hiện tượng mà khi nói, viết hoặc diễn tả những
từ ngữ, ý nghĩ mơ hồ, không rõ nghĩa hoặc có nhiều nghĩa làm cho
người đọc hoặc người nghe không phân biệt rõ ràng, dẫn đến sự hiểu
nhấm ý nghĩa.
Stopwords (từ dừng)
StopWords là những từ xuất hiện nhiều trong ngôn ngữ tự
nhiên, tuy nhiên lại không mang nhiều ý nghĩa. Trong xử lý ngôn ngữ
tự nhiên, người ta thường làm một bước là lọc các từ gây nhiễu, và
Stopwords chính là một trong số chúng. Ngoài ra việc loại bỏ các từ
này còn góp phần làm giảm số chiều của văn bản khiến cho tốc độ xử
lý văn bản vad độ chính xác phân lớp văn bản được tăng lên.
Có rất nhiều cách để loại bỏ StopWords trong đó có 2 cách phổ
biến là: Dùng từ điển và dựa theo tần suất xuất hiện của từ.
Named Entities Recognition (nhận dạng tên thực thể)
Nhiệm vụ xác định tên riêng của người, tổ chức, địa điểm, hoặc
các thực thể khác là một nhiệm vụ khai thác thông tin từ các tài liệu
ngôn ngữ tự nhiên. Đây là bài toán khá cơ bản trong nhóm các bài toán
trích chọn thông tin.
Có ba hướng tiếp cận chính cho bài toán nhận dạng thực thể
trong văn bản là: hướng tiếp cận sử dụng hệ luật được xây dựng bởi



10

chuyên gia, hướng tiếp cận sử dụng các phương pháp học máy và
hướng tiếp cận lai hai phương pháp trên.
Lemmatization và Stemming
Lemmatization và Stemming là 2 kỹ thuật thường được dùng
cho việc so sánh các từ với nhau.
Stemming là kỹ thuật dùng để biến đổi 1 từ về dạng gốc bằng
cách cực kỳ đơn giản là loại bỏ 1 số ký tự nằm ở cuối từ mà nó nghĩ
rằng là biến thể của từ.
Lemmatization khác với Stemming là xử lý bằng cách loại bỏ
các ký tự cuối từ một cách rất heuristic, Lemmatization sẽ xử lý thông
minh và phức tạp hơn bằng một bộ từ điển hoặc một bộ Ontology nào
đó.
Part of Speech (gán nhãn từ loại)
Part of Speech (POS) giải thích cách một từ được sử dụng trong
một câu. Có tám phần chính của lời nói đó là danh từ, đại từ, tính từ,
động từ, trạng từ, giới từ, liên từ và thán từ. Hầu hết các POS được
chia thành các lớp con. Gắn thẻ POS là quá trình gắn nhãn các từ với
phần POS thích hợp của chúng.
Việc phân loại từ như thế này sẽ góp phần giúp cho các chương
trình xử lý ngôn ngữ tự nhiên nắm được thêm ý nghĩa của câu thay vì
chỉ xem nó như là tập hợp của các ký tự.
Khó khăn trong xử lý ngôn ngữ tự nhiên tiếng Việt
Tiếng việt có số lượng từ phong phú và dấu câu phức tạp khiến
cho việc xử lý ngôn ngữ gặp rất nhiều khó khăn [16].
Ngoài ra ngôn tiếng Việt không phải là một trong các ngôn ngữ
thịnh hành trên thế giới và điều quan trọng hơn hết là người Việt Nam
rất ngại chia sẻ, liên kết, hợp tác làm việc theo đúng quy trình, và
không có tính kế thừa, khiến cho người mới khi gặp vấn đề không biết



11

phải xử lý sao, hỏi ai để có thể giải quyết. Điều đó khiến cho các bộ
dữ liệu chưa hoàn chỉnh, không được công hay thương mại hóa nên
các công cụ xử lý ngôn ngữ tự nhiên cho tiếng Việt khá hạn chế.
Trích xuất đặc trưng
Trong các bài toán thực tế, chúng ta cần phải tìm một phép biến
đổi để loại ra những dữ liệu nhiễu (noise), và để đưa dữ liệu thô với số
chiều khác nhau về cùng một chuẩn. Dữ liệu chuẩn mới này phải đảm
bảo giữ được những thông tin đặc trưng (features) cho dữ liệu thô ban
đầu.
Về cơ bản để biểu diễn đúng đặc trưng của câu ta cần phân tích
được: ý nghĩa của các từ vựng được sử dụng, cấu trúc cú pháp của câu,
ngữ cảnh trong đó những câu đó xuất hiện.
TF-IDF
Bag-of-Word (mô hình túi từ)
Word2Vec

CHƯƠNG 2: MÁY HỌC VECTƠ HỖ TRỢ
2.1 Tổng quan về bài toán phân lớp
Khái niệm
Bài toán phân lớp là một trong những bài toán điển hình trong
lĩnh vực học máy. Mục đích của bài toán là nhóm các đối tượng giống
nhau của một tập hợp rời rạc vào một lớp dựa trên việc quan sát các
đặc trưng dữ liệu của chúng.
Có hai cách tiếp cận bài toán phân lớp dữ liệu trong học máy là
học giám sát và học không giám sát. Trong mô hình học giám sát, tập
dữ liệu huấn luyện được đưa vào mô hình phân lớp để xây dựng một

hàm (function) từ dữ liệu huấn luyện. Mặt khác, các mô hình học


12

không giám sát được cung cấp một tập dữ liệu không được gắn nhãn
và mô hình phải tìm kiếm các cụm điểm dữ liệu.
Một số thuật toán phân lớp phổ biến
2.1.2.1 Naive Bayes
2.1.2.2 K-Nearest Neighbors
2.1.2.3 Maximum Entropy
Đánh giá mô hình phân loại [17]
Hai độ đo độ chính xác phổ biến nhất để tổng kết và so sánh các
mô hình phân lớp nhị phân là độ chính xác (precision) và độ bao phủ
(recall).
Precision và Recall được xem là hữu ích trong việc đánh giá
một gợi ý. Trong một số trường hợp thì precision và recall có giá trị tỉ
lệ nghịch với nhau. Khi đó, một vài chỉ số khác được sử dụng như Fscore, False Positive Rate, False Negative Rate, ROC - AUC được sử
dụng để đánh giá hiệu quả tổng thể của mô hình phân lớp.
Phân tích giá trị đơn
Mục đích phương pháp SVD là phân tích ma trận để giảm một
ma trận thành các bộ phận cấu thành của nó để làm cho một số phép
tính ma trận tiếp theo đơn giản hơn. Ý tưởng chính của giải thuật [16]
như sau:
Cho ma trận A (kích thước mxn), ma trận A luôn luôn phân tích
được thành tích của ba ma trận theo dạng: A

= 𝑈∑𝑉

Việc xấp xỉ này có thể xem như chuyển không gian đang xét (r

chiều) về không gian k chiều, với k nhỏ hơn rất nhiều so với r giúp
loại bỏ nhiễu và tăng cường các mối liên kết ngữ nghĩa tiềm ẩn giữa
các từ trong tập văn bản.
2.2 Support Vector Machine (SVM)
Giới thiệu


13

Máy Vectơ Hỗ trợ (SVM) là một phương pháp phân loại xuất
phát từ lý thuyết học thống kê, dựa trên nguyên tắc tối thiểu rủi ro cấu
trúc (Structural Risk Minimisation). SVM thuộc nhóm thuật toán học
có giám sát trong lĩnh vực học máy. Mục đích của SVM là cố gắng
tìm ra siêu mặt phẳng có thể phân cách các loại dữ liệu sao cho có lỗi
xảy ra trên tập kiểm thử là nhỏ nhất dựa trên việc cực đại hóa dải biên
phân lớp và việc lựa chọn các hàm nhân (kernel) phù hợp.
SVM có ưu điểm là xử lý trên không gian có số chiều cao, dễ
ứng dụng và linh hoạt. Đồng thời cũng có nhược điểm là khó phán
đoán và tối ưu khó khăn.
Cơ sở toán học
2.2.2.1 Ý tưởng
2.2.2.2 Xây dựng bài toán tối ưu cho SVM
Giả sử rằng các cặp dữ liệu của tập dữ liệu huấn
luyện là (𝑥 , 𝑦 ), (𝑥 , 𝑦 ),…, (𝑥 , 𝑦 ) với vector 𝑥 ∈ 𝑅 thể hiện đầu
vào của một điểm dữ liệu và yi là nhãn của điểm dữ liệu đó. d là số
chiều của dữ liệu và N là số điểm dữ liệu. Giả sử rằng nhãn của mỗi
điểm dữ liệu được xác định bởi 𝑦 = 1 (lớp 1) hoặc 𝑦 = −1 (lớp 2).
Mục tiêu của SVM là phải tìm một siêu phẳng (Optimal
hyperplane) có lề lớn nhất chia tách các điểm dữ liệu có ban đầu để
huấn luyện và các điểm sau này. Mỗi siêu phẳng đều có thể được viết

dưới dạng một tập các điểm thỏa mãn w.x - b = 0.
Nếu dữ liệu huấn luyện có thể phân tách tuyến tính, chúng ta có
thể chọn hai siêu phẳng song song tách riêng hai lớp dữ liệu, sao cho
khoảng cách giữa chúng lớn nhất có thể. Với bộ dữ liệu chuẩn hóa
hoặc tiêu chuẩn hóa, các siêu phẳng này có thể được mô tả bằng các
phương trình sau:
- w.x - b = 1 (các điểm thuộc lớp 1)


14

- w.x - b = -1 (các điểm thuộc lớp 2)
Về mặt hình học, khoảng cách giữa hai siêu phẳng này là

𝟐
‖𝒘‖

và các điểm dữ liệu cho trước nằm trên các siêu phẳng song song đó
được gọi là vectơ hỗ trợ. Để tối đa hóa khoảng cách giữa các mặt
phẳng chúng ta muốn giảm thiểu ‖𝒘‖.
Biên mềm (Soft Margin)
Có hai trường hợp dễ nhận thấy SVM làm việc không hiệu quả
hoặc thậm chí không làm việc đó là dữ liệu có thể phân tách tuyến tính
nhưng có 1 số điểm dữ liệu ở hai lớp quá gần nhau và trường hợp dữ
liệu không thể phân tách tuyến tính.
Để chấp nhận các điểm dữ liệu nhiễu, công thức mục tiêu của
SVM ban đầu phải được bổ sung thêm một số hạng nữa giúp tối thiểu
sự hy sinh. Từ đó ta có hàm mục tiêu mới như sau:
min |𝑤| + 𝐶 ∑ ξ (2.10)
,


Các hàm thiệt hại cho SVM
2.3 Hàm hạt nhân SVM (Kernel)
Giới thiệu
Trong nhiều trường hợp, không thể phân chia các lớp dữ liệu
một cách tuyến tính trong một không gian ban đầu được dùng để mô
tả một vấn đề. Vì vậy, nhiều khi cần phải ánh xạ các điểm dữ liệu trong
không gian ban đầu vào một không gian mới nhiều chiều hơn, để việc
phân tách chúng trở nên dễ dàng hơn trong không gian mới [19] để dữ
liệu giữa hai lớp là phân biệt tuyến tính hoặc gần như phần biệt tuyến
tính.


15

Hình 2.11: Hàm hạt nhân chuyển dữ liệu từ không gian 𝑹𝟐
chiều sang 𝑹𝟑
Cơ sở toán học
Tính chất hàm hạt nhân
2.4 Phân lớp cảm xúc bình luận phim bằng SVM

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
Thu thập dữ liệu
Tiền xử lý
2.4.2.1 Làm sạch dữ liệu
2.4.2.2 Tách từ
Trích xuất đặc trưng bình luận
2.4.3.1 Trích xuất đặc trưng TF-IDF
2.4.3.2 Giảm chiều dữ liệu

Huấn luyện và đánh giá mô hình


16

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
3.1 Dữ liệu, công cụ và môi trường thực hiện
Hệ điều hành

Windows

Ngôn ngữ lập trình

Python, Java

Công cụ lập trình

Pycharm, Eclipse Photon

Số lớp phân loại
Miền dữ liệu

2 (Cảm xúc tích cực, cảm xúc tiêu
cực)
Cảm xúc tiêu cực và tích cực của
bình luận phim trực tuyến

Nguồn dữ liệu

Bình luận trên một số website phim

trực tuyến phổ biến phimmoi.net,
phimbathu.com,
movies.hdviet.com

Thư viện sử dụng

scikit-learn, seaborn, pandas,
matplotlib, wordcloud,
vnTokenizer

Số lượng bình luận
tích cực
Số lượng bình luận
tiêu cực

2657
1673

Bảng 3.1: Môi trường, thư viện và dữ liệu thực nghiệm
3.2 Tiền xử lý dữ liệu
Nhóm dữ liệu huấn luyện bao gồm 3742 bình luận phim thuộc
2 lớp tích cực và tiêu cực. Mục đích nhằm sử dụng để xây dựng mô
hình phân lớp SVM trên cơ sở tạo quá trình trích xuất đặc trưng và
huấn luyện mô hình SVM để tìm ra các tham số tối ưu nhất cho mô
hình điển hình là 3 tham số C, gamma và kernel.


17

Đa số bình luận đều có độ dài khá ngắn và độ dài trung bình

bình luận tích cực dài hơn độ dài trung bình bình luận tiêu cực. Đồng
thời dữ liệu huấn luyện có số lượng bình luận tích cực nhiều hơn số
lượng bình luận tiêu cực (chiếm 62%).

Hình 3.4: WordCloud bình luận tích cực


18

Hình 3.5: WordCloud bình luận tiêu cực
3.3 Trích xuất đặc trưng bình luận
Sau khi thực hiện tiền xử lý, tác giả sử dụng lớp TfidfVectorizer
của thư viện scikit-learn để tiến hành trích xuất đặc trưng TF-IDF với
các tham số đầu vào là danh sách bình luận đã tách từ và tên phương
thức chuẩn hóa vector sau khi trích xuất đặc trưng là l2.


×