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

PHÂN LOẠI VĂN BẢN BẰNG NAIVE BAYES

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 (1.06 MB, 29 trang )

TRƯỜNG ĐẠI HỌC KHOA HỌC – ĐẠI HỌC HUẾ

KHOA CÔNG NGHỆ THÔNG TIN

TIỂU LUẬN MÔN HỌC

MÁY HỌC
Đề tài:

PHÂN LOẠI VĂN BẢN BẰNG THUẬT
TOÁN NAÏVE BAYES
Giảng viên: TS. Đoàn Thanh Nghị.
Lớp: Cao học KHMT-AG, 2018.
Nhóm thực hiện:
Phạm Hiếu Nghĩa;
Đoàn Văn Đông.

An Giang, tháng 8 năm 2018


Tiểu luận môn học: Máy học

Nhận xét của giáo viên:
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................


………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……...........................................
………….……..........................................

2


LỜI MỞ ĐẦU
Phân loại văn bản là một vấn đề quan trọng trong lĩnh vực xử lý ngôn
ngữ. 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. Đây là một bài toán rất thường gặp trong thực tế điển hình như: một
nhà chuyên phân tích thị thường chứng khoán, anh ta cần phải tổng hợp rất

nhiều tài liệu, bài viết về thị trường chứng khoán để đọc và đưa ra phán đoán
của mình. Tuy nhiên, anh ta không thể đọc tất cả các bài viết, bài báo hay các tài
liệu để rồi phân loại chúng đâu là tài liệu chứng khoán sau đó anh ta mới đọc kỹ
chúng cho mục đích của anh ta. Lý do của vấn đề này là bởi vì số lượng bài viết,
bài báo hiện nay rất nhiều, đặc biệt là trên internet, nếu để đọc hết được tất cả tài
liệu đó thì sẽ mất rất nhiều thời gian. Một ví dụ khác trong thực tế là việc phân
loại spam mail. Khi một mail được gửi đến hộp thư, nếu để người dùng phải đọc
tất cả các mail thì sẽ tốn rất nhiều thời gian vì spam mail rất nhiều. Vì vậy, cần
có một hệ thống phân loại đâu là spam mail và đâu là mail tốt.
Để giải bài toán này đã có rất nhiều phương pháp được đưa ra như: thuật
toán Naïve Bayes, K-NN (K-Nearest-Neighbor), Cây quyết định (Decision
Tree), Mạng Neuron nhân tạo (Artificial Neural Network) và SVM (Support
Vector Machine). Mỗi phương pháp đều cho kết quả khá tốt cho bài toán này,
tuy nhiên phương pháp phân loại văn bản bằng thuật toán Bayes được sử dụng
phổ biến hơn cả và dễ dàng cài đặt. Chính vì vậy chúng em lựa chọn đề tài:
“Phân loại văn bản bằng thuật toán Naïve Bayes” làm đề tài kết thúc môn học
của mình.
Chúng em xin chân thành cảm ơn các thầy, cô bộ môn đã tận tình giảng
dạy em trong suốt thời gian học tập vừa qua. Nhờ có sự chỉ dạy tận tình của thầy
Đoàn Thanh Nghị trực tiếp hướng dẫn giảng dạy, cùng sự đào tạo của các thầy
cô bộ môn khác trong thời gian qua giúp chúng em hoàn thành bài tiểu luận này.
Do đây là lần đầu tiên triển khai một hệ thống có tính thực tiễn cao, nên quá
trình triển khai có thể còn nhiều sai sót. Mong các thầy cô đóng góp ý kiến giúp
chúng em hiểu rõ hơn về bài toán.
Một lần nữa chúng em xin chân thành cảm ơn các thầy cô!


Tiểu luận môn học: Máy học
MỤC LỤC
CHƯƠNG 1. BÀI TOÁN PHÂN LOẠI VĂN BẢN..................................................................3

1.1. Giới thiệu.........................................................................................................................3
1.2. Phát biểu bài toán.............................................................................................................4
1.3. Mô hình tổng quát............................................................................................................4
Hình 1.1 Mô hình giai đoạn huấn luyện.................................................................................5
Hình 1.2 Các bước trong giai đoạn huấn luyện......................................................................5
Hình 1.3 Mô hình giai đoạn phân lớp....................................................................................6
Hình 1.4 Các bước trong giai đoạn phân lớp.........................................................................6
1.4. Mục đích và phạm vi nghiên cứu.....................................................................................6
CHƯƠNG 2. CƠ SỞ XÂY DỰNG CHƯƠNG TRÌNH.............................................................6
2.1. Chương trình sử dụng......................................................................................................6
2.1.1. Microsoft SQL 2008..................................................................................................6
2.1.2. Microsoft Visual Studio 2010...................................................................................7
2.2. Cơ sở lý thuyết.................................................................................................................7
2.2.1. Tiền xử lý văn bản.....................................................................................................7
2.2.2. Phương pháp biểu diễn văn bản................................................................................8
2.2.3. Mô hình không gian vector.......................................................................................8
2.2.4. Khái niệm trọng số....................................................................................................8
CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ................................................................................9
3.1. Phân tích...........................................................................................................................9
3.1.1. Yêu cầu đặt ra............................................................................................................9
3.1.2. Mục tiêu....................................................................................................................9
3.2. Thiết kế...........................................................................................................................10
3.2.1. Kiến trúc chung.......................................................................................................10
3.2.2. Thuật toán................................................................................................................10
Bảng 3.1. Ví dụ về bảng dữ liệu huấn luyện.........................................................................12
Bảng 3.2. Ví dụ 2 về bảng dữ liệu huấn luyện......................................................................15
3.2.3. Cơ sở dữ liệu...........................................................................................................15
Bảng 3.3. Bảng Từ Vựng......................................................................................................16
Bảng 3.4. Bảng Văn Bản.......................................................................................................16
Bảng 3.5. Bảng Lĩnh Vực.....................................................................................................16

