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

TÌM HIỂU THUẬT TOÁN BAYES VÀ CÀI ĐẶT ỨNG DỤNG DOCUMENT CLARIFICATION

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.13 MB, 20 trang )

Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÀI THU HOẠCH MÔN
KHAI PHÁ DỮ LIỆU
ĐỀ TÀI:
TÌM HIỂU THUẬT TOÁN BAYES
VÀ CÀI ĐẶT ỨNG DỤNG
DOCUMENT CLARIFICATION
GVHD: PGS.TS. Đỗ Phúc
Người thực hiện: Bùi Chí Cường
Mã số: CH1101007
Lớp: Cao học khóa 6
TP.HCM – 2012
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời chân thành cảm ơn đến Ban Chủ nhiệm trường Đại học
công nghệ thông tin TP HCM đã tạo điều kiện cho em được tiếp cận với bộ môn Khai
phá dữ liệu.
Em xin cảm ơn thầy PGS.TS. Đỗ Phúc đã tận tình truyền đạt kiến thức cho chúng
em cũng những gì thầy đã giúp đỡ, hướng dẫn để em thực hiện bài tiểu luận.
Em cũng xin gửi lời cảm ơn sâu sắc đến quý thầy cô trong Khoa Công nghệ Thông tin
cùng các bạn bè thân hữu đã nhiệt tình đóng góp ý kiến, cũng như động viên để em
hoàn thiện hơn đề tài của mình.
Mặc dù đã rất cố gắng nhưng đề tài khó tránh khỏi những thiếu sót và sai lầm, em
mong thầy cô và bạn bè cho ý kiến để đề tài ngày càng hoàn thiện hơn.
Một lần nữa, em xin chân thành cảm ơn!
Tp. HCM, 10 tháng 11 năm 2012
Bùi Chí Cường
CH1101007
MỤC LỤC
LỜI CẢM ƠN ii
MỤC LỤC iii


DANH MỤC CÁC HÌNH iv
1 CHƯƠNG I - MỞ ĐẦU 5
1.1 Giới thiệu chung 5
1.2 Hoạt động nghiên cứu 5
2 CHƯƠNG II - TỔNG QUAN VỀ THUẬT TOÁN BAYES 6
2.1 Sự phân hoạch và công thức Bayes 6
2.2 Bộ phân lớp Naïve Bayes 6
2.3 Áp dụng định lý Bayes trong phân loại văn bản 9
3 CHƯƠNG III – DEMO VÀ SETUP 12
3.1 Tổng quan về chương trình demo 12
3.2 Hướng dẫn cài đặt và sử dụng chương trình 12
3.2.1 Yêu cầu 12
3.2.2 Cài đặt và sử dụng chương trình 12
3.2.3 Xử lý văn bản 14
3.2.4 Huấn luyện văn bản: 15
3.2.5 Phân loại văn bản 17
3.2.6 Thử nghiệm 19
4 CHƯƠNG IV - KẾT LUẬN 20
4.1 Tóm tắt kết quả đạt được 20
4.2 Hướng phát triển 20
4.3 Tài liệu tham khảo 20
iv
DANH MỤC CÁC HÌNH
Hình 1 - Giao diện chính 13
Hình 2 - Giao diện about 13
Hình 3 - Training with text input 15
Hình 4 - Training with file input 16
Hình 5 - Chọn file để clarify 17
Hình 6 - Clarify file đã chọn 18
Hình 7 - Clarify với dữ liệu nhập vào textbox 18

