Tải bản đầy đủ (.docx) (21 trang)

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG ỨNG DỤNG THUẬT TOÁN NAIVE BAYES CHO BÀI TOÁN PHÂN LỚP VĂN BẢ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 (2.23 MB, 21 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH

TÊN ĐỀ TÀI:
ỨNG DỤNG THUẬT TOÁN NAÏVE BAYES
CHO BÀI TOÁN PHÂN LỚP VĂN BẢN

Giảng viên hướng dẫn:
GS.TSKH. Hoàng Văn Kiếm
Học viên thực hiện:
Võ Anh Tuấn – CH1301113
TP.HCM, 10/10/2014
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
MỤC LỤC
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
I. GIỚI THIỆU
1. Giới thiệu đề tài:
II. Đề tài “Ứng dụng thuật toán Naïve Bayes cho bài toán phân lớp văn
bản” là đề tài thuộc lĩnh vực máy học. Nội dung của đề tài này là tìm hiểu
thuật toán Naïve Bayes, qua đó áp dụng thuật toán Naïve Bayes vào bài toán
phân lớp văn bản, xây dựng chương trình demo và minh họa quá trình huấn
luyện, kiểm nghiệm trên một tập dữ liệu, từ đó có thể dự báo lớp cho dữ liệu
mới nhập vào.
1.1. Mục tiêu đề tài
• Nghiên cứu thuật toán Naïve Bayes.
• Xây dựng chương trình phân lớp dữ liệu demo sử dụng thuật
toán Naïve Bayes.
1.2. Phạm vi thực hiện
• Đề tài nghiên cứu thuật toán Naïve Bayes ở mức cơ bản.
• Ứng dụng demo nhằm mục đích minh họa cho thuật toán Naïve
Bayes, được viết bằng C# và chạy trên môi trường Windows.


III.
IV. CƠ SỞ LÝ THUYẾT
1. Định lý Bayes
V. Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên
A khi biết sự kiện liên quan B đã xảy ra. 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”. Đại lượng này được gọi xác suất có
điều kiện hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B
hoặc phụ thuộc vào giá trị đó.
VI.
VII. Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào
3 yếu tố:
• Xác suất xảy ra A của riêng nó, không quan tâm đến B. Kí hiệu là
P(A) và đọc là xác suất của A. Đây được gọi là xác suất biên duyên
hay xác suất tiên nghiệm, nó là "tiên nghiệm" theo nghĩa rằng nó
không quan tâm đến bất kỳ thông tin nào về B.
• Xác suất xảy ra B của riêng nó, không quan tâm đến A. Kí hiệu là
P(B) và đọc là "xác suất của B". Đại lượng này còn gọi là hằng số
chuẩn hóa (normalising constant), vì nó luôn giống nhau, không phụ
thuộc vào sự kiện A đang muốn biết.
• Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A) và đọc là "xác
suất của B nếu có A". Đại lượng này gọi là khả năng (likelihood) xảy
ra B khi biết A đã xảy ra. Chú ý không nhầm lẫn giữa khả năng xảy ra
A khi biết B và xác suất xảy ra A khi biết B.
Page 3
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
VIII.
IX. Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công
thức:
X.
XI. Từ đó dẫn tới

XII.
XIII.
2. Thuật toán phân lớp Naïve Bayes
XIV. Thuật toán này dựa trên định lý Bayes, nó tính ra xác suất một
mẫu X thuộc về một lớp nào đó dựa vào xác suất xuất hiện của các thuộc tính
có trong X. Phương pháp này giả định rằng các thuộc tính là độc lập xác suất,
nghĩa là sự xuất hiện của các thuộc tính không phụ thuộc lẫn nhau.
XV. Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu
như sau:
XVI.
XVII. Trong đó:
• Y đại diện một giả thuyết, giả thuyếtnày được suy luận khi có được
chứng cứ mới X
• P(X): xác xuất X xảy ra, P(Y) : xác xuất Y xảy ra
• P(X|Y): xác xuất X xảy ra khi Y xảy ra (xác suất có điều kiện, khả
năng của X khi Y đúng)
• P(Y|X): xác suất hậu nghiệm của Y nếu biết X.
XVIII.
XIX. Thuật Toán Naïve Bayes được ứng dụng rất nhiều trong thực tế.
Một trong những ứng dụng cụ thể là ứng dụng bài toán phân lớp.
XX.
XXI. Đây là thuật toán được xem là đơn giản nhất trong các phương
pháp phân lớp. Bộ phân lớp Bayes có thể dự báo các xác suất là thành viên
của lớp, chẳng hạn xác suất mẫu cho trước thuộc về một lớp xác định.
XXII.
XXIII. Với mỗi lớp dữ liệu trong bộ huấn luyện, ta tính xác suất phụ
thuộc của văn bản cần phân loại:
XXIV.
Page 4
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản

