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

Nghiên cứu áp dụng thuật toán Multinomial bayes vào phân loại văn bản (Luận văn thạc sĩ)

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 (2.44 MB, 57 trang )

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

NGUYỄN MỸ HẢO

NGHIÊN CỨU ÁP DỤNG THUẬT TOÁN MULTINOMIAL BAYES
VÀO PHÂN LOẠI VĂN BẢN

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2018


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

NGUYỄN MỸ HẢO

NGHIÊN CỨU ÁP DỤNG THUẬT TOÁN MULTINOMIAL BAYES
VÀO PHÂN LOẠI VĂN BẢN

Chuyên ngành

: Hệ thống thông tin

Mã số

: 8.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT


(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC : TS. NGUYỄN MẠNH HÙNG

HÀ NỘI – 2018


i

LỜI CAM ĐOAN
Tôi cam đoan luận văn thạc sĩ “Nghiên cứu áp dụng thuật toán Multinomial
Bayes vào phân loại văn bản” 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ỳ công trình nào khác. Tất cả những tham khảo và kế thừa đều
được trích dẫn và tham chiếu đầy đủ.
Tác giả luận văn

Nguyễn Mỹ Hảo


ii

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
MỤC LỤC .................................................................................................................. ii
DANH MỤC HÌNH VẼ ............................................................................................ iv
MỤC LỤC BẢNG BIỂU ............................................................................................v
DANH MỤC TỪ VIẾT TẮT .................................................................................... vi
MỞ ĐẦU .....................................................................................................................1
CHƯƠNG 1: GIỚI THIỆU BÀI TOÁN PHÂN LOẠI ..............................................3
VĂN BẢN ...................................................................................................................3

1.1.Giới thiệu bài toán phân loại văn bản ...................................................................3
1.1.1. Mở đầu .......................................................................................................4
1.1.2. Bài toán phân loại văn bản .........................................................................6
1.1.3. Ứng dụng của bài toán phân loại văn bản..................................................8
1.2.Các phương pháp phân loại văn bản ...................................................................10
1.2.1. Phương pháp Navie Bayes .......................................................................10
1.2.2. Phương pháp K – Nearest Neighbor ........................................................12
1.2.3. Phương pháp Multinomial Logistic regression .......................................14
1.3. Kết luận ..............................................................................................................18
CHƯƠNG 2: PHƯƠNG PHÁP MULTINOMIAL BAYES TRONG BÀI TOÁN
PHÂN LOẠI VĂN BẢN ..........................................................................................19
2.1 Biểu diễn văn bản ................................................................................................19
2.1.1. Tiền xử lý văn bản ...................................................................................20
2.1.2. Kỹ thuật Bag of word...............................................................................25
2.1.3. Trọng số TF-IDF ......................................................................................26
2.2. Thuật toán Multinomial Bayes ...........................................................................28
2.2.1. Ý tưởng ....................................................................................................28
2.2.2. Nội dung thuật toán..................................................................................28
2.2.3. Ví dụ các bước của phương pháp Multinomial Bayes ............................30
2.3.4. Ưu điểm phương pháp Multinomial Bayes trong phân loại văn bản ......33


iii

2.3. Kết luận ..............................................................................................................33
CHƯƠNG 3 - THỰC NGHIỆM VÀ ĐÁNH GIÁ ...................................................34
3.1. Giới thiệu về bộ dữ liệu sử dụng ........................................................................34
3.2. Sơ đồ chương trình phân loại văn bản ...............................................................35
3.3. Tiền xử lý dữ liệu ...............................................................................................36
3.4. Biểu diễn văn bản thành vector ..........................................................................37

3.5. Các tiêu chuẩn đánh giá .....................................................................................38
3.6. Phương pháp thực nghiệm .................................................................................40
3.6.1. Công cụ dùng để phân lớp .......................................................................40
3.6.2. Xây dựng dữ liệu huấn luyện và kiểm tra ................................................40
3.7. Kết quả thực nghiệm ..........................................................................................41
3.8. So sánh với một số phương pháp khác...............................................................44
3.9. Kết luận ..............................................................................................................45
KẾT LUẬN ...............................................................................................................46
DANH MỤC TÀI LIỆU THAM KHẢO ..................................................................48


iv

DANH MỤC HÌNH VẼ
Hình 1. 1 Thời gian trung bình sử dụng internet trong 1 ngày của người Việt Nam..4
Hình 1.2 Các hoạt động trực tuyến được người dùng mạng sử dụng .........................5
Hình 1.3 Quy trình bài toán phân loại văn bản ...........................................................7
Hình 1.4 Mô hình giai đoạn huấn luyện ......................................................................8
Hình 1. 5 Mô hình giai đoạn phân lớp ........................................................................8
Hình 1. 6 Ví dụ bài toán phân loại trên báo điện tử VNExpress ................................9
Hình 1.7 Đồ thị hàm sigmoid 𝝈(𝒂) ..........................................................................15
Hình 2.1 Hình ảnh mô tả bước tiền xử lý..................................................................21
Hình 2.2 Các bước tiền xử lý văn bản .......................................................................21
Hình 2.3 Ví dụ cách biểu diễn Bang of word............................................................25
Hình 3.1 Minh họa một văn bản trong thư mục “rec.autos” .....................................34
Hình 3.2 Mô hình phân loại văn bản áp dụng thuật toán Multinomial Bayes ..........36
Hình 3.3 Tập tin “Data” sau khi đã được thực hiện xử lý .........................................37


v


MỤC LỤC BẢNG BIỂU
Bảng 1.1 Các bài toán phân loại trong ngôn ngữ tự nhiên..........................................3
Bảng 2.1 Các nghiên cứu về biểu diễn văn bản [6] ..................................................19
Bảng 2.2 Bảng dữ liệu bộ tài liệu gồm D1 – D5 .......................................................30
Bảng 2.3 Bảng dữ liệu để cần phân loại gồm D6 – D7.............................................30
Bảng 2.4 Bảng tính toán khả năng đối với loại AUTO .............................................32
Bảng 3.1 Danh sách phân bố dữ liệu trong 20 nhóm ................................................35
Bảng 3.2 Kết quả lần kiểm tra Fold #1 .....................................................................42
Bảng 3.3 Kết quả trung bình của lần chạy Fold #1 ...................................................43
Bảng 3.4 Kết quả thực nghiệm thuật toán Multinomial Bayes với 5 phần Cross
validation ...................................................................................................................44
Bảng 3.5 Kết quả thực nghiệm thuật toán Multinomial Logistic Regression với 5
phần cross - validation ..............................................................................................45


vi

DANH MỤC TỪ VIẾT TẮT
Từ viết

Ý nghĩa tiếng Anh

Ý nghĩa tiếng Việt

FN

False Positive

Số sai âm


FP

False Positive

Số sai dương

KNN

K – Nearest Neighbor

Thuật toán K – Nearest

tắt

Neighbor
NB

Naïve Bayes

Thuật toán Naïve Bayes

TN

True Negative

Số đúng âm

TP


True Positive

Số đúng dương


1

MỞ ĐẦU
Trong những năm gần đây, với sự phát triển của các siêu phương tiện và các
World Wide Web (WWW)…Với số lượng lớn người dùng và thông tin liên tục
được cập nhật từ đến mọi vấn đề trong đời sống, xã hội, kinh tế, giải trí… Điều này
tạo ra thách thức lớn cho việc truy vấn có hiệu quả của các hệ thống truy vấn thông
tin. Một trong những khó khăn mà các hệ thống thông tin thường phải gặp đó là tần
suất cập nhật của các thông tin quá lớn. Phương thức sử dụng giấy trong giao dịch
đang dần được số hóa, do nhiều tính năng vượt trội mà phương thức này mang lại,
như là có thể lưu trữ lâu dài, cập nhật, sửa đổi, tìm kiếm một cách nhanh chóng. Do
đó số lượng văn bản số hóa ngày nay đang tăng dần theo cấp số nhân, cùng với sự
gia tăng của số lượng văn bản, nhu cầu tìm kiếm văn bản cũng tăng theo, khi đó
phân loại văn bản tự động là một yêu cầu cấp thiết được đặt ra.
Phân loại văn bản giúp sẽ giúp chúng ta tìm kiếm thông tin một cách nhanh
chóng hơn thay vì phải tìm lần lượt trong từng văn bản, hơn nữa khi mà số lượng
văn bản đang gia tăng một cách nhanh chóng thì thao tác tìm lần lượt trong từng văn
bản sẽ mất rất nhiều thời gian, công sức và là một công việc nhàm chán và không
khả thi. Chính vì thế nhu cầu phân loại văn bản tự động là thực sự cần thiết.
Xuất phát từ thực trạng đang xảy ra, luận văn sẽ trình bày về phương pháp phân
loại văn bản áp dụng thuật toán Multinomial Bayes giúp người dùng có thể dễ dàng
hơn trong việc tìm kiếm thông tin cần thiết, đồng thời có thể lưu trữ thông tin theo
đúng chủ đề mong muốn.
Luận văn sẽ được cấu trúc với các chương như sau:
Chương 1 : Giới thiệu bài toán phân loại văn bản - Chương này đã giới thiệu

về bài toán phân loại văn bản các ứng dụng thực tế của bài toán trong môi trường
công nghiệp. Tiếp theo, trình bày 3 phương pháp được sử dụng trong bài toán phân
loại văn bản là: Naive Bayes, K - Nearest Neighbor và Multinomial Logistic Regression gồm các nội dung lịch sử, ý tưởng và cách thuật toán thực hiện.


2

Chương 2 : Phương pháp Multinomial Bayes trong bài toán phân loại văn
bản - Chương 2 của luận văn tập trung vào trình bày thuật toán Multinomial Bayes
cơ sở lý thuyết và áp dụng trong bài toán phân loại văn bản.
Chương 3: Thực nghiệm và đánh giá – Nội dung của chương 3 là cách thức
mô tả dữ liệu và chuẩn hóa bộ dữ liệu 20 Newsgroups được sử dụng trong luận văn.
Các bước tiền xử lý dữ liệu, chạy thuật toán phân loại Multinomial Bayes với tập dữ
liệu 18758 văn bản với công cụ Apache Spark MLLib.


3

CHƯƠNG 1: GIỚI THIỆU BÀI TOÁN PHÂN LOẠI
VĂN BẢN
1.1.Giới thiệu bài toán phân loại văn bản
Phân loại văn bản là một vấn đề trong lĩnh vực xử lý ngôn ngữ. Đặc điểm nổi
bật của bài toán này là sự đa dạng của chủ đề văn bản và tính đa chủ đề của văn
bản. Tính đa chủ đề của văn bản làm cho sự phân loại chỉ mang tính tương đối và có
phần chủ quan, nếu do con người thực hiện, và dễ bị nhập nhằng khi phân loại tự
động. Rõ ràng một bài viết về Giáo dục cũng có thể xếp vào Kinh tế nếu như bài
viết bàn về tiền nong đầu tư cho giáo dục và tác động của đầu tư này đến kinh tế xã hội. Về bản chất, một văn bản là một tập hợp từ ngữ có liên quan với nhau tạo
nên nội dung ngữ nghĩa của văn bản. Từ ngữ của một văn bản là đa dạng do tính đa
dạng của ngôn ngữ (đồng nghĩa, đa nghĩa, từ vay mượn nước ngoài,…) và số lượng
từ cần xét là lớn. Ở đây cần lưu ý rằng, một văn bản có thể có số lượng từ ngữ

không nhiều, nhưng số lượng từ ngữ cần xét là rất nhiều vì phải bao hàm tất cả các
từ của ngôn ngữ đang xét.
Nhiệm vụ của bài toán này là gán các tài liệu văn bản vào nhóm các chủ đề
cho trước [4]. Mỗi bài toán phân loại đều có đối tượng thao tác và mục tiêu phân
loại khác nhau. Trong bài toán phân loại văn bản, một văn bản (Document hay text)
là đối tượng nội dung cần thao tác.
Bảng 1.1 Các bài toán phân loại trong ngôn ngữ tự nhiên

Vấn đề
Gán nhãn từ loại (POS
tagging)
Gán nhãn ngữ tính từ
(Prepositional Phrase Attachment)
Khử nhập nhằng nghĩa từ
vựng (Word Sense Disambiguration)
Phân loại văn bản (Text
categorization)

Đối tượng

Phân loại

Ngữ cảnh của một từ

Nhãn của từ

Câu

Phân tích câu


Ngữ cảnh của một từ

Câu

Văn bản

Chủ đề


4

1.1.1. Mở đầu
Ngày nay, số lượng các tài liệu điện tử tăng lên một cách nhanh chóng từ
nhiều nguồn khác nhau, nguồn thông tin này đến từ các thư viện điện tử, thư điện
tử, trang web. Việc khám phá tri thức tiềm ẩn từ kho dữ liệu văn bản là cần thiết cho
việc quản lý, khai thác triệt để nguồn thông tin văn bản khổng lồ này. Các tri thức
có thể là mô hình gom cụm hay phân lớp văn bản, mà ở đó mô hình phân lớp được
sử dụng phổ biến trong ứng dụng như: gán nhãn tự động một bản tin, phân tích nội
dung để phát hiện nhóm khủng bố, nhận dạng thư rác vì thế các nghiên cứu về khai
phá dữ liệu dạng văn bản cũng được quan tâm hơn. Người dùng internet thường có
thói quen tìm kiếm thông tin thông qua các bài báo, tài liệu kinh doanh, thương mại
điện tử, ...
Tại Việt Nam, số người dùng internet được xem là ở mức cao trên thế thời.
Theo thống kê của We are social – Công ty chuyên thực hiện các thống kê và đánh
giá về thông số kỹ thuật số, di động và các lĩnh vực liên quan: Trung bình 1 ngày,
người Việt Nam bỏ ra 6 giờ 53 phút để duyệt web nếu xài PC và Tablet, 2 giờ 33
phút nếu xài điện thoại di động.

Hình 1. 1 Thời gian trung bình sử dụng internet trong 1 ngày của người Việt Nam


(Nguồn: We are social)
Nhìn chung, hoạt động thực hiện thường xuyên nhất trên Internet của người
dùng là thu thập thông tin, như đọc tin tức hay sử dụng các trang web tìm kiếm.
Hơn 90% số lượng người sử dụng Internet đã sử dụng những trang web tìm kiếm,


5

khoảng một nửa trong số họ thậm chí sử dụng hàng ngày. Internet cũng được sử
dụng để nghiên cứu cho việc học hay cho công việc bởi một nửa số người sử dụng
Internet 1 lần 1 tuần hay thường xuyên hơn. Với các trang web và ứng dụng tương
tác trực tuyến mới, người sử dụng không chỉ có cơ hội tìm được thông tin mà cũng
đóng góp phần nội dung của riêng họ.
Thương mại điện tử hiện nay, số lượng truy cập đạt mức tăng trưởng đáng
kể. Hầu hết các trang phổ biến là các trang web đấu giá và mua bán, nơi có 40%
người sử dụng đã từng viếng thăm. Ngân hàng trực tuyến vẫn đang ở giai đoạn sơ
khai. Mức độ sử dụng các trang web mua hàng trực tuyến và ngân hàng trực tuyến
đã phát triển rất mạnh trong vòng vài năm trở lại đây.

Hình 1.2 Các hoạt động trực tuyến được người dùng mạng sử dụng
(Nguồn: Cimigo NetCitizens)

Trong các hoạt động và truy cập internet, việc phân loại, chọn lọc, tìm kiếm
thông tin cần thiết, phù hợp với mục đích công việc là cần thiết. Việc phân loại có
thể được tiến hành một cách thủ công: đọc nội dung của từng hoạt động và gán nó
vào một nhãn nào đó. Tuy nhiên, đối với hệ thống gồm rất bản ghi hoặc với nguồn
dữ liệu lớn thì phương pháp này sẽ tốn rất nhiều thời gian và công sức. Do vậy cần
phải có phương pháp tự động để phân loại văn bản.
Phân lớp văn bản là công việc được sử dụng để hỗ trợ trong quá trình tìm
kiếm thông tin, chiết lọc thông tin, lọc văn bản hoặc tự động dẫn đường cho các văn



6

bản tới những chủ đề xác định trước. Phân lớp văn bản có thể thực hiện thủ công
hoặc tự động sử dụng các kỹ thuật học máy có giám sát. Từ thực tế về nhu cầu tìm
kiếm trong kho văn bản điện tử khổng lồ và việc tìm kiếm thủ công là không khả
thi, khi đó, bài toán phân loại văn bản đã, đang và sẽ được nghiên cứu, cải tiến và áp
dụng vào thực tế ngày một nhiều.
1.1.2. Bài toán phân loại văn bản
Phát biểu bài toán phân loại văn bản:
Đầu vào: Cho x là một văn bản, biết x thuộc một trong các nhóm(chủ đề)
{1, 2 ,..., K}.
Đầu ra: Hãy nhóm đúng nhất với x.
Ví dụ: Giả sử x là một bài báo của bạn gửi đăng trên trang web điện tử. Biên
tập viên cần quyết định xem x thuộc chủ đề nào là tích hợp nhất: “ showbiz”, “ẩm
thực”, “thể thao”,...
Giả sử x là một văn bản ngắn có mục tiêu điều khiển điều hòa. Mỗi thể loại
ứng với một hành động điều khiển: “ tắt”, “bật”, “chuyển chế độ gió”,...
Gọi y = ℎ∅ (x) là hàm phân loại của x trong đó ∅ là tham số của hàm. Ta cần
tìm ℎ∅ (. ) có khả năng phân loại tốt.
Để tìm ℎ∅ , ta sử dụng phương pháp học có hướng dẫn từ dữ liệu mẫu:
-

Dữ liệu học gồm N mẫu: (𝑥1 , 𝑦1 ), (𝑥2 , 𝑦2 ), ..., (𝑥𝑁 , 𝑦𝑁 ).

-

Hàm ℎ∅ được xây dựng sao cho phù hợp nhất với dữ liệu huấn luyện.


Mỗi văn bản x là một đối tượng cần phân loại, thông thường x được chuyển
thành một biểu diễn vector thực D chiều:
x = {𝑥1 , 𝑥2 ,.., 𝑥𝐷 } , 𝑥𝑗  𝓡
Các thành phần 𝑥𝑗 , 𝑗 = 1, 2, … , 𝐷 được gọi là đặc trưng hay thuộc tính của x.
Dưới đây là hình vẽ mô tả quy trình của bài toán phân loại văn bản:


7

Hình 1.3 Quy trình bài toán phân loại văn bản

Để tiến hành phân loại văn bản nói chung, chúng ta sẽ thực hiện theo 2 phần
chính là: huấn luyện và phân loại.
- Huấn luyện: Các văn bản đầu vào với nhãn đúng được trích chọn đặc trưng
và đưa vào thuật toán học để huấn luyện mô hình dự đoán phù hợp.
Chúng ta có một tập huấn luyện, mỗi phần tử trong tập huấn luyện được gán
vào một hoặc nhiều lớp mà chúng ta sẽ thể hiện chúng bằng một mô hình mã hóa.
Thông thường, mỗi phần tử trong tập huấn luyện được thể hiện theo dạng (𝑥⃗, 𝑐).
Trong đó 𝑥⃗ là vecto biểu diễn cho văn bản trong tập huấn luyện.
Sau đó, định nghĩa một lớp mô hình và một thủ tục huấn luyện. Lớp mô hình
là họ các tham số của bộ phân loại, thủ tục huấn luyện là một giải thuật (hay thuật
toán) để chọn ra một họ các tham số tối ưu cho bộ phân loại.


8

Hình 1.4 Mô hình giai đoạn huấn luyện

Đầu vào: ngữ liệu huấn luyện và thuật toán huấn luyện
Đầu ra: Mô hình phân lớp

- Phân loại: Văn bản mới được trích chọn đặc trưng và đưa vào mô hình đã
được huấn luyện ở bước trên để dự đoán nhãn phù hợp nhất.

Hình 1. 5 Mô hình giai đoạn phân lớp

1.1.3. Ứng dụng của bài toán phân loại văn bản
Bài toán phân loại đang được sử dụng phổ biến hiện nay, ta có thể bắt gặp
các ứng dụng của bài toán ở một số ví dụ như:
- Công cụ phân loại mail rác (spam email) của Google – Gmail. Theo như
công bố đạt độ chính xác 99.9% năm 2017 (Theo vtv công nghệ - Báo điện tử thuộc
đài truyền hình Việt Nam: Theo đó,
google áp dụng các kỹ thuật phân loại văn bản để kiểm tra nội dung bức thư đến tự
động và phát hiện được email đó là có phải là spam email hay không để cho vào
mục “Spam” riêng.


9

- Báo vnexpress.net phục vụ 37,5 triệu người đọc thường xuyên và đạt 1,2 tỷ
lượt xem mỗi tháng, đăng gần 500 tin bài mỗi ngày (số liệu 2016
VnExpress, đã áp dụng phương pháp phân loại văn bản phân loại tin
bài (gợi ý bài viết liên quan, khuyến nghị những bài báo phù hợp với người dùng từ
những bài báo trước đó đã đọc, marketing những sản phẩm phù hợp từ những bài
báo người dùng quan tâm,…).
Dưới hình ta sẽ thấy khi vào đọc một bài báo, VNExpress sẽ giới thiệu cho ta
nhưng bài báo có nội dung tương tự với bài ta đang đọc nhờ vào thuật toán phân
loại văn bản tự động.

Hình 1. 6 Ví dụ bài toán phân loại trên báo điện tử VNExpress



10

1.2.Các phương pháp phân loại văn bản
Để giải bài toán phân loại văn bản, đã có nhiều phương pháp được nghiên
cứu như: Naive Bayes, Multinomial Logistic regression, K-Nearest Neighbor, Multinomial Bayes... Để tìm hiểu và so sánh rõ hơn sự khác biệt và tối ưu với phương
pháp dùng thuật toán Multinomial Bayes, một số thuật toán phân loại văn bản sau sẽ
được phân tích sâu hơn:

1.2.1. Phương pháp Navie Bayes
Naive Bayes là thuật toán phân loại dựa trên định lý Bayes.
Định lý Bayes thường được dùng trong lý thuyết xác suất, cho phép tính xác
xuất xảy ra sự kiện A khi biết sự kiện liên qua B đã xảy ra [2]. Xác suất này được ký
hiệu là P(A|B), và đọc là “xác suất của A nếu có B”. Xác suất này có công thức như
sau:
(1.1)
𝑃(𝐴|𝐵) =

𝑃(𝐵|𝐴)𝑃(𝐴)
𝑃(𝐵)

Trong đó:
-

P(A): Xác suất xảy ra sự kiện A.

-

P(B): Xác suất xảy ra sự kiện B.


-

P(B|A): Xác suất xảy ra sự kiên B khi biết sự kiện A đã xảy ra.

Phương pháp Navie Bayes được sử dụng lần đầu tiên trong lĩnh vực phân
loại bởi Maron vào năm 1961, sau đó trở nên phổ biến trong nhiều lĩnh vực như
trong các công cụ tìm kiếm, các bộ lọc mail…
Ý tưởng
Ý tưởng của phương pháp là sử dụng xác suất có điều kiện giữa từ và chủ đề để
dự đoán xác suất chủ đề của một văn bản phân loại. Điểm quan trọng của phương
pháp này chính là ở chỗ để ứng dụng định lý Bayes cần giả định rằng sự xuất hiện
của tất cả các từ trong văn bản đều độc lập với nhau. Giả định đó làm cho việc tính
toán Navie Bayes hiệu quả và nhanh chóng hơn các phương pháp khác với độ phức


11

tạp theo số mũ vì nó không sử dụng việc kết hợp các từ để đưa ra phán đoán chủ đề
do đó bước training và testing trở nên vô cùng nhanh chóng và đơn giản.
Giả định đó làm cho việc tính toán Navie Bayes hiệu quả và nhanh chóng hơn
các phương pháp khác với độ phức tạp theo số mũ vì nó không sử dụng việc kết hợp
các từ để đưa ra phán đoán chủ đề [17].
Công thức chính
Mục đích chính là tính xác suất Pr (Cj, d’), xác suất để văn bản d’ nằm trong
lớp Cj. Theo luật Bayes, văn bản d’ sẽ được gán vào lớp Cj nào có xác suất Pr(Cj,
d’) cao nhất. Công thức sau dùng để tính Pr (Cj, d’) [17]:
HBayes (d’) = arg Cj 𝜖 C max(

|𝑑′ |


Pr(𝐶𝑗 ).∏𝑖=1 Pr(𝑤𝑖 |𝐶𝑗 )

(1.2)

)

|𝑑′ |
∑𝐶′ 𝜖𝐶 Pr(𝐶 ′ ).∏𝑖=1 Pr(𝑤𝑖 |𝐶 ′ )

= arg Cj 𝜖 C max(∑

Pr(𝐶𝑗 ).∏𝑤𝜖𝐹 Pr(𝑤 |𝐶𝑗 )𝑇𝐹(𝑤,𝑑′)

𝐶′ 𝜖𝐶 Pr(𝐶

′ ).∏

′ 𝑇𝐹(𝑤.𝑑′ )
𝑤𝜖𝐹 Pr(𝑤𝑖 |𝐶 )

)

Trong đó:
-

TF(w, d’) là số lần xuất hiện của từ wi trong văn bản d’
 |d’| là số lượng từ trong văn bản d’

-


wi là một từ trong không gian đặc trưng F với số chiều là |F’|

-

Pr(Cj) được tính dựa trên tỉ lệ phần trăm của số văn bản mỗi lớp tương ứng
trong tập dữ liệu huấn luyện:
Pr(Cj) =

-

||𝐶𝑗 ||
||𝐶||

=∑

||𝐶𝑗 ||


𝐶′ 𝜖 𝐶 ||𝐶 ||

(1.3)

Pr(wi | C) được tính sử dụng phép ước lượng Laplace
Pr(𝑤𝑖 |𝐶𝑗 ) =

1 + 𝑇𝐹(𝑤𝑖 , 𝐶𝑗 )
|𝐹 | + ∑𝑤′𝜖 |𝐹| 𝑇𝐹(𝑤 ′ , 𝐶𝑗 )

(1.4)


Naive Bayes là một công cụ rất hiệu quả trong một số trường hợp. Kết quả
có thể rất tồi nếu dữ liệu huấn luyện ít, nghèo nàn và các tham số dự đoán (không


12

gian đặc trưng) có chất lượng kém. Nói chung đây là một thuật toán phân loại tuyến
tính thích hợp trong phân loại văn bản nhiều chủ đề.
Naive Bayes có ưu điểm là cài đặt đơn giản, tốc độ nhanh, dễ dàng cập nhật
dữ liệu huấn luyện, có thể sử dụng kết hợp nhiều tập huấn luyện khác nhau để đưa
ra kết quả phân loại văn bản.
Nhược điểm của phương pháp Naive Bayes: Do trong thực tế giả định của
phương pháp là sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau rất
hiếm khi xảy ra do đó độ chính xác của phương pháp so với các phương pháp khác
thường không cao [17].

1.2.2. Phương pháp K – Nearest Neighbor
Phương pháp K – Nearest Neighbor dựa trên thuật toán K-Nearest Neighbors (K-NN) được sử dụng rất phổ biến trong lĩnh vực Data Mining (phân tích dữ
liệu). K-NN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần
nhất giữa đối tượng cần xếp lớp (Query point) và tất cả các đối tượng trong Training Data (tập dữ liệu huấn luyện).
Một đối tượng được phân lớp dựa vào K láng giềng của nó. K là số nguyên
dương được xác định trước khi thực hiện thuật toán. Người ta thường dùng khoảng
cách Euclidean để tính khoảng cách giữa các đối tượng.
Mô tả thuật toán:
1.

Xác định giá trị tham số K (số láng giềng gần nhất)

2.


Tính khoảng cách giữa đối tượng cần phân lớp (Query Point) với tất cả các
đối tượng trong training data (thường sử dụng khoảng các Euclidean)

3.

Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần
nhất với Query Point

4.

Lấy tất cả các lớp của K láng giềng gần nhất đã xác định

5.

Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho Query
Point


13

Ý tưởng
Khi cần phân loại một văn bản mới, thuật toán sẽ tính khoảng cách (có thể áp
dụng các công thức về khoảng cách như Euclide, Cosine, Manhattan, …) của tất cả
các văn bản trong tập huấn luyện đến văn bản này để tìm ra k văn bản gần nhất, gọi
là k nearest neighbor – k láng giềng gần nhất, sau đó dùng các khoảng cách này
đánh trọng số cho tất cả các chủ đề. Khi đó, trọng số của một chủ đề chính là tổng
tất cả các khoảng cách ở trên của các văn bản trong k láng giềng có cùng chủ đề,
chủ đề nào không xuất hiện trong k láng giềng sẽ có trọng số bằng 0. Sau đó các
chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao
sẽ được chọn làm chủ đề của văn bản cần phân loại [17].

Công thức chính
-

Trọng số của chủ đề cj với văn bản x được tính như sau:

⃗⃗i).y(𝑑
⃗⃗i, cj ) - bj
W (𝑥⃗, cj) = ∑𝑑⃗⃗𝑖 ∈{kNN} 𝑠𝑖𝑚 (𝑥
⃗⃗, 𝑑

(1.5)

Trong đó:
-

⃗⃗i, cj ) = 0: văn bản ⃗𝑑⃗i không thuộc về chủ đề cj
y(𝑑

-

⃗⃗i, cj ) = 1: văn bản ⃗𝑑⃗i thuộc về chủ đề cj
y(𝑑

-

⃗⃗i): độ giống nhau giữa văn bản cần phân loại 𝑥
sim(𝑥
⃗⃗, 𝑑
⃗⃗⃗⃗và văn bản
⃗𝑑⃗i. Có thể sử dụng độ đo cosine để tính sim(𝑥

⃗⃗, ⃗𝑑⃗i)
(1.6)
sim (𝑥
⃗⃗, ⃗𝑑⃗i) = cos (𝑥
⃗⃗, ⃗𝑑⃗i) =

-

⃗⃗𝑖 )
⃗⃗,𝑑
(𝑥
⃗⃗⃗⃗i ||
⃗⃗||.||𝑑
||𝑥

bj là ngưỡng phân loại của chủ đề cj được tự động học sử dụng một
tập văn bản hợp lệ được chọn ra từ tập huấn luyện.

Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần được
chạy thử nghiệm trên nhiều giá trị k khác nhau, trên càng nhiều giá trị k khác nhau
thì thuật toán càng ổn định và sai sót càng thấp.


14

Ưu điểm: Phương pháp K-NN dễ hiểu, dễ cài đặt, việc dự đoán kết quả của
dữ liệu mới rất nhanh và đơn giản mà không cần giả định gì về phân phối giữa các
tập văn bản.
Nhược điểm: Phương pháp K-NN phụ thuộc lớn vào việc lựa chọn tham số k
(số láng giềng gần nhất). Với k càng lớn độ chính xác của phương pháp càng cao,

tuy nhiên độ phức tạp của tính toán cũng tăng theo do phải tính khoảng cách tới
từng điểm của tập dữ liệu. Ngoài ra, việc lưu toàn bộ dữ liệu trong bộ nhớ cũng ảnh
hưởng tới hiệu năng của phương pháp K-NN [17].

1.2.3. Phương pháp Multinomial Logistic regression
Phương pháp hồi quy logistic là một mô hình hồi quy nhằm dự đoán giá trị đầu
ra rời rạc (discrete target variable) y ứng với một véc-tơ đầu vào x. Việc này tương
đương với chuyện phân loại các đầu vào x vào các nhóm y tương ứng [18].
Phương pháp Logistic regression cho phân loại nhị phân
Sử dụng phương pháp thống kê ta có thể coi rằng khả năng một đầu vào x
nằm vào một nhóm y0 là xác suất nhóm y0 khi khi biết x: p(y0∣x). Dựa vào công
thức xác xuất hậu nghiệm ta có [18]:
𝑝(𝑦0 |𝑥 ) =
=

Đặt: 𝛼

= ln

𝑝(𝑥 |𝑦0 )𝑝(𝑦0 )
𝑝 (𝑥 )

(1.7)

𝑝(𝑥 |𝑦0 )𝑝(𝑦0 )
𝑝(𝑥 |𝑦0 )𝑝(𝑦0 ) + 𝑝(𝑥 |𝑦1 )𝑝(𝑦1 )

𝑝(𝑥 |𝑦0 )𝑝(𝑦0 )
𝑝(𝑥 |𝑦1 )𝑝(𝑦1 )


Ta có:
𝑝(𝑦0 |𝑥 ) =

1
= 𝜎(𝑎)
1 + exp(−𝛼)

(1.8)


15

Hàm () ở đây được gọi là hàm sigmoid (logistic sigmoid function). Hình
dạng chữ S bị chặn 2 đầu của nó rất đặt biệt ở chỗ dạng phân phối đều ra và rất mượt.

Hình 1.7 Đồ thị hàm sigmoid 𝝈(𝒂)

Theo phân phối chuẩn
𝑎 = 𝑤 𝑇 𝑥 + 𝜔0

(1.9)

Đặt 𝑥0 = [1, … ,1], ta có thể viết gọn thành:
(1.10)
𝑎 = 𝑤𝑇𝑥

Công thức tính xác suất lúc này:
𝑝(𝑦0 |𝑥 ) =

1

= 𝜎(𝑤 𝑇 )
1 + exp(−𝛼)

(1.11)

Trong đó, 𝑥 là thuộc tính đầu vào còn 𝑤 là trọng số tương ứng.
Sau khi có được công thức tính được xác suất rồi thì ta có thể sử dụng một
ngưỡng ϵ ∈[0,1] để quyết định nhóm tương ứng.
Cụ thể:


16

(1.12)
{

𝑥 ∈ 𝑦0
𝑥 ∈ 𝑦1

𝑛ế𝑢 𝑝(𝑦0 |𝑥) ≥ 𝜀
𝑛ế𝑢 𝑝(𝑦0 |𝑥 ) < 𝜀

Ví dụ, 𝜀 = 0.7 thì x ∈ 𝑦0 khi mà xác suất thuộc nhóm 𝑦0 của nó là trên
70%, còn dưới 70% thì ta phân nó vào nhóm 𝑦1 .
Ta cần tối hiểu hàm lỗi
(1.13)
𝑚

1
𝐽(𝑤) = − ∑(𝑦 (𝑖) log 𝜎 (𝑖) + (1 − 𝑦 (𝑖) ) log(1 − 𝜎 (𝑖) ))

𝑚
𝑖=1

Trong đó, 𝑚 là kích cỡ của tập dữ liệu, 𝑦 (𝑖) lớp tương ứng của dữ liệu thứ 𝑖 trong
tập dữ liệu, 𝜎 (𝑖) = 𝜎(𝑤 𝑇 𝑥 𝑖 ) là xác suất tương ứng khi tính với mô hình cho dữ liệu thứ
𝑖.
Phương pháp Logistic regression cho phân loại nhiều nhóm
Tương tự như phân loại 2 nhóm, ta có thể mở rộng ra thành nhiều nhóm với
cùng phương pháp sử dụng công thức xác suất hậu nghiệm để được hàm softmax
sau:
𝑝(𝑦𝑘 |𝑥) = 𝑝𝑘 =

𝑝(𝑥|𝑦𝑘 )𝑝(𝑦𝑘 )
∑𝑗 𝑝(𝑥|𝑦𝑗 )𝑝(𝑦𝑗 )

=

(1.14)

exp(𝑎𝑘 )
∑𝑗 exp(𝑎𝑗 )

Với 𝑎𝑗 = log(𝑝(𝑥|𝑦𝑗 )𝑝(𝑦𝑗 ) = 𝑤𝑗𝑇 𝑥 . Trong đó, 𝑤𝑗 là trọng số tương ứng
nhóm 𝑗, còn 𝑥 là đầu vào dữ liệu. Tập các 𝑤𝑗 sẽ được gom lại bằng một ma trận
trọng số 𝑊 với mỗi cột tương ứng với trọng số của nhóm tương ứng.


17

Ở đây, ta sẽ mã hóa các nhóm của ta thành một véc – tơ one-hot với phần tử

ở chỉ số nhóm tương ứng bằng 1 và các phần tử khác bằng 0. Ví dụ: 𝑦1 =
[1, 0, … , 0], 𝑦3 = [0, 0, 1, 0, … , 0]. Tập hợp các véc – tơ này lại ta sẽ có được một
ma trận chéo Y với mỗi cột tương ứng với một nhóm. Ví dụ, ma trận sau biểu diễn
cho tập 3 nhóm:
1
𝒀 = [0
0

0
1
0

0
0]
1

Như vậy, ta có thể tính xác suất hợp toàn tập với giả sử các tập dữ liệu là độc
lập đôi một:
𝑚

𝐾

𝑝(𝒀|𝑾) = ∏ ∏ 𝑝(𝑦𝑘 |𝑥𝑖 )𝑦𝑖𝑘

(1.15)

𝑖=1 𝑘=1

𝑚


𝐾

= ∏ ∏(𝑝𝑖𝑘 )𝑦𝑖𝑘
𝑖=1 𝑘=1

Trong đó, 𝑃𝑖𝑘 = 𝑝𝑘 (𝑥𝑖 ). Lấy log ta được hàm lỗi:
𝑚

𝐾

𝐽(𝑊 ) = − ∑ ∑ 𝑌𝑖𝑘 log 𝑝𝑖𝑘

(1.16)

𝑖=1 𝑘=1

Như vậy, ta có thể thấy đây là công thức tổng quát của hàm lỗi trong
trường hợp 2 nhóm. Công thức này còn có tên gọi là: cross – entropy error function.
Việc tối ưu hàm lỗi này cũng tương tự như trường hợp 2 nhóm bằng cách
lấy đạo hàm:
𝑚

∇𝑤𝑗 𝐽(𝑊 ) = ∑(𝑝𝑖𝑗 − 𝑌𝑖𝑗 )𝑥𝑖
𝑖=1

(1.17)


×