Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
NGUYỄN NGỌC MINH
ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC NỬA GIÁM SÁT VÀO BÀI
TOÁN PHÂN LOẠI VĂN BẢN
LUẬN VĂN THẠC SỸ KỸ THUẬT
HÀ NỘI – NĂM 2013
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
NGUYỄN NGỌC MINH
ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC NỬA GIÁM SÁT VÀO
BÀI TOÁN PHÂN LOẠI VĂN BẢN
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 60.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS ĐOÀN VĂN BAN
HÀ NỘI - NĂM 2013
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất kỳ công trình nào khác.
Tác giả luận văn
Nguyễn Ngọc Minh
LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các thầy, cô giáo Học viện
Công nghệ Bưu chính Viễn thông đã tận tình chỉ bảo em trong suốt thời gian học
tập tại nhà trường.
Em xin gửi lời cảm ơn sâu sắc đến PGS.TS. Đoàn Văn Ban, người đã trực
tiếp hướng dẫn, tạo mọi điều kiện thuận lợi và tận tình chỉ bảo cho em trong suốt
thời gian làm luận văn tốt nghiệp.
Bên cạnh đó, để hoàn thành đồ án này, em cũng đã nhận được rất nhiều sự
giúp đỡ, những lời động viên quý báu của các bạn bè, gia đình và đồng nghiệp. Em
xin chân thành cảm ơn.
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc
rằng đồ án khó tránh khỏi thiếu sót. Em rất mong nhận được sự thông cảm và chỉ
bảo tận tình của quý thầy cô và các bạn.
HỌC VIÊN
Nguyễn Ngọc Minh
i
MỤC LỤC
LỜI CAM ĐOAN ......................................................................................... i
MỤC LỤC .................................................................................................... i
DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT ............................. v
DANH MỤC CÁC HÌNH .......................................................................... vi
DANH MỤC CÁC BẢNG ........................................................................ vii
MỞ ĐẦU ..................................................................................................... 1
CHƯƠNG 1 - TỔNG QUAN VỀ PHƯƠNG PHÁP HỌC MÁY ............ 3
1.1. Khái niệm học máy ........................................................................... 3
1.2. Một số khái niệm cơ bản trong học máy ......................................... 4
1.2.1. Không gian biểu diễn của dữ liệu ................................................. 4
1.2.2. Bản chất của các dữ liệu ............................................................... 4
1.2.3. Tiền xử lý dữ liệu ......................................................................... 4
1.2.4. Quá trình rời rạc hóa dữ liệu ........................................................ 5
1.2.5. Tập mẫu ....................................................................................... 5
1.2.6. Quá trình tìm kiếm trong không gian giả thuyết ........................... 5
1.3. Học có giám sát ................................................................................. 5
1.3.1. Khái niệm .................................................................................... 5
1.3.2. Cách giải một bài toán học có giám sát ........................................ 7
1.4. Học không có giám sát...................................................................... 8
1.4.1. Khái niệm .................................................................................... 8
1.4.2. Mô hình toán học ......................................................................... 9
1.5. Học nửa giám sát .............................................................................. 9
1.5.1. Khái niệm .................................................................................... 9
ii
1.5.2. Mô hình toán học ....................................................................... 10
1.6. Tổng kết chương ............................................................................. 10
CHƯƠNG 2 - MỘT SỐ THUẬT TOÁN HỌC NỬA GIÁM SÁT ......... 11
2.1. Mô hình sinh và thuật toán kỳ vọng cực đại ................................. 11
2.1.1. Giới thiệu về mô hình sinh ......................................................... 11
2.1.2. Mô hình sinh trong học nửa giám sát ......................................... 11
2.1.3. Thuật toán kỳ vọng cực đại ........................................................ 12
2.1.3.1. Giới thiệu thuật toán ............................................................ 12
2.1.3.2. Nội dung thuật toán ............................................................. 12
2.1.3.3. Đánh giá thuật toán .............................................................. 14
2.2. Thuật toán tự huấn luyện ............................................................... 15
2.2.1. Giới thiệu thuật toán tự huấn luyện ............................................ 15
2.2.2. Đánh giá thuật toán .................................................................... 16
2.3. Thuật toán S3VM ........................................................................... 16
2.3.1. Thuật toán SVM ........................................................................ 16
2.3.2. Giới thiệu thuật toán S3VM ...................................................... 21
2.3.3. Nội dung thuật toán S3VM ....................................................... 22
2.3.4. Nhận xét về S3VM .................................................................... 23
2.4. Thuật toán K - láng giềng gần nhất ............................................... 23
2.4.1. Giới thiệu thuật toán .................................................................. 23
2.4.2. Áp dụng KNN vào bài toán phân loại văn bản ........................... 24
2.5. Thuật toán Naive Bayes ................................................................. 26
2.5.1. Thuật toán .................................................................................. 26
2.5.2. Áp dụng vào bài toán phân loại .................................................. 27
iii
2.5.3. Ứng dụng Naive Bayes trong phân lớp văn bản ......................... 30
2.6. Thuật toán cây quyết định ............................................................. 32
2.6.1. Giới thiệu thuật toán ................................................................. 32
2.6.2. Thuật toán ID3 ........................................................................... 36
2.6.2.1. Entropy................................................................................ 36
2.6.2.2. Information Gain ................................................................. 36
2.6.2.3. Phát biểu thuật toán ID3 ...................................................... 37
2.6.3. Đánh giá thuật toán cây quyết định ............................................ 37
2.7. Tổng kết chương ............................................................................. 38
CHƯƠNG 3 - PHÂN LOẠI VĂN BẢN DỰA VÀO PHƯƠNG PHÁP
HỌC NỬA GIÁM SÁT ....................................................................................... 39
3.1. Phát biểu bài toán phân loại văn bản ............................................ 39
3.1.1. Mô hình tổng quát ...................................................................... 41
3.1.1.1. Giai đoạn huấn luyện ........................................................... 41
3.1.1.2. Giai đoạn phân lớp .............................................................. 43
3.1.2. Quá trình tiền xử lý văn bản ....................................................... 44
3.1.3. Phương pháp biểu diễn văn bản ................................................. 44
3.1.3.1. Mô hình không gian véc tơ .................................................. 45
3.1.3.2. Khái niệm trọng số .............................................................. 45
3.1.4. Đánh giá bộ phân lớp ................................................................. 47
3.1.4.1. Macro-Averaging ................................................................ 48
3.1.4.2. Micro-Averaging ................................................................. 49
3.2. Giới thiệu bài toán thực nghiệm .................................................... 49
3.3. Môi trường thực nghiệm ................................................................ 49
iv
3.3.1. Dữ liệu sử dụng.......................................................................... 49
3.3.2. Trích chọn đặc trưng .................................................................. 51
3.3.3. Phương pháp đánh giá ................................................................ 52
3.3.4. Công cụ phân lớp ....................................................................... 53
3.3.5. Kết quả thử nghiệm và đánh giá ................................................. 54
3.4. Tổng kết chương ............................................................................. 57
KẾT LUẬN ............................................................................................... 58
TÀI LIỆU THAM KHẢO ........................................................................ 59
v
DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT
Thuật ngữ Viết tắt Ý nghĩa
Công nghệ thông tin CNTT Công nghệ thông tin
Cơ sở dữ liệu CSDL Cơ sở dữ liệu
Self-training Self-training Tự huấn luyện
EM Expectation Maximization Kỳ vọng cực đại
Machine learning Machine learning Học máy
Supervised learning Supervised learning Học có giám sát
Unsupervised learning Unsupervised
learning Học không giám sát
K-Nearest Neighbors
algorithm KNN K láng giềng gần nhất
Semi-supervised
learning
Semi-supervised
learning Học nửa giám sát
Naive Bayes Naive Bayes Bayes ngây thơ
Decision tree Decision tree Cây quyết định
Support vector machine SVM Máy véc tơ hỗ trợ
Semi-supervised
support vector machine S3VM
Máy véc tơ hỗ trợ nửa
giám sát
vi
DANH MỤC CÁC HÌNH
Hình 1.1: Mô hình học có giám sát ............................................................... 6
Hình 1.2: Mô hình học nửa giám sát ............................................................. 9
Hình 2.1: Dữ liệu có nhãn ........................................................................... 11
Hình 2.2: Dữ liệu có nhãn và chưa có nhãn ................................................. 12
Hình 2.3 Phân lớp SVM ............................................................................ 17
Hình 2.4: Cây quyết định ............................................................................ 34
Hình 3.1: Mô hình giai đoạn huấn luyện ..................................................... 41
Hình 3.2: Chi tiết giai đoạn huấn luyện ....................................................... 42
Hình 3.3: Mô hình giai đoạn phân lớp ......................................................... 43
Hình 3.4: Chi tiết giai đoạn phân lớp .......................................................... 43
Hình 3.5: So sánh độ chính xác và độ bao phủ bộ dữ liệu ban đầu .............. 57
Hình 3.6: So sánh độ chính xác và độ bao phủ bộ dữ liệu sau khi “stemming”
.............................................................................................................................. 57
vii
DANH MỤC CÁC BẢNG
Bảng 2.1: Dữ liệu huấn luyện thời tiết......................................................... 28
Bảng 2.2: Dữ liệu kết quả huấn luyện ......................................................... 29
Bảng 2.3: Bộ từ vựng .................................................................................. 31
Bảng 2.4: Dữ liệu huấn luyện cây quyết định .............................................. 33
Bảng 2.5: Dữ liệu kiểm tra .......................................................................... 35
Bảng 2.6: Kết quả phân lớp ......................................................................... 36
Bảng 3.1: Bộ dữ liệu thử nghiệm ban đầu ................................................... 50
Bảng 3.2: Danh sách 20 từ đặc trưng .......................................................... 50
Bảng 3.3: Bộ dữ liệu sau khi “stemming” ................................................... 51
Bảng 3.4: Danh sách 20 “stem” đặc trưng ................................................... 51
Bảng 3.5: Kết quả kiểm nghiệm bộ dữ liệu ban đầu .................................... 55
Bảng 3.6: Kết quả kiểm nghiệm bộ dữ liệu sau khi “stemming”.................. 55
1
MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay sự phát triển mạnh mẽ của Internet đã dẫn đến sự bùng nổ thông
tin về nhiều mặt kể cả về nội dung lẫn số lượng, hệ thống dữ liệu số hóa trở nên
khổng lồ để phục vụ cho việc lưu trữ trao đổi thông tin. Dữ liệu số hóa này rất đa
dạng, nó có thể là các dữ liệu dưới dạng tập tin văn bản text, tập tin văn bản MS
word, tập tin văn bản PDF, mail, HTML, ... Các tập tin văn bản cũng được lưu trữ
trên máy tính cục bộ hoặc được truyền tải trên Internet, cùng với thời gian và với
lượng người dùng tăng nhanh thì các tập tin này ngày càng nhiều và đến một thời
điểm nào đó thì số lượng tập tin này sẽ vượt quá tầm kiểm soát, do đó khi muốn tìm
kiếm lại một văn bản nào đó việc tìm kiếm sẽ rất khó khăn và phức tạp, đặc biệt là
trong trường hợp người cần tìm kiếm không rõ các câu cần tìm chính xác trong văn
bản đó.
Với sự thành công của một số chương trình học máy đã chứng minh rằng có
thể tồn tại một tập hợp các quy tắc học tổng quát, cho phép xây dựng các chương
trình có khả năng tự học trong nhiều lĩnh vực khác nhau. Vào tháng 1-2006, Xiaojin
Zhu đã cho một cái nhìn tổng quan về các thuật toán nói trên [16].
Trích chọn thông tin trên Web đã và đang tạo thêm nhiều tài nguyên thông
tin, tri thức mới đáp ứng ngày càng hiệu quả nhu cầu thông tin của con người. Ngày
nay, công nghệ trích chọn thông tin trên Web đã hình thành loại hình dịch vụ đầy
triển vọng trong việc cung cấp thông tin phong phú và hữu ích từ nguồn dữ liệu
được coi là vô hạn trên Web. Tự động phân lớp văn bản là một nhiệm vụ rất quan
trọng có thể giúp ích cũng như tìm kiếm thông tin trên nguồn tài nguyên lớn này.
Với mục tiêu góp phần vào lĩnh vực nghiên cứu và ứng dụng phân loại văn
bản vào cuộc sống, tác giả đã chọn đề tài “Ứng dụng các phương pháp học nửa
giám sát vào bài toán phân loại văn bản” làm đề tài nghiên cứu luận văn tốt
nghiệp thạc sĩ chuyên ngành hệ thống thông tin.
2
2. Mục đích nghiên cứu
Nghiên cứu tổng quan về học máy và một số phương pháp học máy, nghiên
cứu một số thuật toán học có giám sát, học nửa giám sát từ kết quả thu được đề tài
cài đặt ứng dụng thử nghiệm vào bài toán phân loại văn bản.
3. Đối tượng và phạm vi nghiên cứu
Luận văn này thực hiện nghiên cứu các kiến thức cơ bản về học máy, một số
các thuật toán học có giám sát, nửa giám sát và ứng dụng phân loại văn bản.
4. Phương pháp nghiên cứu
Nghiên cứu lý thuyết:
- Nghiên cứu các tài liệu do thầy giáo hướng dẫn cung cấp
- Tìm hiểu, nghiên cứu các tài liệu liên quan trong sách, tạp chí, các bài báo
nước ngoài.
- Tìm kiếm các tài liệu trên mạng internet, ….
Thực nghiệm: Cài đặt thử nghiệm và đánh giá một số thuật toán học nửa giám sát,
thuật toán học có giám sát.
5. Nội dung luận văn
Luận văn gồm 3 chương:
Chương 1: Tổng quan về phương pháp học máy
Chương 2: Một số thuật toán học nửa giám sát
Chương 3: Phân loại văn bản dựa vào phương pháp học nửa giám sát
Trong đó đề tài tập trung vào chương 3 nhằm nghiên cứu và áp dụng các kỹ
thuật phân loại email của bộ dữ liệu dbworld [18].
3
CHƯƠNG 1 - TỔNG QUAN VỀ PHƯƠNG PHÁP HỌC MÁY
1.1. Khái niệm học máy
Hoạt động học là hoạt động tiếp thu những tri thức lý luận, khoa học. Nghĩa
là việc học không chỉ dừng lại ở việc nắm bắt những khái niệm đời thường mà học
phải tiến đến những tri thức khoa học, những tri thức có tính chọn lựa cao, đã được
khái quát hoá, hệ thống hoá.
Hoạt động học tập không chỉ hướng vào việc tiếp thu những tri thức, kĩ năng,
kĩ xảo mà còn hướng vào việc tiếp thu cả những tri thức của chính bản thân hoạt
động học. Hoạt động học muốn đạt kết quả cao, người học phải biết cách học,
phương pháp học, nghĩa là phải có những tri thức về chính bản thân hoạt động học.
Vậy, việc làm thế nào để máy tính có khả năng học tập, tư duy và có khả
năng học tập giống con người là một lĩnh vực nghiên cứu rất được chú ý trong thời
đại hiện nay.
Học máy (machine learning) [5],[6] là một ngành khoa học nghiên cứu, xây
dựng các kĩ thuật trên nền tảng của trí tuệ nhân tạo giúp cho máy tính có thể suy
luận (dự đoán) kết quả tương lai thông qua quá trình huấn luyện (học) từ dữ liệu
lịch sử .
Qua đó ta thấy học máy có liên quan rất mật thiết với thống kê, vì cả hai lĩnh
vực đều nghiên cứu việc phân tích dữ liệu, nhưng học máy khác với thống kê ở chỗ,
học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán.
Học máy được ứng dụng vào nhiều lĩnh vực như: Máy truy vấn dữ liệu, chẩn đoán y
khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, nhận dạng tiếng
nói và chữ viết, dịch tự động, chơi trò chơi và hoạt động rô-bốt, ...
Mô hình toán học [5].
Cho một tập dữ liệu X
+ Một tập mẫu T X
4
+ Một số hàm mục tiêu f : X → {đúng, sai}
+ Một tập huấn luyện , | , ( )D x y x T y f x
+ Tính toán một hàm 'f : X →{đúng, sai} sao cho '( ) ( )f x f x , x X .
1.2. Một số khái niệm cơ bản trong học máy
1.2.1. Không gian biểu diễn của dữ liệu
Không gian biểu diễn là một tập hợp:
Ký hiệu là X , mỗi phần tử thuộc X có thể được gọi là các dữ liệu, các thể
hiện, các đối tượng hay các ví dụ.
Mỗi phần tử S X được biểu diễn bởi một tập gồm n thuộc tính
1 2( , ,..., )nS s s s .
Một đối tượng S cũng có thể được biểu diễn kết hợp với lớp liên thuộc của
nó hay nói cách khác có thể được biểu diễn dưới dạng nhãn: ( , )z s c .
1.2.2. Bản chất của các dữ liệu
Bản chất của các dữ liệu có thể là các giá trị số trong tập số thực, các giá trị
rời rạc, các giá trị nhị phân, dãy các phần tử trong một bảng chữ cái (alphabet), ...
Không gian biểu diễn của dữ liệu có thể biểu diễn dưới dạng thuần nhất
(cùng kiểu) hoặc dưới dạng trộn (không cùng kiểu).
1.2.3. Tiền xử lý dữ liệu
Là quá trình xử lý dữ liệu đầu vào nhằm mục đích làm giảm số chiều của dữ
liệu đầu vào, giảm số chiều của vấn đề, xử lý nhiễu, ...
Ta thực hiện như sau:
Loại bỏ các thuộc tính không phù hợp hoặc ít phù hợp với quá trình học.
Sử dụng các phép biến đổi tuyến tính hoặc không tuyến tính trên các thuộc
tính ban đầu, nhằm giảm số chiều của không gian đầu vào.
Dùng các chuyên gia hoặc sử dụng trực quan để phát hiện các bất thường,
các lỗi mô tả thuộc tính hoặc nhãn, nhằm xử lý nhiễu.
5
1.2.4. Quá trình rời rạc hóa dữ liệu
Có những thuật toán học không xử lý được các dữ liệu mang tính liên tục.
Do vậy, cần phải biến đổi các dữ liệu mang tính liên tục thành các giá trị rời rạc.
Có thể sử dụng các phương pháp sau:
+ Phương pháp phân đoạn.
+ Phương pháp đo lường entropy.
+ Nếu dữ liệu tuân theo một luật phân phối nào đó, ví dụ phân phố Gauss,
phân phố đều, … thì ta có thể rời rạc thành các khoảng phân phối tương ứng.
1.2.5. Tập mẫu
Tập mẫu là tập hữu hạn các ví dụ.
Có ba kiểu tập mẫu:
+ Tập mẫu học hay tập học.
+ Tập mẫu hợp thức hoá hay tập hợp thức.
+ Tập mẫu thử hay tập thử.
1.2.6. Quá trình tìm kiếm trong không gian giả thuyết
Trong một không gian các giả thiết X, học trở thành bài toán tìm kiếm giả
thiết tốt nhất trong X.
Nếu ta đánh giá mỗi giả thiết bởi một hàm "mục tiêu" thì ta xét học như một
bài toán tối ưu hoá. Nghĩa là bài toán tìm phần tử của X làm tối ưu hàm mục tiêu.
Trong học máy người ta thường dùng tối ưu không ràng buộc hoặc tối ưu có
ràng buộc. Các phương pháp tối ưu hoá thường dùng trong học máy như Gradient,
nhân tử Lagrange...
1.3. Học có giám sát
1.3.1. Khái niệm
Học có giám sát (supervised learning) [5],[16] là một kỹ thuật của ngành học
máy nhằm mục đích xây dựng một hàm f từ dữ tập dữ liệu huấn luyện (Training
data). Dữ liệu huấn luyện bao gồm các cặp đối tượng đầu vào và đầu ra mong
6
muốn. Đầu ra của hàm f có thể là một giá trị liên tục hoặc có thể là dự đoán một
nhãn phân lớp cho một đối tượng đầu vào.
Hình 1.1: Mô hình học có giám sát
Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm f cho
một đối tượng đầu vào hợp lệ bất kì, sau khi đã xét một số mẫu dữ liệu huấn luyện
(nghĩa là các cặp đầu vào và đầu ra tương ứng). Để đạt được điều này, chương trình
học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình huống
chưa gặp phải theo một cách hợp lý.
Trong lý thuyết xác suất, một dãy các biến ngẫu nhiên được coi là có độc lập
cùng phân phối nếu chúng có cùng một phân phối và độc lập với nhau [26]. Các
quan sát trong một mẫu thường được giả thiết là độc lập cùng phân phối (i.i.d –
independently and identically distributed) nhằm làm đơn giản hoá tính toán toán học
bên dưới của nhiều phương pháp thống kê.
Hệ thống học sẽ quan sát một tập dữ liệu huấn luyện đã được gán nhãn, bao
gồm các cặp (đặc tính, nhãn) được biểu diễn bởi 1 1 2 2{( , ), ( , ),..., ( , )}n nx y x y x y . Trong
đó iy Y gọi là nhãn hoặc đích của các mẫu xi. Mục đích nhằm dự đoán nhãn y cho
bất kỳ đầu vào mới với đặc tính x. Nếu nhãn là các số, [ ]( )Ti i ny y biểu diễn véc tơ
cột của các nhãn. Như đã nêu, một yêu cầu chuẩn là các cặp ( , )i ix y tuân theo giả
thiết i.i.d trải khắp trên .X Y Nhiệm vụ được định rõ là, ta có thể tính toán được
một phép ánh xạ thông qua thi hành dự đoán của nó trên tập kiểm thử. Nếu các nhãn
lớp là liên tục, nhiệm vụ phân lớp được gọi là hồi quy (regression). Có hai họ thuật
toán có giám sát: mô hình sinh mẫu (generative model) và mô hình phân biệt
(discriminative model)
7
Mô hình sinh mẫu
Phương pháp này sẽ tạo ra một mô hình mật độ phụ thuộc vào lớp (class-
conditional density) p(x|y) bằng một vài thủ tục học không có giám sát. Một mật độ
sinh có thể được suy luận bằng cách sử dụng lý thuyết Bayes.
( | ) ( )( | )
( | ) ( )y
p x y p yp x y
p x y p y dy
Gọi là mô hình sinh vì ta có thể tự tạo ra các mẫu dữ liệu.
Mô hình phân biệt
Phương pháp này thay vì đánh giá xi được tạo ra như thế nào mà tập trung
đánh giá p(y | x). Một vài mô hình phân biệt hạn chế để mô hình xem p(y|x) lớn hơn
hoặc nhỏ hơn 0.5. Trong thực hành, phương pháp này thường được đánh giá là hiệu
quả hơn phương pháp sinh mẫu.
1.3.2. Cách giải một bài toán học có giám sát
Để giải một bài toán học có giám sát ta thực hiện theo các bước sau:
Bước 1: Xác định loại của các dữ liệu huấn luyện: Trước tiên ta cần phải
quyết định xem loại dữ liệu nào sẽ được sử dụng làm dữ liệu huấn luyện. Ta có thể
chọn dữ liệu một kí tự viết tay đơn lẻ, toàn bộ một từ viết tay, hay toàn bộ một
dòng chữ viết tay, ...
Bước 2: Thu thập tập dữ liệu huấn luyện. Khi thu thập tập dữ liệu huấn luyện
cần phải đảm bảo được sự đặc trưng cho thực tế sử dụng của hàm chức năng. Do đó
tập các dữ liệu đầu vào và đầu ra tương ứng phải được thu thập từ các chuyên gia
hoặc từ việc đo đạc tính toán.
Bước 3: Xác định việc biễu diễn các đặc trưng đầu vào cho hàm mục tiêu cần
tìm. Độ chính xác của mục tiêu phụ thuộc rất lớn vào các đối tượng đầu vào được
biểu diễn như thế nào. Đa số các đối tượng đầu vào được chuyển đổi thành một véc
tơ đặc trưng chứa các đặc trưng cơ bản của đối tượng đó. Chú ý số lượng các đặc
8
trưng không được lớn quá, để tránh sự bùng nổ tổ hợp tuy nhiên nó phải đủ lớn để
đảm bảo dự đoán chính xác đầu ra.
Bước 4: Xác định cấu trúc của hàm mục tiêu cần tìm và giải thuật học tương
ứng. Ví dụ, ta có thể sử dụng mạng nơ-ron nhân tạo, cây quyết định, ...
Bước 5: Hoàn thiện thiết kế.
Tiến hành chạy giải thuật học với tập dữ liệu huấn luyện thu thập được. Ta
có thể điều chỉnh các tham số của giải thuật học bằng cách tối ưu hóa hiệu năng trên
một tập con của tập huấn luyện, (gọi là tập kiểm chứng -validation set) của tập huấn
luyện hay thông qua kiểm chứng chéo (cross-validation). Sau đó ta tiến hành đo đạc
hiệu năng của giải thuật trên một tập dữ liệu kiểm tra độc lập với tập huấn luyện.
1.4. Học không có giám sát
1.4.1. Khái niệm
Học không có giám sát (unsupervised learning) [5],[16] là một phương pháp
học máy mà dữ liệu huấn luyện là dữ liệu hoàn toàn chưa được gán nhãn, nhằm tìm
ra một mô hình phù hợp với các quan sát. Học không có giám sát khác với học có
giám sát ở chỗ, là đầu ra đúng tương ứng cho mỗi đầu vào là chưa biết trước. Trong
học không có giám sát, một tập dữ liệu đầu vào thường được thu thập một cách
ngẫu nhiên, và sau đó một mô hình mật độ kết hợp sẽ được xây dựng cho tập dữ
liệu đó.
Ta có thể kết hợp học không có giám sát với suy diễn Bayes để tạo ra xác
suất có điều kiện cho bất kỳ biến ngẫu nhiên nào khi biết trước các biến khác. Hay
nói cách khác khi đó ta đã chuyển từ việc học không có giám sát sang học có giám
sát. Mọi giải thuật nén dữ liệu, về cơ bản hoặc là dựa vào một phân bố xác suất trên
một tập đầu vào một cách tường minh hay không tường minh. Do đó trong công
nghệ nén dữ liệu học không có giám sát được ứng dụng một cách rất hữu dụng.
9
1.4.2. Mô hình toán học
Chẳng hạn cho trước một mẫu chỉ gồm các đối tượng (objects), cần tìm kiếm
cấu trúc đáng quan tâm (interesting structures) của dữ liệu, và nhóm các đối tượng
giống nhau. Biểu diễn toán học của phương pháp này như sau:
Đặt 1 2( , ,..., )nX x x x là tập hợp gồm n mẫu (examples or points), ix X với
mọi i∈ [�]:= {1,2,...,n}. Thông thường, ta giả thiết các mẫu được tạo ra một cách
độc lập và giống nhau (i.i.d – independently and identically distributed) từ một phân
phối chung trên X. Mục đích của học không có giám sát là tìm ra một cấu trúc thông
minh (interesting structures) trên tập dữ liệu đó.
1.5. Học nửa giám sát
1.5.1. Khái niệm
Học nửa giám sát (semi-supervised learning) [5],[16] là một phương pháp
học máy mà dữ liệu huấn luyện là sự kết hợp của dữ liệu được gán nhãn và dữ liệu
chưa được gán nhãn.
Hình 1.2: Mô hình học nửa giám sát
Như chúng ta đã biết khi áp dụng học có giám sát thì các dữ liệu huấn luyện
đã được gán nhãn. Do đó sẽ thu được kết quả có độ chính xác rất cao. Tuy nhiên,
khi đó ta sẽ gặp một vấn đề rất khó khăn là khi lượng dữ liệu lớn, thì công việc gán
nhãn cho dữ liệu sẽ tốn rất nhiều thời gian và công sức. Hay nói cách khác những
dữ liệu được gán nhãn là rất đắt và việc tạo ra nhãn cho những dữ liệu đòi hỏi
những nỗ lực rất lớn của con người.
Đối với mô hình học không có giám sát thì ngược lại, các dữ liệu huấn luyện
không được gán nhãn. Do đó kết quả thu được có độ chính xác không cao. Tuy
10
nhiên dữ liệu chưa được gán nhãn, có thể dễ dàng thu thập được rất nhiều. Hay nói
cách khác là dữ liệu chưa gán nhãn có chi phí rất rẻ.
Học nửa giám sát đã khắc phục được các nhược điểm, và phát huy được ưu
điểm của học có giám sát và học không có giám sát. Bằng cách kết hợp giữa học có
giám sát và học không có giám sát, với một lượng lớn dữ liệu chưa gán nhãn và một
lượng nhỏ những dữ liệu đã được gán nhãn, bằng các giải thuật học nửa giám sát sẽ
thu được kết quả vừa có độ chính xác cao vừa mất ít thời gian công sức. Do đó, học
nửa giám sát là một phương pháp học đạt được hiệu quả rất tốt trong lĩnh vực học
máy.
Tóm lại học nửa giám sát là một phương pháp của ngành học máy nhằm xây
dựng một hàm mục tiêu từ các dữ liệu huấn luyện. Sau đó tổng quát hóa thành mô
hình chung cho tất cả các dữ liệu gán nhãn và chưa được gán nhãn. Nhằm mục đính
tìm ra một kết quả mong đợi.
1.5.2. Mô hình toán học
Cho 1 2( , ,..., )nX x x x là tập hợp gồm n mẫu.
Ta giả thiết rằng đa số mẫu được tạo ra một cách độc lập và giống nhau từ
một phân phối chung trên X và một số lượng nhỏ mẫu đã được gán nhãn. Mục tiêu
là tìm ra một cấu trúc thông minh trên tập dữ liệu X.
1.6. Tổng kết chương
Trên đây là một số kiến thức cơ bản về học máy, thông qua đó ta có thể nắm
bắt được các kiến thức nền tảng về học máy như: Khái niệm thế nào là học máy,
học có giám sát, học không giám sát và học nửa giám sát ; Các mô hình toán của
học máy, học có giám sát, học không giám sát, học nửa giám sát ; Nắm được các
bước giải một bài toán trong học máy. Đây chính là những kiến thức cơ sở để ta có
thể tiếp tục tìm hiểu, nghiên cứu các thuật toán về học nửa giám sát trong các
chương tiếp theo.
11
CHƯƠNG 2 - MỘT SỐ THUẬT TOÁN HỌC NỬA GIÁM SÁT
2.1. Mô hình sinh và thuật toán kỳ vọng cực đại
2.1.1. Giới thiệu về mô hình sinh
Trong học nửa giám sát, phương pháp được áp dụng lâu đời nhất là phương
pháp sử dụng mô hình sinh. Mô hình sinh được mô tả bởi những chức năng và thao
tác toán học được sắp xếp theo sự phân cấp trên cùng một tập dữ liệu điểm.
Mô hình có dạng ( , ) ( ) ( | )p x y p y p x y với ( | )p x y là một phân phối nhận
dạng hỗn hợp [4],[16].
Ví dụ: Mô hình hỗn hợp Gaussian, là mô hình với một lượng lớn dữ liệu
chưa gán nhãn và một số ít dữ liệu gán nhãn, các phần hỗn hợp có thể được xác
định, sau đó chúng ta chỉ cần gán một nhãn cho mỗi ví dụ thành phần để xác định
đầy đủ phân phối hỗn hợp.
2.1.2. Mô hình sinh trong học nửa giám sát
Người ta thường áp dụng mô hình sinh để giải quyết những bài toán nhận dạng
ảnh, nhận dạng văn bản, nhận dạng tiếng nói và một số bài toán khác.
Giả sử có một có một tập dữ liệu ( , )x y đã được gán nhãn. Với x là dữ liệu, y
là nhãn tương ứng. Chúng được phân lớp như hình sau:
Hình 2.1: Dữ liệu có nhãn
12
Khi dữ liệu chưa được gán nhãn được thêm vào. Thì ta sẽ có một mô hình
phù hợp nhất với tập dữ liệu này, để có thể phân lớp tất cả các dữ liệu mới được đưa
vào.
Hình 2.2: Dữ liệu có nhãn và chưa có nhãn
2.1.3. Thuật toán kỳ vọng cực đại
2.1.3.1. Giới thiệu thuật toán
Thuật toán kỳ vọng cực đại (Expectation Maximization - EM) là một thuật
toán tổng quát đánh giá sự cực đại khả năng(ML – Maximum Likelihood) mà dữ
liệu là không hoàn chỉnh (incomplete data) hoặc hàm likelihood liên quan đến các
biến ẩn (latent variables) [5]. Ở đây, hai khái niệm “incomplete data” và “latent
variables” có liên quan đến nhau: Khi tồn tại biến ẩn, thì dữ liệu là không hoàn
chỉnh vì ta không thể quan sát được giá trị của biến ẩn; tương tự như vậy khi dữ liệu
là không hoàn chỉnh, ta cũng có thể liên tưởng đến một vài biến ẩn với dữ liệu thiếu
2.1.3.2. Nội dung thuật toán
Đầu vào:
D : Tập dữ liệu có nhẵn và chưa có nhãn.
L : Tập dữ liệu đã gán nhãn trong D.
U : Tập dữ liệu chưa có nhãn trong D.
13
Đầu ra:
Một cấu trúc thông minh trên tập dữ liệu D.
Thuật toán:
U D \ L dùng trong E-bước và M-bước ;
For i = 0, 1, 2, . . . do
{
For d U do
{
E-bước: dùng phân lớp Bayes thứ nhất xác định P(c|d,i);
End for
}
For c và t do
{
M-bước: xác định c,t dùng công thức (**) để xây dựng mô hình i+1;
End for
}
End for
}
(**);)|(||
1)(
),()|(||
),()|(1,0
DdDd
Dd
t dcPD
cPdndcPW
tdndcP
Với
dt
tdnt
dd
tdn
lclLPcdP ),(
)},({)|()|(
14
Thuật toán kỳ vọng cực đại được thực hiện như sau:
Bước 1: Tiến hành gán giá trị ngẫu nhiên cho tất cả các tham số của mô
hình.
Bước 2: Tiến hành lặp hai bước lặp sau:
Bước kỳ vọng (Expectation step): Trong bước này thuật toán tiến hành tính
toán hàm mục tiêu mong muốn cho dữ liệu dựa trên các thiết lập tham số và dữ liệu
không đầy đủ.
Bước tối đa hóa (Maximization step): Trong bước này thuật toán tiến hành
tính toán lại tất cả các tham số, bằng cách sử dụng tất cả các dữ liệu.
Qua đó ta sẽ nhận được một tập các tham số mới.Tiến trình tiếp tục cho đến
khi hàm mục tiêu hội tụ, ví dụ như hàm mục tiêu đạt tới cực đại địa phương.
Thuật toán kỳ vọng cực đại sử dụng hướng tiếp cận là xuất phát từ một giá trị
khởi ngẫu nhiên nào đó. Do vậy chỉ đảm bảo đạt được giá cực đại địa phương mang
tính phương. Nên việc đạt tới cực đại toàn cục hay không là phụ thuộc vào điểm bắt
đầu xuất phát. Nếu ta xuất phát từ một điểm đúng thì ta có thể tìm được cực đại toàn
cục. Tuy nhiên vấn đề tìm điểm xuất phát đúng thường rất khó. Ta có thể sử dụng
hai phương pháp để giải quyết vấn đề này như sau:
Một là: Tiến hành thử nhiều giá trị khởi đầu khác nhau, qua đó tiến hành lựa
chọn phương án mà giá trị hàm mục tiêu hội tụ lớn nhất.
Hai là: Ta sẽ sử dụng một mô hình đơn giản hơn để tiến hành xác định giá
trị khởi đầu. Qua đó sẽ tìm được vùng tồn tại cực đại toàn cục, sau đó ta sẽ chọn
một giá trị khởi đầu trong vùng đó để tiến hành bắt đầu với mô hình phức tạp.
2.1.3.3. Đánh giá thuật toán
Thuật toán kỳ vọng cực đại có ưu điểm là có mô hình toán rõ ràng, học theo
khung mô hình xác suất khá tốt và có hiệu quả rất tốt nếu mô hình đó là mô hình
dạng đóng. Tuy nhiên, thuật toán còn những mặt hạn chế là ta cần phải xác định
được tính chính xác của mô hình, xác minh được tính đồng nhất của mô hình, ngoài
ra xác định tối ưu bằng giải thuật kỳ vọng cực đại sẽ làm ảnh hưởng đến những dữ
liệu không được gán nhãn nếu mô hình bị sai.
15
2.2. Thuật toán tự huấn luyện
2.2.1. Giới thiệu thuật toán tự huấn luyện
Tự huấn luyện (Self-training) là một phương pháp phổ biến ra đời vào những
năm 1960 đến 1970, được sử dụng trong lĩnh vực học nửa giám sát. Trong phương
pháp này, với một bộ phân lớp (classfier) ban đầu được huấn luyện bằng một số
lượng nhỏ các dữ liệu đã gán nhãn. Bộ phân lớp sau đó được sử dụng để gán nhãn
cho các dữ liệu chưa gán nhãn. Các dữ liệu được gán nhãn có độ tin cậy cao (vượt
trên một ngưỡng nào đó) và nhãn tương ứng của chúng được đưa vào tập huấn
luyện (train set). Tiếp đó bộ phân lớp được học lại trên tập huấn luyện mới ấy và
thủ tục lặp tiếp tục. Ở mỗi vòng lặp, bộ học sẽ chuyển một vài các mẫu tin có độ tin
cậy cao nhất sang tập dữ liệu huấn luyện cùng với các dự đoán phân lớp của chúng.
Tên gọi self-training xuất phát từ việc nó sử dụng dự đoán của chính nó để dạy
chính nó.
Đầu vào:
D : Tập dữ liệu có nhẵn và chưa có nhãn.
L : Tập dữ liệu đã gán nhãn trong D.
U : Tập dữ liệu chưa có nhãn trong D.
Đầu ra:
Một cấu trúc thông minh trên tập dữ liệu D.
Để thực hiện thuật toán, trước tiên ta phải chọn một thuật toán học có giám
sát để tiến hành huấn luyện trên tập dữ liệu dữ liệu đã gán nhãn. Thuật toán này còn
gọi là thuật toán nhân. Sau khi đã chọn được thuật toán nhân ta áp dụng vào thuật
toán tự huấn luyện như sau.
Thuật toán:
Repeat
Huấn luyện bộ phân lớp có giám sát h trên tập L;
16
Sử dụng h để phân lớp dữ liệu trong tập U;
Tìm tập con U’ U có độ tin cậy cao nhất:
L L + U’;
U U – U’;
Until U =
2.2.2. Đánh giá thuật toán
Giải thuật tự huấn luyện là phương pháp đơn giản nhất trong học nửa giám
sát. Thuật toán tự huấn luyện được ứng dụng để giải quyết các bài toán về xử lý
ngôn ngữ tự nhiên, các bài toán phát hiện các đối tượng hệ thống từ các hình ảnh.
Ngoài ra thuật toán tự huấn luyện còn được ứng dụng để giải quyết các bài toán
phân tách và dịch máy, …
Giải thuật có mô hình toán học dễ hiểu, sáng sủa và dễ học, giải thuật có độ
phức tạp phụ thuộc vào số lượng mẫu huấn luyện và độ phức tạp của bộ phân lớp có
giám sát h.
2.3. Thuật toán S3VM
Thuật toán S3VM (Semi – superviesd Suport vector machines) được xây dựng
từ nền tảng là thuật toán SVM, do vậy trước khi tìm hiểu về thuật toán S3VM, ta sẽ
đi tìm hiểu thuật toán SVM.
2.3.1. Thuật toán SVM
Giới thiệu thuật toán
Thuật toán SVM (Support Vector Machine) là một thuật toán học có giám sát
với bộ dữ liệu huấn luyện là các dữ liệu đã được gán nhãn. Thuật toán SVM nhằm
mục đích xây dựng một siêu phẳng dựa trên tập dữ liệu huấn luyện, sao cho khi
17
phân lớp một đối tượng dữ liệu mới thì độ sai lệch là cực tiểu, độ sai lệch được đặc
trưng bởi khoảng cách từ dữ liệu tới siêu phẳng.
Thuật toán SVM đã được ứng dung để giải quyết rất nhiều những bài toán
trong các lĩnh vực khác nhau. Đặc biệt SVM đã được ứng dụng để giải quyết bài
toán phân lớp văn bản và thu được nhưng thành tựu rất tích cực, nó đã được chứng
minh là một trong những thuật toán phân lớp văn bản mạnh nhất để giải quyết bài
toán này [17].
Hình 2.3 sẽ minh hoa cho ý tưởng phân lớp của thuật toán SVM.
Nội dung thuật toán SVM
Nôi dung giải thuật dựa trên bài toán phân lớp đơn giản nhất là bài toán phân lớp
nhi phân. với tập dữ liệu huấn luyện như sau:
D = {(xi, yi) | xi RP, yi {-1, 1}, i = 1, 2, …, n}
Trong đó tập dữ liệu huấn luyện là các vector đối tượng được phân lớp thành các
mẫu dương và mẫu âm.
+ Các mẫu dương là các mẫu xi thuộc lĩnh vực quan tâm và được gán
nhãn yi = 1.
Các mẫu
dương
Các
mẫu âm
Mặt
siêu phẳng lề
Hình 2.3 Phân lớp SVM
18
+ Các mẫu âm là các mẫu xi không thuộc lĩnh vực quan tâm và được
gán yi = - 1.
Bài toán lúc này chính là một bài toán tối ưu với mục tiêu là tìm ra một không
gian H và siêu mặt phẳng quyết định h trên H sao cho sai số phân lớp là nhỏ nhất.
Trong tình huống này bộ phân lớp SVM là mặt siêu phẳng phân tách các mẫu
dương và các mẫu âm ra thành hai nhóm với độ chênh lệch là cực đại. Trong đó
khoảng cách giữa các mẫu dương và các mẫu âm gần mặt siêu phẳng nhất còn được
gọi là lề. Mặt siêu phẳng này được gọi là mặt siêu phẳng lề tối ưu.
Trong không gian đối tượng, mỗi siêu phẳng đều có thể được viết dưới dạng một
tập hợp các điểm thỏa mãn: w x + b = 0.
Với w là một véc tơ pháp tuyến của siêu phẳng hay còn gọi là véc tơ trọng số, b
là độ dịch. Khi ta thay đổi w và b thì hướng và khoảng cách từ gốc toạ độ đến mặt
siêu phẳng thay đổi.
Bộ phân lớp SVM được xác định như sau:
Bô phân lớp SVM phụ thuộc vào tham số vector trọng số w và độ dịch b. Mục
tiêu của phương pháp SVM là ước lượng w và b sao cho cực đại hoá lề giữa các lớp
dữ liệu dương và âm.
Vậy chúng ta cần chọn w và b để cực đại hóa lề sao cho khoảng cách giữa hai
siêu mặt song song ở xa nhau nhất có thể trong khi vẫn phân chia được dữ liệu. Các
siêu phẳng được xác định bằng các công thức sau:
w x + b = 1 và w x + b = -1.
Ta thấy rằng nếu dữ liệu huấn luyện có thể được chia tách một cách tuyến tính,
thì ta có thể chọn hai siêu phẳng của lề sao cho không có điểm nào nằm giữa chúng
và sau đó tiến hành tăng khoảng cách giữa chúng đến tối đa có thể. Bằng phương
pháp hình học ta tính được khoảng cách giữa hai siêu phẳng là ||||
2
w. Do vậy nếu
muốn cực đại hóa khoảng cách giữa hai siêu phẳng lề thì ta phải tiến hành cực tiểu
hóa giá trị ||w||.
19
Để không có điểm dữ liệu nào nằm trong lề, ta có các điều kiện sau, với mỗi i ta
có:
w xi + b ≥ 1 đối với xi thuộc lớp thứ nhất.
w xi + b ≤ -1 đối với xi thuộc lớp thứ hai.
Ta có thể viết gọn lại như sau: yi (w xi + b) ≥ 1 với 1≤ i ≤ n.
Vậy ta có bài toán tối ưu hóa sau:
i i
Cùc tiÓu ho¸ || w || theo w,b
y (w x b) 1, i 1, n
Bài toán tối ưu trên khá khó vì hàm mục tiêu phụ thuộc vào ||w||, là một hàm có
khai căn. Để thuận tiện cho việc giải bài toán ta có thể thay ||w|| bằng hàm mục tiêu
2||||2
1w , lời giải của bài toán này và bài toán ban đầu có cùng kết quả w và b, số 1/2
được thêm vào nhằm mục đích thuận tiện cho các biến đổi toán học về sau. Ta nhận
thấy rằng bài toán này chính là một bài toán quy hoạch toàn phương.
Vậy bài toán đầu được thay bằng bài toán sau:
2
i i
1Cùc tiÓu ho¸ || w || theo w,b
2
y (w x b) 1, i 1, n
Ta tiến hành thêm các nhân tử Lagrange sẽ nhận được bài toán sau:
n
iiii
obwbxwyw
1
2
,]1)([||||
2
1maxmin
Ta có thể giải bài toán này bằng các kĩ thuật gải bài toán quy hoạch toàn
phương. Theo điều kiện Karush–Kuhn–Tucker lời giải của bài có thể được viết dưới
dạng tổ hợp tuyến tính của các vector huấn luyện như sau:
n
iiii xyw
1
20
Ta tính b như sau:
Từ phương trình yi (w xi + b) = 1 w xi + b = 1/yi b = w xi – yi
Trong thực tế người ta hay sử dụng cách tính giá trị trung bình từ tất
cả vector huấn luyện để tính b:
TBN
iii
TB
yxwN
b1
)(1
Sau khi tìm được vector trọng số w và độ dịch b. Từ đó ta xây dựng được
phương trình tổng quát của siêu phẳng tìm được bởi thuật toán SVM như sau:
f(x) = w x + b;
Nếu f(x) ≥ 0 thì x thuộc lớp thứ nhất.
Nếu f(x) < 0 thì x thuộc lớp thứ hai.
Sau khi đã tìm được phương trình của siêu phẳng bằng thuật toán SVM ta có thể
áp dụng phương trình này để phân lớp cho các dữ liệu mới.
Vậy ta có mô hình toán học của thuật toán SVM như sau :
Đầu vào:
D = {(xi, yi) | xi RP, yi {-1, 1}, i = 1, 2, …, n}
Đầu ra:
Một một siêu phẳng h phân chia dữ liệu trong D thành hai nhóm với
sai số là nhỏ nhất.
Thực hiện:
Giải bài toán tối ưu:
n
iiii
obwbxwyw
1
2
,]1)([||||
2
1maxmin
Tính
n
iiii xyw
1
Tính b = w xi – yi hoặc
TBN
iii
TB
yxwN
b1
)(1
Xây dựng hàm h(x) = w x + b là siêu phẳng cần tìm.
Đánh giá thuật toán SVM
21
Có thể nói giải thuật huấn luyện SVM là việc giải bài toán quy hoạch toàn
phương. Để giải bài toán quy hoạch này ta cần phải lưu trữ một ma trận có kích
thước bằng bình phương của số lượng mẫu huấn luyện, mà trong những bài toán
thực tế thông thường kích thước của tập dữ liệu huấn luyện là rất lớn, dẫn đến việc
giải bài toán này là không khả thi. Tuy nhiên có rất nhiều thuật toán khác nhau được
nghiên cứu để giải quyết vấn đề này. Các thuật toán này thường phân rã tập dữ liệu
huấn luyện thành những nhóm dữ liệu nhỏ để thực hiện giải bài toán tối ưu. Nghĩa
là bài toán quy hoạch toàn phương ban đầu được chia thành các bài toán quy hoạch
toàn phương với kích thước nhỏ hơn. Sau đó những thuật toán này kiểm tra các điều
kiện Karush-Kuhn-Tucker để xác định phương án tối ưu, …
Qua đó ta có nhận định sau: Giải thuật SVM có ưu điểm là thích hợp cho nhiều
kiểu xử lý dữ liệu. Giải thuật có mô hình toán học dễ hiểu, sáng sủa. Tuy nhiên giải
thuật SVM còn có những mặt hạn chế như độ phức tạp cao, giải quyết bài toán tối
ưu khó. Hơn nữa thuật toán lại chỉ chấp nhận những dữ liệu huấn luyện có gán
nhãn, mà việc xây dựng các dữ liệu huấn luyện có gán nhãn đòi hỏi tốn thời gian và
công sức. Đây cũng chính là nhược điểm của các phương pháp học có giám sát. Để
giải quyết vấn đề trên người ta đã đề xuất một phương pháp SVM cải tiến mà tận
dụng được các khả năng của dữ liệu huấn luyện đã gán nhãn và dữ liệu chưa gán
nhãn. Trong phần tiếp theo ta sẽ đi tìm hiểu phương pháp SVM cải tiến, hay còn gọi
là phương pháp học bán giám sát SVM.
2.3.2. Giới thiệu thuật toán S3VM
Thuật toán S3VM (Semi-supervised support vector machine) có mục đích nhằm
xây dựng một máy hỗ trợ vector sử dụng tập dữ liệu huấn luyện là một lượng nhỏ
các dữ liệu đã gán nhãn (training set) và một lượng lớn chưa gán nhãn (working
set). Bài toán truyền dẫn sẽ dự đoán giá trị của một hàm phân lớp tới các điểm đã
cho trong tập dữ liệu chưa gán nhãn.
Thuật toán S3VM được xây dựng để sử dụng hỗn hợp dữ liệu huấn luyện là dữ
liệu đã gán nhãn và chưa gán nhãn với mục đích là gán các nhãn cho dữ liệu trong
tập dữ liệu huấn luyện chưa gán nhãn một các tốt nhất có thể. Sau đó sử dụng hỗn
22
hợp dữ liệu đã gán nhãn cho trước và dữ liệu vừa được gán nhãn để huấn luyến và
phân lớp những dữ liệu mới.
Ta nhân thấy rằng nếu toàn bộ dữ liệu huấn luyện đã được gán nhãn thì bài toán
này lại trở thành bài toán học có giám sát SVM (Support vector machine). Ngược
lại nếu toàn bộ dữ liệu huấn luyện chưa được gán nhãn thì bài toán lại trở thành bài
toán học không giám sát.
2.3.3. Nội dung thuật toán S3VM
Đầu vào:
D : Tập dữ liệu có nhẵn và chưa có nhãn.
D = {(xi, yi) | xi RP, yi {-1, 0, 1}, i = 1, 2, …, n}
L : Tập dữ liệu đã gán nhãn trong D gồm l dữ liệu.
L = {(xi, yi) | xi RP, yi {-1, 1}, i = 1, 2, …, l}
U : Tập dữ liệu chưa có nhãn trong D gồm u dữ liệu.
L = {(xj, yj) | xj RP, yj = 0, j = 1, 2, …, u}
Đầu ra:
Một một siêu phẳng h phân chia dữ liệu trong D thành hai nhóm với sai số là
nhỏ nhất.
Thực hiện:
Giải bài toán tối ưu
2j
i i
i j
1Cùc tiÓu ho¸ || w || theo w,b,y
2
y (w x b) 1, i 1, l
y (w x b) 1, i 1, u
Cụ thể hơn ta giải bài toán sau:
u
jjj
l
iii
ybw
bxwyu
bwxyl
wj 11,,
))(1,0max(2
'))(1,0max(
2
1||||
2min
Vấn đề ở đây là ta cần phải xác định nhãn yj trong tập dữ liệu chưa được gán
nhãn. Ta thực hiện tìm kiếm một siêu phẳng w và ghi nhãn một trong những ví dụ
23
không có nhãn, do đó hàm mục tiêu SVM được giảm thiểu, và bị ràng buộc bởi một
r phần nhỏ của dữ liệu không có nhãn được phân loại tích cực. Ta có
u
jj bxwsign
ur
1
))(,0max(1
.
Tập dữ liệu chưa gán nhãn sau khi đã gán nhãn sẽ được đưa vào tập dữ liệu huấn
luyện, tiếp theo đó sẽ sử dung thuật toán SVM để học tạo ra SVM mới, SVM này
chính là S3VM có một siêu phẳng mới. Sau đó áp dụng siêu phẳng này để phân lớp
các mẫu dữ liệu mới được đưa vào.
2.3.4. Nhận xét về S3VM
Vậy giải thuật S3VM chính là một phương pháp cải tiến của giải thuật SVM,
giải thuật đã tân dụng được những ưu điểm của học có giám sát là có độ chính xác
cao và đã tận dụng được nguồn đữ liệu huấn luyện không gán nhãn rất sẵn có nhằm
giải quyết bài toán phân lớp một cách tối ưu. Tuy nhiên vì giải thuật được xây dựng
trên nền tảng là giải thuật SVM nên nó vẫn gặp phải những vẫn đề của giải thuật
SVM như sự bùng nổ tổ hợp, độ phức tạp cao, giải quyết bài toán tối ưu khó, …
2.4. Thuật toán K - láng giềng gần nhất
2.4.1. Giới thiệu thuật toán
K-Nearest Neighbors algorithm (K-NN) [24] được sử dụng rất phổ biến
trong lĩnh vực Data Mining. K-NN là phương pháp để phân lớp các đối tượng dựa
vào khoảng cách gần nhất giữa đối tượng cần xếp lớp (Query point) và tất cả các
đối tượng trong dữ liệu huấn luyện.
Một đối tượng được phân lớp dựa vào K láng giềng của nó. K là số nguyên
dương được xác định trước khi thực hiện thuật toán. Người ta thường dùng khoảng
cách Euclidean để tính khoảng cách giữa các đối tượng.
Thuật toán K-NN được mô tả như sau:
Xác định giá trị tham số K (số láng giềng gần nhất)
24
Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượng trong
dữ liệu huấn luyện (thường sử dụng khoảng các Euclidean, Cosine...)
Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần nhất
với đối tượng cần phân lớp
Lấy tất cả các lớp của K láng giềng gần nhất đã xác định
Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối tượng
2.4.2. Áp dụng KNN vào bài toán phân loại văn bản
Khi cần phân loại một văn bản mới, thuật toán sẽ tính khoảng cách (khoảng
cách Euclidean, Cosine…) của tất cả các văn bản trong tập huấn luyện đến văn bản
này để tìm ra k văn bản gần nhất (gọi là k “láng giềng”), sau đó dùng các khoảng
cách này đánh trọng số cho tất cả chủ đề. Trọng số của một chủ đề chính là tổng tất
cả các văn bản trong k láng giềng có cùng chủ đề, chủ đề nào không xuất hiện trong
k láng giềng sẽ có trọng số bằng 0. Sau đó các chủ đề sẽ được sắp xếp theo mức độ
giảm dần và các chủ đề có trọng số cao sẽ được chọn là chủ đề của văn bản cần
phân loại.
Khoảng cách giữa 2 văn bản chính là độ tương tự giữa 2 văn bản đó, 2 văn
bản có giá trị độ tương tự càng lớn thì khoảng cách càng gần nhau.
Ví dụ: Dùng công thức Cosine để tính độ tương tự giữa 2 văn bản:
��� (�⃗,�⃗)= cos(�⃗,�⃗)=�⃗.�⃗
‖�⃗‖.‖�⃗‖
Văn bản A: Tôi là học sinh.
Văn Bản B: Tôi là sinh viên.
Văn bản C: Tôi là giáo viên.
Biểu diễn văn bản theo vector:
Tôi là học sinh viên giáo
Văn bản A 1 1 1 1 0 0
Văn bản B 1 1 0 1 1 0
Văn bản C 1 1 0 0 1 1
25
Vector A = (1,1,1,1,0,0)
Vector B = (1,1,0,1,1,0)
Vector C = (1,1,0,0,1,1)
��� ��⃗,��⃗�= cos��⃗,��⃗� =3
√4 ∗4= 0.75
��� ��⃗,�⃗�= cos��⃗,�⃗�=2
√4 ∗4= 0.5
Điều đó cho thấy văn bản A tương tự văn bản B hơn so với C.
Các bước thực hiện thuật toán KNN
Thông thường các thuật toán sẽ gồm 2 giai đoạn huấn luyện và phân lớp,
riêng đối với thuật toán KNN do thuật toán này không cần tạo ra mô hình khi làm
trên tập huấn luyện các văn bản đã có nhãn/lớp sẵn, nên không cần giai đoạn huấn
luyện (giai đoạn huấn luyện của KNN là gán nhãn cho các văn bản trong tập huấn
luyện bằng cách gom nhóm các văn bản có vector đặc trưng giống nhau thành cùng
1 nhóm).
Mô tả vector đặc trưng của văn bản: Là vector có số chiều là số đặc trưng
trong toàn tập dữ liệu, các đặc trưng này đôi một khác nhau. Nếu văn bản có chứa
đặc trưng đó sẽ có giá trị 1, ngược lại là 0.
Input:
Vector đặc trưng của văn bản cần phân lớp.
Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M
là số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector).
Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện.
Output:
Nhãn/lớp của văn bản cần phân loại.
Quá trình phân lớp gồm các bước sau:
Xác định giá trị tham số K (số láng giềng gần nhất). Tùy vào mỗi tập huấn
luyện (số lượng mẫu trong tập huấn luyện, không gian tập mẫu có phủ hết
các trường hợp…) mà việc chọn số K sẽ ảnh hưởng đến kết quả phân lớp.
26
Lần lượt duyệt qua các văn bản (được đại diện bằng vector đặc trưng của văn
bản) trong tập huấn luyện và tính độ tương tự của văn bản đó với văn bản
cần phân lớp.
Sau khi đã có mảng các giá trị lưu độ tương tự của văn bản cần phân lớp với
các văn bản trong tập huấn luyện, ta sắp xếp độ tương tự các văn bản theo
thứ tự giảm dần (lưu ý đây là độ tương tự, độ tương tự càng lớn tức là
khoảng cách càng gần) và lấy ra k văn bản đầu tiên trong mảng (tức là k văn
bản gần với văn bản cần phân lớp nhất).
Khởi tạo mảng A có độ dài bằng số phân lớp để lưu số văn bản của mỗi lớp.
Duyệt qua k văn bản, đếm số văn bản trong từng phân lớp và lưu vào mảng.
Duyệt qua mảng A, tìm lớp có số văn bản nhiều nhất và chọn là lớp cho văn
bản mới.
2.5. Thuật toán Naive Bayes
2.5.1. Thuật toán
Đâ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 :
P(X | Y). P(Y)( | )
( )P Y X
P X
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 suất X xảy ra (Xác suất biên duyên của X).
P(Y) : xác suất Y xảy ra (Điều kiện tiên nghiệm của Y).
P(Y | X): xác suất hậu nghiệm của Y nếu biết X.
P(X | Y): xác suất X xảy ra khi Y xảy ra (xác suất có điều kiện, khả năng
27
của X khi Y đúng).
2.5.2. Áp dụng vào bài toán phân loại
Á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 1 2( , ,..., )nx x x x
Ci : tập các tài liệu của D thuộc lớp Ci với i={1,2,3,…}
Các thuộc tính 1 2, ,..., nx x x độc lập xác suất đôi một với nhau.
Theo định lý Bayes :
P(X | ). P( )( | )
( )i i
i
C CP C X
P X
Theo tính chất độc lập điều kiện :
1 21
( | ) ( | ) ( | ) ( | ) ... ( | )n
i k i i i n ik
P X C P x C P x C P x C P x C
Khi đó, luật phân lớp cho các tài liệu mới 1 2{ , , ..., }newnX x x x là:
1
max ( ) ( | )n
i k ik
P C P x C
+ Trong đó :
( )iP C : đượ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.
( | )k iP x C : được tính từ những tập thuộc tính đã được tính trong quá trình
huấn luyện.
Các bước thực hiện thuật toán Naïve Bayes:
Bước 1 : Huấn luyện Naïve Bayes (dựa vào tập dữ liệu)
Tính xác suất ( )iP C
Tính xác suất ( | )k iP x C
Bước 2 : newX được gán vào lớp có giá trị lớn nhất theo công thức
1
max ( ) ( | )n
i k ik
P C P x C
Ví dụ : Có training data (dữ liệu huấn luyện) về thời tiết có 4 thuộc tính
Outlook ={nắng, u ám, mưa}, Tem ={nóng, ấm áp, mát mẻ}, Humidity ={cao, bình
28
thường}, Windy ={yếu, mạnh} và thuộc tính phân loại Play có 2 giá trị là yes và no
được nêu ở bảng 2.1 dưới đây.
Bảng 2.1: Dữ liệu huấn luyện thời tiết
TT Outlook Tem Humidity Windy Play
1 Nắng Nóng Cao Yếu No
2 Nắng Nóng Cao Mạnh No
3 U ám Nóng Cao Yếu YES
4 Mưa Ấm áp Cao Yếu YES
5 Mưa Mát mẻ Bình thường Yếu YES
6 Mưa Mát mẻ Bình thường Mạnh No
7 U ám Ấm áp Bình thường Mạnh YES
8 Nắng Mát mẻ Cao Yếu No
9 Nắng Ấm áp Bình thường Yếu YES
10 Mưa Ấm áp Bình thường Yếu YES
11 Nắng Ấm áp Bình thường Mạnh YES
12 U ám Nóng Cao Mạnh YES
13 U ám Ấm áp Bình thường Yếu YES
14 Mưa Ấm áp Cao Mạnh No
Sử dụng Naïve Bayes Classifier để xác định khả năng đến chơi thể thao (Play
= “yes” hay “no”) với thời tiết của ngày quan sát được như sau:
Outlook Temp Humidity Windy Play
Nắng Mát mẻ Cao Mạnh ?
29
Bảng 2.2: Dữ liệu kết quả huấn luyện
Outlook Temp Humidity Windy Play
Yes No Yes No Yes No Yes No Yes No
Nắng 2 3 Nóng 2 2 Cao 3 4 Yếu 6 2 9 5
U ám 4 0 Ấm áp
4 2 Bình thường
6 1 Mạnh 3 3
Mưa 3 2 Mát mẻ
3 1
Nắng 2/9 3/5 Nóng 2/9 2/5 Cao 3/9 4/5 Yếu 6/9 2/5 9/14 5/14
U ám 4/9 0/5 Ấm áp
4/9 2/5 Bình thường
6/9 1/5 Mạnh 3/9 3/5
Mưa 3/9 2/5 Mát mẻ
3/9 1/5
Vì thuộc tính phân lớp Play chỉ có 2 giá trị là “yes” (nghĩa là có đến chơi thể
thao) và “no”(không đến chơi thể thao) nên ta phải tính P(yes|E) và P(no|E) như
sau. Trong đó E là dữ liệu cần phân lớp (dự đoán).
Outlook Temp Humidity Windy Play
Nắng Mát mẻ Cao Mạnh ?
P(yes | E)=P(Outlook = Nắng | yes)
× P(Temp=Mát mẻ | yes)
× P(Humidity= Cao| yes)
× P(Windy= Mạnh | yes)
)
)
(
(
esP
P
Y
E
2 3 3 3 9
9 9 9 9 14P( )E
P(No | E)=P(Outlook = Nắng | no)
× P(Temperature = Mát mẻ | no)
× P(Humidity= Cao | no)
× P(Windy= Mạnh | no)
30
)
)
(
(
No
P
P
E
3 1 4 3 5
5 5 5 5 14P( )E
Như vậy có thể chia thành hai nhóm
Nhóm “yes” = 2/9 × 3/9 × 3/9× 3/9 × 9/14 = 0.0053
Nhóm “no” = 3/5 × 1/5 × 4/5 × 3/5 × 5/14 = 0.0206
Ta có:
P(yes | E) = 0.0053 / (0.0053 + 0.0206) = 0.205
P(no | E) = 0.0206 / (0.0053 + 0.0206) = 0.795
Vì P(no | E) > P(yes | E) nên kết quả dự đoán Play =“no”
2.5.3. Ứng dụng Naive Bayes trong phân lớp 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).
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 � (�� )và �(��|��)tập huấn luyện.
�(��)= |�����|
|�����#����� ����|
- docsi : số tài liệu của tập huấn luyện thuộc lớp ci.
31
- �����#����� ���� : 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.
�� : tổng số từ �� trong tập từ vựng trong lớp �� .
|Text i|: tổng số từ vựng (không phân biệt đôi một) trong lớp ��.
Bước 2 : Phân lớp
1 | |max ( ) ( | ) | |j
new newi k i k
c Ck positions
P P C P x C x
+ 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ư bảng 3.2.
Bộ từ vựng (đặc trưng) : var, bit, chip, log
Bảng 2.3: Bộ từ vựng
Docs Var Bit Chip Log Class
Doc1 42 25 7 56 Math
Doc2 10 28 45 2 Comp
Doc3 11 25 22 4 Comp
Doc4 33 40 8 48 Math
Doc5 28 32 9 60 Math
Doc6 8 22 30 1 Comp
Bước huấn luyện:
Tính xác suấ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
32
Tính xác suấ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/108
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)/388 =103/388
P(Bit | Math) = (25+40+32)/388 = 97/388
P(Chip | Math) = (7+8+9)/388 = 24/388
P(Log | Math) = (56+48+60)/388 = 164/388
Bước phân lớp : cho văn bản có véc tơ đặ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 suất:
P(Math) * [P(Var | Math) * 23 * P(Bit | Math) * 40 * P(Chip | Math) * 15
* P(Log | Math) * 50] = 598,62
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
2.6. Thuật toán cây quyết định
2.6.1. Giới thiệu thuật toán
Cây quyết định (Decision Tree) là một trong các phương pháp được sử dụng
rộng rãi trong học quy nạp từ tập dữ liệu lớn. Đây là phương pháp học xấp xỉ các
hàm mục tiêu có giá trị rời rạc. Một ưu điểm của phương pháp cây quyết định là có
thể chuyển dễ dàng sang dạng cơ sở tri thức là các luật Nếu – Thì ( If – Then).
33
Trên cây gồm các nút đuợc gán nhãn bởi các khái niệm, các nhánh cây chứa
nút được gán nhãn bằng các trọng số của các khái niệm tương ứng đối với tài liệu
mẫu và các lá trên cây được gán nhãn bằng các nhãn nhóm.
Cây quyết định là một cây phân cấp có cấu trúc được dùng để phân lớp các
đối tượng dựa vào dãy các luật (series of rules). Các thuộc tính của đối tượng (ngoại
trừ thuộc tính phân lớp – Category attribute) có thể thuộc các kiểu dữ liệu khác
nhau (Binary, Nominal, ordinal, quantitative values) trong khi đó thuộc tính phân
lớp phải có kiểu dữ liệu là Binary (nhị phân) hoặc Ordinal(số thứ tự).
Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp
(classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng
chưa biết (unseen data)
Ta có dữ liệu huấn luyện về 10 đối tượng (người). Mỗi đối tượng được mô tả
bởi 4 thuộc tính là Gender, Car Ownership, Travel Cost/Km, Income Level và 1
thuộc tính phân loại (category attribute) là Transportation mode. Trong đó thuộc
tính Gender có kiểu binary, thuộc tính Car Ownership có kiểu Quantitative integer
(0,1), Travel Cost/Km và Income Level có kiểu dữ liệu Ordinal. Dữ liệu huấn luyện
cho biết sự lựa chọn về loại phương tiện vận chuyển (Ô tô, buýt, tàu) của khách dựa
vào 4 thuộc tính đã cho (xem bảng 2.4).
Bảng 2.4: Dữ liệu huấn luyện cây quyết định
Thuộc tính Lớp
Gender Car
ownership
Travel Cost ($)/km
Income Level
Transportation mode
Nam 0 Rẻ Thấp Xe Buýt
Nam 1 Rẻ Trung bình Xe Buýt
Nữ 1 Rẻ Trung bình Tàu
Nữ 0 Rẻ Thấp Xe Buýt
Nam 1 Rẻ Trung bình Xe Buýt
Nam 0 Trung bình Trung bình Tàu
Nữ 1 Trung bình Trung bình Tàu
34
Nữ 1 Đắt Cao Ô tô
Nam 2 Đắt Trung bình Ô tô
Nữ 2 Đắt Cao Ô tô
Đắt Rẻ
Trung bình
Nam Nữ
0 1
Hình 2.4: Cây quyết định
Chú ý rằng trong cây quyết định trên, thuộc tính “Income Level” không xuất
hiện trong cây bởi vì dựa vào dữ liệu huấn luyện đã cho, thuộc tính “Travel
Cost/Km” sẽ sinh ra cây quyết định tốt dùng để phân loại tốt hơn “Income Level”,
Làm sao để sử dụng cây quyết định trong dự đoán lớp của các dữ liệu chưa biết.
Mục đích chính của cây quyết định là dùng để dự đoán lớp (xác định lớp) của
các đối tượng chưa biết (unseen data). Giả sử rằng ta có dữ liệu về 3 người với các
giá trị dữ liệu đã biết về các thuộc tính Gender, Car Ownership, Travel Cost/Km,
Income Level. Tuy nhiên ta chưa biết họ sẽ chọn phương tiện vận chuyển nào (Ô tô,
xe buýt, tàu). Nhiệm vụ của chúng ta là sử dụng cây quyết định đã tạo ra để dự đoán
(predict) An, Tuấn và Mai sẽ chọn phương tiện vận chuyển nào dựa vào 4 thuộc
tính của họ. Dữ liệu dưới đây còn được gọi là Testing Data (dữ liệu kiểm tra).
Travel Cost/Km
?
Car Ownership
?
Gender
? Ô tô
Tàu
Xe buýt
Xe buýt Tàu
35
Bảng 2.5: Dữ liệu kiểm tra
Person
name
Gender Car Ownership
Travel
Cost
Income
Lever
Transportation
Mode
An Nam 1 Trung bình Cao ?
Tuấn Nam 0 Rẻ Trung bình ?
Mai Nữ 1 Rẻ Cao ?
Chúng ta bắt đầu từ node gốc của cây (root node) từ thuộc tính Travel
Cost/Km, ta thấy rằng nếu Travel Cost/Km là Đắt thì người đó sẽ chọn phương tiện
là ô tô. Nếu Travel Cost/Km là Trung bình thì họ sẽ chọn phương tiện vận chuyển là
tàu. Nếu Travel Cost/Km là Rẻ thì cây quyết định cần tới giá trị của trường Gender
của người đó, nếu Gender là Nam thì chọn Xe Buýt, nếu giới tính là Nữ thì cây
quyết định cần kiểm tra xem người đó có sở hữu bao nhiêu xe hơi (Car Ownership).
Nếu số xe hơi sở hữu là 0 thì người đó sẽ chọn xe Buýt, nếu số xe hơi sở hữu là 1
thì người đó sẽ chọn Tàu. Theo cây quyết định hình 2.4, các luật (Series of Rules)
được sinh ra từ cây quyết định dùng để dự đoán như sau:
Rule 1 : Nếu Travel cost/km là đắt thì mode = ô tô
Rule 2 : Nếu Travel cost/km là trung bình thì mode = tàu
Rule 3 : Nếu Travel cost/km là rẻ and gender is nam thì mode = xe buýt
Rule 4 : Nếu Travel cost/km là rẻ and gender là nữ và không sở hữu ô tô thì
mode = xe buýt
Rule 5 : Nếu Travel cost/km là rẻ and gender là nữ và sở hữu ô tô thì mode =
tàu
Dựa vào các luật này, việc dự đoán lớp cho các dữ liệu chưa biết (unseen
data hay Testing data) rất đơn giản. Trong ví dụ này, An có giá trị của thuộc tính
Travel Cost/Km là trung bình nên sẽ chọn phương tiện là tàu (Rule 2) mà không cần
quan tâm đến các thuộc tính khác của An. Tuấn có giá trị của thuộc tính Travel
Cost/Km là rẻ và Gender của anh ta là nam nên anh ta sẽ chọn Xe Buýt (Rule 3).
36
Mai cũng có giá trị thuộc tính Travel Cost/Km là rẻ nhưng Gender là nữ và sở hữu 1
xe hơi cho nên theo cây quyết định trên (Rule 5) cô ta sẽ chọn phương tiện là tàu
Bảng 2.6: Kết quả phân lớp
Person
name
Travel Cost
($)/km
Gender Car
ownership
Transportation
Mode
An Trung bình Nam 1 Tàu
Tuấn Rẻ Nam 0 Xe Buýt
Mai Rẻ Nữ 1 Tàu
2.6.2. Thuật toán ID3
2.6.2.1. Entropy
Entropy là đại lượng đo độ đồng nhất thông tin hay tính thuần nhất của các
mẫu. Đây là đại lượng hết sức quan trọng trong lý thuyết thông tin.
Đại lượng Entropy được tính như sau:
Entropy (S) 21
logn
i ii
p p
Trong đó Pi là phân bố của thuộc tính thứ i trong S.
2.6.2.2. Information Gain
Information Gain (Độ lợi thông tin) là đại lượng đo độ ảnh hưởng của một
thuộc tính trong mẫu đó trong việc phân lớp.
Information Gain của một thuộc tính A trong tập S, ký hiệu là Gain(S,A)
được xác định như sau:
( )
| |( , ) ( ) ( )
| |v
vv Values A
SGain S A Entropy S Entropy S
S
Trong đó Values(A) là tập các giá trị có thể của thuộc tính A, còn Sv là tập
con có thể của tập S các phần tử có thuộc tính A=v, tức là { | ( ) }vS s S A s v
Biểu thức đầu Entropy(S) là đại lượng entropy nguyên thuỷ của tập S, biểu
thức sau là giá trị kỳ vọng của entropy sau khi S được chia thành các tập con theo
các giá trị của thuộc tính A. Do đó Gain(S,A) thực chất là độ giảm kỳ vọng của
37
entropy khi biết các giá trị thuộc tính A. Giá trị Gain(S,A) là số bit cần lưu mã hoá
các giá trị mục tiêu của một thành phần của S, khi biết các giá trị của thuộc tính A.
2.6.2.3. Phát biểu thuật toán ID3
ID3 và cải tiến của nó C4.5, là các thuật toán học cây quyết định phổ biến
nhất. Nhìn chung các bước trong thuật toán ID3 có thể được phát biểu một cách
ngắn gọn như sau:
- Xác định thuộc tính có độ lợi thông tin (information gain) cao nhất trong
tập mẫu.
- Sử dụng thuộc tính này là gốc của cây, tạo một nhánh cây tương ứng với
mỗi giá trị có thể của thuộc tính.
- Ứng với mỗi nhánh, ta lại lặp lại quá trình trên tương ứng với tập con của
tập mẫu (training set) được phân cho nhánh này.
2.6.3. Đánh giá thuật toán cây quyết định
Cây quyết định là một phương pháp phân lớp rất hiệu quả và dễ hiểu. Tuy
nhiên có một số chú ý khi sử dụng cây quyết định trong xây dựng các mô hình phân
lớp như sau:
Hiệu quả của phân lớp của cây quyết định (Series of Rules) phụ thuộc rất lớn
vào dữ liệu huấn luyện. Chẳng hạn cây quyết định được tạo ra bởi chỉ giới hạn 10
dữ liêu huấn luyện trong ví dụ trên thì hiệu quả ứng dụng cây quyết định để dự đoán
các trường hợp khác là không cao (thường dữ liệu huấn luyện phải đủ lớn và tin
cậy) và vì vậy ta không thể nói rằng tập các luật (Series of Rules) được sinh ra bở
cây quyết định trên là tập luật tốt nhất.
Có rất nhiều thuật toán phân lớp như ID3, J48, C4.5, CART (Classification
and Regression Tree),… Việc chọn thuật toán nào để có hiệu quả phân lớp cao tuy
thuộc vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả
của các thuật toán. Chẳng hạn như thuật toán ID3 và CART cho hiệu quả phân lớp
rất cao đối với các trường dữ liệu số (quantitative value) trong khi đó các thuật toán
như J48, C4.5 có hiệu quả hơn đối với các dữ liệu Qualititive value (ordinal, Binary,
nominal).
38
2.7. Tổng kết chương
Trong chương này, chúng ta đã nghiên một số phương pháp học nửa giám sát
phổ biến hiện nay như: Self-training, EM, SVM, S3VM và phương pháp học có
giám sát như K-láng giềng gần nhất (K-Nearest Neighbors), Naive Bayes (Bayes
ngây thơ) và cây quyết định (Decision tree). Mỗi phương pháp có phạm vi ứng dụng
khác nhau do đó để áp dụng chúng vào các bài toán thực tế thì cần xác định yêu cầu
bài toán để sử dụng một trong số các phương pháp trên cho hiệu quả.
39
CHƯƠNG 3 - PHÂN LOẠI VĂN BẢN DỰA VÀO PHƯƠNG
PHÁP HỌC NỬA GIÁM SÁT
3.1. Phát biểu bài toán phân loại văn bản
Trong những năm gần đây, với sự phát triển và ứng dụng của Internet, khối
lượng dữ liệu đã tăng trưởng không ngừng theo cả hai phương diện tạo mới và lưu
trữ. Sự mở rộng các dữ liệu khoa học về địa lý, địa chất, khí tượng do vệ tinh thu
thập, sự giới thiệu quảng bá mã vạch đối với hầu hết các sản phẩm thương mại, việc
tin học hoá sâu rộng các thương vụ và giao dịch, sự phát triển việc ứng dụng công
nghệ thông tin trong quản lý hành chính nhà nước,... đã tạo ra một khối lượng dữ
liệu khổng lồ. Tự động phân lớp văn bản là một nhiệm vụ rất quan trọng có thể giúp
ích trong việc tổ chức cũng như tìm kiếm thông tin trên nguồn tài nguyên lớn này.
Bài toán phân loại văn bản, thực chất, có thể xem là bài toán phân lớp (Text
Classification). Phân loại văn bản tự động là việc gán các nhãn phân loại lên một
văn bản mới dựa trên mức độ tương tự của văn bản đó so với các văn bản đã được
gán nhãn trong tập huấn luyện. Nhiều kỹ thuật máy học có giám sát và khai phá dữ
liệu đã được áp dụng vào bài toán phân loại văn bản,chẳng hạn: phương pháp quyết
định dựa vào Bayes ngây thơ (Naive Bayes), cây quyết định (Decision Tree), k–
láng giềng gần nhất (K-Nearest Neighbors), mạng nơron (Neural Network),…
Phân loại văn bản là một bài toán xử lí văn bản kinh điển, đó là ánh xạ một
văn bản vào một chủ đề đã biết trong một tập hữu hạn các chủ đề dựa trên ngữ
nghĩa của văn bản. Ví dụ một bài viết trong một tờ báo có thể thuộc một (hoặc một
vài) chủ đề nào đó (như thể thao, sức khỏe, công nghệ thông tin,…). Việc tự động
phân loại văn bản vào một chủ đề nào đó giúp cho việc sắp xếp, lưu trữ và truy vấn
tài liệu dễ dàng hơn về sau. Đặc điểm nổi bật của bài toán này là sự đa dạng của chủ
đề văn bản và tính đa chủ đề của văn bản. Tính đa chủ đề của văn bản làm cho sự
phân loại chỉ mang tính tương đối và có phần chủ quan, nếu do con người thực hiện,
và dễ bị nhập nhằng khi phân loại tự động. Rõ ràng một bài viết về giáo dục cũng
có thể xếp vào kinh tế nếu như bài viết bàn về tiền nong đầu tư cho giáo dục và tác
40
động của đầu tư này đến kinh tế - xã hội. Về bản chất, một văn bản là một tập hợp
từ ngữ có liên quan với nhau tạo nên nội dung ngữ nghĩa của văn bản. Từ ngữ của
một văn bản là đa dạng do tính đa dạng của ngôn ngữ (đồng nghĩa, đa nghĩa, từ vay
mượn nước ngoài,…) và số lượng từ cần xét là lớn. Ở đây cần lưu ý rằng, một văn
bản có thể có số lượng từ ngữ không nhiều, nhưng số lượng từ ngữ cần xét là rất
nhiều vì phải bao hàm tất cả các từ của ngôn ngữ đang xét.
Trên thế giới đã có nhiều công trình nghiên cứu đạt những kết quả khả quan,
nhất là đối với phân loại văn bản tiếng Anh. Tuy vậy, các nghiên cứu và ứng dụng
đối với văn bản tiếng Việt còn nhiều hạn chế do khó khăn về tách từ và câu.
Bài toán phân lớp dữ liệu là bài toán có mục tiêu nhằm giải quyết vấn đề là
làm sao có thể phân loại các đối tượng dữ liệu vào một hay nhiều lớp cho trước.
Quá trình phân lớp được thực hiện thông qua một mô hình phân lớp, mô hình
này được xây dựng dựa trên một tập các đối tượng dữ liệu đã được gán nhãn, tập dữ
liệu này còn được gọi là tập dữ liệu học hay tập dữ liệu huấn luyện. Quá trình phân
lớp còn được gọi là quá trình gán nhãn cho các đối tượng dữ liệu.
Qua đó ta thấy nhiệm vụ của bài toán phân lớp dữ liệu là ta đi xây dựng một
mô hình phân lớp, sao cho khi có một dữ liệu mới được đưa vào, thì mô hình sẽ cho
ta biết dữ liệu đó thuộc lớp nào.
Định nghĩa phân lớp văn bản: Phân lớp văn bản là nhiệm vụ đặt một giá trị
Boolean cho mỗi cặp (dj, ci) D×C, trong đó D là tập các văn bản và
1 2 cC c ,c .....c{ } là tập các lớp cho trước.
Giá trị T (True) được gán cho cặp (dj ,ci ) có nghĩa là tài liệu dj thuộc lớp ci;
Giá trị F (False) tức là tài liệu dj không thuộc lớp ci .
Hoặc, phân lớp văn bản là bài toán tìm một hàm Φ : D × C → {T , F} trong
đó D là tập các văn bản và 1 2 cC c ,c .....c{ } là tập các lớp cho trước, hàm Φ : D × C
→ {T , F} được gọi là bộ phân lớp.
41
3.1.1. 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 văn bản dựa trên đồ 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 của học máy đó là: học có giám sát, học nửa giám
sát và học không giám sát.
Bộ phân lớp có thể được xây dựng bằng tay dựa vào các kỹ thuật ứng dụng
tri thức (thường là xây dựng một tập các tri thức) hoặc có thể xây dựng một cách tự
động bằng các kỹ thuật học máy thông qua một tập các dữ liệu huấn luyện được
định nghĩa trước phân lớp tương ứng. Vấn đề phân loại văn bản theo phương pháp
thống kê dựa trên máy học được đặc tả bao gồm hai giai đoạn: giai đoạn huấn luyện
và giai đoạn phân lớp.
3.1.1.1. 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 hay nhiều lớp mà chúng ta sẽ thể hiện chúng bằng một mô hình mã hóa
(được trình bày chi tiết ở phần phương pháp biểu diễn văn bản). Thông thường mỗi
phần tử trong tập huấn luyện được thể hiện theo dạng (�⃗,c). Trong đó, �⃗là véc tơ
biểu diễn cho văn bản trong tập huấn luyện.
Sau đó, chúng ta sẽ đị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. Phần
này sẽ được trình bày rõ hơn ở phần đánh giá bộ phân lớp 3.1.4.
Hình 3.1: Mô hình giai đoạn huấn luyện
+ Đầu vào : dữ 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 – classfier)
Dữ liệu
huấn luyện
Máy học Mô hình
phân lớp
42
Một ví dụ về một họ các tham số cho bộ phân loại nhị phân : 0( )g x w x w
Ở đây, bộ phân loại nhị phân chỉ phân loại cho hai lớp. Chúng ta gọi lớp c1 là
lớp với các văn bản có ( ) 0g x
và lớp c2 là lớp các văn bản có ( ) 0g x
. Họ các tham
số cần xác định là véc tơ w
và ngưỡng w0
Hình 3.2: Chi tiết giai đoạn huấn luyện
+ Trong đó:
Dữ liệu huấn luyện: kho dữ liệu thu thập được.
Tiền xử lý: chuyển đổi tài liệu trong kho dữ liệu thành để phân loại.
Vector hóa : mã hóa văn bản bởi một mô hình trọng số (chi tiết ở phần
các phương pháp biểu diễn văn bản 3.1.3)
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 (chi
tiết trong phần đánh giá bộ phân lớp).
Thủ tục huấn luyện sẽ được thực thi lặp nhiều lần để tìm họ các tham số tối
ưu sau mỗi lần lặp. Tuy nhiên, do ban đầu họ các tham số được gán với một giá trị
khởi tạo, do đó nếu giá trị khởi tạo ban đầu được gán sai thì kết quả tối ưu của họ
các tham số có thể chỉ là tối ưu cục bộ.
Dữ liệu
huấn luyện
Đánh giá
Tiền xử lý Véc tơ hóa
Trích chọn đặc
trưng
Áp dụng thuật
toán huấn luyện
bộ phân lớp
43
3.1.1.2. Giai đoạn phân lớp
Sau khi đã hoàn thành các 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.
Hình 3.3: Mô hình giai đoạn phân lớp
Chi tiết giai đoạn phân lớp
Hình 3.4: Chi tiết giai đoạn phân lớp
Tuỳ vào bài toán khác nhau, ta có các ràng buộc khác nhau. Nhìn chung có
thể phân biệt bài toán phân lớp theo hai cách sau:
• Phân lớp văn bản nhị phân / đa lớp: Bài toán phân lớp văn bản được gọi là
nhị phân nếu C = 2, gọi là đa lớp nếu C > 2.
• Phân lớp văn bản đơn nhãn / đa nhãn: Bài toán phân lớp văn bản được gọi
là đơn nhãn nếu mỗi tài liệu được gán vào chính xác một lớp. Một bài toán phân lớp
văn bản được gọi là đa nhãn nếu một tài liệu có thể được gán nhiều hơn một nhãn.
Về mặt lý thuyết, thuật toán phân lớp nhị phân cũng có thể được sử dụng cho
Mô hình phân
lớp
Văn bản cần
phân loại Bộ phân loại
Văn bản
Lớp (chủ đề)
của văn bản
Tiền xử lý Véc tơ hóa
Trích chọn đặc
trưng
sử dụng bộ
phân lớp đã
huấn luyện
Văn bản đã
phân loại
44
bài toán phân lớp đa lớp bằng cách chuyển bài toán đa lớp {c1,c2.....cc } thành |C| bài
toán nhị phân { , }i ic c với i =1,..., C . Hơn nữa thuật toán phân lớp đa lớp có thể được
sử dụng để giải quyết bài toán phân lớp đa nhãn.
Do đó, bài toán phân lớp nhị phân là bài toán rất quan trọng trong các ứng
dụng của phân lớp văn bản. Giải quyết bài toán phân lớp nhị phân cũng có nghĩa là
giải quyết bài toán phân lớp đa lớp – ứng dụng quan trọng trong phân lớp văn bản.
Bài toán lọc văn bản (text filtering), lọc thư rác (spam mail) là những ứng dụng điển
hình của phân lớp nhị phân.
3.1.2. Quá trình 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 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.
3.1.3. 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
45
được biểu diễn theo dạng x , với nx R
là một vector n chiều để đo lường giá trị
của phần tử văn bản.
3.1.3.1. Mô hình không gian véc tơ
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 x (vector đặc trưng cho văn bản D). Trong đó,
1 2( , ,..., )nx x x x
, và n là số lượng đặc trưng hay số chiều của vector văn bản, ix là
trọng số của đặc trưng thứ i (với1 i n ).
Như vậy, nếu trong kho dữ liệu của quá trình huấn luyện nhiều văn bản, ta kí
hiệu jD , là văn bản thứ j trong tập dữ liệu, và vector 1 2( , ,..., )j j j njx x x x
là vector đặc
trưng cho văn bản jD , và ijx là trọng số thứ i của vector văn bản jx
.
Trong bài toán phân lớp văn bản, cách biểu diễn văn bản đóng vai trò rất lớn.
Một tài liệu được biểu diễn dưới dạng một tập hợp các từ, mỗi từ được xem là một
thuộc tính (feature) và văn bản tương ứng với một vector thuộc tính. Đôi khi, thay
vì những từ đơn, các thuộc tính có thể được biểu diễn bằng các cụm từ hoặc chuỗi n
từ với n >= 2. Dễ dàng thấy, nhiều thuộc tính phức tạp có thể giàu thông tin hơn. Ví
dụ, cụm từ “world wide web” mang nhiều thông tin hơn từng từ riêng biệt. Tuy
nhiên, trong thực hành, sử dụng n-grams dẫn tới việc có quá nhiều số lượng thuộc
tính và có thể làm việc giải quyết bài toán khó khăn hơn. Theo các nghiên cứu về
các phương pháp biểu diễn văn bản khác nhau, đặc biệt là khi so sánh ảnh hưởng và
hiệu quả của nó thì không có cách biểu diễn văn bản nào tốt hơn cách biểu diễn
bằng tập các từ riêng biệt (isolated words) được lấy ra từ văn bản gốc.
3.1.3.2. 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 (Trọng số tần suất từ)
46
Boolean weighting (Trọng số Boolean)
Trọng số tf*idf
Entropy weighting (Trọng số Entropy)
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.
Giá trị Ký hiệu Định nghĩa
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 dữ liệu
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 dữ liệu). Trong đó, dfi ≤cfi và ∑jtfij = cfi .
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 * df . Công thức kết hợp hai giá trị trọng số :
47
weight(i , j) = ����(
�
���)nếutf�� ≥ 1
0�ế����� = 0�
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.
3.1.4. Đánh giá bộ phân lớp
Sau khi đã tìm được họ các tham số tối ưu cho bộ phân lớp (hay có thể nói là
bộ phân lớp đã được huấn luyện xong), nhiệm vụ tiếp theo là cần phải đánh giá
(kiểm tra) bộ phân lớp đó cho kết quả như thế nào? Tuy nhiên, quá trình kiểm tra
phải được thực hiện trên một tập dữ liệu khác với tập dữ liệu huấn luyện, còn được
gọi với cái tên là tập dữ liệu kiểm tra (a test set). Việc kiểm tra bộ phân lớp là một
sự đánh giá trên một tập dữ liệu chưa được biết vì thế đó là sự đo lường, đánh giá
duy nhất cho biết khả năng thực sự của một bộ phân lớp. Để đơn giản, ta sẽ xem xét
một bộ phân lớp nhị phân (phân hai lớp).
Trong đó,
a: là số lượng đối tượng thuộc về lớp đang xét và được bộ phân lớp gán
vào lớp
b: là số lượng đối tượng không thuộc về lớp đang xét nhưng được bộ
phân lớp gán vào lớp.
c: là số lượng đối tượng thuộc về lớp đang xét nhưng được bộ phân lớp
loại khỏi lớp.
d: là số lượng đối tượng không thuộc về lớp đang xét và được bộ phân
lớp loại khỏi lớp.
Để đánh giá chất lượng bộ phân lớp, hai đơn vị đo lường quan trọng đó là độ
đúng đắn (accuracy) được đo bằng công thức a d
a b c d
và độ sai lỗi (Error) được
tính bằng công thức c b
a b c d
. Độ đo này phản ánh đầy đủ chất lượng của bộ
phân lớp. Tuy nhiên, khi đánh giá bộ phân lớp, thường người ta chỉ xem xét những
48
đối tượng thuộc về lớp và được phân lớp đúng, còn những đối tượng không thuộc
về lớp thường sẽ ít được quan tâm. Do đó, một số độ đo khác đã được định nghĩa.
Các độ đo bao gồm :
Precision (độ chính xác) : a
a b
Recall (Độ bao phủ, độ đầy đủ) : a
a c
Fallout (Độ loại bỏ) : �
���
Tuy nhiên, trong một số trường hợp thực tế, nếu tính độ precision và độ
recall riêng rẽ sẽ cho kết quả không cân đối. Do đó, để thuận tiện, người ta kết hợp
hai độ đo này vào một đơn vị đo tổng quát duy nhất. Để làm điều này, người ta sử
dụng đơn vị đo lường F được định nghĩa như sau :
F = 1
1 1(1 )
P R
Trong đó:
P là độ chính xác Precision
R là độ bao phủ Recall
là một hệ số xác định sự cân bằng của độ quyết định và độ bao phủ.
Giá trị 5 thường được chọn cho sự cân bằng giữa P và R. Với giá trị
này độ đo được tính đơn giản là 2PR/(P + R).
Những độ đo trên được dùng để đánh giá cho những bộ phân lớp nhị phân
(phân hai lớp). Tuy nhiên, trong thực tế, thường các bộ phân lớp phải phân chia
nhiều lớp, chính vì vậy để đánh giá tổng thể toàn bộ các lớp phân loại, sau khi lập
bảng thống kê cho từng lớp, hai phương pháp nữa đã được áp dụng để đánh giá đó
là micro-averaging và macro-averaging.
3.1.4.1. Macro-Averaging
Đây là phương pháp tính trung bình các độ đo precious và recall của từng
lớp. Các lớp sau khi đã lập bảng thống kê và tính các độ đo precious và recall cho
từng lớp. Các độ đo này sẽ được tính trung bình lại.
49
1
| |1
| |
Ci
macri
o
i i
aP
C a b
1
| |1
| |
Ci
macri
o
i i
aR
C a c
Trong đó : |C| là số lớp cần phân loại
3.1.4.2. Micro-Averaging
Đây là phương pháp tính trung bình các kết quả thống kê của từng lớp. Các
lớp sau khi đã lập bảng thống kê. Các bảng này sẽ được cộng này lại tương ứng theo
từng ô. Sau đó, sẽ tính độ đo Precision và Recall cho bảng thống kê lớn đó.
1
| |
1
|( )
C
i
mi
i o C
i ii
cr
aP
a b
| |
| |1
1( )
C
i
micro Ci
i i i
aR
a c
3.2. Giới thiệu bài toán thực nghiệm
Phân lớp văn bản hiện nay là một chủ đề giành được nhiếu sự quan tâm. Đây
cũng chính là một trong những động lực thúc đẩy sự phát triển các phương pháp học
có giám sát. Trong thực tế hiên nay ngày càng có một số luợng lớn các thông tin
trên các trang web cần được phân tích. Việc làm này nhiều khi mất rất nhiều công
sức và thời gian của người cần tìm kiếm.
Trong luận văn này tôi tiến hành thu thập một lượng nhỏ bộ dữ liệu email
DBWorld [18] và sử dụng nó để huấn luyện và phân loại riêng về chủ đề thông báo
của hội nghị và các nội dung khác.
3.3. Môi trường thực nghiệm
3.3.1. Dữ liệu sử dụng
Dữ liệu bao gồm một tập 64 email từ hòm thư DBWORLD. Dữ liệu thu được
chưa được phân loại nên ta cần gán nhãn phân loại một cách thủ công cho chúng
bao gồm “thông báo của hội nghị” và “các nội dung khác”. Bộ dữ liệu được biểu
diễn bằng một ma trận [20]. Mỗi một email được biểu diễn như là một véc tơ trọng
số chứa N giá trị nhị phân, trong đó N là kích cỡ bộ từ vựng. Giá trị nhị phân là 1
nếu từ tương ứng là thuộc về dữ liệu là “thông báo hội nghị”, và mang giá trị 0 nếu
50
ngược lại. Mỗi thuộc tính là một từ đặc trưng của bộ dữ liệu email này với một vài
ràng buộc: các từ phải có ít nhất 3 ký tự và tối đa có độ dài 30 ký tự.
Bước tiếp theo là đào tạo bộ phân loại dựa trên bộ dữ liệu huấn luyện đã
chuẩn bị sẵn. Việc phân loại văn bản dựa trên chủ đề “thông báo của hội nghị” nên
các từ liên quan đến chủ đề này rất là quan trọng. Dữ liệu ở đây gồm 242 thuộc tính
đã được chọn lựa và 64 email mẫu. Mỗi thuộc tính chỉ ra lớp của mỗi mẫu: 1 nếu
mẫu đó là một “thông báo của hội nghị”, 0 nếu ngược lại. Bảng 3.1 tóm tắt đặc
điểm của bộ dữ liệu. Bảng 3.2 chỉ ra 20 từ dùng nhiều nhất và tần suất lặp của
chúng.
Bảng 3.1: Bộ dữ liệu thử nghiệm ban đầu
Dữ liệu Chủ đề Thuộc tính 242 Mẫu 64 #Lớp đúng 29 #Lớp sai 35 Trung bình 97.38%
Bảng 3.2: Danh sách 20 từ đặc trưng
TT Chủ đề (#)
1 cfp (16) 2 position (14) 3 call (12) 4 university (7) 5 data (7) 6 international (6) 7 web (5)
8 systems(5) 9 research (5) 10 phd (5) 11 network (5) 12 management (5) 13 faculty (5)
14 special (4) 15 social (4) 16 papers (4) 17 mining (4) 18 issue (4) 19 conference (4) 20 workshop (3)
51
3.3.2. Trích chọn đặc trưng
Sau khi phân loại có giám sát được lựa chọn, một quyết định quan trọng khác
cần thực hiện là trích chọn đặc trưng [19]. Trong phân loại văn bản, đặc trưng chỉ
đặc tính của dữ liệu văn bản có thể đo được để phân loại văn bản, như n gram
(unỉgam, bỉgam, trigram,...), bag-of-words (túi của từ) [21,22]. Các kỹ thuật trích
chọn đặc trưng có mục đích là giảm số các thuộc tính nhằm tăng độ chính xác trong
việc huấn luyện.
Ở đây tác giả chọn đặc trưng bag-of-words cùng với 2 kỹ thuật là loại bỏ các
từ dừng “stop word” và lấy từ gốc “stemming”. Từ điển Wikipedia định nghĩa: “Từ
dừng là những từ xuất hiện thường xuyên nhưng lại không có ích trong đánh chỉ
mục tìm kiếm khác”. Thông thường, các trạng từ, giới từ, liên từ là các từ dừng.
“Stemming” là bước làm giảm các ký tự của từ bằng các loại bỏ các tiền tố, hậu tố
để đi đến từ gốc. Chẳng hạn từ như là compute, computer và computers đều thành
comput. Bước xử lý này làm bớt các thuộc tính, bộ dữ liệu đã giảm được 13 thuộc
tính (xem bảng 3.3) nhưng vẫn giữ được quan hệ ngữ nghĩa của từ. Ngoài ra nó còn
làm giảm các từ vựng và giảm sự thưa thớt trong bộ dữ liệu.
Bảng 3.3: Bộ dữ liệu sau khi “stemming”
Dữ liệu Chủ đề
Thuộc tính 229
Trung bình 97.23%
Bảng 3.4: Danh sách 20 “stem” đặc trưng
TT Chủ đề (#) 1 posit (17)
2 cfp (16) 3 call (12) 4 univers (7) 5 research (7) 6 data (7) 7 paper (6) 8 network (6) 9 manag (6) 10 intern (6) 11 web (5)
52
12 system (5) 13 phd (5)
14 faculti (4) 15 workshop (4) 16 special (4) 17 social (4) 18 propos (4) 19 mine (4)
20 issu (4)
Chương trình lấy từ gốc “stemming” được viết bằng java bằng cách sử dụng
thuật toán của Porter [25].
Sau khi các đặc trưng phù hợp được chọn, bộ phân loại được đào tạo với tập
dữ liệu huấn luyện. Quá trình huấn luyện thường được lặp đi lặp lại nhiều lần để có
được một mô hình tốt nhất. Hiệu năng của mô hình phân loại sau đó được đánh giá
bởi tập dữ liệu kiểm tra đã chuẩn bị riêng.
3.3.3. Phương pháp đánh giá
Sau quá trình xây dựng bộ phân lớp, cần phải đánh giá kết quả phân lớp để
xem xét khả năng sử dụng các phương pháp đã chọn trong việc triển khai một hệ
thống chạy được. Cũng như một hệ thống tìm kiếm hay phân loại văn bản, một hệ
thống phân loại ý kiến cũng được đánh giá thông qua thực nghiệm hơn là sử dụng
phân tích hoạt động của thuật toán.
Phương pháp đánh giá: nội dung này đã được trình bày chi tiết ở mục 3.1.4
(Đánh giá phân lớp).
Cách tiến hành đánh giá chéo 10 lần (10-fold cross validation):
Chia tập dữ liệu thành 10 phần.
Sử dụng lần lượt phần 1, 2,…,10 làm tập kiểm thử, 9 phần còn lại làm tập
huấn luyện. Lấy độ chính xác, độ bao phủ của từng lần thử nghiệm.
Tính các độ đo bằng cách lấy giá trị trung bình của tất cả các lần.
Dữ liệu sử dụng
Dữ liệu luận văn sử dụng là một tập 64 email [18] mà tác giả đã thu thập và
phân loại thuộc hai chủ đề “thông báo của hội thảo” và “các nội dung khác”. Việc
53
gán nhãn này hoàn toàn thủ công, tức là gán nhãn đọc và phân loại chúng. Tập dữ
liệu chứa các câu chưa có nhãn phân loại tương ứng.
Tập dữ liệu sau quá trình dán nhãn như sau:
- Tống số: 64 mẫu
- Bộ từ vựng: 243 thuộc tính có thể xuất hiện trong mẫu.
3.3.4. Công cụ phân lớp
Luận văn sử dụng công cụ phân lớp là phần mềm Weka [17] để phân lớp văn
bản.
Weka là một phần mềm nguồn mở về khai phá dữ liệu được phát triển bởi đại
học University of Waikato nước New Zealand. “Weka” là từ viết tắt cho cụm
từ Waikato Environment for Knowledge Analysis. Weka có thể được sử dụng
ở nhiều cấp độ khác nhau. Cấp độ đơn giản của nó là ta có thể áp dụng các
thuật toán của Weka để xử lý dữ liệu từ dòng lệnh. Nó bao gồm nhiều các
công cụ dùng cho việc biến đổi dữ liệu, như các thuật toán dùng để rời rạc
hóa dữ liệu
Weka cung cấp tất cả các chức năng cơ bản của khai phá dữliệu bao gồm các
thuật toán về phân lớp (classifier), các thuật toán về tiền xử lý dữ liệu (filter),
các thuật toán về phân cụm (cluster), các thuật toán về kết tập luật
(association rule).
54
3.3.5. Kết quả thử nghiệm và đánh giá
Bảng 3.5 là kết quả thực nghiệm với các phương pháp đã được trình bày ở
trên với bộ dữ liệu gốc. Bảng 3.6 trình bày kết quả với bộ dữ liệu sau khi
“stemming”. Ta có thể tổng kết lại ngắn gọn như sau:
- Tập dữ liệu huấn luyện và kiểm thử: Bộ dữ liệu về email của DBWORLD[17]
- Các thuật toán phân lớp: Naïve Bayes, KNN (K láng giềng gần nhất), Decision
Tree (cây quyết định), S3VM (Semi-supervised support vector machine)
- Phương pháp đánh giá: đánh giá chéo 10 lần (10-fold cross validation) với độ
đo: độ bao phủ và độ chính xác
- Thư viện và công cụ: weka, snowball (công cụ trích chọn đặc trưng)
55
Bảng 3.5: Kết quả kiểm nghiệm bộ dữ liệu ban đầu
Phương
pháp
Số
mẫu
phân
loại
sai
Số
mẫu
phân
loại
đúng
Tổng Độ chính xác Độ bao phủ
0 1 TB 0 1 TB
KNN 13 51 64 0,923 0,711 0,827 0,686 0,931 0,797
Naive Bayes 07 57 64 0,912 0,867 0,891 0,886 0,897 0,891
Cây quyết
định
10 54 64 0,857 0,828 0,844 0,857 0,828 0,844
S3VM 8 56 64 0,886 0,862 0,875 0,886 0,862 0,875
Bảng 3.6: Kết quả kiểm nghiệm bộ dữ liệu sau khi “stemming”
Phương
pháp
Số
mẫu
phân
loại
sai
Số
mẫu
phân
loại
đúng
Tổng Độ chính xác Độ bao phủ
0 1 TB 0 1 TB
KNN 11 53 64 0,962 0,737 0,860 0,714 0,966 0,828
Naive Bayes 09 55 64 0,882 0,833 0,860 0,857 0,862 0,859
Cây quyết
định
14 50 64 0,839 0,727 0,788 0,743 0,828 0,781
S3VM 8 56 64 0,909 0,839 0,877 0,857 0,897 0,875
Bảng 3.5, Bảng 3.6 tổng kết số lượng cũng như độ chính xác, và độ bao phủ
của các phương pháp phân loại văn bản. Cột thứ nhất liệt kê các phương pháp được
kiểm thử. Cột thứ hai là mô hình ngôn ngữ được áp dụng cho phương pháp phân
56
loại K láng giềng gần nhất (K-Nearest Neighbors), Bayes ngây thơ (Naïve Bayes),
cây quyết định (Decision tree) sử dụng thuật toán ID3 và thuật toán nửa giám sát
S3VM (Semi-supervised support vector machine). Hai cột kế tiếp là thống kê số
lượng câu phân loại đúng và phân loại sai cho từng loại. Còn lại là độ chính xác và
độ bao phủ của từng phương pháp đối với mỗi loại class và giá trị trung bình thu
được. Giá trị trung bình được tính theo tỉ lệ 2 loại lớp trong đó: “1” là lớp các email
thuộc chủ đề “thông báo của hội nghị”, còn “0” là lớp các email còn lại.
Theo bảng kết quả ở trên, ta thấy việc phân loại bằng phương pháp Naive
Bayes đều cho kết quả (độ chính xác và độ bao phủ) tốt hơn hai phương pháp còn
lại. Trong đó, độ chính xác của bộ phân loại Naive Bayes khá tốt, lên tới xấp xỉ
89%, độ bao phủ cũng đạt mức cao.
Đối với phương pháp Bayes ngây thơ (Naive Bayes) và Cây quyết định
(Decision tree) dễ dàng nhận thấy độ chính xác và độ bao phủ của chúng đều bằng
nhau. Như vậy các phương pháp phân loại đều cho kết quả rất khả quan.
Theo bảng 3.6 ở trên, ta thấy trên cùng một loại đặc trưng, hầu hết các
trường hợp bộ phân loại S3VM cho kết quả tốt hơn bộ phân loại Naïve Bayes về độ
chính xác. Điều này khá hợp lý vì nhiều công trình nghiên cứu trước đó cũng đưa ra
kết luận rằng S3VM cho kết quả tốt hơn Naïve Bayes. Trong đó, ở đây độ chính xác
của bộ phân loại S3VM khá tốt, lên tới xấp xỉ 88% với bộ dữ liệu sau khi lấy từ gốc
“stemming”, độ bao phủ của S3VM cũng cao hơn Naïve Bayes.
Với hai thuật toán phân loại này, độ chính xác và độ bao phủ của chúng đều
không chênh lệch đáng kể.
Tuy nhiên, các phương pháp này cũng vẫn còn những điểm hạn chế. Hiệu
năng của phương pháp phân loại (Naive Bayes và KNN) phụ thuộc nhiều vào quá
trình trích chọn đặc trưng, bộ từ vựng được xây dựng thủ công nên không thể tránh
khỏi những cảm nhận thiếu tính khách quan. Nhược điểm này chỉ có thể cải thiện
bằng cách xây dựng một bộ từ vựng cẩn thận, phong phú và chính xác hơn.
57
Hình 3.5: So sánh độ chính xác và độ bao phủ bộ dữ liệu ban đầu
Hình 3.6: So sánh độ chính xác và độ bao phủ bộ dữ liệu sau khi “stemming”
3.4. Tổng kết chương
Chương 3 đã triển khai thử nghiệm một số phương pháp phân loại văn bản .
Dữ liệu là nội dung của các email của DBWORLD [18]. Các kỹ thuật phân loại
đuợc áp dụng là phương pháp K-láng giềng gần nhất (K-Nearest Neighbors), Naive
Bayes (Bayes ngây thơ), cây quyết định (Decision tree) và S3VM (Semi-supervised
support vector machine).
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
KNN Naive Bayes Decision tree S3VM
Precision
Recall
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
KNN Naive Bayes Decision tree S3VM
Precision
Recall
58
KẾT LUẬN
Những kết quả đạt được của luận văn:
Trong quá trình nghiên cứu và thực hiện, luận văn đã đạt được nhưng kết quả
như sau:
- Giới thiệu một số khái niệm cơ bản trong lĩnh vực học máy, học có giám
sát, học không giám sát và học nửa giám sát.
- Trình bày một số thuật toán trong học có giám sát như thuật thoán kỳ vọng
cực đại (EM), thuật toán K- láng giềng gần nhất (K-Nearest Neighbors algorithm),
thuật toán Bayes ngây thơ (Naive Bayes) và thuật toán cây quyết định (Decision
tree) và học nửa giám sát như thuật toán tự huấn luyện (self training), thuật toán kỳ
vọng cực đại (Expectation Maximization), thuật toán SVM (Support vector
machine), S3VM (Semi-supervised support vector machine).
- Giới thiệu một số kỹ thuật phân lớp dữ liệu và việc sử dụng học có giám
sát, học nửa giám sát ứng dụng trong các bài toán phân lớp đặc biệt là bài toán phân
lớp văn bản.
- Chạy và kiểm nghiệm trên bộ dữ liệu email Dbworld [18].
Những hạn chế:
Tác giả chỉ mới tập trung tiến hành thử nghiệm bài toán phân lớp với bộ dữ
liệu có sẵn, thử nghiệm còn đơn giản.
Hướng phát triển trong tương lai:
Với những kết quả đã đạt được, tác giả đề xuất một số công việc tiếp theo
trong thời gian tới như sau: Tiếp tục nghiên cứu để ứng dụng các thuật toán học nửa
giám sát sang một số lĩnh vức khác như: Bài toán phân loại protein, bài toán nhận
dạng hình ảnh, …
59
TÀI LIỆU THAM KHẢO
1. Danh mục tài liệu tiếng Việt
[1] Nguyễn Tân Ân (2011), Bài giảng mạng noron nhân tạo, Trường Đại học
Sư phạm Hà Nội, Hà Nội.
[2] Đoàn Văn Ban, Nguyễn Hiền Trinh (2009), Ngôn ngữ hình thức và ôtômát,
NXB Đại học Thái Nguyên.
[3] Lê Hữu Đạt, Lê Phương Lan, Hoàng Đức Hải (2000), Lập trình Windows,
NXB giáo dục.
[4] Hà Quang Thụy (2011), Bài giảng nhập môn khai phá dữ liệu, Trường Đại
học Công nghệ Đại học Quốc gia Hà Nội, Hà Nội.
2. Danh mục tài liệu tiếng Anh
[5] Alex Smola, S.V.N. Vishwanathan (2008), Introduction to Machine
Learning, Departments of Statistics and Computer Science Purdue
University, College of Engineering and Computer Science Australian
National University.
[6] Alexander Zien (2006), Semi-Supervised Support Vector Machines and
Application to Spam Filtering, Empirical Inference Department, Bernhard
Scholkopf, Max Planck Institute for Biological Cybernetics.
[7] C. Leslie, E. Eskin, J. Weston, and W. S. Noble (2002), Mismatch string
kernels for SVM protein classification, Neural Information Processing
Systems 15.
[8] István Pilászy (2005), Text Categorization and Support Vector Machines,
Department of Measurement and Information Systems Budapest University
of Technology and Economics.
[9] Jason Weston, Christina Leslie, Eugene Ie, Dengyong Zhou, Andre Elisseeff
and William Stafford Noble (2005), Semi-supervised protein classification
using cluster kernels, Bioinformatic, Vol. 21, Iss. 15, pp. 3241 – 3247.
60
[10] Linli Xu, Dale Schuurmans (2005), Unsupervised and Semi-Supervised
Multi- Class Support Vector Machines, AAAI 2005: 904-910.
[11] M. Craven and S.Slattery (2001), Relational learning with statistical
predicate invention: Better models for hypertext, Machine Learning, 43(1-
2):97-119.
[12] T. Joachims (1999), Transductive Inference for Text Classification using
Support Vector Machines, International Conference on Machine Learning
(ICML).
[13] Vikas Sindhwani (2006), Newton Methods for Fast Solution of Semi-
supervised Linear SVMs, Department of Computer Science, University of
Chicago, Chicago, IL 60637,USA.
[14] X. Zhu and Z. Ghahramani (2002), Learning from labeled and unlabeled
data with label propagation, Technical report, CMU.
[15] Xiaojin Zhu (2006), Semi-Supervised Learning Literature Survey, Computer
Sciences TR 1530, University of Wisconsin – Madison
[16] Xiaojin Zhu (2008), Semi-Supervised Learning Literature Survey, Computer
Sciences TR 1530, University of Wisconsin – Madison Last modified.
[17] Weka. Địa chỉ: http://www.cs.waikato.ac.nz/ml/weka/,
[Truy cập: 04/11/2013].
Dữ liệu email. Địa chỉ: http://archive.ics.uci.edu/ml/datasets/DBWorld+e-
mails [Truy cập: 04/11/2013].
[18] Guyon and A. Elissee, An introduction to variable and feature selection.
Journal of Machine Learning Research, 3:1157-1182, Mar.2003.
[19] D. Zeimpekis and E. Gallopoulos. Design of a matlab toolbox for term-
Document matrix generation. Technical report, Computer Engineering &
Informatics Dept., University of Patras, Patras,Greece, 2005.
[20] C. Manning and H. Schutze. Foundations of statistical natural language
processing. MIT Press,Cambridge, MA, 1999.
61
[21] T. M. Mitchell. Machine Learning. McGraw-Hill. Series in Computer
Science. WCB/McGraw-Hill,Boston, MA, 1997.
[22] Michele Filannino. DBWorld e-mail classication using a very small corpus
Centre for Doctoral Training, The University of Manchester,
[email protected] [Truy cập 04/11/2013]
[23] Eui-Hong Han, Text Categorization Using Weight Adjusted k-Nearest
Neighbor Classification. PhD thesis, University of Minnesota, October 1999
[24] M. F. Porter. An algorithm for sux stripping. In K. Sparck Jones and P.
Willett, editors, Readings in information retrieval, pages 313{316. Morgan
Kaufmann Publishers Inc., San Francisco, CA, USA, 1997.
[25] vi.wikipedia.org/wiki/ [Truy cập 04/11/2013].