XXV. Với c
k
là lớp dữ liệu cần tính xác suất và x là văn bản dữ
liệu cần phân loại
XXVI.
XXVII. Công thức tính P(x|c
i
):
XXVIII.
XXIX. Trong đó: P(w
k
|c
i
) là xác suất xuất hiện của từ w
k
trong lớp văn
bản c
i
(k=1n; i=1,2,3…)
XXX.
XXXI. * Áp dụng trong bài toán phân loại, các dữ kiện gồm có:
• D: tập dữ liệu huấn luyện đã được vector hóa dưới dạng
• C
i
: phân lớp i, với i = {1,2,…,m}.
• Các thuộc tính độc lập điều kiện đôi một với nhau.
XXXII. Theo định lý Bayes:
XXXIII.
XXXIV. Theo tính chất độc lập điều kiện:
XXXV.

XXXVI. Trong đó:
• là xác suất thuộc phân lớp i khi biết trước mẫu X.
• xác suất là phân lớp i.
• xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp
i.
XXXVII.
XXXVIII. Các bước thực hiện thuật toán Naïve Bayes:
XXXIX. Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính và
XL.Bước 2: Phân lớp , ta cần tính xác suất thuộc từng phân lớp khi đã biết
trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo công thức:
XLI.
XLII. Ví dụ:
XLIII. Cho bảng dữ liệu “Chơi bóng đá”
XLIV.
Thời tiết
XLV. N
hiệ
t
độ
XLVI. Đ

ẩm
XLVII. G

XLVIII.
Lớp
XLIX.
Nắng
L. Nó
ng

LI. Ca
o
LII. Kh
ôn
g
LIII. N
Page 5
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
LIV. N
ắn
g
LV. Nó
ng
LVI. Ca
o
LVII. K

ng
LVIII. N
LIX. U

m
LX. Nó
ng
LXI. Ca
o
LXII. K

ng
LXIII. P

LXIV.
Mưa
LXV. Ấ
m_
áp
LXVI. C
ao
LXVII. K

ng
LXVIII.
P
LXIX.
Mưa
LXX. M
át
LXXI. V
ừa
LXXII. K

ng
LXXIII.
P
LXXIV.
Mưa
LXXV. M
át
LXXVI.
Vừa
LXXVII.


LXXVIII.
N
LXXIX.
U_ám
LXXX. M
át
LXXXI.
Vừa
LXXXII.

LXXXIII.
P
LXXXIV.
Nắng
LXXXV.
Ấm_áp
LXXXVI.
Cao
LXXXVII.
Không
LXXXVIII.
N
LXXXIX.
Nắng
XC. Ấ
m_
áp
XCI. Ca
o

XCII. K

ng
XCIII. N
XCIV.
Nắng
XCV. M
át
XCVI. V
ừa
XCVII. K

ng
XCVIII.
P
XCIX.
Mưa
C. Ấ
m_
áp
CI. Vừ
a
CII. Kh
ôn
g
CIII.P
CIV. N
ắn
g
CV. Ấ

m_
áp
CVI. Vừ
a
CVII. C
ó
CVIII. P
CIX. U

m
CX. Ấ
m_
áp
CXI. Ca
o
CXII. C
ó
CXIII. P
CXIV.
U_ám
CXV. N
ón
g
CXVI. V
ừa
CXVII. K

ng
CXVIII.
P

CXIX.
Mưa
CXX. Ấ
m_
áp
CXXI. C
ao
CXXII. C
ó
CXXIII.
N
CXXIV.
CXXV. Ta có thể tính các xác suất sau:
Page 6
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CXXVI. Thời tiết CXXVII.
CXXVIII. P(nắng | p) =
2/9
CXXIX. P(nắng | n) = 3/5
CXXX. P(u_ám | p) = 4/9 CXXXI. P(u_ám | n) = 0
CXXXII. P(mưa | p) =
3/9
CXXXIII. P(mưa | n) = 2/5
CXXXIV. Nhiệt độ CXXXV.
CXXXVI. P(nóng | p) =
2/9
CXXXVII. P(nóng | n) = 2/5
CXXXVIII. P(ấm áp | p) =
4/9
CXXXIX. P(ấm áp | n) =