Bảng 3.6. Bảng Huấn Luyện.................................................................................................17
Bảng 3.7. Bảng Chi Tiết Huấn Luyện...................................................................................17
Bảng 3.8. Bảng Thống Kê.....................................................................................................17
Bảng 3.9. Bảng Mã Hóa........................................................................................................18
3.2.4. Giao diện người dùng..............................................................................................18
CHƯƠNG 4. KẾT QUẢ...........................................................................................................18
2


Tiểu luận môn học: Máy học
Hình 4.1 Giao diện chính của chương trình.........................................................................19
Hình 4.2 Giao diện chức năng Huấn luyện phần Huấn luyện..............................................19
Hình 4.3 Giao diện chức năng Huấn luyện phần Thống kê Trích rút..................................20
Hình 4.4 Giao diện chức năng Phân loại..............................................................................21
Hình 4.5 Quản lý Văn bản....................................................................................................21
Hình 4.6 Quản lý Từ vựng...................................................................................................22
Hình 4.7 Quản lý Lĩnh vực..................................................................................................23
Hình 4.8 Quản lý Mã hóa.....................................................................................................24
Hình 4.9 Quản lý Huấn luyện..............................................................................................24
Hình 4.10 Quản lý Chi tiết huấn luyện................................................................................25

CHƯƠNG 1. BÀI TOÁN PHÂN LOẠI VĂN BẢN
1.1. Giới thiệu
Ngày nay, sự bùng nổ thông tin do bị tác động bởi sự xuất hiện của các siêu
phương tiện và World Wide Web (WWW) đã làm cho không gian dữ liệu gia
tăng thường xuyên, điều này tạo ra một thách thức cho các hệ thống truy vấn
thông tin sao cho có hiệu quả. 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.
Có rất nhiều công trình nghiên cứu về phân loại văn bản và đã có được
những kết quả đáng khích lệ, như là: Support Vector Machine, K–Nearest
Neighbor, Linear Least Squares Fit, Neural Network, Naïve Bayes, Centroid
Base… Điểm chung của các phương pháp này đều dựa vào xác suất thống kê
hoặc dựa vào trọng số của các từ, cụm từ trong văn bản.Trong mỗi phương pháp
đều có cách tính toán khác nhau, tuy nhiên các phương pháp này đều phải thực
hiện một số bước chung như: đầu tiên mỗi phương pháp sẽ dựa vào thông tin về
3


Tiểu luận môn học: Máy học
sự xuất hiện của các từ trong văn bản(tần số xuất hiện trong tập văn bản,…) để
biểu diễn thành dạng vector, sau đó tùy từng bài toán cụ thể mà chúng ta sẽ
quyết định chọn áp dụng phương pháp nào, công thức tính toán nào cho phù hợp
để phân loại tập văn bản dựa trên tập các vector đã xây dựng được ở bước trên,
nhằm mục đích đạt được kết qủa phân loại tốt nhất.
1.2. Phát biểu bài toán
Bài toán phân loại văn bản có thể được phát biểu như sau: Cho trước một
tập văn bản D={d1,d2,…,dn} và tập chủ đề được định nghĩa C={c1,c2,…,cn}.
Nhiệm vụ của bài toán là gán lớp D i thuộc về Cj đã được định nghĩa. Hay nói
cách khác, mục tiêu của bài toán là đi tìm hàm f :


1.3. Mô hình tổng quát
Có rất nhiều hướng tiếp cận bài toán phân loại văn bản đã được nghiên cứu
như: tiếp cận bài toán phân loại dựa trên lý thuyết đồ thị, cách tiếp cận sử dụng
lý thuyết tập thô, cách tiếp cận thống kê… Tuy nhiên, tất cả các phương pháp
trên đều dựa vào các phương pháp chung là máy học đó là: học có giám sát, học
không giám sát và học tăng cường.
Vấn đề phân loại văn bản theo phương pháp thống kê dựa trên kiểu học có giám
sát được đặc tả bao gồm 2 giai đoạn: giai đoạn huấn luyện và giai đoạn phân
lớp.
- Giai đoạn huấn luyện
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ã hoá. 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à vector biểu diễn cho văn bản trong tập huấn luyện.
Sau đó, chúng ta đị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.

4


Tiểu luận môn học: Máy học
Hình 1.1 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 (bộ phân lớp – classifier)
Các bước trong giai đoạn huấn luyện:

Hình 1.2 Các bước trong giai đoạn huấn luyện


