72
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

NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

 

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 

Page 2: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

 

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

Page 3: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

 

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

Page 4: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

 

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

Page 5: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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

Page 6: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 7: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 8: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 9: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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 

 

 

Page 10: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

 

 

 

 

 

 

 

 

 

 

Page 11: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 12: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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.  

Page 13: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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]. 

 

 

 

Page 14: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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   

Page 15: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

+ 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.    

Page 16: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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 

Page 17: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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) 

Page 18: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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 

Page 19: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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. 

Page 20: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

 

 

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 

Page 21: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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. 

 

Page 22: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 23: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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.

Page 24: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 ),(

)},({)|()|(  

 

Page 25: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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. 

Page 26: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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; 

Page 27: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 28: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 29: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 30: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

 

Page 31: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 32: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 33: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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ụ 

Page 34: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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) 

Page 35: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

 

Page 36: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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. 

Page 37: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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  

Page 38: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 39: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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  ? 

 

 

Page 40: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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) 

Page 41: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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. 

Page 42: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 43: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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). 

Page 44: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 45: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 46: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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). 

Page 47: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 48: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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).  

Page 49: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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ả. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 50: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 51: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌ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. 

Page 52: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 53: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 54: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 55: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 56: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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ừ) 

Page 57: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 58: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 59: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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.  

Page 60: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 61: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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) 

Page 62: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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) 

Page 63: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 64: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌ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). 

 

Page 65: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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) 

 

 

 

Page 66: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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 

Page 67: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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. 

Page 68: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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

Page 69: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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, … 

 

 

 

Page 70: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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. 

Page 71: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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. 

Page 72: NGUYỄN NGỌC MINH ỨNG DỤNG CÁC PHƯƠNG PHÁP HỌC …

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].