2/5
CXL. P(mát | p) = 3/9 CXLI. P(mát | n) = 1/5
CXLII. Độ ẩm CXLIII.
CXLIV. P(cao | p) = 3/9 CXLV. P(cao | n) = 4/5
CXLVI. P(vừa | p) = 6/9 CXLVII. P(vùa | n) = 1/5
CXLVIII. Gió CXLIX.
CL. P(có | p) = 3/9 CLI. P(có | n) = 3/5
CLII. P(không | n) = 6/9 CLIII. P(không | n) = 2/5
CLIV. Cuối cùng ta có P(p) = 9/14 và P(n) = 5/14
CLV. Với bảng dữ liệu trên. Cho phân lớp X chưa được tìm thấy như
sau X= < mưa, nóng, cao, không>
CLVI. Phân lớp X :
CLVII. Một mẫu chưa được gặp X = <mưa, nóng, cao, không>
CLVIII. P(X|p)P(p) = P(mưa|p)P(nóng|p)P(cao|p)P(không|p)P(p) =
(3/9)*(2/9)*(3/9)*(6/9)*(9/14)=0.010582
CLIX. P(X|n)P(n)= P(mưa|n)P(nóng|n)P(cao|n)P(không|n)P(n) =
(2/5)*(2/5)*(4/5)*(2/5)*(5/14)=0.018286
CLX. Vậy mẫu X được phân vào lớp n (không chơi bóng đá)
CLXI.
3. Áp dụng thuật toán Naïve Bayes trong bài toán phân lớp văn bản
CLXII. Phương pháp phân loại Bayes thực hiện việc phân loại bắt đầu
với việc phân tích văn bản bằng cách trích những từ được chứa trong văn
bản. Để thực hiện việc phân tích này, một thuật toán trích từ đơn giản để lấy
ra những từ khác nhau trong văn bản. Những từ này sẽ được lưu vào một
danh sách dùng để tính xác suất mỗi từ thuộc về mỗi loại. Danh sách từ sau
đó sẽ được sử dụng để sinh ra một bảng chứa xác suất của từ đó thuộc về một
loại. Bảng này sẽ gồm một cột “word” chứa các từ trong văn bản và một số
Page 7
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
cột xác suât của từ đó cho mỗi loại, tức là có bao nhiêu loại văn bản thì sẽ có

bấy nhiêu cột xác suất. Giá trị của cột xác suất sẽ tính theo công thức Bayes
mà sẽ được trình bày ở bên dưới.
CLXIII.
CLXIV. Trước khi tính xác của từ thuộc về một loại nào, từ đó cần phải
được huấn luyện bằng một tập dữ liệu huấn luyện được tổ chức, định dạng
theo một qui chuẩn. Mỗi từ phân biệt từ các văn bản huấn luyện trong cùng
một loại sẽ đưa vào danh sách xuất hiện từ cho loại đó.
CLXV.
CLXVI. Dựa vào danh sách xuất hiện của từ, việc phân loại theo xác suất
sẽ tiến hành tính toán xác suất hậu nghiệm của từ đó thuộc về một loại cụ thể
bằng cách sử dụng công thức (2). Từ xuất hiện càng nhiều cho một loại thì
xác suất càng càng cao, việc phân loại càng chính xác.
CLXVII.
CLXVIII. Công thức trên cho thấy rằng bằng cách quan sát giá trị
của một từ cụ thể wj, xác suất của một loại cụ thể Ci, Pr(Ci) có thể được
chuyển thành xác suất hậu nghiệm Pr(Ci|wj). Pr(Ci|wj) là xác suất của từ wj
thuộc về loại Ci. Pr(Ci) có thể được tính bằng công thức sau:
CLXIX.
CLXX. Pr(wj) có thể được tính bằng công thức sau:
CLXXI.
CLXXII.Theo công thức Bayes trong phân loại văn bản, với giá trị của xác
suất Pr(Category), Pr(Word|Category) và Pr(Word), xác suất hậu nghiệm
Pr(Category | Word) của mỗi từ trong văn bản thuộc về một loại có thể được
xác định.
Page 8
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CLXXIII.
CLXXIV. Xác suất hậu nghiệm của một từ thuộc về mỗi loại sẽ được
điền vào bảng xác suất bên dưới
CLXXV.