Trong đó :
Ngữ liệu huấn luyện: kho ngữ liệu thu thập từ nhiều nguồn khác nhau.
Tiền xử lý: chuyển đổi tài liệu trong kho ngữ liệu thành một hình thức phù
hợp để phân loại.
Vector hoá: mã hoá văn bản bởi một mô hình trọng số
Trích chọn đặc trưng: loại bỏ những từ (đặc trưng) không mang thông tin
khỏi tài liệu nhằm nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật
toán huấn luyện.
Thuật toán huấn luyện: Thủ tục huấn luyện bộ phân lớp để tìm ra họ các
tham số tối ưu.
Đánh giá : bước đánh giá hiệu suất (chất lượng) của bộ phân lớp
- Giai đoạn phân lớp
Sau khi đã hoàn thành giai đoạn huấn luyện, mô hình phân lớp sẽ được áp
dụng cho các văn bản mới cần phân loại.

5


Tiểu luận môn học: Máy học

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

Các bước trong giai đoạn phân lớp:

Hình 1.4 Các bước trong giai đoạn phân lớp

1.4. Mục đích và phạm vi nghiên cứu
Mục đích:
+ Tìm hiểu thuật toán Navie Bayes và phạm vi ứng dụng của nó trong

phân loại văn bản.
+ Nắm rõ hơn về cơ chế học tập và huấn luyện máy học.
+ Xây dựng một chương trình có khả năng phân loại văn bản sau khi
tìm hiểu thuật toán.
Phạm vi nghiên cứu: chương trình thực hiện trong một quy mô nghiên
cứu nhỏ với một số lượng văn bản không nhiều vào khoảng <100 văn bản.
CHƯƠNG 2. CƠ SỞ XÂY DỰNG CHƯƠNG TRÌNH
2.1. Chương trình sử dụng
2.1.1. Microsoft SQL 2008
6


Tiểu luận môn học: Máy học
Microsoft SQL 2008 là một hệ quản trị cơ sở dữ liệu tương tác với người
sử dụng chạy trên môi trường Windows, nó tăng thêm sức mạnh trong công tác
tổ chức và tìm kiếm thông tin, các qui tắc kiểm tra dữ liệu, giá trị mặc định,
khuôn nhập dữ liệu của Microsoft SQL 2008 hoàn toàn đáp ứng yêu cầu. Quản
lý được khối lượng dữ liệu lớn với tần suất truy cập dữ liệu cao, đáp ứng các
dịch vụ trực tuyến và đảm bảo các yêu cầu về an toàn dữ liệu. Với việc hỗ trợ
các chuẩn CSDL sẽ giúp hệ thống dữ liệu mạnh hơn với khả năng kết nối, nâng
cấp và bảo trì.
2.1.2. Microsoft Visual Studio 2010

Microsoft Visual Studio 2010 là ngôn ngữ hoàn thiện và hoạt động theo
hướng đối tượng.
Microsoft Visual Studio 2010 là ngôn ngữ lập trình thông dụng trên
Windows, hỗ trợ quản lý Cơ sở dữ liệu, lập trình Internet...
Microsoft Visual Studio 2010 có nhiều tính năng mới, các điều khiển mới
cho phép ta viết các chương trình ứng dụng kết hợp các giao diện, cách xử lý và
tính năng của Office và trình duyệt Web, ngoài ra khi dùng Microsoft Visual

Studio 2010 sẽ tiết kiệm thời gian và công sức so với các ngôn ngữ lập trình
khác khi xây dựng cùng một ứng dụng.
Microsoft Visual Studio 2010 gắn liền với khái niệm lập trình trực quan
(Visual), nghĩa là khi thiết kế chương trình ta nhìn thấy ngay kết quả qua từng
thao tác và giao diện khi chương trình thực hiện. Đây là thuận lợi lớn so với các
ngôn ngữ lập trình khác.
Bên cạnh đó, Microsoft Visual Studio 2010 còn hỗ trợ tính năng kết nối
môi trường dữ liệu Access, SQL, việc liên kết dữ liệu có thể thực hiện bằng
nhiều cách.
2.2. Cơ sở lý thuyết
2.2.1. Tiền xử lý văn bản