Hình 8 - Kết quả sau khi clarify 18
5
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
1 CHƯƠNG I - MỞ ĐẦU
1.1 Giới thiệu chung.
Ngày này, internet ngày càng phát triển và phổ biến trên thế giới dẫn đến thông tin
ngày càng da dạng. Việc phân loại thông tin bằng tay thì rất khó khăn và tốn nhiều thời
gian. Với sự phát triển của công nghệ thông tin đã giúp cho việc phân loại thông tin trở
nên dễ dàng hơn.
Một lĩnh vực quan trọng trong máy học (learning machine) đó là phân loại văn
bản. Phân loại văn bản tức là gom những văn bản có cùng chung một chủ đề vào trong
một nhóm. Những văn bản có thể là những mục tin tức, mục giải trí, thể thao…
Hiện nay, có rất nhiều kỹ thuật để phân loại văn bản như k+nearestneighbor,
support vector machines(SVM), boosting decisiontreesand neural network. Có rất
nhiều nghiên cứu và ứng dụng đã sử dụng kỹ thuật SVM để phân loại văn bản. Tuy
nhiên, cũng có một kỹ thuật khá phổ biến và cho độ chính xác cao trong việc phân loại
văn bản đó là phương pháp phân loại theo xác suất Bayes. Đây cũng là phương pháp
mà đề tài thực hiện nghiên cứu và áp dụng.
Trong đề tài này sẽ tìm hiểu về lý thuyết Bayes trong phân lớp và từ đó áp dụng
trong phân loại văn bản. Tiếp theo đề tài sẽ cài đặt và chạy demo thử nghiệm với một
số văn bản để thử nghiệm. Chương trình demo được viết bằng ngôn ngữ C# rất quen
thuộc và dễ phát triển. Cuối cùng là một số danh sách các tài liệu tham khảo.
1.2 Hoạt động nghiên cứu.
• Nghiên cứu và áp dụng công thức Bayes trong phân loại văn bản.
• Cài đặt và thử nghiệm phân lớp Bayes trong phân loại văn bản.
6
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
2 CHƯƠNG II - TỔNG QUAN VỀ THUẬT TOÁN BAYES
2.1 Sự phân hoạch và công thức Bayes
Cho H1, H2, …, Hn là một phân hoạch không gian mẫu M và A là biến cố bất kỳ

trong M. Ta có:
( )
0
( )( | )
n
i
P A P Hi A Hi
=
=

Các xác suất P(Hi) và P(A|Hi) thường được biết trước khi thực hiện phép thử và
được gọi là xác suất tiền nghiệm ( apriori probability). Xác suất P(A|Hi) cho biết khả
năng tham gia của Hi vào việc xảy ra biến cố A. Xác suất P(A|Hi) được gọi là xác suất
hậu nghiệm ( a posteriori probability). Có thể tính các xác suất hậu nghiệm từ các xác
suất tiền nghiệm theo công thức sau:
( ) ( | )
( | )
( )
P Hi P A Hi
P Hi A
P A
=
* Định lý Bayes:
Cho H1, H2, …, Hn là một phân hoạch không gian mẫu và A là biến cố trong M.
Khi đó với mọi i= 1….n ta có:
0
( ) ( | )
( | )
( ) ( | )
n

k k
k
P Hi P A Hi
P Hi A
P H P A H
=
=

2.2 Bộ phân lớp Naïve Bayes
Cho V1,V2, …, Vn là phân hoạch không gian mẫu V, mỗi Vi là một lớp. Không
gian các thể hiện X gồm các thể hiện được mô tả bởi tập thuộc tính A1, A2, …, An.
Không gian các thể hiện X là tập học. Khi có thể hiện mới với giá trị <a1,a2,…, an>,
bộ phân lớp sẽ xuất hiện giá trị hàm phân lớp f(x) là một trong các Vi.
Tiếp cận Bayes lấy các giá trị có xác suất cao nhất V
MAP
cho thể hiện mới. Chữ
MAP viết tắt của cụm từ Maximum A Posterior.
1 2
max ( | , , , )
i
MAP v V i n
V P v a a a

=
7
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Sử dụng định lý Bayes ta có:
1 2
1 2
( ) ( , , , | )

max
( , , , )
i
i n i
MAP v V
n
P v P a a a v
V
P a a a

=

1 2
max ( ) ( , , , | )
i n i
P v P a a a v=
(4.1)
Trong công thức trên có hai số hạng cần quan tâm là P(v1) và P(a1,a2,…,an). Ta
tính P(vj) bằng cách đếm số lần xuất hiện của giá trị đích vj trong tập học. Để tính
P(a1,a2,…,an) ta giả thuyết ban đầu các thuộc tính là độc lập. Nói cách khác, xác suất
của một thể hiện quan sát được <a1, a2, …, an> trên mỗi lớp vj là tích của các khả
năng của từng thuộc tính riêng biệt trên vj.
1 2
( , , , | ) ( | )
n
i i i
i
P a a a v P a v=

Do vậy, công thức (4.1) được viết lại là:

max ( ) ( | )
NB vi V i i i
i
V P v P a v

=

với NB là viết tắt của cụm từ Naïve Bayes
Bộ phân lớp Bayes liên quan đến bước học trong đó P(vj) và P(a1,a2,…,an) được
tính dựa trên tập học.
Để phân lớp ta dùng công thức:
arg max ( ) ( | )
i
n
NB v V i i i
i
V P v P a v

