1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

19 1K 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 7,67 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung của đề tài này là tìm hiểu thuật tốn Nạve Bayes, qua đĩ áp dụng thuật tốn Nạve Bayes vào bài tố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, k

Trang 1

TÊN ĐỀ TÀI:

ỨNG DỤNG THUẬT TỐN NẠVE BAYES CHO BÀI TỐN PHÂN LỚP VĂN BẢN

Giảng viên hướng dẫn:

GS.TSKH Hồng Văn Kiếm Học viên thực hiện:

Võ Anh Tuấn – CH1301113

TP.HCM, 10/10/2014

Trang 2

I GIỚI THIỆU 1

1 Giới thiệu đề tài: 1

1.1 Mục tiêu đề tài 1

1.2 Phạm vi thực hiện 1

II CƠ SỞ LÝ THUYẾT 1

1 Định lý Bayes 1

2 Thuật tốn phân lớp Nạve Bayes 2

3 Áp dụng thuật tốn Nạve Bayes trong bài tốn phân lớp văn bản 4

4 Đánh giá 6

III ỨNG DỤNG PHÂN LỚP VĂN BẢN 7

1 Giới thiệu 7

2 Yêu cầu 8

3 Cài đặt và sử dụng 8

4 Thử nghiệm 14

IV KẾT LUẬN 16

V TÀI LIỆU THAM KHẢO 17

Trang 3

I GIỚI THIỆU

1 Giới thiệu đề tài:

Đề tài “Ứng dụng thuật tốn Nạve Bayes cho bài tố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 tốn Nạve Bayes, qua đĩ áp dụng thuật tốn Nạve Bayes vào bài tố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

tốn Nạve Bayes

1.2 Phạm vi thực hiện

Bayes, được viết bằng C# và chạy trên mơi trường Windows

II. CƠ SỞ LÝ THUYẾT

1 Định lý Bayes

Đị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ị đĩ

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ố:

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

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

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

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:

Trang 4

Từ đĩ dẫn tới

2 Thuật tốn phân lớp Nạve Bayes

Thuật tố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

Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau:

P (Y|X )= P( X∨Y )P(Y )

P (X )

Trong đĩ:

chứng cứ mới X

năng của X khi Y đúng)

Thuật Tốn Nạ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 tốn phân lớp

Đây là thuật tố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

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:

loại

(k=1n; i=1,2,3…)

Trang 5

* Áp dụng trong bài tốn phân loại, các dữ kiện gồm cĩ:

x=(x1, x2, … , x n)

Theo định lý Bayes:

P(C i|X)=P(X ∨C i)P(C i)

P(X )

Theo tính chất độc lập điều kiện:

P(X|C i)=∏

k=1

n

P(x k|C i)

Trong đĩ:

phân lớp i

Các bước thực hiện thuật tốn Nạve Bayes:

P(x kC i)

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:

max

C i ∈C(P(C i)∏

k=1

n

P(x k|C i) )

Ví dụ:

Cho bảng dữ liệu “Chơi bĩng đá”

Trang 6

U_ám Ấm_áp Cao Cĩ P

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/9)*(2/9)*(3/9)*(6/9)*(9/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/5)*(2/5)*(4/5)*(2/5)*(5/14)=0.018286

Vậy mẫu X được phân vào lớp n (khơng chơi bĩng đá)

3 Áp dụng thuật tốn Nạve Bayes trong bài tốn phân lớp 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 tố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

Trang 7

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:

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

Trang 8

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

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

4 Đánh giá

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

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

Trang 9

Một số đặc điểm của phương pháp Naive Bayes:

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ộ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 tốn khác và loại trừ hồn tồ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

đị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 tồn bộ dữ liệu quan sát được cho mỗi giả định cĩ thể cĩ

mới được phân lớp bằng cách kết hợp dự đốn của nhiều giả định

thiết

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í xuất hiện của giá trị các thuộc tính

với các phương pháp khác

học ban đầu

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

III ỨNG DỤNG PHÂN LỚP VĂN BẢN

1 Giới thiệu

NạveBayesClassifier là ứng dụng phân lớp văn bản demo sử dụng thuật tốn

Nạ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

Trang 10

 Huấn luyện văn bản (training):

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

Để 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 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

2 Yêu cầu

(http://www.microsoft.com/en-us/download/details.aspx?id=21)

3 Cài đặt và sử dụng

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

Hình 3.1: Icon chương trình Màn hình giao diện chính của chương trình:

Trang 11

Hình 3.2: Giao diện chính

3.1 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 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

3.2 Huấn luyện văn bản

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

Trang 12

Hình 3.3: Menu Training Hộp thoại huấn luyện văn bản sẽ xuất hiện

Hình 3.4: Giao diện huấn luyện văn bản Việc huấn luyện bao gồm các bước sau:

Hinh 3.5: Các bước huấn luyện

Trang 13

 Bước 1: Nhập văn bản huấn luyện 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).

Hình 3.6: Import văn bản từ file text

Sau khi click vào menu File > Import data from file, hộp thoại select file sẽ xuất hiện

Hình 3.7: Hộp thoại select file

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

các bước từ 1 đến 3 để huấn luyện cho các văn bản khác

quá trình huấn luyện

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

Trang 14

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.

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

“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

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

3.3 Phân lớp văn bản

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

Trang 15

Hình 3.8: Nhập trực tiếp văn bản cần phân loại vào text box

2 Import văn bản từ file txt bằng cách click vào menu File >

Import data from file

Hình 3.9: Import văn bản cần phân loại từ file txt

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

Trang 16

Hình 3.10: Kết quả phân loại nhận được sau khi click Clarify

văn bản mới vào để tiếp tục phân loại

4 Thử nghiệm

Chương trình đã tiến hành huấn luyện dữ liệu từ trang tin tức CNN

Quá trình huấn luyện:

Kết

quả

phân

lớp:

Entertainmen

t

Trang 17

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

IV KẾT LUẬN

1 Kết quả đạt được

Trang 18

 Trình bày được thuật tốn Nạ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

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 tốn trong quá trình cài đặt

3 Hướng phát triển

Nạve Bayes chỉ là một trong số rất nhiều thuật tốn, bài tốn phân lớp chỉ là một trong số các bài tố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 tố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ý

V TÀI LIỆU THAM KHẢO

Trang 19

[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

[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

Ngày đăng: 20/05/2015, 08:39

HÌNH ẢNH LIÊN QUAN

Hình 3.2: Giao diện chính - 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
Hình 3.2 Giao diện chính (Trang 11)
Hình 3.4: Giao diện huấn luyện văn bản Việc huấn luyện bao gồm các bước sau: - 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
Hình 3.4 Giao diện huấn luyện văn bản Việc huấn luyện bao gồm các bước sau: (Trang 12)
Hình 3.3: Menu Training Hộp thoại huấn luyện văn bản sẽ xuất hiện - 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
Hình 3.3 Menu Training Hộp thoại huấn luyện văn bản sẽ xuất hiện (Trang 12)
Hình 3.8: Nhập trực tiếp văn bản cần phân loại vào text box - 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
Hình 3.8 Nhập trực tiếp văn bản cần phân loại vào text box (Trang 15)
Hình 3.10: Kết quả phân loại nhận được sau khi click Clarify - 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
Hình 3.10 Kết quả phân loại nhận được sau khi click Clarify (Trang 16)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w