Văn bản trước khi được vector hoá, tức là trước khi sử dụng, cần phải được
tiền xử lý. Quá trình tiền xử lý sẽ giúp nâng cao hiệu suất phân loại và giảm độ
phức tạp của thuật toán huấn luyện.
Tuỳ vào mục đích bộ phân loại mà chúng ta sẽ có những phương pháp tiền xử lý
văn bản khác nhau như:
- Chuyển văn bản về chữ thường.
- Loại bỏ dấu câu (nếu không thực hiện tách câu).
- Loại bỏ các kí tự đặc biệt ([ ],[.], [,], [:], [“], [”], [;], [/], [[]], [~], [`], [!],
[@], [#], [$],[%],[^],[&],[*],[(],[)]), các chữ số, phép tính toán số học.
- Loại bỏ các stopword (những từ xuất hiện hầu hết trong các văn bản)
không có ý nghĩa khi tham gia vào phân loại văn bản.
- …
7


Tiểu luận môn học: Máy học
2.2.2. Phương pháp biểu diễn văn bản


Một trong những nhiệm vụ đầu tiền trong việc xử lý phân loại văn bản là
chọn được một mô hình biểu diễn văn bản thích hợp. Một văn bản ở dạng thô
(dạng chuỗi) cần được chuyển sang một mô hình khác để tạo thuận lợi cho việc
biểu diễn và tính toán. Tuỳ thuộc vào từng thuật toán phân loại khác nhau mà
chúng ta có mô hình biểu diễn riêng. Một trong những mô hình đơn giản và
thường được sử dụng trong nhiệm vụ này là mô hình không gian vector. Một
văn bản trong nhiệm vụ này được biểu diễn theo dạng , với
là một vector
n chiều để đo lường giá trị của phần tử văn bản.
2.2.3. Mô hình không gian vector

Mô hình không gian vector là một trong những mô hình được sử dụng
rộng rãi nhất cho việc tìm kiếm (truy hồi) thông tin. Nguyên nhân chính là bởi vì
sự đơn giản của nó.
Trong mô hình này, các văn bản được thể hiện trong một không gian có số
chiều lớn, trong đó mỗi chiều của không gian tương ứng với một từ trong văn
bản. Phương pháp này có thể biểu diễn một cách hình tượng như sau : mỗi văn
bản D được biểu diễn dưới dạng (vector đặc trưng cho văn bản D). Trong đó,
=(x1, x2, …, xn ), và n là số lượng đặc trưng hay số chiều của vector văn bản, xi
là trọng số của đặc trưng thứ i (với 1≤ i ≤n).
Như vậy, nếu trong kho ngữ liệu của quá trình huấn luyện nhiều văn bản, ta
kí hiệu Dj, là văn bản thứ j trong tập ngữ liệu, và vector j=( x1j , x2j , … , xnj ) là
vector đặc trưng cho văn bản Dj, và xij là trọng số thứ i của vector văn bản j.
2.2.4. Khái niệm trọng số

Một vấn đề quan trọng nữa trong việc biểu diễn một văn bản đó là tính
trọng số cho vector đặc trưng của văn bản. Có nhiều cách khác nhau để tính
trọng số này như:
-


Word frequency weighting
Boolean weighting
tf * idf weighting
Entropy weighting

Tuy nhiên, để đơn giản cho vấn đề này, chúng ta sẽ chỉ xem xét cách tính
Word frequency weighting (trọng số tần suất từ) và tf*idf, một cách đơn giản đó
là đếm số từ đó trong văn bản. Tuy nhiên vẫn có nhiều cách khác nhau để tính
trọng số dạng này.
Có ba thông tin được sử dụng trong cách tính trọng số bằng tần suất từ là:
term frequency ( tfij số lần suất hiện của từ wi trong văn bản dj ), document
frequency (dfi số văn bản có chứa từ wi), collection frequency ( cfi số lần suất
hiện của từ wi trong cả tập ngữ liệu). Trong đó, dfi ≤ cfi và ∑j tfij =cfi.
8


Tiểu luận môn học: Máy học
Thông tin được nắm bắt bởi term frequency là sự nổi bật của thông tin
(hay từ) trong một văn bản. Term frequency càng cao (số lần xuất hiện càng
nhiều trong văn bản) thì đó là từ miêu tả tốt cho nội dung văn bản. Giá trị thứ
hai, document frequency, có thể giải thích như là một bộ chỉ định nội dung thông
tin. Một từ được tập trung ngữ nghĩa thường xảy ra nhiều lần trong một văn bản
nếu nó cũng xuất hiện trong tất cả các văn bản khác. Nhưng từ không được tập
trung ngữ nghĩa trải đều đồng nhất trong tất cả các văn bản.
Để thể hiện trọng số phản ánh hết thông tin của từ, thường ta sẽ kết hợp cả
hai loại trọng số là tf và df trong một đơn vị chung. Dạng biểu diễn trọng số này
được gọi là tf * idf. Công thức kết hợp hai giá trị trọng số :

Trong đó, N là tổng số văn bản. Biểu thức thứ nhất áp dụng cho các từ có
xuất hiện trong văn bản, còn biểu thức thứ hai cho các từ không xuất hiện trong

văn bản.

CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ
3.1. Phân tích
3.1.1. Yêu cầu đặt ra

Chương trình được xây dựng có khả năng phân loại được các văn bản với
độ chính xác cao, dựa trên thuật toán Navie Bayes.
Chương trình có khả năng quản lý được các văn bản để phục vụ cho mục
đích huấn luyện và đưa vào phân loại. Ngoài ra chương trình còn có khả năng
quản lý các từ vựng được đưa vào nhằm làm tăng độ chính xác khi phân loại.
Lưu lại các thông tin, dữ liệu phân loại để có thể so sánh và đánh giá các thông
tin sau mỗi lần huấn luyện.
Chương trình có một giao diện thân thiện dễ sử dụng với người dùng.
3.1.2. Mục tiêu

Sau khi xây dựng chương trình có thể đáp ứng tốt các mục tiêu sau:
•Về mặt quản lý:
- Về quản lý các văn bản:

9


Tiểu luận môn học: Máy học
Xây dựng chương trình quản lý với giao diện được thiết kế làm sao quản lý
được các văn bản vừa được phân loại sẵn phục vụ cho việc huấn luyện vừa có
thể quản lý đươc các văn bản đưa vào để phân loại (các văn bản chưa phân lĩnh
vực).
Việc thêm văn bản có thể thêm nhiều văn bản cùng một lúc để việc quản lý
tiết kiệm thời gian hơn.

Có thể sử lý với các loại văn bản .txt hoặc .doc
- Về quản lý các lĩnh vực:
Xây dựng giao diện quản lý được các thông tin trong từng lĩnh vực đặc biệt
là chọn thư mục chứa để có thể phân loại sau này.
- Ngoài ra chương trình còn có khả năng lưu trữ và quản lý các thông tin
của văn bản sau khi huấn luyện để có thể kiểm tra và đánh giá độ xác thực
của thông tin.
•Về mặt chức năng:
Chương trình phải xây dựng và hoàn thiện được hai chức năng quan trọng
nhất là huấn luyện và phân lọai văn bản. Việc phân loại văn bản với độ chính
xác được thông báo ra giao diện cho người dùng.
3.2. Thiết kế
3.2.1. Kiến trúc chung

Chương trình được xây dựng theo mô hình 3 lớp.
- Về tổng quan chương trình được xây dựng có các form chức năng sau:

+Về mặt quản lý:
From QLVB nhằm quản lý các văn bản và thông tin liên quan.
From QLTV nhằm quản lý các từ vựng phục vụ cho việc phân loại
Form QLLV nhằm quản lý các lĩnh vực được phân loại
Các form quản lý mã hóa (QLMH), quản lý huấn luyện (QLHL), quản lý
chi tiết huấn luyện (QLCTHL)… nhằm lưu và quản lý các thông tin trong mỗi
lần huấn luyện.

+Về chức năng:
Form HuanLuyen nhằm huấn luyện và quản lý các văn bản huấn luyện
Form PhanLoai nhằm phân loại văn bản.
3.2.2. Thuật toán
3.2.2.1. Định lý Bayes


10


Tiểu luận môn học: Máy học
Đây là thuật toán được xem là đơn giản nhất trong các phương phá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. Chúng giả định các thuộc tính là
độc lập nhau (độc lập điều kiện lớp).
Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:

Trong đó:
- Y đại diện một giả thuyết, giả thuyết này được suy luận khi có được
chứng cứ mới X.
- P(X) : xác xuất X xảy ra (Xác suất biên duyên của X).
- P(Y) : xác xuất Y xảy ra (Điều kiện tiên nghiệm của Y).
- 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 X khi Y đúng).
- P(Y|X) : xác suất hậu nghiệm của Y nếu biết X.
Áp dụng trong bài toán phân loại, các dữ kiện cần có:
- D: tập dữ liệu huấn luyện đã được vector hoá dưới dạng =( x1, x2, …
, xn )
- Ci: tập các tài liệu của D thuộc lớp Civới i={1,2,3,…}
- Các thuộc tính x1,x2,…xn độc lập xác suất đôi một với nhau.
Theo định lý Bayes :

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

Khi đó, luật phân lớp cho các tài liệu mới Xnew ={x1, x2, … , xn} là:


Trong đó :
- P(Ci): được tính dựa trên tần suất xuất hiện tài liệu trong tập huấn luyện.
- P(xk|C): được tính từ những tập thuộc tính đã được tính trong quá trình
huấn luyện.
3.2.2.2. Thuật toán

Các bước thực hiện thuật toán Navie Bayes:
Bước 1:
11


Tiểu luận môn học: Máy học
- Huấn luyện Naïve Nayes (dựa vào tập dữ liệu)
+ Tính xác suất P(Ci)
+ Tính xác suất P(xk|Ci)
Bước 2:
-

Xnew được gán vào lớp có giá trị lớn nhất theo công thức:

Xét một ví dụ kinh điển là ví dụ dự đoán xem quyết định của người chơi
có đi chơi Tennis hay không với các điều kiện về thời tiết đã được biết trước.
Trong ví dụ này, ta có một bảng dữ liệu huấn luyện như sau:

Bảng 3.1. Ví dụ về bảng dữ liệu huấn luyện

Bước 1 :
Tính các xác suất P(Ci)
-


Với Ci = “yes”

P(C1) = P(“yes”) = 9/14
-

Với C2 = “no”

P(C2) = P(“no”) = 5/14
Tính xác suất P(xk|Ci)
- Với thuộc tính Outlook: có các giá trị sunny, overcast, rain
P(sunny|yes) = 2/9
P(sunny|no) = 3/5
P(overcast|yes) = 4/9
12


Tiểu luận môn học: Máy học
P(overcast|no) = 0/5
P(rain|yes) = 3/9
P(rain|no) = 2/5
- Với thuộc tính Temp : có các giá trị Hot, Cold, Mild
P(hot|yes) = 2/9
P(hot|no) = 2/5
P(cold|yes) = 3/9
P(cold|no) = 1/5
P(mild|yes) = 4/9
P(mild|no) = 2/5
- Với thuộc tính Humidity : có các giá trị Normal,High
P(normal|yes) = 6/9
P(normal|no) = 1/5

P(high|yes) = 3/9
P(high|no) = 4/5
- Với thuộc tính Wind : có các giá trị Weak, Strong
P(weak|yes) = 6/9
P(weak|no) = 2/5
P(strong|yes) = 3/9
P(strong|no) = 3/5
Bước 2 : Phân lớp Xnew ={sunny, cool, high, strong}
Tính các xác suất
P(yes)*P(Xnew|yes) = 0.005
P(no)* P(Xnew|no) = 0.021


Xnew thuộc vào lớp No

3.2.2.3. Áp dụng trong phân loại văn bản

Để áp dụng thuật toán Naïve Bayes vào phân loại văn bản, ta cần thực hiện
các bước tiền xử lý và vector hoá các văn bản trong tập huấn luyện. Các phương
pháp tiền xử lý và vector hoá đã được trình bày ở những phần trước. Tuy nhiên,
do thuật toán Naïve Bayes dựa trên xác suất văn bản và xác suất đặc trưng, do
đó ở phương pháp này, chúng ta sẽ sử dụng phương pháp vector hoá bằng cách
đếm tần suất từ (Word frequency weighting).

13


Tiểu luận môn học: Máy học
Sau khi đã vector hoá các văn bản, ta cần thực hiện rút chọn các đặc trưng
cho các văn bản huấn luyện. Ta cũng có rất nhiều cách để thực hiện rút chọn đặc

trưng như sử dụng các độ đo, sử dụng Heuristic, sử dụng từ điển…
Sau khi đã rút chọn đặc trưng, ta sẽ thực hiện thuật toán huấn luyện. Ta có
thể tóm tắt các bước như sau :
Bước 1 : Huấn luyện
- Từ tập huấn luyện, ta rút trích tập từ vựng (các đặc trưng)
- Tính xác suất P(Ci) và P(xk|Ci)

Docsi: số tài liệu của tập huấn luyện thuộc lớp ci.
Total#documents: số tài liệu có trong tập huấn luyện.

Hoặc

(làm mịn với luật Laplace)
- n : tổng số từ đôi một khác nhau của lớp ci.
- nk: tổng số từ xk trong tập từ vựng trong lớp Ci.
- |Texti|: tổng số từ vựng (không phân biệt đôi một) trong lớp Ci.
Bước 2 : Phân lớp

- positions : tập từ vựng trong bộ huấn luyện.
Xét ví dụ : ta có tập tài liệu để huấn luyện sau khi đã vector hoá (sử dụng
phương pháp đơn giản đếm sô lần xuất hiện) và rút trích đặc trưng như sau:
- Bộ từ vựng (đặc trưng) : var, bit, chip, log

14


Tiểu luận môn học: Máy học
Bảng 3.2. Ví dụ 2 về bảng dữ liệu huấn luyện

- Bước huấn luyện :

• Tính xác xuất các lớp Ci trong tập huấn luyện
P(C1=”Comp”) = 3/6 = 0.5
P(C2=”Math”) = 3/6 = 0.5
• Tính xác xuất P(xk|Ci)
- Lớp C1 = “Comp”: Tổng = 208
P(var|Comp) = (10+11+8)/208 = 29/208
P(bit|Comp) = (28+25+22)/208 = 75/208
P(chip |Comp) = (45+22+30)/208 = 97/208
P(log|Comp) = (2+4+1)/208 = 7/208
- Lớp C2 = “Math”: Tổng = 388
P(var|Math) = (42+33+28)/208 = 103/208
P(bit| Math) = (22+40+32)/208 = 97/208
P(chip| Math) = (7+8+9)/208 = 24/208
P(log| Math) = (56+48+60)/208 = 164/208
• Bước phân lớp : cho văn bản có vector đặc trưng sau
Docnew = (23,40,15,50)
Xác định lớp cho văn bản mới ?
Tính các xác xuất :
Xác suất Docnew thuộc Math:
P(Math)*[P(var|Math)*23*P(bit|Math)*40*P(chip|Math)*15*P(log|
Math)*50]=598.62
Xác suất Docnew thuộc Comp:
P(Comp)*[P(var|Comp)*23*P(bit|Comp)*40*P(chip|Comp)*15*P(log|
Comp)*50]=272.22
• Kết quả:
Văn bản Docnew thuộc về lớp Math do max(Pnew )= 598,62
3.2.3. Cơ sở dữ liệu

• Bảng Từ Vựng
Chứa các từ vựng của văn bản, các từ vựng sẽ được thêm vào là do chúng

ta thực thiện. Các từ này phải có mức độ quan trọng và có khả năng để dựa vào
đó mà xác định được lĩnh vực thường xuất hiện từ này.
15


Tiểu luận môn học: Máy học
Cột

Kiểu DL

id

int

tuvung

nvarchar

Size

50

NULL

Diễn giải

N

Mã từ


N

Từ vựng

Bảng 3.3. Bảng Từ Vựng

• Bảng Văn Bản
Chứa các văn bản để huấn luyện và cần phân loại. Thông tin cần lưu gồm
có:
Cột

Kiểu DL

id

int

tenvb

nvarchar

link

Size

NULL

Diễn giải

N


Mã văn bản

N

Tên văn bản

ntext

N

Nơi chứa

idlv

int

Y

Mã lĩnh vực

loai

nvarchar

Y

Loại

100


100

Bảng 3.4. Bảng Văn Bản

• Bảng Lĩnh Vực
Chứa các lĩnh vực mà ta cần phân loại.Các thông tin gồm có:
Cột

Kiểu DL

id

int

linhvuc

nvarchar

link

ntext

Size

100

NULL

Diễn giải


N

Mã lĩnh vực

N

Lĩnh vực

N

Nơi chứa

Bảng 3.5. Bảng Lĩnh Vực

• Bảng Huấn Luyện
Lưu trữ các thông tin về các lần huấn luyện để có thể đánh giá và so sánh
được tính hiệu quả của thuật toán. Các thông tin gồm có:
Cột

Kiểu DL

id

int

Size

NULL


Diễn giải

N

Lần huấn luyện

16


Tiểu luận môn học: Máy học
ngayhl

datetime

N

Thời gian huấn luyện

tongvb

int

N

Tổng số văn bản đưa vào
hl

Bảng 3.6. Bảng Huấn Luyện

• Bảng Chi Tiết Huấn Luyện

Lưu trữ các thông tin chi tiết về lần huấn luyện, các lĩnh vực được huấn
luyện trong lần huấn luyện. Các thông tin lưu trữ bao gồm:
Cột

Kiểu DL

id

Size

NULL

Diễn giải

int

N

Mã chi tiết luân luyện

idhl

int

N

Lần huấn luyện

idlv


int

N

Lĩnh vực

sovb

int

N

Số văn bản

tilevb

float

N

Tỉ lệ văn bản

tongtu

int

N

Tổng số từ


Bảng 3.7. Bảng Chi Tiết Huấn Luyện

• Bảng Thống Kê
Thống kê tổng số từ của các lĩnh vực trong các lần huấn luyện. Thông tin
bao gồm:

Cột

Kiểu DL

Size

NULL

Diễn giải

id

int

N

Mã thống kê

idhl

int

N


Lần huấn luyện

idtu

int

N

Mã từ

sotu

int

N

Số từ

tiletu

float

N

Tỉ lệ từ

Bảng 3.8. Bảng Thống Kê

• Bảng Mã Hóa
17



Tiểu luận môn học: Máy học
Lưu thông tin mã hóa của một văn bản dưới dạng các từ. Thông tin gồm
có:
Cột

Kiểu DL

Size

NULL

Diễn giải

idvb

int

N

Mã văn bản

idtu

int

N

Mã từ


sotu

int

N

Số từ

Bảng 3.9. Bảng Mã Hóa
3.2.4. Giao diện người dùng

Các form quản lý:
- Form quản lý văn bản
- Form quản lý từ vựng
- Form quản lý lĩnh vực
- Form quản lý thống kê
- Form quản lý mã hóa
- Form quản lý huấn luyện
- Form quản lý chi tiết huấn luyện
Các form chức năng:
- Form phân loại văn bản
- Form huấn luyện

CHƯƠNG 4. KẾT QUẢ
 Mục tiêu đã hoàn thành
- Về các chức năng:
Chương trình xây dựng về cơ bản đã hoàn thành tốt và đáp ứng được các
mục tiêu đã đề ra.
Chương trình được xây dựng dựa trên các từ vựng do chúng ta đưa vào nên

độ chính xác trong phân loại cũng cao hơn.
- Về giao diện:
Chương trình được xây dựng với giao diện khá trực quan, đáp ứng được
các tiêu chí về dễ dử dụng và khá thân thiện.
18


Tiểu luận môn học: Máy học
Sau đây là một số giao diện đã hoàn thành cùng với hướng dẫn sử dụng cơ
bản:
• Giao diện chương trình

Hình 4.1 Giao diện chính của chương trình

Giao diện chính được chia thành 2 phần:
- Phần menu: chứa các chức năng làm việc, gồm 4 chức năng chính là
huấn luyện, phân loại, quản lý và hướng dẫn
- Phần làm việc là một khung màu xám để chứa các khung làm việc khi
gọi các chức năng.
• Giao diện mục huấn luyện

Hình 4.2 Giao diện chức năng Huấn luyện phần Huấn luyện

- Giao diện phần huấn luyện: để huấn luyện việc học cho bộ phân loại.
Gồm các chức năng chọn lĩnh vực, chọn tất cả, thêm văn bản và huấn luyện.
+ Chức năng chọn lĩnh vực trong 1 Combobox: để chúng ta có thể
xem các văn bản được chọn để huấn luyện theo từng lĩnh vực.
19



Tiểu luận môn học: Máy học
+ Chức năng chọn tất cả: để xem tất cả các văn bản được chọn để
huấn luyện trong lần huấn luyện hiện tại. Khi chọn vào mục này nút huấn luyện
sẽ được bật ta có thể bấm nút huấn huyện.
+ Chức năng thêm văn bản: để có thể thêm hay xóa văn bản được
chọn để huấn luyện. Thao tác này sẽ gọi form quản lý văn bản để chúng ta thực
hiện các thao tác này.
+ Chức năng huấn luyện: để huấn luyện trích rút các thông tin, tính
toán gồm số từ theo văn bản, số từ theo lĩnh vực, tổng số từ của lĩnh vực, thông
tin về lần huấn luyện và chi tiết huấn luyện.
+ Ngoài ta còn có chức năng xem nọi dung của văn bản được chọn để
huấn luyện trên lưới hiển thị các văn bản. Khi bấm vào nút xem nội dung của
văn bản đó sẽ hiển thị lên ô text lớn trên màn hình.

Hình 4.3 Giao diện chức năng Huấn luyện phần Thống kê Trích rút

- Giao diện phần thống kê trích rút: để hiện thị cho chúng ta thấy thông tin
được bóc tách ra sau các lần huấn luyện. Thông tin hiển hị ở đây gồm có Chi tiết
lần huấn luyện, lần huấn luyện, thống kê và mã hóa văn bản.
• Giao diện mục phân loại

20


Tiểu luận môn học: Máy học
Hình 4.4 Giao diện chức năng Phân loại

Phần phân loại gồm có các thông tin và chức năng để chúng ta lấy văn bản
và đưa vào phân loại chúng. Các chức năng bao gồm chọn bộ dữ liệu huấn luyện
để thực hiện phân loại, thêm, xóa văn bản chọn để phân loại và phân loại. Ngoài

ra giao diện còn có chức năng chọn đường dẫn cho các mục được phân loại, và
hiển thị kết quả ra màn hình.
- Chọn bộ dữ liệu: thông tin huấn luyện được lưu trong CSDL gồm nhiều
thông tin cho các lần huấn luyện khác nhau. Do vậy bạn cần phải lựa chọn đúng
thông tin lần huấn luyện cần thiết. Mặc định sẽ là lần huấn luyện mới nhất được
chọn.
- Thêm văn bản phân loại: chọn và đưa văn bản cần phân loại vào phân
loại, có thể thêm nhiều văn bản cùng một lúc.
- Xóa văn bản: khi ta chọn nhầm văn bản đưa vào phân loại, hay mục đích
phân loại cho một văn bản mà ta đưa vào là không cần thiết ta có thế chọn xóa
và xóa văn bản này.
- Phân loại: Phân loại văn bản, trong nút này ta sẽ duyệt văn bản trên lưới
mã hóa và trích rút thông tin từ nó sau đó tính xác suất các khả năng phân loại
về từng lĩnh vực, xác suất cao nhất sẽ được chọn. Cuối cùng văn bản sẽ được
chuyển tới thư mục mà khả năng nó thuộc loại đó là cao nhất.
- Trong phàn này cũng có phần xem nội dung văn bản như trong chức năng
của phần huấn luyện.
• Giao diện phần quản lý văn bản

Hình 4.5 Quản lý Văn bản

Chứa các chức năng quản lý văn bản gồm thêm sửa và xóa văn bản.
Khi thêm văn bản tất cả các mục về trạng thái ban đầu ta chỉ cần chọn link
văn bản, sau đó chọn lĩnh vực và loại văn bản và nhấn nút lưu. Có thể thêm
nhiều văn bản cùng một lúc các văn bản lúc đo khi lưu sẽ cùng một loại và lĩnh
vực (có thể có hoặc không).
21


Tiểu luận môn học: Máy học

Khi muốn xóa văn bản ta chọn tích vào các mục cần xóa và chọn nút xóa.
Khi muốn sửa văn bản ta chọn nút sửa sửa chọn lại văn bản nếu muốn hoặc
loại hay lĩnh vực cho văn bản sau đó nhấn nút lưu.
• Giao diện phần quản lý từ vựng

Hình 4.6 Quản lý Từ vựng

Nhằm quản lý các từ vựng cho mục đích mã hóa và thống kê dữ liệu cho
mục huấn luyện. Các từ ở đây được đưa vào nên là các từ chuyên biệt của từng
lĩnh vực để khi huấn luyện chúng ta có được các kết quả đáng tin cậy, và không
đưa trùng lặp từ vựng.
Để thêm một từ vựng ta chọn nút thêm, nhập từ vựng và chọn nút lưu. Ở
đây ta còn có thể chọn một văn bản để hiển thị nội dung sau đó copy các từ
trong khung này vào từ vựng và lưu lại. Điều này sẽ hạn chế đáng kể thời gian
cho mục nhập từ vựng này. Chương trình sẽ tự động chuyển các từ vựng về chữ
thường, loại bỏ các dẫu cách thừa đầu và cuối cụm từ sau đó lưu lại. Chương
trình cũng sẽ thông bảo khi có từ trùng lặp được đưa vào.
Để xóa một từ ta tích chọn các từ cần xóa và chọn xóa.
Để sửa một từ ta chọn nút sửa sau đó sửa và lưu lại.


Giao diện phần quản lý lĩnh vực

22


Tiểu luận môn học: Máy học

Hình 4.7 Quản lý Lĩnh vực


Quản lý các lĩnh vực cần phân loại. Các thông tin quản lý gồm tên lĩnh vực
và nơi lưu khi văn bản được phân loại và chuyển đến.
Để thêm một lĩnh vực ta chọn thêm, gõ tên lĩnh vực và chọn thư mục chứa,
sau đó chọn lưu để lưu lĩnh vực.
Để xóa một lĩnh vực ta chọn các lĩnh vực cần xóa sau đó nhấn nút xóa. Nếu
các thông tin lĩnh vực hiện đang được sử dụng bạn không thể xóa nó. Một thông
báo sẽ được hiển thị ra màn hình.
Để sửa thông tin một lĩnh vực ta chọn nút sửa trên lĩnh vực cần sửa, sửa
thông tin sau đó chọn lưu để lưu lại.
• Giao diện phần quản lý mã hóa

23


×