CLXXVI. Sau khi các ô xác suất được điền vào, xác suất tổng thể
của một văn bản thuộc về một loại cụ thể Ci được tính bằng cách chia tổng
mỗi cột xác suất cho tổng số từ trong văn bản.
CLXXVII.
CLXXVIII. trong đó w1, w2, w3, …., w n-1, wn là
những từ được trích trong văn bản.
CLXXIX.
CLXXX.Loại nào có xác suất Pr(Category | Document) cao nhất thì văn
bản sẽ thuộc về loại đó theo luật phân loại Bayes.
CLXXXI.
4. Đánh giá
CLXXXII. Mô hình phân lớp Naive Bayes là mô hình phân lớp dựa
trên xác suất. Trong một số lĩnh vực, khả năng áp dụng của nó có thể so sánh
với các phương pháp khác như mạng nơron hoặc cây quyết định. Trong thực
tế, mô hình phân lớp Naive Bayes thực hiện rất tốt trong phân lớp văn bản
như hệ thống phân loại văn bản Rainbow, hay trong các hệ thống phân loại
email.
CLXXXIII.
Page 9
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CLXXXIV. Các thuật toán Bayes tính toán các khả năng cụ thể đối với
các giả định, chẳng hạn như bộ phân lớp Naive Bayes là một trong các cách
tiếp cận thực tế nhất đối với các kiểu học chắc chắn. Michie đã đưa ra một
nghiên cứu chi tiết việc so sánh giữa bộ phân lớp Naive Bayes với các thuật
toán máy học khác trong đó có cả các thuật toán theo cây quyết định và mạng
noron. Các nhà nghiên cứu đã chứng minh rằng bộ phân lớp Naive Bayes là
tương đối mạnh và trong một số trường hợp nó còn cho kết quả tốt hơn. Bên
cạnh đó, việc thiết kế một hệ thống phân lớp Naive Bayes trong thực tế
thường dễ dàng hơn so với phương pháp phân lớp khác vì tính đơn giản của
nó và thời gian thực hiện phân lớp một văn bản mới cho kết quả nhanh hơn

nhiều.
CLXXXV.
CLXXXVI. Một số đặc điểm của phương pháp Naive Bayes:
• Phương pháp học Naive Bayes tính xác suất rõ ràng cho các giả định
bằng cách đếm tần suất của các kết hợp dữ liệu khác nhau trong tập dữ
liệu huấn luyện để tính xác suất.
• Mỗi mẫu học quan sát được có thể giảm hoặc tăng xác suất dự đoán
một giả định là đúng đắn. Điều này cho ta một cách tiếp cận thiết kế
một hệ thống học uyển chuyển hơn các thuật toán khác và loại trừ
hoàn toàn một giả định nếu nó thấy có sự không nhất quán với bất kỳ
mẫu đơn lẻ nào.
• Kiến thức biết trước có thể kết hợp với dữ liệu quan sát được để xác
định khả năng của một giả định. Trong đó kiến thức biết trước có được
bằng cách phân phối xác suất trên toàn bộ dữ liệu quan sát được cho
mỗi giả định có thể có.
• Phương pháp Naive Bayes cung cấp xác suất dự đoán. Mỗi thể hiện
mới được phân lớp bằng cách kết hợp dự đoán của nhiều giả định.
• Phương pháp học Naive Bayes có tính tăng trưởng.
• Mỗi mẫu huấn luyện có thể tăng/giảm dần khả năng đúng của một giả
thiết.
• Tri thức ưu tiên có thể kết hợp với dữ liệu quan sát được.
• Ngay cả khi các phương pháp Naive Bayes khó trong tính toán chúng
vẫn có thể cung cấp một chuẩn để tạo quyết định tối ưu so với các
phương pháp khác.
• Phương pháp Naive Bayes phù hợp với các bài toán có yêu cầu về chi
phí xuất hiện của giá trị các thuộc tính.
• Việc thiết kế hệ thống phản lớp trong thực tế thường dễ dàng hơn so
với các phương pháp khác.
• Các thuộc tính trong tập mẫu học phải là độc lập điều kiện.
Page 10

Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
• Độ chính xác của thuật toán phân lớp phụ thuộc nhiều vào tập dữ liệu
học ban đầu.
CLXXXVII.
CLXXXVIII. Dựa trên những đặc điểm của các phương pháp phân lớp
nêu trên, ta chọn phương pháp phân lớp xác suất Naive Bayes làm mô hình
phân lớp văn bản.
CLXXXIX.
CXC. ỨNG DỤNG PHÂN LỚP VĂN BẢN
1. Giới thiệu
CXCI. NaïveBayesClassifier là ứng dụng phân lớp văn bản demo sử
dụng thuật toán Naïve Bayes. Ứng dụng gồm 2 chức năng chính, đó là huấn
luyện văn bản và phân loại văn bản. Dữ liệu huấn luyện sẽ được lưu lại theo
một chuẩn và có thể được sử dụng cho những lần huấn luyện tiếp theo.
• Huấn luyện văn bản (training):
CXCII. Thông qua giao diện huấn luyện, người dùng sẽ nhập một
số văn bản cụ thể cho một số loại (Category) cụ thể và huấn luyện nó.
Các văn bản này sẽ thông qua Learning Facility để chia nhóm ra theo
từng loại. Nhóm các văn bản này sẽ được lưu trữ lại và sau đó thông
qua bộ Training data gerneration facility để sinh ra danh sách số lần
xuất hiện của từ. Danh sách này sẽ được dùng trong việc tính xác suất
Bayes trong công thức phân loại văn bản.
CXCIII.
• Phân lớp văn bản (classify):
CXCIV. Để tiến hành phân loại văn bản, người dùng cũng sẽ nhập
văn bản cần phân loại thông qua giao diện chương trình. Văn bản này
sẽ được đưa vào bộ phân tích từ gọi là Input Document Analysis để
sinh ra một danh sách số lần xuất hiện của từ. Danh sách này sẽ tính
toán trong công thức Naïve Bayes để tính xác suất đúng cho loại của
văn bản nhập vào.