=

Ví dụ:
Cho bảng dữ liệu “Chơi bóng đá”
Thời tiết Nhiệt độ Độ ẩm Gió Lớp
Nắng Nóng Cao Không N
Nắng Nóng Cao Không N
U_ám Nóng Cao Không P
Mưa Ấm_áp Cao Không P
Mưa Mát Vừa Không P
Mưa Mát Vừa Có N
U_ám Mát Vừa Có P

8
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Nắng Ấm_áp Cao Không N
Nắng Ấm_áp Cao Không N
Nắng Mát Vừa Không P
Mưa Ấm_áp Vừa Không P
Nắng Ấm_áp Vừa Có P
U_ám Ấm_áp Cao Có P
U_ám Nóng Vừa Không P
Mưa Ấm_áp Cao Có N
Ta có thể tính các xác suất sau:
Thời tiết
P(nắng | p) = 2/9 P(nắng | n) = 3/5
P(u_ám | p) = 4/9 P(u_ám | n) = 0
P(mưa | p) = 3/9 P(mưa | n) = 2/5
Nhiệt độ
P(nóng | p) = 2/9 P(nóng | n) = 2/5
P(ấm áp | p) = 4/9 P(ấm áp | n) = 2/5
P(mát | p) = 3/9 P(mát | n) = 1/5
Độ ẩm
P(cao | p) = 3/9 P(cao | n) = 4/5
P(vừa | p) = 6/9 P(vùa | n) = 1/5
Gió
P(có | p) = 3/9 P(có | n) = 3/5
P(không | n) = 6/9 P(không | n) = 2/5
Cuối cùng ta có P(p) = 9/14 và P(n) = 5/14
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>
Phân lớp X:
Một mẫu chưa được gặp X = <mưa, nóng, cao, không>

P(X|p)P(p) = P(mưa|p)P(nóng|p)P(cao|p)P(không|p)P(p) =
3/9x2/9x3/9x6/9x9/14=0.010582
P(X|n)P(n)= P(mưa|n)P(nóng|n)P(cao|n)P(không|n)P(n) =
2/5x2/5x4/5x2/5/5/14=0.018286
Vậy mẫu X được phân vào lớp n (không chơi bóng đá)
9
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
2.3 Áp dụng định lý Bayes trong phân loại văn bản
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ố 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.
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 đó.
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.
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:
10

BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Pr(wj) có thể được tính bằng công thức sau:
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.
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
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.
trong đó w1, w2, w3, …., w n-1, wn là những từ được trích trong văn bản.
11
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
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.
12
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
3 CHƯƠNG III – DEMO VÀ SETUP
3.1 Tổng quan về chương trình demo
 Chương trình demo được thực hiện qua 2 giai đoạn:
o Training cho ứng dụng phân loại chính xác hơn
o Làm rõ và phân loại văn bản nào đó
3.2 Hướng dẫn cài đặt và sử dụng chương trình
3.2.1 Yêu cầu
Chương trình chạy trên nền .Net Framework 4.0 nên người dùng cần phải cài đặt .Net
Framework 4.0. Tải và cài đặt tại địa chỉ:
.
3.2.2 Cài đặt và sử dụng chương trình
Chương trình được đóng gói thành tập tin DocumentClarification.exe. Người
dùng có thể click setup và theo hướng dẫn cài đặt cho đến khi hoàn tất.

Sau khi kết thúc cài đặt, hãy khởi động chương trình bằng cách double click vào
biểu tượng hình mặt cười trên desktop.
13
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Giao diện màn hình giao diện chính sẽ hiển thị.
Hình 1 - Giao diện chính
Hình 2 - Giao diện about
14
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Người dùng thông qua giao diện ( GUI ) để huấn luyện một số văn bản cho một số
loại cụ thể. Các văn bản này sẽ thông qua Learning Facility để chia nhóm các văn bản
ra theo từng loại. Nhóm các văn này sẽ được lưu vào cơ sở dữ liệu 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.
Để tiến hành phân loại người dùng cũng thông qua giao diện để nhập văn bản cần
phân loại. 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.
Chương trình demo sẽ gồm 2 chức năng đó 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.
3.2.3 Xử lý văn bản
Để 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 trong đề tài này thì những từ cần xử lý là những từ có chiều dài tối 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.

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.
15
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
3.2.4 Huấn luyện văn bản:
Từ giao diện chính của chương trình click vào biểu tượng , chương trình
sẽ mở hộp thoại để cho người dùng huấn luyện văn bản.
Để huấn luyện văn bản, người dùng có thể nhập trực tiếp nội dung vào chương
trình hoặc nhập từ một tập tin văn bản. Sau đó chọn một loại cho văn bản đó rồi nhấn
nút Add.
Hình 3 - Training with text input
16
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Hình 4 - Training with file input
Vì mục đích demo, chương trình chỉ hổ trợ 3 loại văn bản: Sport, News,
Entertainment…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ư tài chính, thế giới,
kinh tế, cổ phẩn, thị trường chứng khoán… 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.
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.
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 “dictionary.bcc” 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.
17

BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Người dùng có thể khám phá tập tin dữ liệu huấn luyện “dictionary.bcc” mở tập tin
này bằng một chương trình soạn thảo văn bản. 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. Chú ý là người dùng không
nên sửa đổi tập tin này bởi vì có thể gây ra hỏng dữ liệu.
3.2.5 Phân loại văn bản
Có 2 cách phân loại văn bản:
1. Mở 1 file dữ liệu có sẵn nào đó :
- Click “Browse ” button
Hình 5 - Chọn file để clarify
- Chọn file dữ liệu nào đó và click “Clarify” button
18
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Hình 6 - Clarify file đã chọn
2. Nhập văn bản vào ô textbox và click “Clarify” button
Hình 7 - Clarify với dữ liệu nhập vào textbox
Kết quả được phân loại văn bản hiển thị:
Hình 8 - Kết quả sau khi clarify
19
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
3.2.6 Thử nghiệm
Chương trình đã tiến hành huấn luyện dữ liệu từ trang tin tức CNN news
/>Sau đây là một số kết quả của quá trình huấn luyện và phân loại.
Văn bản Huấn luyện
Sport 25
Entertainment 20
News 35
Văn bản Tổng sổ lần xuất hiện Tổng sổ từ
Sport 3312 1240
Entertainment 2223 3291

News 1424 2611
Văn bản Số văn bản Phân loại đúng Phân loại sai Tỉ lệ
Sport 60 39 21 65%
Entertainment 45 38 7 85%
News 55 50 5 90%
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ỏ. Nhưng đa số các văn bản mà người dùng đã huấn luyện vài lần
cho thì việc phân loại là khá chính xác. Tuy nhiên, về tổng thể thì bộ dữ liệu huấn
luyện cần phải được huấn luyện từ vài ngàn đến vài chục ngàn văn bản trở lên thì mới
đảm bảo tính chính xác cho việc phân loại.
20
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
4 CHƯƠNG IV - KẾT LUẬN
4.1 Tóm tắt kết quả đạt được
Đề tài đã nghiên cứu và áp dụng được lý thuyết phân lớp Bayes vào việc phân
loại văn bản.
Chương trình demo đã áp dụng thành công lý thuyết Bayes trong phân loại văn
bản.
4.2 Hướng phát triển
Do đề tài được thực hiện trong thời gian ngắn nên bộ dữ liệu huấn luyện còn khá
nhỏ dẫn đến việc huấn luyện thiếu chính xác. Để khắc phục nhược điểm này đề tài cần
có thêm thời gian để huấn luyện thêm văn bản.
Chương trình demo chỉ xử lý cho ngôn ngữ là tiếng Anh. Tương lai đề tài cần mở
rộng xử lý cho ngôn ngữ là tiếng Việt.
Về tốc độ xử lý là khá chậm đề tài cần phải được cải thiện. Để khắc phục nhược
điểm này, đề tài cần phải kết hợp với thuật toán SVM trong việc phân loại văn bản.
4.3 Tài liệu tham khảo
[1] Dino Isa, V. P. Kallimani , R. Rajkumar , Lam Hong, Lee - Text Document Pre-
Processing Using the Bayes Formula for Classification Based on the Vector Space
Model 2008

[2] TS. Đỗ Phúc - Giáo trình khai thác dữ liệu, Đại Học Quốc Gia HCM 2006
[3] Kun Yang, Fei Yao - Document Classification 2005
[4] XiaohuaZhou, XiaodanZhang, XiaohuaHu - Semantic Smoothing for Bayesian
Text Classification with Small Training Data

×