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.. Bảng này sẽ gồm một cột “word” chứa cá
Trang 1Trườ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
Trang 2LỜ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
Trang 3MỤC LỤC
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC CÁC HÌNH ss CHƯƠNG I - MỞ ĐẦU 5
1.1 Giới thiệu chung 5
1.2 Hoạt động nghiên cứu 5
CHƯƠNG II - TỔNG QUAN VỀ THUẬT TỐN BAYES 6
2.1 Sự phân hoạch và cơng thức Bayes 6
2.2 Bộ phân lớp Nạve Bayes 6
2.3 Áp dụng định lý Bayes trong phân loại văn bản 9
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
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
Trang 4DANH 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
Trang 51 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
Trang 62 CHƯƠNG II - TỔNG QUAN VỀ THUẬT TỐ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
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
P Hi P A Hi
P Hi A
P H P A H
2.2 Bộ phân lớp Nạ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 VMAP cho thể hiện mới Chữ MAP viết tắt của cụm từ Maximum A Posterior
1 2
max ( | , , , )
i
V P v a a a
Trang 7Sử dụng định lý Bayes ta cĩ:
1 2
1 2
( ) ( , , , | ) max
( , , , )
i
n
V
max ( ) ( , , ,P v P a a i 1 2 a v n| )i (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
( , , , | ) ( | )
i
Do vậy, cơng thức (4.1) được viết lại là:
NB vi V i i i
i
với NB là viết tắt của cụm từ Nạ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:
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 đá”
Trang 8Nắng Ấm_áp Cao Không N
Ta có thể tính các xác suất sau:
Thời tiết
Nhiệt độ
Độ ẩm
Gió
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 đá)
Trang 92.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:
Trang 10Pr(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
Trang 11Loạ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
Trang 123 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
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ỉ:
http://www.microsoft.com/en-us/download/details.aspx?id=17851
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
Trang 13Giao 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
Trang 14Ngườ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 tốn trong cơng thức Nạ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
Để 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
Trang 153.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
Trang 16Hì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
Trang 17Ngườ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
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
Trang 18Hì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ị:
Trang 193.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
http://edition.cnn.com/
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 Tổng sổ lần xuất hiện Tổng sổ từ
Văn bản Số văn bản Phân loại đúng Phân loại sai Tỉ lệ
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
Trang 204 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