CXCV.
2. Yêu cầu
• Hệ điều hành windows.
• .NetFramework 3.5
( />CXCVI.
3. Cài đặt và sử dụng
Page 11
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CXCVII.Chương trình được đóng gói thành tập tin
NaiveBayesClassifier.exe, người dùng có thể double click vào tập tin để
chạy chương trình mà không cần cài đặt.
CXCVIII.
CXCIX. Hình 3.1: Icon chương trình
CC.
CCI. Màn hình giao diện chính của chương trình:
CCII.
CCIII.
Hình 3.2: Giao diện chính
CCIV.
3.1. Xử lý văn bản
CCV. Để tiến hành huấn luyện hay phân loại văn bản, trước hết
văn bản cần phải được đưa qua bộ xử lý văn bản. Nhiệm vụ chủ yếu
của bộ xử lý văn bản là tách những từ riêng biệt trong văn bản và đưa
vào một danh sách. Những từ được tách trong văn bản là những từ có
chiều dài tối thiểu tùy thuộc vào chương trình qui định. Trong chương
trình demo này thì những từ cần xử lý là những từ có chiều dài tối
Page 12
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
thiểu là 3 ký từ. Vì những từ có có chiều dài quá ngắn sẽ không mang
nhiều ý nghĩa trong văn bản.

CCVI.
CCVII. Bộ xử lý văn bản cũng cần xử lý những từ thường xuyên
xuất hiện nhưng không mang ý nghĩa gì trong văn bản. Những từ này
gọi là STOP LIST, chẳng hạn như các từ the, a, an, is… Việc loại bỏ
những từ này sẽ góp phần cho dữ liệu huấn luyện được chính xác hơn.
CCVIII.
3.2. Huấn luyện văn bản
CCIX. Từ giao diện chính của chương trình, click vào menu
Traning > Training để mở hộp thoại huấn luyện văn bản.
CCX.
CCXI. Hình 3.3: Menu Training
CCXII.
CCXIII. Hộp thoại huấn luyện văn bản sẽ xuất hiện
CCXIV.
CCXV. Hình 3.4: Giao diện huấn luyện văn bản
CCXVI.
CCXVII.Việc huấn luyện bao gồm các bước sau:
Page 13
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CCXVIII.
CCXIX. Hinh 3.5: Các bước huấn luyện
CCXX.
• Bước 1: Nhập văn bản huấn luyện
CCXXI. Người dùng có 2 cách để nhập văn bản huấn luyện:
1. Nhập trực tiếp vào text box.
2. Import văn bản từ file text (.txt).
CCXXII.
CCXXIII. Hình 3.6: Import văn bản từ file text
CCXXIV.
CCXXV. Sau khi click vào menu File > Import data

from file, hộp thoại select file sẽ xuất hiện.
Page 14
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CCXXVI.
CCXXVII. Hình 3.7: Hộp thoại select file
CCXXVIII.
CCXXIX. Chọn file văn bản muốn huấn luyện và click
Open, nội dung file văn bản này sẽ được hiển thị lên text
box.
CCXXX.
• Bước 2: Chọn Category tương ứng cho văn bản huấn luyện.
• Bước 3: Click nút Add để bắt đầu huấn luyện.
• Bước 4: Click Clear để xóa văn bản trong text box và lặp lại
các bước từ 1 đến 3 để huấn luyện cho các văn bản khác.
• Bước 5: Sau khi huấn luyện xong, click nút Finish để kết thúc
quá trình huấn luyện.
CCXXXI.
CCXXXII. Vì mục đích demo, chương trình chỉ hổ trợ một số
loại văn bản: Sport, News, Entertainment, Business, Laws, Education,
Science…Những văn mang nội dung thể thao như bóng đá, bóng rỗ,
quần vợt… sẽ thuộc về loại Sport. Những văn bản mang tính chất tin
tức như tin thế giới, thời sự… sẽ thuộc về loại News. Những văn bản
mang nội dung giải trí như âm nhạc, điện ảnh, thời trang … sẽ thuộc
về loại Entertainment. Những văn bản mang nội dung kinh tế, thị
trường, chứng khoán… sẽ thuộc về Business. Những văn bản nào
mang tích chất pháp luật thì thuộc về Laws. Những văn bản nào có nội
dung về giáo dục sẽ thuộc về loại Education. Những loại văn bản
mang nội dung khoa học sẽ thuộc về Science.
CCXXXIII.
Page 15

Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CCXXXIV. Việc huấn luyện cần phải thực hiện chính xác cho
mỗi loại, tức là văn bản thuộc về loại nào thì cần phải chọn đúng loại
cho văn bản đó. Việc huấn luyện này càng nhiều thì chương trình sẽ
phân loại càng chính xác.
CCXXXV.
CCXXXVI. Sau khi huấn luyện xong, nhấn nút Finish để kết
thúc quá trình huấn luyện văn bản. Chương trình sẽ tạo ra một tập tin
dữ liệu huấn luyện “Data/TrainingData.txt” cùng với thư mục chạy
của chương trình. Người dùng có thể lưu tập tin này để sử dụng cho
những lần huyến luyện tiếp theo.
CCXXXVII.
CCXXXVIII. Người dùng có thể khám phá tập tin dữ liệu huấn
luyện “Data/TrainingData.txt” bằng cách mở tập tin này bằng một
chương trình soạn thảo văn bản (notepad hay notepad++). Tập tin này
chứa tất cả các từ mà người dùng đã huấn luyện cùng với số lần xuất
hiện cho mỗi loại.
CCXXXIX.
3.3. Phân lớp văn bản
• Bước 1: Nhập văn bản cần phân lớp.
CCXL. Có 2 cách nhập văn bản cần phân lớp:
1. Nhập trực tiếp văn bản vào text box
CCXLI.
Page 16
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CCXLII. Hình 3.8: Nhập trực tiếp văn bản cần phân
loại vào text box
CCXLIII.
2. Import văn bản từ file .txt bằng cách click vào menu File >
Import data from file

CCXLIV.
CCXLV. Hình 3.9: Import văn bản cần phân loại từ
file txt.
CCXLVI.
• Bước 2: Click vào nút Clarify để phân lớp văn bản.
CCXLVII. Kết quả phân lớp văn bản sẽ hiển thị ngay bên dưới
đoạn văn bản tương tự như hình sau
CCXLVIII.
CCXLIX. Hình 3.10: Kết quả phân loại nhận được sau khi
click Clarify
CCL.
• Click Clear để xóa văn bản đã phân loại trong text box và nhập
văn bản mới vào để tiếp tục phân loại.
CCLI.
Page 17
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
4. Thử nghiệm
CCLII. Chương trình đã tiến hành huấn luyện dữ liệu từ trang tin tức
CNN ( trang BCC ()
CCLIII. Quá trình huấn luyện:
CCLIV.
CCLV. K
ết
quả
phân lớp:
CCLVI.
Văn bản
CCLVII.
Số văn
b


n
CCLVIII.
Phân loại
đúng
CCLIX.
Phân loại
sai
CCLX. T
ỉ lệ
CCLXI.
Sport
CCLXII.
35
CCLXIII.
25
CCLXIV.
10
CCLXV.
71%
CCLXVI.
Entertain
me
nt
CCLXVII.
25
CCLXVIII.
22
CCLXIX.
3

CCLXX.
88%
CCLXXI.
News
CCLXXII.
30
CCLXXIII.
23
CCLXXIV.
7
CCLXXV.
76%
CCLXXVI.
Business
CCLXXVII.
20
CCLXXVIII.
14
CCLXXIX.
6
CCLXXX.
65%
CCLXXXI.
CCLXXXII. Kết quả phân loại trên chỉ mang tính tương đối vì việc
huấn luyện được thực hiện trong một phạm vi nhỏ. Đối với các văn bản mà
người dùng đã huấn luyện thì việc phân loại là khá chính xác. Tuy nhiên, để
việc dự đoán lớp trở nên chính xác thì cần một tập dữ liệu huấn luyện đủ lớn.
CCLXXXIII.
CCLXXXIV.
CCLXXXV.

CCLXXXVI.
CCLXXXVII.
CCLXXXVIII.
Page 18
I. Văn bản II. Huấn luyện
III. Sport IV. 30
V. Entertainment VI. 20
VII. News VIII.30
IX. Business X. 30
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CCLXXXIX.
CCXC.
CCXCI.
CCXCII.
CCXCIII.
CCXCIV.
CCXCV.
CCXCVI.
CCXCVII.
CCXCVIII.
CCXCIX.
CCC.
CCCI.
CCCII.
CCCIII.
CCCIV.
CCCV.
CCCVI.
CCCVII.
CCCVIII.

CCCIX.
CCCX.
CCCXI. KẾT LUẬN
1. Kết quả đạt được
• Trình bày được thuật toán Naïve Bayes.
• Cài đặt được ứng dụng demo và chạy thử trên tập dữ liệu huấn luyện, phân
lớp và kiểm thử tính chính xác.
2. Hạn chế và tồn tại
CCCXII.Do hạn chế về thời gian, nên kết quả vẫn còn nhiều tồn tại như sau:
• Chỉ mới chạy thử nghiệm trên tập dữ liệu chưa đủ lớn và trong phạm vi hẹp.
• Kết quả chạy thử nghiệm còn yếu nên chưa đáng tin tưởng lắm. Nguyên
nhân có thể là do chưa tối ưu được thuật toán trong quá trình cài đặt.
3. Hướng phát triển
Page 19
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CCCXIII. Naïve Bayes chỉ là một trong số rất nhiều thuật toán, bài toán
phân lớp chỉ là một trong số các bài toán của lĩnh vực khai phá dữ liệu, khám phá tri
thức. Vì vậy hướng phát triển tiếp theo cho chúng ta nên là: Tìm hiểu các thuật toán
phân loại khác và so sánh ưu nhược điểm của chúng, quan trọng nhất là hiểu được
phạm vi ứng dụng của chúng đối với từng loại dữ liệu để áp dụng cho hợp lý.
CCCXIV.
CCCXV.
CCCXVI.
CCCXVII.
CCCXVIII.
CCCXIX.
CCCXX.
CCCXXI.
CCCXXII.
CCCXXIII.

CCCXXIV.
CCCXXV.
CCCXXVI.
CCCXXVII.
CCCXXVIII.
CCCXXIX.
CCCXXX.
CCCXXXI.
CCCXXXII.
CCCXXXIII.
CCCXXXIV.
CCCXXXV.
CCCXXXVI.
CCCXXXVII. TÀI LIỆU THAM KHẢO
CCCXXXVIII. [1] Bài giảng môn Công nghệ tri thức và ứng dụng của
GS.TSKH. Hoàng Văn Kiếm.
CCCXXXIX. [2] Luận văn “Thuật toán Bayes và ứng dụng” của Nguyễn
Văn Huy – ĐHQG Hà Nội.
Page 20
Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản
CCCXL. [3] Codeproject
( />CCCXLI. [4] Wikipedia
( />Page 21

×