Trường Đại học Nha Trang

Khoa Công nghệ Thông tin

PHAN THÚC BÌNH

PHÂN LOẠI VĂN BẢN BẰNG
PHƯƠNG PHÁP SUPPORT
VECTOR MACHINES

ĐỒ ÁN TỐT NGHIỆP

Nha Trang, 1/2007

Trường Đại học Nha Trang
Khoa Công nghệ Thông tin

PHAN THÚC BÌNH

43D1571

PHÂN LOẠI VĂN BẢN BẰNG
PHƯƠNG PHÁP SUPPORT
VECTOR MACHINES
ĐỒ ÁN TỐT NGHIỆP

GIÁO VIÊN HƯỚNG DẪN

ThS. Huỳnh Văn Đức

LỜI CẢM ƠN
Đầu tiên, xin gởi lời cảm ơn chân thành đến Thầy Huỳnh Văn Đức, người đã
tận tình hướng dẫn, động viên, giúp đỡ em trong suốt thời gian thực hiện đề tài.
Trong thời gian làm việc với thầy em không những học hỏi được nhiều kiến thức bổ
ích mà còn học được tinh thần và thái độ làm việc nghiêm túc cũng như những kiến
thức về cuộc sống rất quý báu của Thầy.
Em xin gởi lời cảm ơn đến tất cả các Thầy Cô trong khoa Công nghệ Thông
tin, những người đã dạy dỗ, truyền đạt cho em nhiều kiến thức trong suốt những
năm học vừa qua.
Xin gởi lời cảm ơn chân thành đến gia đình, ba mẹ và bè bạn vì đã luôn là
nguồn động viên to lớn, giúp đỡ, chia sẽ những khó khăn, vui buồn cùng tôi trong
suốt thời gian qua.
Mặc dù đã cố gắng hoàn thiện đồ án với tất cả sự nỗ lực của bản thân, nhưng
chắc chắn không thể tránh khỏi những thiếu sót. Em kính mong nhận được sự
thông cảm và chỉ bảo của quý Thầy Cô và các bạn.

Nha Trang, 1/2007
Phan Thúc Bình

MỤC LỤC
Trang
MỤC LỤC................................................................................................... ........ii
DANH MỤC HÌNH........................................................................ ...................iv
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN...................................... ..........v
1 Chương I: TỔNG QUAN.......................................................................................................................7
1.1 Vai trò của bài toán phân loại :.........................................................................................................7
1.1.1 Khái niệm phân lớp (Categorization):........................................................................................7
1.1.2 Các khái niệm :...........................................................................................................................8
1.2 Các cách tiếp cận :.............................................................................................................................8
1.2.1 Phương pháp k người láng giềng gần nhất (k-NN Algorithm):..................................................8
1.2.1.1 Ý tưởng:..............................................................................................................................8
1.2.1.2 Thuận lợi:...........................................................................................................................9
1.2.1.3 Bất tiện...............................................................................................................................9
1.2.2 Phương pháp Cây quyết định (Decision Tree Algorithm):.......................................................10
1.2.2.1 Ý tưởng:............................................................................................................................10
1.2.2.2 Thuận lợi:.........................................................................................................................10
1.2.2.3 Bất tiện:............................................................................................................................10
1.2.3 Phương pháp Naïve Bayes:.......................................................................................................11
1.2.3.1 Ý tưởng :...........................................................................................................................11
1.2.3.2 Thuận lợi :........................................................................................................................11
1.2.3.3 Bất tiện :...........................................................................................................................11
1.2.4 Phương pháp mạng Nơron (Neural Network):.........................................................................12
1.2.4.1 Ý tưởng:............................................................................................................................12
1.2.5 Phương pháp máy vectơ hỗ trợ (SVM Algorithm ):.................................................................12
1.2.5.1 Thuận lợi:.........................................................................................................................12
1.2.5.2 Bất tiện :...........................................................................................................................13
1.3 Tiếp cận SVM (Support Vector Machines):......................................................................................13
1.3.1 Giới thiệu..................................................................................................................................13
1.4 Giới thiệu SMO (Sequential Minimal Optimization)........................................................................14
1.5 Mục tiêu của đề tài...........................................................................................................................15
1.5.1 Tìm hiểu SMO :........................................................................................................................15
1.5.2 Cài đặt thí nghiệm phân loại văn bản.......................................................................................15
2 Chương 2 : CƠ SỞ LÝ THUYẾT.........................................................................................................16
2.1 Bài toán tối ưu của SVM..................................................................................................................16
2.1.1 Mô hình phân tách tuyến tính:..................................................................................................16
2.1.1.1 Tìm siêu phẳng với dữ liệu không nhiễu:.........................................................................16
2.1.1.2 Tìm siêu phẳng tách với dữ liệu mẫu có nhiễu:...............................................................19
2.1.2 Mô hình tách phi tuyến.............................................................................................................21
2.1.3 Vai trò hàm kernel.....................................................................................................................22
2.1.4 Điều kiện cần và đủ (The Karush-Kuhn-Tucker Conditions) :................................................23
2.1.5 Rủi ro cấu trúc (Structural Risk):.............................................................................................24
2.1.6 Ứng dụng SVM:......................................................................................................................26
2.2 Tiếp cận SMO :.................................................................................................................................26
2.2.1 Bài toán con và cách giải :........................................................................................................27
2.2.2 Heuristics chọn các nhân tử Lagrange :....................................................................................28

SVTH: Phan Thúc Bình

i

2.2.3 Phương pháp tính giới hạn b tại mỗi bước:..............................................................................31
2.2.4 Vấn đề hội tụ:...........................................................................................................................31
2.3 Bài toán phân loại văn bản :............................................................................................................31
2.3.1 Định nghĩa:...............................................................................................................................31
2.3.2 Các kiểu phân loại :..................................................................................................................31
2.3.2.1 Phân loại văn bản đơn nhãn và đa nhãn...........................................................................31
2.3.2.2 Phân loại văn bản phụ thuộc lớp/loại văn bản so với phụ thuộc tài liệu..........................32
2.3.2.3 Phân loại văn bản “cứng” so với “mềm”..........................................................................32
2.3.3 Ứng dụng của phân loại văn bản :............................................................................................33
2.3.4 Quá trình phân loại văn bản :...................................................................................................33
2.3.4.1 Tiền xử lý văn bản :..........................................................................................................33
2.3.4.2 Tạo ra chỉ mục :................................................................................................................34
2.3.4.3 Chọn lựa đặc trưng :.........................................................................................................36
2.3.4.4 Xây dựng thuật toán phân lớp : .......................................................................................39
2.3.4.5 Kết quả, đánh giá độ chính xác :......................................................................................40
3 PHẦN III : THIẾT KẾ - CÀI ĐẶT......................................................................................................41
3.1 Thuật toán SMO : ............................................................................................................................41
3.1.1 Sơ đồ lớp :................................................................................................................................41
3.1.2 Cài đặt......................................................................................................................................41
3.1.2.1 Lớp mainSVM.................................................................................................................41
3.1.2.2 Lớp linearSvm.................................................................................................................41
3.1.2.3 Lớp noneLinearSvm.........................................................................................................42
3.2 Module phân loại văn bản :.............................................................................................................42
3.2.1 Sơ đồ lớp :...............................................................................................................................44
3.2.2 Cài đặt :....................................................................................................................................44
3.2.2.1 Lớp Doc2Vector...............................................................................................................44
3.2.2.2 Lớp proClassify :..............................................................................................................44
3.2.2.3 Lớp preProcess................................................................................................................44
3.3 Giao diện chương trình :..................................................................................................................45

SVTH: Phan Thúc Bình

ii

DANH MỤC HÌNH
Hình 1: Ví dụ về biên không tốt
............................................................................................................................ ....
8
Hình 2:Ví dụ về biên tối ưu
............................................................................................................................ ....
8
Hình 3: Minh họa Support Vectors
............................................................................................................................ ....
13
Hình 4: Tập huấn luyện có nhiễu
............................................................................................................................ ....
14
Hình 5: Chuyển không gian ban đầu vào không gian đặc trưng
............................................................................................................................ ....
15
Hình 6: Chiều VC
............................................................................................................................ ....
18
Hình 7: Qui trình giải bài toán con
............................................................................................................................ ....
21
Hình 8: Tìm i vi phạm cặp ràng buộc đối ngẫu
............................................................................................................................ ....
23
Hình 9: Tìm j qui phạm cặp ràng buộc đôi ngẫu
............................................................................................................................ ....
24
Hình 10: Quá trình phân loại văn bản
............................................................................................................................ ....
27
Hình 11: Biểu diễn văn bản sang vectơ
SVTH: Phan Thúc Bình

iii

............................................................................................................................ ....
28
Hình 12: Sơ đồ lớp cài đặt SMO
............................................................................................................................ ....
35
Hình 13: Mô hình thuật toán học và phân loại.
............................................................................................................................ ....
37
Hình 14: Sơ đồ lớp module phân loại văn bản
............................................................................................................................ ....
38
Hình 15: Phân loại từng văn bản
............................................................................................................................ ....
39
Hình 16: Phân loại cả thư mục
............................................................................................................................ ....
39
Hình 17: Minh họa thuật toán SMO
............................................................................................................................ ....
40

SVTH: Phan Thúc Bình

iv

KÍ HIỆU VÀ VIẾT TẮT
SVM: Support Vector Machines.
SMO: Sequential Minimal Optimation
QP: Quadratic Programming
KKT: Karush-Kuhn-Tucker
VC : Vapnik Chervonenkis
TF : Term Frequency.
TFIDF : Term Frequency Inverse Document Frequency
OC: Orthogonal Centroid.
OCFS: Orthogonal Centroid Feature Selection

SVTH: Phan Thúc Bình

v

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SVTH: Phan Thúc Bình

vi

Phân loại văn bản bằng phương pháp Support Vector Machines

1 CHƯƠNG I: TỔNG QUAN

1.1 Vai trò của bài toán phân loại :
Ngày nay, với sự phát triển vượt bậc của công nghệ thông tin, với những
tính năng ưu việt của máy tính như lưu trữ nhanh, an toàn, gọn nhẹ, dễ truyền
tải...Thì phương thức sử dụng giấy tờ trong giao dịch dần chuyển sang các dạng
văn bản số. Cùng với sự phát triển như vậy, số lượng văn bản ngày càng nhiều thì
nhu cầu phân loại là rất cần thiết. Có rất nhiều lĩnh vực ứng dụng về phân loại
văn bản, ví dụ như phân loại tài liệu, lọc văn bản, lướt Internet để truy lục thông
tin, và ngăn chặn thư rác.
Để đạt được lợi ích từ phân loại văn bản trong những lĩnh vực này, hệ
thống phân loại phải sử dụng phân loại tự động với giá cả thấp nhất và dễ dàng cho
các phương pháp phân loại cổ điển. Việc phân loại tự động sẽ giúp chúng ta dễ
dàng và nhanh chóng tìm kiếm thông tin, giúp chúng ta tiết kiệm được thời gian và
hiệu quả công việc sẽ cao hơn. Vì lí do này, những hệ thống nói trên chấp nhận
cách tiếp cận học thông qua máy. Với cách tiếp cận này sẽ tạo ra hệ thống phân
loại tự động có sự trợ giúp khi cung cấp ngữ liệu huấn luyện vào trong hệ thống và
làm cho hệ thống “học” cách phân loại văn bản thông qua các ngữ liệu đó.
1.1.1 Khái niệm phân lớp (Categorization):
Phân lớp là một tiến trình trong đó các đối tượng và sự việc được nhận ra,
được phân biệt và hiểu được. Sự phân lớp hàm ý rằng các đối tượng được nhóm
thành các bộ phân loại, thường thì phục vụ cho một vài mục đích đặc biệt. Nói
một cách cơ bản, một bộ phân loại mô tả mối quan hệ giữa các chủ thể và đối
tượng tri thức. Có rất nhiều cách tiếp cận phân lớp, nhưng nói chung có 2 cách cơ
bản nhất:
• Phân lớp học có giám sát (supervised learning). Ví dụ: Phân loại văn bản
(Text Classification).
• Phân lớp học không có giám sát (unsupervised learning). Ví dụ: Phân
cụm văn bản (Text Clustering).

SVTH: Phan Thúc Bình

7

Phân loại văn bản bằng phương pháp Support Vector Machines
1.1.2 Các khái niệm :
- Phân loại văn bản (Text Categorization): Cho một số lớp văn bản đã
được xác định trước (tập huấn luyện), nhiệm vụ của phân loại văn bản là: gán các
văn bản vào một (hay một số) lớp văn bản thích hợp dựa vào nội dung của văn
bản.
- Phân cụm văn bản (Text Clustering): Cho một số văn bản, nhiệm vụ của
phân cụm văn bản là chia các văn bản này thành các cụm thích hợp căn cứ vào sự
tương tự về mặt nội dung giữa các văn bản.

1.2 Các cách tiếp cận :
Có rất nhiều phương pháp phân loại được đề xuất ,mỗi phương pháp phân
loại văn bản đều có cách tính toán khác nhau. Sự khác nhau cơ bản của các
phương pháp này là ở thuật toán học quy nạp. Tuy nhiên, nhìn một cách tổng
quan thì các phương pháp đó đều phải thực hiện một số bước chung như sau: đầu
tiên, mỗi phương pháp sẽ dựa trên các thông tin về sự xuất hiện của từ trong văn
bản (ví dụ tần số, số văn bản chứa từ…) để biểu diễn văn bản thành dạng vector;
sau đó, tuỳ từng phương pháp mà ta sẽ áp dụng công thức và phương thức tính
toán khác nhau để thực hiện việc phân loại. Sau đây là một số cách tiếp cận mà
theo thực nghiệm thì có hiệu quả phân loại cao cũng như những thuận lợi và bất
tiện của mỗi cách.
1.2.1 Phương pháp k người láng giềng gần nhất (k-NN Algorithm):
1.2.1.1 Ý tưởng:
Là phương pháp nổi tiếng về hướng tiếp cận dựa trên xác suất thống kê.
Khi cần phân loại văn bản mới thuật toán sẽ tính khoảng cách (khoảng cách
Euclide, Cosine...) của tất cả các văn bản trong tập huấn luyện đến văn bản mới
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ả các chủ đề. Trọng số của một chủ đề chính là
tổng tất cả các khoảng cách ở trên của 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 không.
Sau đó các chủ đề được sắp xếp theo mức độ trọng số 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.
SVTH: Phan Thúc Bình

8

Phân loại văn bản bằng phương pháp Support Vector Machines
1.2.1.2 Thuận lợi:
Có một vài thuận lợi khi thực thi giải pháp này. Giải thuật này được xem
như giải thuật tốt nhất để bắt đầu việc phân loại văn bản và là một giải thuật
mạnh.
Một trong những thuận lợi của giai thuật này chính là sự rõ ràng và dễ
dàng, đơn giản và dễ thực hiện. Được dựa trên phương pháp trực tuyến với cách
xử lý một số hỗn hợp các tài liệu được thiết lập với các phụ lục kèm chỉ số và
việc tìm kiếm các phụ lục có các tài liệu nhập vào được xem như điều kiện chia
sẻ để thiết lập cho các tài liệu khác. Đặc biệt, giải thuật này còn kiểm tra các tài
liệu kề các tài liệu mới, và cần vài thông số để làm việc này, nói cách khác giải
thuật này hầu như không giới hạn. Dựa vào các nhân tố này, giải thuật này hoàn
toàn hiệu quả thông qua thực nghiệm và dễ dàng áp dụng.
Một thuận lợi khác là giải thuật này có nhiều hơn các kí tự cục bộ, bởi vì
khi giải thuật này thử phân loại một tài liệu nhập vào, lập tức kiểm tra điều kiện
trong tài liệu để tìm ra các điều kiện tương tự trong các tài liệu kề đó. Việc kiểm
tra điều kiện gần kề đầu tiên là dễ dàng và hiệu quả hơn.
Một lợi ích nữa của k-NN là giải thuật này có thể được vận dụng để cải
tiến hơn. Nói cách khác, giải thuật này nhanh chóng chỉnh sửa và phù hợp với
các trường hợp khác. Ví dụ, giải thuật có thể được áp dụng cho bất kỳ khoảng
cách đo lường nào khi nhập vào và các tài liệu huấn luyện vì khoảng cách của
các tài liệu nhập vào có thể được giảm đi để cải tiến hiệu quả của giải thuật, do
vậy k-NN có thể được áp dụng cho tài liệu với bất kì khoảng cách nào trong tài
liệu đào tạo. Cũng vì thế mà hầu hết thời gian huấn luyện đòi hỏi cho phân loại
văn bản trong giải thuật k-NN; giải thuật này được đánh giá là kỹ thuật chi phí
trong các kỹ thuật. cuối cùng, k-NN là giải thuật mạnh có thể giám sát các nguồn
tiềm năng lỗi.
1.2.1.3 Bất tiện
Rất khó có thể tìm ra k tối ưu. Hơn nữa với trường hợp văn bản có nhiễu
thì việc phân loại là không tốt

SVTH: Phan Thúc Bình

9

Phân loại văn bản bằng phương pháp Support Vector Machines
1.2.2 Phương pháp Cây quyết định (Decision Tree Algorithm):
1.2.2.1 Ý tưởng:
Bộ phân lớp cây quyết định là một dạng cây mà mỗi nút được gán nhãn
là một đặc trưng, mỗi nhánh là giá trị trọng số xuất hiện của đặc trưng trong văn
bản cần phân lớp, và mỗi lá là nhãn của phân lớp tài liệu. Việc phân lớp của một
tài liệu dj sẽ được duyệt đệ quy theo trọng số của những đặc trưng có xuất hiện
trong văn bản dj. Thuật toán lặp đệ quy đến khi đạt đến nút lá và nhãn của dj
chính là nhãn của nút lá tìm được. Thông thường việc phân lớp văn bản nhị phân
sẽ tương thích với việc dùng cây nhị phân.
1.2.2.2 Thuận lợi:
- Dễ hiểu, dễ cài đặt.
- Có thể chấp nhận trường hợp tập dữ liệu huấn luyện có nhiễu, và cho
hiệu quả phân loại tương đối cao.
1.2.2.3 Bất tiện:
Việc sử dụng giải thuật cây quyết định liên quan đến một số hạn chế
quan trọng, dựa vào trạng thái nguyên thủy của thuật toán mà chia các vùng tài
liệu được đưa vào các tập hợp con. Trước tiên, giải thuật này chia những tập tài
liệu tùy thuộc vào đặc trưng (một bộ phận từ ) mọi lúc, bằng cách sử dụng các
đặc trưng rõ ràng mọi lúc. Dựa vào các nhân tố này, giải thuật này sẽ bị sai nếu
một lỗi bị nhìn thấy tại bất cứ mức độ nào, bởi vì cây con bên dưới cấp bậc sẽ bị
sai. Do đó, giải thuật cây quyết định không mạnh và nó dường như mạo hiểm để
quyết định những nhánh phân loại.
Một vấn đề khác là không có bảo vệ phù hợp giống như Support Vector
Machines, vì vậy chúng có thể loại trừ các đặc trưng. Điều này có nghĩa là chúng
không thể chấp nhận một văn bản với số lượng lớn đặc trưng như SVM, vì có
quá nhiều đặc trưng tạo nên tràn phù hợp và làm cho khả năng học kém hơn.
Một trở ngại khác là thời gian huấn luyện phân loại cao bởi vì giải thuật
này cần so sánh tất cả những nhánh con có thể, nên mất nhiều thời gian để chia
và duyệt các đặc trưng.

SVTH: Phan Thúc Bình

10

Phân loại văn bản bằng phương pháp Support Vector Machines
1.2.3 Phương pháp Naïve Bayes:
1.2.3.1 Ý tưởng :
Ý tưởng cơ bản của phương pháp xác suất Bayes là dựa vào xác suất có
điều kiện của từ hay đặc trưng xuất hiện trong văn bản với chủ đề để dự đoán chủ
đề của văn bản đang xét. Điểm quan trọng cơ bản của phương pháp này là các giả
định độc lập:
- Các từ hay đặc trưng của văn bản xuất hiện là độc lập với nhau.
- Vị trí của các từ hay các đặc trưng là độc lập và có vai trò như nhau.
Giả sử ta có:
- n chủ đề (lớp) đã được định nghĩa c1 , c2 , , cn
- Tài liệu mới cần được phân loại d j
Để tiến hành phân loại tài liệu d j , chúng ta cần phải tính được tần suất
xuất hiện của các lớp ci (i = 1,2,..., n) trong tài liệu d j . Sau khi tính được xác
suất của văn bản đối với các chủ đề, theo luật Bayes, văn bản sẽ được phân lớp
vào chủ đề ci nào có xác suất cao nhất.
1.2.3.2 Thuận lợi :
Là phương pháp đơn giản, cài đặt không phức tạp, tốc độ nhanh, với tập
huấn luyện lớn thì cho kết quả vẫn tương đối chính xác.
1.2.3.3 Bất tiện :
Giải thuật Naïve Bayes cũng có những điểm yếu riêng mặc dù được xem
là trình diễn tốt hơn giải thuật Cây quyết định.
Một trong những trở ngại là dựa trên luật gọi là các điều kiện độc lập.
Có thể bị vi phạm bởi các trường hợp trong thực tế, bởi vì Naïve Bayes thừa
nhận các đặc trưng trong văn bản độc lập riêng rẻ và được biểu diễn một cách
nghèo nàn khi những đặc trưng này có mối liên hệ với nhau. Hơn nữa, luật này
không tạo được sự thường xuyên cho việc xuất hiện các đặc trưng. Một bất lợi
khác nữa là giải thuật sử dụng nhiều tính toán và vì vậy thời gian bị chi phối.

SVTH: Phan Thúc Bình

11

Phân loại văn bản bằng phương pháp Support Vector Machines
1.2.4 Phương pháp mạng Nơron (Neural Network):
1.2.4.1 Ý tưởng:
Mô hình mạng neural gồm có ba thành phần chính như sau: kiến trúc
(architecture), hàm chi phí (cost function), và thuật toán tìm kiếm (search
algorithm). Kiến trúc định nghĩa dạng chức năng (functional form) liên quan giá
trị nhập (inputs) đến giá trị xuất (outputs).
Kiến trúc phẳng ( flat architecture ) : Mạng phân loại đơn giản nhất
( còn gọi là mạng logic) có một đơn vị xuất là kích hoạt kết quả (logistic
activation) và không có lớp ẩn, kết quả trả về ở dạng hàm (functional form)
tương đương với mô hình hồi quy logic. Thuật toán tìm kiếm chia nhỏ mô hình
mạng để thích hợp với việc điều chỉnh mô hình ứng với tập huấn luyện. Ví dụ,
chúng ta có thể học trọng số trong mạng kết quả (logistic network) bằng cách sử
dụng không gian trọng số giảm dần (gradient descent in weight space) hoặc sử
dụng thuật toán interated-reweighted least squares là thuật toán truyền thống
trong hồi quy (logistic regression).
Kiến trúc môđun(modular architecture ): Việc sử dụng một hay nhiều
lớp ẩn của những hàm kích hoạt phi tuyến tính cho phép mạng thiết lập các mối
quan hệ giữa những biến nhập và biến xuất. Mỗi lớp ẩn học để biểu diễn lại dữ
liệu đầu vào bằng cách khám phá ra những đặc trưng ở mức cao hơn từ sự kết
hợp đặc trưng ở mức trước.
1.2.5 Phương pháp máy vectơ hỗ trợ (SVM Algorithm ):
1.2.5.1 Thuận lợi:
Giải thuật Support Vector Machines là giải thuật dễ dàng trong sử dụng
và mạnh, hầu như không có lỗi và trình diễn tốt nhất trong thử nghiệm.
Ưu điểm đầu tiên là giải thuật này có giải pháp cẩn thận trong việc chon
lựa các đặc trưng. Đặc trưng của văn bản là sự khác biệt trong các bộ phận từ
xuất hiện trong văn bản. Văn bản được xem như một vectơ bao gồm các bộ phận,
tùy thuộc vào định nghĩa của giải thuật. Trong SVM, hầu hết các đặc trưng được
xem như có liên quan và hữu dụng trong phân loại văn bản ngay cả khi đó là
những đặc trưng với ít khả năng rõ ràng nhất cũng được sử dụng để thử hệ thống

SVTH: Phan Thúc Bình

12

Phân loại văn bản bằng phương pháp Support Vector Machines
phân loại, với những trình diễn tốt hơn cho các phân loại ngẫu nhiên. Vì lí do này
SVM xem việc chọn đặc trưng như bộ phận thu nhỏ thực thi và sử dụng nó khá ít
để ngăn chặn mất thông tin khi phân loại văn bản điểm. Hệ thống phân loại thực
thi SVM nối kết nhiều đặc trưng để loại trừ chúng và sau đó “học” sự phân loại
bằng cách dùng nhiều đặc trưng liên quan.
Thứ hai, số lượng các đặc trưng (kích thước không gian đặc trưng) của
văn bản được phân loại không ảnh hưởng đến khả năng của hệ thống sử dụng
SVM. Nói cách khác, giải thuật SVM có thể xử lý với bất kỳ văn bản nào trong
khi đang huấn luyện dù cho số lượng đặc trưng chứa trong nó lớn.
Thứ ba là giải thuật được xây dựng trên ý tưởng cực tiểu rủi ro cấu trúc.
Nguồn gốc của SVM dựa trên sự chắc chắn về lỗi chính xác, có thể phân loại
ngẫu nhiên các mẫu văn bản được chọn mà lỗi được giữ sao cho nhỏ nhất. Vì
vậy, giải thuật SVM giúp giảm thiểu biên trên các lỗi chính xác và làm cho hệ
thống tin cậy hơn.
Cuối cùng, một phần nhỏ các nhãn trong tập dữ liệu huấn luyện được giao
cho SVM để huấn luyện hệ thống cho các tham. SVM có thể kiểm tra các tập
mẫu mà trước đây không thể.
1.2.5.2 Bất tiện :
- Để đạt kết quả phân loại tốt cần chọn hàm kernel phù hợp.
- Yêu cầu phải lặp đi lặp lại quá trình huấn luyện đối với bài toán nhiều lớp.

1.3 Tiếp cận SVM (Support Vector Machines):
1.3.1 Giới thiệu
Phương pháp Support Vector Machines được Vladimir Vapnik đưa ra vào
năm 1995 để giải quyết vấn đề nhận dạng mẫu hai lớp sử dụng nguyên tắc cực
tiểu hóa rủi ro cấu trúc (Structural Risk Minimization). Đây là phương pháp
tiếp cận phân loại văn bản rất hiệu quả.
Cho trước một tập huấn luyện biểu diễn trong không gian vector mỗi tài liệu
là một vector được biểu diễn là một điểm, phương pháp SVM sẽ tìm ra một siêu
phẳng h quyết định tốt nhất để chia các điểm trong không gian thành hai lớp riêng
biệt . Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên)
SVTH: Phan Thúc Bình

13

Phân loại văn bản bằng phương pháp Support Vector Machines
của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng cách biên càng
lớn thì mặt phẳng quyết định càng tốt và việc phân loại càng chính xác. Mục đích
của SVM là tìm được khoảng cách biên lớn nhất và lỗi tách sai là bé nhất.
Lớp 2

Lớp 2

Lớp 1

Lớp 1

Hình 1: Ví dụ về biên không tốt.

h(x) =

Lớp 2

m
Lớp 1

Hình 2: Ví dụ về biên tối ưu.
Từ đó bài toán đặt ra là tìm mặt phẳng tách

h( x) = wT x + b . Đây

cũng là bài toán chính của SVM. Ta sẽ phân tích và giải quyết bài toán này ở phần sau.

1.4 Giới thiệu SMO (Sequential Minimal Optimization)
SMO là thuật toán đơn giản có thể giải quyết nhanh bài toán qui hoạch toàn
phương của SVM (Quadratic Programming) mà không cần sử dụng ma trận lưu
trữ. SMO phân rã bài toán qui hoạch toàn phương thành dãy các bài toán con, sử

SVTH: Phan Thúc Bình

14

Phân loại văn bản bằng phương pháp Support Vector Machines
dụng định lý Osuna để đảm bảo sự hội tụ. Đây là một trong những phương pháp
tốt nhất hiện nay có thể giải quyết rất tốt bài toán SVM nói trên.
Không giống như các phương thức khác, SMO chọn cách giải quyết tối
ưu hóa vấn đề nhỏ nhất có thể tại mỗi bước. Ở mỗi bước SMO chọn hai số nhân
Lagrange để cùng tối ưu, tìm những giá trị tối ưu cho các số nhân này và cập
nhật SVM tương ứng với giá trị tối ưu mới. Sự thuận tiện của SMO trong thực
tế là việc xử lý hai số nhân Lagrange được thực hiện theo phép phân tích. Hơn
nữa SMO không phụ thuộc vào ma trận lưu trữ thêm tại tất cả các bước. Ba
thành phần của SMO:
-

Phương pháp giải tích để xử lý hai số nhân Lagrange

-

Heuristic để chọn số nhân tối ưu

-

Phương pháp để tính b tại mỗi bước.

1.5 Mục tiêu của đề tài
1.5.1 Tìm hiểu SMO :
Trong khuôn khổ đồ án này, em sẽ tìm hiểu lý thuyết phương pháp SVM
và thực hiện giải bài toán này bằng phương pháp SMO.
1.5.2 Cài đặt thí nghiệm phân loại văn bản.
Để kiểm nghiệm lại kết quả của phương pháp SVM và cách giải SVM
bằng SMO, em sẽ cài đặt chương trình phân loại văn bản tự động.

SVTH: Phan Thúc Bình

15

Phân loại văn bản bằng phương pháp Support Vector Machines

2 CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.1 Bài toán tối ưu của SVM
2.1.1 Mô hình phân tách tuyến tính:
Giả sử có hàm tuyến tính gọi là hàm phân tách:

h( x ) = w T x + b
h(x) > 0 , ∀x ∈ X +
với 
h( x) < 0, ∀x ∈ X −

 X + = {x i | y i = 1}
trong đó  −
 X = { y i | y i = −1}

w: vector trọng số (weight vector)
b: trọng số ngưỡng (threshold weight)
2.1.1.1 Tìm siêu phẳng với dữ liệu không nhiễu:
Bài toán đặt ra la tìm ra siêu phẳng h(x) (tức là tìm w , b) tách không lỗi
với khoảng cách từ mẫu huấn luyện đến siêu phẳng là cực đại.
Định nghĩa W:
Độ rộng cột của siêu phẳng tách (W): Là tổng khoảng cách từ điểm dữ
liệu gần nhất của lớp +1 đến siêu phẳng và khoảng cách từ điểm dữ liệu gần nhất
của lớp –1 đến siêu phẳng. W được tính như sau:

wT x + b
wT x + b
m+
m−
W = min+
− max−
=

x∈X
x∈X
|| w ||
|| w ||
|| w || || w ||
Nhận xét:
W không phụ thuộc vào b, nên ta có thể chọn b sao cho m + = − m − = m .
W không phụ thuộc độ lớn w, chọn b và w sao cho m = 1 .
Như vậy ta có W =

2m
2
=
|| w || || w ||

SVTH: Phan Thúc Bình

16

Phân loại văn bản bằng phương pháp Support Vector Machines
Từ đó bài toán trên được đưa về bài toán quy hoạch toàn phương sau:

1 2
 w → min
Tìm b, w sao cho  2
 y i wT x i + b ≥ 1, i = 1,..., n

(

)

Để giải quyết bài toán này người ta đưa ra hàm Lagrange:

L=

1 2
w − α T ( y ( w T + b) − 1)
2

Điều kiện Kuhn Tucker (cần và đủ)

L'w = w − X ( yα ) = 0
L'b = α T y = 0
L'α = − y ( wT x + b) + 1 ≤ 0, α ≥ 0
L'α α = 0
Với X = ( x , x ,...), yα = ( y1α 1 , y 2α 2 ,..., y n α n )
1

Ta có

2

w 2 = ( yα ) T X T X ( yα )
⇔ w 2 = α T Dα

với

 D = Y T X T XY

Y = diag ( y )

1
2

αT ( y ( wT + b) −1) ≥ 0 ⇒ w 2 +αT Dα +αT e

1 2
1
w ≥ − α T Dα + α T e
2
2

Vậy bài toán đối ngẫu tương đương là:

1
− α T Dα + α T e → max
2
α T y = 0

α ≥ 0
Khi đó

w = Xα

, X = (x) ,

b = y i − wT x i
SVTH: Phan Thúc Bình

x = yx

tại α i > 0
17

Phân loại văn bản bằng phương pháp Support Vector Machines

Và hàm quyết định

uˆ = sign( wT x + b)

Ví dụ:
0 −1 

X = 
0 
1

 0 1
 , Y = (1,−1) ⇒
X = 
1 0 
0
D = X X = 
 −1
T

h

− 1 1 0 
=

0   0 1

1  0

0 1

1 2 1 2
α 1 + α 2 − α 1 − α 2 → min
2
2
Bài toán đối ngẫu: α = α
 1
2

α j ≥ 0
Giải bài toán trên ta được:

α1 = α 2 = 1

0
w = Xα = 
1

− 11  − 1
  =  
0 1  1 

0
b = y 1 − wT x i = 1 − (1 1)   = 0
1 
W =
Với

2
2
=
= 2
w
2

x( x1 , x 2 ) ⇒ uˆ = ((−1) x1 + (1) x2 )

Định nghĩa: Các vector ứng với

αi > 0

là các vectơ hỗ trợ. Các vectơ hỗ

trợ có khoảng cách tới siêu phẳng là bé nhất.
Từ ví dụ trên ta có nhận xét:

w = ∑α j y j x j
Với xj là các support vector.
Khi tập mẫu tăng, kích thước bài toán lớn lên theo (mỗi mẫu là một ràng
buộc). Như vậy độ phức tạp tính toán là không thể chấp nhận được. Để giải

SVTH: Phan Thúc Bình

18

Phân loại văn bản bằng phương pháp Support Vector Machines
quyết vấn đề này ta sẽ xây dựng các thuật toán huấn luyện, và vai trò của các
vectơ hỗ trợ là rất quan trọng.
Điểm thú vị của SVM là mặt phẳng quyết định phụ thuộc vào các vectơ
hỗ trợ có khoảng cách đến mặt phẳng quyết định là

1
 . Khi các điểm khác xoá
|| w ||

hết đi thì thuật toán vẫn có kết quả giống như ban đầu. Đó là đặc điểm khác so
với các phương pháp khác vì tất cả dữ liệu trong tập huấn luyện đều được dùng
để tối ưu hoá kết quả.
Support Vectors

Hình 3: Minh họa Support Vectors
2.1.1.2 Tìm siêu phẳng tách với dữ liệu mẫu có nhiễu:
Tập dữ liệu huấn luyện có thể phân chia tuyến tính nhưng có nhiễu.
Chúng ta phải tìm mặt phẳng tách sao cho nó có độ rộng lớn nhất và số lỗi tách
là bé nhất.

SVTH: Phan Thúc Bình

19

Phân loại văn bản bằng phương pháp Support Vector Machines

h
z1

Lớp 2
z2
z3

m
Lớp 1

Hình 4: Tập huấn luyện có nhiễu
Đặt z là sai số phân loại, ta có:

z i = 1 − y i ( w T + b)

Với những phân loại sai :

Với những phân loại đúng : z i = 0 ≥ 1 − y i ( w T + b)
Chọn các điều khiển đơn giản, ta có

1 2
T
 2 w + Cz 1 → min

 i T i
y w x + b + z ≥ 1
z ≥ 0


(

)

Từ đó ta có bài toán đối ngẫu sau :

1 T
α Dα − α T 1 → min
2
yTα = 0

0 ≤ α ≤ C
Đây là dạng mô hình SVM tổng quát giải quyết đồng thời hai mục tiêu:
độ rộng lớn nhất và lỗi tách là bé nhất.

SVTH: Phan Thúc Bình

20

Phân loại văn bản bằng phương pháp Support Vector Machines
2.1.2 Mô hình tách phi tuyến
Trong nhiều trường hợp dữ liệu vào không thể phân chia tuyến tính. Do
đó chúng ta cần ánh xạ tập vector dữ liệu vào không gian đặc trưng có số chiều
cao hơn nhiều so với không gian ban đầu, bằng cách sử dụng hàm :

Φ : Rn → Rm
Φ ( x)

x

Φ (.)
Hình 5: Chuyển không gian ban đầu vào không gian
đặc trưng
Chúng ta cần phải chuyển không gian ban đầu vào không gian đặc trưng
vì những thao tác trên tách tuyến tính trên không gian đặc trưng cũng tương
đương với thao tác tách phi tuyến trên không gian đầu vào ban đầu. Hơn nữa quá
trình phân tách sẽ dễ dàng hơn khi ta chọn một phép chuyển thích hợp. Việc tính
toán trên không gian đặc trưng sẽ tốn nhiều thời gian hơn bởi lẽ trong không
gian này số chiều lớn (thường thì số chiều này không xác định được). Để giải
quyết vấn đề này ta cần sử dụng đến hàm Kernel.
Từ bài toán tối ưu SVM ban đầu ta chuyển về bài toán tách trên không
gian mới là:

1 2
w + Cz T 1 → min
2
 y ( w T Φ ( x i ) + b) + z ≥ 1

z ≥ 0
Khi đó luật quyết định là :

x

Φ

SVTH: Phan Thúc Bình

r


Φ(x)

l ∈ { − 1, 1}

21

Phân loại văn bản bằng phương pháp Support Vector Machines
Và hàm quyết định của ta có dạng như sau :

(

l = sign w Φ ( x) + b
T

)

wT = ∑ α i Φ ( x i )

với

i

Từ đó ta có bài toán đối ngẫu

1 T
α Dα − α T 1 → min
2
 yTα = 0

0 ≤ α ≤ C

(

( ) ( )y)

Với D = d ij = y Φ x , Φ x

(

i

i

j

j

)

( ) ( )
⇒ D = ( y K(x , y )y )

K x i , y j = Φ x i Φ x j : gọi là hàm kernel
i

i

j

j

Giả sử α j > 0 là nghiệm của bài toán đối ngẫu, ta có :

b = y j − ∑αi y i K ( x i , x j )
i

(

)

uˆ = ∑ α i y i K x i , x + b
i

2.1.3 Vai trò hàm kernel
Kernel là những hàm trả về giá trị tích trong giữa các ảnh của các điểm dữ
liệu trong một vài không gian. Việc lựa chọn K cũng chính là chọn Φ . Các hàm
kernel có thể được tính toán hiệu quả ngay cả trên không gian có rất nhiều chiều.
Hàm Kernel đóng một vai trò quan trọng trong bài toán phân loại sử dụng
phương pháp SVM, nó tạo ra ma trận kernel tóm tắt tất cả dữ liệu.
Trong thực tế, kernel đa thức với số bậc thấp hoặc kernel Gauss với độ
rộng hợp lý thì khởi tạo tốt cho hầu hết các ứng dụng. Đối với phân loại văn bản
thì sử dụng kernel đường thẳng là tốt nhất vì số chiều đặc trưng của hàm này đã
đủ lớn.
Một số hàm Kernel cơ bản :
+ Linear Kernel :

SVTH: Phan Thúc Bình

K ( x, y ) = ( x T y ) d
22

Phân loại văn bản bằng phương pháp Support Vector Machines
+ Polynomial Kernel : K ( x, y ) = ( x T y + 1) d
+ Radial Basis Function Kernel : K ( x, y ) = exp(−

x−y

2

2δ 2

)

+ Sigmoid Kernel : K ( x, y ) = tanh(κx T y + θ )
2.1.4 Điều kiện cần và đủ (The Karush-Kuhn-Tucker Conditions) :
Từ bài toán tối ưu tối ban đầu ta có được các phương trình sau:

α i ( yi ( wT xi − b ) + zi − 1) = 0
µ i zi = 0

(1)
( 2)

Phụ thuộc vào giá trị α i ta có các trường hợp sau:
 Nếu α i = 0 thì

µ i = C − α i = C > 0 ⇒ zi = 0

(

)

Vì vậy: yi w xi − b − 1 ≥ 0
T

 Nếu 0 < α i < C thì từ phương trình (1) ta có:

(

)

y i wT xi − b + zi − 1 = 0

µ i = C − α i > 0 ⇒ zi = 0

(

)

Vì vậy: y i w x i − b − 1 = 0
T

(

)

T
 Nếu α i = C thì từ phương trình (1) ta có: y i w xi − b + zi − 1 = 0

Mà µi = C − α i = 0 , ta có zi ≥ 0

(

)

Vì vậy y i w x i − b − 1 ≤ 0
Đặt

(

)

T

u i = y i w T x i − b − 1 ta viết lại u i :

(

)

(

)

u i = y i wT xi − b − y i2 = y i wT xi − b − y i = y i E i
Với

E i = wT xi − b − y i = u i − y i

SVTH: Phan Thúc Bình

23

Phân loại văn bản bằng phương pháp Support Vector Machines
Điều kiện KKT được tóm tắt lại như sau :

α i = 0 ⇒ ui ≥ 0


0 < α i < C ⇒ ui ≈ 0

α i = C ⇒ ui ≤ 0

2.1.5 Rủi ro cấu trúc (Structural Risk):
 Số chiều VC (Vapnik Chervonenkis dimension):
Xét các hàm f(x) : R→{+1,-1}, có 2n cách để gán nhãn cho n điểm. Nếu
với mỗi một cách gán nhãn ta đều có thể tìm thấy một thành phần của tập hợp
{f(x)} mà nhận dạng chính xác cách gán nhãn này. Khi đó tập hợp của n điểm
được nói là bị phá vỡ bởi tập hợp các hàm {f(x)}. Chiều VC của {f(x)} là số lớn
nhất của các điểm dữ liệu mà có thể bị phá vỡ bởi nó.
Chiều VC của các siêu phẳng trong không gian Rn là thường là n+1

Hinh 6 : Chiều VC

 Rủi ro của bài toán học phân loại có giám sát
X ∈ R n ; Y ∈ { − 1,+1} , S = x1 , y1 , , xn , yn

{(

SVTH: Phan Thúc Bình

)

(

)}

24

Phân loại văn bản bằng phương pháp Support Vector Machines

Hàm

f s là ánh xạ từ tập X vào tập Y

fs : x

fs : Χ → Υ ,
Thì hàm rủi ro toàn cục của

R( f s ) = ∫

X ×Y

Trong đó:

y

f s (x) là

c( f s ( x), y ) P( x, y ) dxdy

P(x, y) = P(x).P(y | x).

c: là hàm thiệt hại (loss function),đo sự sai lệch của

f s ( x ) so với y.

 Rủi ro thực nghiệm
Cho S = { ( x1 , y1 ) , , ( xn , yn )} , c là hàm thiệt hại của

f s (x)

f s (x) trên tập dữ liệu huấn luyện S được

Rủi ro thực nghiệm của hàm
tính như sau:

Remp ( f s ) =

1 l
∑ c( f s ( xi ), yi )
l i =1

 Nguyên tắc tối thiểu rủi ro cấu trúc
Tìm được một hàm

fs

để có thể tối thiểu giới hạn trên của rủi ro toàn cục.

Giới hạn trên của rủi ro toàn cục là:
 2l 
δ 
h ln + 1 − ln 
h

4
R ( f S ) ≤ Remp ( f S ) +
l

Trong đó

h: là chiều VC của

fs

l: là số mẫu của tập huấn luyện S
1-δ : là giá trị của xác suất liên kết P(x,y)
Để tối thiểu rủi ro toàn cục, người ta làm như sau:
- Đầu tiên, chọn các hàm mà có rủi ro thực nghiệm là nhỏ nhất, tập các
hàm này kí hiệu là Femp min .
- Sau đó, chọn trong tập các hàm

SVTH: Phan Thúc Bình

Femp min hàm nào có chiều VC là nhỏ nhất.
25

Phân loại văn bản bằng phương pháp Support Vector Machines
Bổ đề [Vapnik, 1982]
Giả sử tập không gian giả thiết là tập các siêu phẳng có dạng

f s ( x ) = w.x + b . Nếu tất cả các véc tơ mẫu xi được bao trong hình cầu có bán
kính R, và thỏa w.xi + b ≥ 1 .
Đặt ║x║=A, khi đó chiều VC h của tập các siêu phẳng

[

]

fs

được giới hạn bởi:

d ≤ min ( R 2 A2 , n ) + 1
2.1.6 Ứng dụng SVM:
 Phân loại văn bản (Text Categorization).
 Tìm khuôn mặt (Face Detection).
 Nhận dạng chữ viết tay (Hand Written Digit Recognition).
 Nhận dạng khuôn mặt (Face Recognition).
 Nhận dạng tiếng nói.

2.2 Tiếp cận SMO :
Từ bài toán tối đối ngẫu :

1
g ( α ) = α T Dα − α T 1 → min
2
yTα = 0

0 ≤ α ≤ C
Chúng ta có giải bằng nhiều cách: giải trực tiếp bài toán đối ngẫu, phân
rã vấn đề, hoặc bằng phương pháp SMO...
Giải bài toán trên bằng phương pháp SMO :
Để giải bài toán trên SMO sẽ chia bài toán thành các bài toán con. Ở mỗi
bước sẽ giải bài toán con với những điều kiện tối ưu và sau đó xây dựng bài toán
con mới. Điểm đặc biệt khi giải bằng phương pháp SMO là tốc độ nhanh, kết
quả chính xác vì bài toán con chỉ có hai biến và sử dụng heuristic ở mỗi bước
nên rất có hiệu quả.

SVTH: Phan Thúc Bình

26

Phân loại văn bản bằng phương pháp Support Vector Machines
2.2.1 Bài toán con và cách giải :
Đầu tiên SMO chọn ra một tập con (với SMO tập con chỉ có hai ví dụ),
xác định các vectơ hỗ trợ rồi kiểm tra tính tối ưu. Chỉ cần một vài vectơ là đủ để
xác định cấu trúc của SVM.. Qui trình giải bài toán con như sau :

Tính α
với η > 0

Tính α
với η = 0

Kiểm tra

α

Cập nhật

α và b

Hình 7 : Qui trình giải bài toán con
Khi hai ví dụ được chọn là cùng lớp:

s = 1
1 2
λ η + λ ( d1 − d 2 )α → min
λ = u = −u
2

1
2
và 
− α 1 ≤ λ ≤ C − α 1
 L = max(−α 1 , α 2 − C )

 R = min(C − α1 , α 2 )
α 2 − C ≤ λ ≤ α 2
Khi hai ví dụ được chọn là khác lớp:

 s = −1
1 2
λ η + λ [ ( d1 + d 2 )α − 2] → min
λ = u = u
2

1
2
và 
− α 1 ≤ λ ≤ C − α 1
 L = max(−α 1 ,−α 2 )

 R = min ( C − α1 , C − α 2 )
− α 2 ≤ λ ≤ C − α 2
Tiếp theo ta tính η : η

SVTH: Phan Thúc Bình

= d ii − 2 sd ij + d jj

27

Phân loại văn bản bằng phương pháp Support Vector Machines

Với η > 0 thì

λ* =

sy j e j − yi ei

η

λ = R nếu λ* > R

Ta chọn λ như sau: λ = L nếu λ* < L
λ = λ* còn lại

λ = R
λ = L

Với η = 0 thì 

Cuối cùng ta tính các

nếu syjej – yiei >0
ngược lại

α (các nhân tử Lagrange) như sau :
α1 = λ
α2 = s * λ

* Lưu ý : Các αi được chọn phải đảm bảo làm cho g (α ) giảm thực sự
tại mỗi bước.
2.2.2 Heuristics chọn các nhân tử Lagrange :
Với điều kiện SMO tối ưu, tại mỗi bước các nhân tử Lagrange có sự thay
đổi và có ít nhất một nhân tử Lagrange vi phạm điều kiện KKT thì sau mỗi bước
hàm mục tiêu sẽ giảm theo theo định lý Osuna. Độ hội tụ vì thế mà được đảm bảo.
Để tăng tốc độ hội tụ, SMO sử dụng heuristics để chọn hai nhân tử cùng tối ưu.
Có hai heuristics chọn các nhân tử Lagrange khác nhau: một cho nhân tử
Lagrange thứ nhất và một cho nhân tử thứ hai.
- Heuristic chọn nhân tử Lagange thứ nhất:
+ Một vòng lặp bên ngoài đầu tiên sẽ lặp trên toàn bộ tập huấn
luyện tìm ra mẫu vi phạm điều kiện KKT (1).
+ Sau đó duyệt qua toàn bộ tập huấn luyện và chọn ra các mẫu mà
nhân tử Lagrange khác 0 và khác C (tức là các mẫu không nằm trên biên)
các mẫu này lại được kiểm tra xem có vi phạm điều kiện KKT không, các
mẫu vi phạm có thể được chọn để tối ưu. Ở bước ngày lặp lại quá trình

SVTH: Phan Thúc Bình

28

Phân loại văn bản bằng phương pháp Support Vector Machines
duyệt qua các mẫu không nằm trên biên cho tới khi không còn mẫu nào vi
phạm điều kiện KKT với sai số

ε

(2).

+ Tiếp theo SMO sẽ quay lại từ đầu, thực hiện lặp trên toàn bộ tập
huấn luyện thực hiện luân phiên (1), (2) cho đến khi không còn mẫu nào
vi phạm điều kiện KKT với sai số

ε , sau đó thuật toán kết thúc.

Ở heuristic chọn đầu tiên này phần lớn thời gian tập trung vào tìm những
mẫu vi phạm điều kiện KKT mà những mẫu này thường tập trung ở tập con
không nằm trên biên. Theo thuật toán SMO thực hiện thì những mẫu nào nằm
trên biên sẽ ở biên, còn những mẫu nào không nằm trên biên sẽ được di chuyển
thành mẫu khác để đạt được tối ưu. Vì vậy, thuật toán SMO lặp trên tập con
không nằm trên biên cho tới khi tập con này tự phù hợp. Sau đó SMO sẽ tìm bất
kì một mẫu nào trên biên vi phạm KKT để tối ưu với tập con không nằm trên
biên. Điều kiện KKT được kiểm tra với sai số

ε , thường thì ε

được thiết lập

khoảng 10-3.

 Tìm i vi phạm cặp ràng buộc
đối ngẫu
• Ưu tiên 0 < α j < C

Lặp trên toàn bộ
các mẫu

Lặp trên toàn bộ
với 0 < α i < C

Hinh 8: Tìm i vi phạm cặp ràng buộc đối ngẫu
- Heuristic chọn nhân tử Lagange thứ hai:
Như vậy nhân tử Lagrange thứ nhất đã được chọn, SMO chọn nhân tử
Lagrange sao cho sắp sỉ E1 − E2 là lớn nhất. Các giá tri E của mỗi mẫu không
nằm trên biên trong tập huấn luyện sẽ được lưu lại sau đó chọn giá trị lỗi mà làm
cho trị tuyệt đối trên lớn nhất. Nếu E1 dương thì SMO chọn mẫu với E2 nhỏ nhất,
ngược lại nếu E1 âm thì SMO chọn mẫu có E2 lớn nhất.

SVTH: Phan Thúc Bình

29

Phân loại văn bản bằng phương pháp Support Vector Machines
Trong số ít trường hợp, SMO không thể make positive progress bằng cách
sử dụng giải thuật môt tả như trên. Ví dụ, positive progress không thể được tạo
nếu các ví dụ huấn luyện thứ nhất và thứ hai chia sẻ các vector nhập vào xác
định x nhằm tạo ra hàm đối tượng để trở thành nhận dạng chung.Trong trường
hợp này, SMO sử dụng một hệ thống cấp bậc của giải thuật chọn lựa nhân tử thứ
hai cho đến khi nó tìm thấy một cặp nhân tử Lagrange có thể tạo ra positive
progress. Positive progress có để được quyết định bởi việc tạo ra một kích thước
bước không trên tối ưu nối của hai nhân tử Lagrange. Hệ thống cấp bậc của giải
thuật chọn lựa nhân tử thứ hai bao gồm những điều sau đây:
Nếu heuristic trên không tạo ra được positive progress thì SMO bắt đầu
làm đi làm lại thông qua những ví dụ không giới hạn, tìm kiếm một ví dụ thứ hai
có thể tạo nên positive progress thì SMO lặp trên những mẫu không nằm trên
biên và tìm kiếm mẫu thứ hai mà có thể make positive progress. Nếu không tìm
được phần tử không nằm trên biên nào make positive progress thì SMO bắt đầu
lặp trên toàn bộ tập huấn luyện cho tới khi một mẫu được tìm thấy để make
positive progress. Cả hai quá trình lặp trên những mẫu không nằm trên biên và
lặp trên toàn bộ tập huấn luyện có thể bắt đầu tại những vị trí ngẫu nhiên. Trong
trường hợp xấu không có mẫu thứ hai nào thỏa mãn thì mẫu thứ nhất được dừng
lại và SMO tiếp tục với việc lựa chọn một mẫu thứ nhất khác.

0 <αj <C

Cực đại ∆

Tìm j vi phạm cặp ràng buộc đối ngẫu

• Ưu tiên 0 < α j < C
• Trong đó ưu tiên

∆ = ei − e j lớn nhất

0 <αj <C
Từ j0 ngẫu nhiên

α j còn lại
Từ j0 còn lại

Hình 9: Tìm j qui phạm cặp ràng buộc đôi ngẫu

SVTH: Phan Thúc Bình

30

Phân loại văn bản bằng phương pháp Support Vector Machines
2.2.3 Phương pháp tính giới hạn b tại mỗi bước:
Giới hạn b được tính lại sau mỗi bước, vì thế mà điều kiện KKT được
thực thi cho cả hai mẫu. Giá trị giới hạn b1, b2 được tính như sau:

 
 
new.clipped
− α1 ) K ( x1 , x2 ) + y2 (α 2
− α 2 ) K ( x1 , x2 ) + b
 
 
new
new.clipped
b2 = E2 + y1 (α1 − α1 ) K ( x1 , x2 ) + y2 (α 2
− α 2 ) K ( x2 , x2 ) + b
b1 = E1 + y1 (α1

Với điều kiện là α 1
Nếu α1

new

,α 2

new

new

new

,α 2

new

phải không nằm trên biên. Khi đó b= b1= b2

nằm trên biên và

L ≠ H thì giới hạn b sẽ nằm giữa b1 và b2

2.2.4 Vấn đề hội tụ:
Tốc độ hội tụ của thuật toán sẽ nhanh hơn nếu ta nới lỏng các ràng buộc,
tức là nới lỏng các sai số

ε . Sai số ε

cho phép thường khoảng 10-3.

Thuật toán SMO (và các thuật toán SVM khác) sẽ không hội tụ nhanh nếu
yêu cầu kết quả đầu ra có độ chính xác quá cao.
- Độ phức tạp của thuật toán là: O(n).

2.3 Bài toán phân loại văn bản :
2.3.1 Định nghĩa:
Phân loại tự động văn bản là việc gán 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.
2.3.2 Các kiểu phân loại :
2.3.2.1 Phân loại văn bản đơn nhãn và đa nhãn
Ràng buộc khác biệt ở đây có lẽ bị phụ thuộc vào nhiệm vụ phân loại (TC
task) vào ứng dụng cụ thể . Chúng ta có thể lấy ví dụ như sau: cho trước 1 số
nguyên k (hoặc lớn hơn k hoặc nhỏ hơn k), k thành phần của tập C (tập các loại)
được gán cho mỗi tài liệu d j ∈ D .
- Trường hợp chỉ có chính xác 1 phân lớp (category) được gán cho tài liệu
d j ∈ D được gọi là phân loại nhãn đơn (single-label, nonoverlapping category).

SVTH: Phan Thúc Bình

31

Phân loại văn bản bằng phương pháp Support Vector Machines
- Trường hợp có 1 số lượng nhãn (từ 0 cho đến C ) được gán cho tài liệu
d j ∈ D được gọi là phân loại đa nhãn (multi-label, overlapping category).

- Trường hợp đặc biệt của phân loại nhãn đơn là phân loại nhị phân trong
đó mỗi tài liệu d j ∈ D có thể được gán cho bộ phân loại ci hay không thuộc bộ
phân loại ci.
Trên quan điểm lý thuyết, trường hợp phân loại đơn nhãn (nhị phân) tổng
quát hơn trường hợp đa nhãn. 1 thuật toán (algorithm) cho phân lớp đơn nhãn
cũng có thể áp dụng cho phân lớp đa nhãn, chỉ đơn giản là chúng ta biến đổi vấn
đề phân lớp đa nhãn trên tập {c1 ,, C } nhãn thành C vấn đề phân lớp đơn nhãn
độc lập với nhau. Tuy nhiên, điều ngược lại là không đúng, 1 thuật toán cho phân
lớp đa nhãn không thể áp dụng cho phân lớp đơn nhãn (cũng như phân lớp nhị
phân).
2.3.2.2 Phân loại văn bản phụ thuộc lớp/loại văn bản so với phụ thuộc tài liệu
Có rất nhiều cách khác nhau để sử dụng bộ phân loại văn bản (text
classifier). Cho trước tài liệu d j ∈ D , chúng ta muốn tìm tất cả các lớp ci ∈ C mà
tài liệu thuộc vào, cách này được gọi là phân loại dựa vào tài liệu (documentpivoted categorization-DPC). Ngược lại, nếu cho trước ci ∈ C , chúng ta muốn
tìm tất cả các tài liệu d j ∈ D mà thuộc vào nó, cách này được gọi là phân loại
dựa vào lớp (loại) văn bản (category-pivoted categorization-CPC). Sự khác biệt
này thể hiện rõ ở thực tế hơn là ở khái niệm trừu tượng. Trên thực tế DPC được
dùng nhiều hơn CPC.
2.3.2.3 Phân loại văn bản “cứng” so với “mềm”
Trong khi việc tự động hoàn toàn của quá trình phân lớp cần 1 quyết định
T hay F cho mỗi cặp (di,cj) thì việc tự động từng phần của tiến trình có lẽ lại cần
những nhu cầu khác nhau.
- Phân loại văn bản “cứng” (hard TC) tức là cung cấp 1 giá trị trong
{T,F} cho biết di có hay không có nằm trong cj. Điều này rất hữu ích cho các ứng
dụng phân lớp tự động (autonomous).

SVTH: Phan Thúc Bình

32

Phân loại văn bản bằng phương pháp Support Vector Machines
- Phân loại văn bản mềm (soft TC) tức là cung cấp 1 giá trị trong [0,1]
cho biết mức độ tin cậy của hệ thống khi quyết định sự phụ thuộc của dj vào
trong cj. Điều này lại phù hợp hơn với các ứng dụng phân lớp tương tác
(interactive).
2.3.3 Ứng dụng của phân loại văn bản :
- Tổ chức các trang web thành hệ thống cấp bậc.
- Phân vùng để trích rút thông tin.
- Phân loại email thành các danh mục khác nhau (spam hay không spam).
- Tìm ra mối quan tâm của người sử dụng.
- Tóm tắt thông tin.
- Phân loại thông tin.
2.3.4 Quá trình phân loại văn bản :

Văn bản cần
phân loại

Tiền xử lý

Tạo chỉ mục

Kết quả

Thuật toán phân
loại

Chọn đặc trưng

Hình 10: Quá trình phân loại văn bản

2.3.4.1 Tiền xử lý văn bản :
Đây là quá trình làm sạch văn bản bằng. Chuyển văn bản nhập vào thành
các dạng biểu diển phù hợp cho công tác phân lớp.
Ví dụ : Nếu file đưa vào ở dạng *.html thì ta sẽ xóa bỏ các tag HTML
hoặc các tag khác.
Ở giai đoạn này các đặc trưng liên quan sẽ được rút trích lại từ các tài liệu
nhập vào. Tất cả các từ được trong tài liệu được xem là các đặc trưng khả thi.
Sau đó các từ này sẽ được qua một bước lọc bỏ các đặc trưng không mang thông
SVTH: Phan Thúc Bình

33

Phân loại văn bản bằng phương pháp Support Vector Machines
tin hữu ích. Các từ chức năng hay các phụ từ hư từ (Ví dụ : "dẫu sao", "của" ,
"sao cơ"...) sẽ được lược bỏ để giảm số lượng đặc trưng vốn đã rất lớn của văn
bản đồng thời tăng hiệu năng của quá trình phân loại sau này.
2.3.4.2 Tạo ra chỉ mục :
Tạo ra chỉ mục bằng việc sắp xếp lại các trọng số của từ. Đây là giai đọan
biểu diễn văn bản thành vector đặc trưng hay còn gọi là quá trình trọng số hóa
đặc trưng. Xem mỗi văn bản di tương ứng là một vectơ đặc trưng
d i ( TF ( w1 ), TF ( w2 ),..., TF ( wn ) ) trong không gian các từ

W n ( wi

tương ứng là

một từ, một đặc trưng và cũng chính là một chiều trong không gian).

Hình 11 : Biểu diễn văn bản sang vectơ
Cho tập đặc trưng F = { f1 , f 2 ,..., f D } tập các lớp C = { c1 , c 2 ,..., c n } , một
đặc trưng f ∈ F và tài liệu d sẽ được trọng số hóa theo các công thức sau :
 TF (Term Frequency): Dựa vào tần suất xuất hiện của đặc trưng. Ví dụ:
TF(f,d) là số lần xuất hiện của đặc trưng f trong tài liệu d.
 TF_IDF (Term Frequency Inverse Document Frequency): Dựa vào tần
suất nghịch đảo văn bản, được tính theo công thức sau:

SVTH: Phan Thúc Bình

34

Phân loại văn bản bằng phương pháp Support Vector Machines

 D 

IDF ( f ) = log

DF
(
f
)

 D 

TF _ IDF ( f , d ) = TF ( f , d ) * IDF ( f ) = TF ( fd ) * log

 DF ( f ) 
Trong đó:
D : là số văn bản trong tập huấn luyện.

DF ( f ) : số văn bản chứa đặc trưng f.
TF ( f , d ) : tần số xuất hiện của đặc trưng f trong văn bản d.

TF _ IDF ( f , d ) : trọng số của đặc trưng f trong văn bản d.
 logTF_IDF

ω fd =

Với

l df × log

D
df r

 l
D

l
×
log

r
df r
r∈F 




2

0 neu tf fd = 0
d
l
=
+ f

log( tf fd + 1) neu tf fd ≠ 0
+ ω fd : trọng số của đặc trưng f trong văn bản d

Ngoài ra còn có : TF_IWF , TF_CHI, TF_CRF…
Các đặc trưng của văn bản khi biểu diễn dưới dạng vector :
- Số chiều không gian đặc trưng thường rất lớn (trên 10000).
- Có các đặc trưng độc lập nhau, sự kết hợp các đặc trưng này thường
không có ý nghĩa trong phân loại.
- Đặc trưng rời rạc : vector d i có rất nhiều giá trị 0 do có nhiều đặc trưng
không xuất hiện trong văn bản d i
- Hầu hết các văn bản có thể được phân chia một cách tuyến tính bằng
các hàm tuyến tính.
SVTH: Phan Thúc Bình

35

Phân loại văn bản bằng phương pháp Support Vector Machines
2.3.4.3 Chọn lựa đặc trưng :
Thực chất của quá trình này là giảm số chiều của vector đặc trưng bằng
cách bỏ đi những thành phần đặc trưng không quan trọng. Quá trình này rất quan
trọng vì một văn bản gồm rất nhiều từ nên khi biểu diễn sang vector thì nó sẽ
vector có số chiều rất lớn, trong đó thành phần dư thừa cũng rất nhiều. Vì vậy ta
áp dụng các phương pháp lựa chọn đặc trưng để giảm số chiều của vector đặc
trưng mà không mất đi độ chính xác.
Cho kho ngữ liệu, một cách toán học nó được biểu diễn bởi một ma trận
d x nX, trong đó d là số lượng các hạng hay các đặc trưng, n là số lượng các tài
liệu trong kho ngữ liệu. Mỗi tài liệu là một véctơ cột xi , i=1,2,..,n. X T là ma trận
chuyển vị của X ∈ R dxn . Vấn đề giảm số chiều thực chất là tìm ánh xạ

f : R d → R p với p là chiều của dữ liệu sau khi được giảm, p sẽ rất nhỏ so với
p
d
d. Như vật tài liệu xi ∈ R sẽ được đổi thành yi = f ( xi ) ∈ R .

Theo phương pháp rút trích đặc trưng thì vấn đề giảm chiều là tìm ma trận
T
p
chuyển đổi tối ưu W ∈ R dxp để mà y i = f ( xi ) = W xi ∈ R .

Mặt khác theo các phương pháp chọn lựa đặc trưng, mục đích của việc giảm

(

chiều là tìm tập đặc trưng ki i=1,2,...,p sao cho y i = f ( xi ) = xik1 , xik 2 ,..., xikp

)

T

.

Các phương pháp lựa chọn đặc trưng cơ bản như :
1, Mutual Information (MI)
Thước đo độ tương tự đo sự xuất hiện đồng thời hay không đồng thời của
một từ t trong nhãn c được tính như sau:

MI ( t , c ) = log

⇔ MI ( t , c ) ≈ log

pr (t , c )
pr (t ). pr (c)

A* N
( A + C )( A + B )

A: là số lần t và c xuất hiện đồng thời
B: là số lần t xuắt hiện mà không xuất hiện c
C: là số lần c xuất hiện mà không xuất hiện t

SVTH: Phan Thúc Bình

36

Phân loại văn bản bằng phương pháp Support Vector Machines
N: là tổng số văn bản
2, Chi-Square

(

) (

) (
( )

)

| Tr | [ P( t k , ci ).P t k , c i − P t k , c i .P t k , ci ]2
χ (t k , ci ) =
P ( t k ) .P t k .P ( c i ) .P c i
2

( )

Trong đó:
|Tr| : tổng số tài liệu đang xét.

(

)

P t k , c i : xác suất khi chọn ngẫu nhiên tài liệu x, đặc trưng t k sẽ

không xuất hiện trong x, và x không thuộc về phân lớp
ci .

( )
P (t , c ) : xác suất khi chọn ngẫu nhiên tài liệu x, đặc trưng t

P t k , c i : xác suất xuất hiện tk với điều kiện không thuộc lớp ci
k

i

k

sẽ

không xuất hiện trong x, và x thuộc về phân lớp ci .
P( t k , ci ) : xác suất khi chọn ngẫu nhiên tài liệu x, đặc trưng tk sẽ

xuất hiện trong x, và x thuộc về phân lớp ci .
P (t k ) : xác suất xảy ra đặt trưng t k
P ( ci ) : xác suất xảy ra phân lớp ci

3, Odds ratio

OR(t k , ci ) =

P(t k | ci ).(1 − P(t k | ci ))
(1 − P(t k | ci ).P(t k | ci ))

4, Information gain

IG (t k , ci ) =

∑ ∑

P( t , c ). log

c∈{ci , c i } t∈{t k ,t k }

P( t , c )
P( t ).P( c )

5, GSS coefficient

(

) (

_ _ 
GSS (t k , ci ) = P( t k , ci ).P t k , c i  − P t k , c i .P t k , ci

)

6, OCFS
SVTH: Phan Thúc Bình

37

Phân loại văn bản bằng phương pháp Support Vector Machines
Đây là phương pháp một trong các phương pháp lựa chọn đặc trưng tốt
nhất hiện nay. Phương pháp OCFS dựa trên nền tảng là giải thuật Orthogonal
Centroid (OC). Để hiểu rõ hơn về phương pháp OCFS, chúng ta hãy tìm hiểu sơ
qua về giải thuật OC.
Thuật toán OC
Thuật toán OC được đề nghị gần đây được xem như là một thuật toán rút
trích đặc trưng có giám sát. Nó tận dụng phép biến đổi trực giao trên trọng tâm .
Thuật toán này đã được chứng minh là rất hiệu quả với các vấn đề phân lớp
véctơ dữ liệu dưới dạng văn bản (text data) và nó dựa trên phép tính toán không
gian véctơ trong đại số tuyến tính .
Thuật toán này cũng có mục tiêu là tìm ra được ma trận biến đổi W ∈ R dxp
, tiêu chuẩn J(W) được tính như sau :

arg max J (W ) = arg max trace(W T S bW ) với giả thuyết W T W = I
c

Và Sb = ∑
j =1

nj
n

(m

j

− m )( m j − m )

T

Trong đó :
 mj là vector trung bình được tính theo công thức
 nj là kích thước của lớp j
 m là véc tơ trung bình của tất cả các tài liệu, được tính theo công thức sau:

1 n
1 c
m = ∑ xi = ∑ n j m j
n i =1
n j =1
Thuật toán OCFS
Trong các thành phần công thức được định nghĩa như trong phần OC, chỉ
khác là ma trận là ma trận nhị phân mà mỗi cột chỉ có một phần tử khác 0, ta
định nghĩa tập là tập các chỉ mục của đặc trưng, mặt khác ta có:
~

~

~

~

trace(W S b W ) = ∑i = `W i S b W i =∑i =1 ∑ j = `
p

T

p

c

nj

(m
n

ki

j

− m ki

)

2

Như vậy thực chất của OCFS là tìm tập K để làm cực đại

SVTH: Phan Thúc Bình

38

Phân loại văn bản bằng phương pháp Support Vector Machines

nj

∑ ∑ n (m
p

i =1

c

ki

j =`

− m ki

j

)

2

Các bước tiến hành thuật toán OCFS :
- Bước 1: Tính centroid mi, i=1,2,…,c của mỗi lớp cho dữ liệu huấn luyện.
- Bước 2: Tính centroid m của tất cả các mẫu huấn luyện
- Bước 3: Tính điểm cho từng đặc trưng i theo công thức

s (i ) = ∑

nj
n

(m

i

j

−m

i

)

2

- Bước 4: Lấy k đặc trưng có điểm cao nhất.
Chọn lựa đặc trưng:
Giả sử các đặc trưng được tính và được sắp xếp như sau:

p

s (k1 ) ≥ s (k2 )... ≥ s (kd ) . Hàm E(p) được tính như sau:

E ( p) =

∑ s(k )
j =1
d

∑ s (k )
i =1

những p được chọn phải thỏa mãn p = arg min E ( p ) sao cho

j

,

i

E ( p ) ≥ T , ví

dụ T = 80%.
Đánh giá độ phức tạp:
Độ phức tạp của thuật toán OCFS là O(cd). Được đánh giá là tốt hơn các
thuật toán trước bởi thời gian thực hiện hiện ngắn hơn (thời gian chủ yếu của
thuật toán dùng để tính điểm các đặc trưng) và dễ cài đặt hơn.
2.3.4.4 Xây dựng thuật toán phân lớp :
Có rất nhiều phương pháp để thực hiện phân lớp mang lại hiệu quả cao
như : Support Vector Machines, k-Nearest Neighbour, Neural Network, Naive
Bayes. Trong đồ án này phương pháp Support Vector Machines (SVM) được
chọn để thực hiện quá trình phân lớp. SVM được xem là một trong những
phương pháp phân loại văn bản tốt nhất hiện nay. Bởi lẽ SVM phù hợp với bài
toán phân loại văn bản vì nó có khả năng đáp ứng các yêu cầu như:
 Không gian đầu vào có số chiều rất lớn.
SVTH: Phan Thúc Bình

39

Phân loại văn bản bằng phương pháp Support Vector Machines
 Các vector văn bản là thưa.
 Các đặc trưng rời rạc, ít liên hệ lẫn nhau.
2.3.4.5 Kết quả, đánh giá độ chính xác :
Để đánh giá hiệu quả phân loại văn bản người ta dùng các chỉ số độ thu
recall và độ chính xác precision.

Recall = a / (a + c)
Precision = a / (a + b)

a: số lượng văn bản được gán nhãn đúng cho một lớp.

b: số lượng văn bản được gán nhãn không đúng cho một lớp.

c: số lượng văn bản không đúng được lọai bỏ từ một lớp.

 Giá trị recall cho ta biết tỉ lệ văn bản đúng được nhận ra .
 Precision cho ta biết tỉ lệ văn bản đúng trong số các văn bản máy nhận biết.

SVTH: Phan Thúc Bình

40

Phân loại văn bản bằng phương pháp Support Vector Machines

3 PHẦN III : THIẾT KẾ - CÀI ĐẶT
3.1 Thuật toán SMO :
3.1.1 Sơ đồ lớp :
mainSVM

linearSvm

noneLinearSvm

Hinh 12: Sơ đồ lớp cài đặt SMO
3.1.2 Cài đặt
3.1.2.1 Lớp mainSVM
 Chức năng :
Chức năng chính là thực hiện giải thuật SMO để giải bài toán
SVM ở trên. Gồm các bước như : chia bài toán con, giải bài toán con,
các heuristic tìm các nhân tử Lagrane. Trong lớp này có chứa các hàm
ảo để các lớp khác kế thừa trong các trường hợp phân tách tuyến tính và
phi tuyến.
 Cài đặt :
// Phương thức chính, tìm phần tử vi phạm điều kiện KKT thứ
nhất
public virtual void mainSMO()
// Tìm phần tử vi phạm điều kiện KKT thứ hai
private bool FindJ(int i1)
// Giải phương trình tính các giá trị α và b
private bool TakeStep(int i1, int i2)

3.1.2.2 Lớp linearSvm
 Chức năng :
SVTH: Phan Thúc Bình

41

Phân loại văn bản bằng phương pháp Support Vector Machines
Thừa kế lớp mainSVM thực hiện phân tách tuyến tính.

 Cài đặt :
// Cập nhật các giá trị của ma trận W
protected override void updateW(int i1, int i2, int y1, int y2, float
a1, float a2, float alph1, float alph2)
3.1.2.3 Lớp noneLinearSvm
 Chức năng :
Thừa kế lớp mainSVM thực hiện phân tách tuyến tính

 Cài đặt :
// Các hàm kernel phục vụ cho phân tách phi tuyến
protected override float Kernel(float[] vector1, float[] vector2)

3.2 Module phân loại văn bản :
 Qui trình huấn luyện và kiểm nghiệm
SVTH: Phan Thúc Bình

42

Phân loại văn bản bằng phương pháp Support Vector Machines

Ngữ liệu huấn luyện

Tiền xử lý

Biểu diễn văn bản thành vector

Chọn lựa và rút trích đặc trưng

Xây dựng bộ phân lớp

Dữ liệu phân
lớp

Bộ phân lớp
văn bản

Chủ đề văn bản

Văn bản cần gán
nhãn

Hình 13: Mô hình thuật toán học và phân loại.

SVTH: Phan Thúc Bình

43

Phân loại văn bản bằng phương pháp Support Vector Machines
3.2.1 Sơ đồ lớp :

Doc2Vector

proClassify

Hình 14 : Sơ đồ lớp moudule phân loại văn bản
3.2.2 Cài đặt :
3.2.2.1 Lớp Doc2Vector
 Chức năng :
Biểu diễn văn bản đầu vào thành vectơ trọng số. Gồm các chức
năng như : chuyển văn bản thành các đặc trưng.
 Cài đặt:
// Tính trọng số của các đặc trưng.
public void doc2vector(List<string> lw)
3.2.2.2 Lớp proClassify :
 Chức năng :
Thực hiện huấn luyện và kiểm nghiệm.
 Cài đặt:
// Kiểm nghiệm một văn bản.
public float classify(string str)
3.2.2.3 Lớp preProcess
 Chức năng :
Thực hiện chức năng tiền xử lý văn bản. Gồm các thao tác như
loại bỏ dấu câu, loại bỏ từ vô nghĩa.
 Cài đặt:
// Loại bỏ từ vô nghĩa.
public List<string> rmStopwordString(string str)
// Loại bỏ dấu câu
public string rmPunctuation(string st)
SVTH: Phan Thúc Bình

44

Phân loại văn bản bằng phương pháp Support Vector Machines

3.3 Giao diện chương trình :
Phân loại một văn bản : Chọn đường dẫn văn bản hoặc gõ trực tiếp nội dung vào.

Hình 15: Phân loại từng văn bản

SVTH: Phan Thúc Bình

45

Phân loại văn bản bằng phương pháp Support Vector Machines
Phân loại một thư mục chứa nhiều văn bản

Hình 16 : Phân loại cả thư mục

SVTH: Phan Thúc Bình

46

Phân loại văn bản bằng phương pháp Support Vector Machines
Minh họa thuật toán SMO

Hình 17: Minh họa thuật toán SMO
Các lớp giao diện :
mainTC : Lớp giao diện màn hình chính.
frmClassify : Lóp giao diện màn hình phân loại một văn bản
frmClassifyAll : Lóp giao diện màn hình phân loại cả thư mục.
frmSVM : Lóp giao diện màn hình thuật toán SMO.

SVTH: Phan Thúc Bình

47

Phân loại văn bản bằng phương pháp Support Vector Machines

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận :
Sau thời gian nghiên cứu và thực hiện đề tài, em đã có thêm hiểu biết về
phương pháp SVM cũng như cách giải nó bằng SMO.
Trong đề tài này, em đã cài đặt được thuật toán SMO với độ chính xác khá
cao. Đề tài cũng đã phân loại được văn bản nhưng mới chỉ dừng ở hai chủ đề
minh họa là tin học, thể thao và chỉ ở những file có định dạng là *.txt, *.html.
2. Hướng phát triển :
Ứng dụng phân loại văn bản ở đề tài này chỉ mới dừng lại ở mục đích kiểm
nghiệm thuật toán SMO và số chủ đề chỉ có hai. Vì để có được một chương trình
phân loại văn bản tự động (nhất là phân loại văn bản tiếng Việt) hoàn chỉnh thì
cần phải hoàn thiện thêm rất nhiều vấn đề :
-

Cần cải thiện bài toán tách từ vì độ chính xác của bài toán tách từ
quyết định hiệu suất phân loại của cả bài toán

-

Bổ sung thêm nhiều chủ đề.

SVTH: Phan Thúc Bình

48

Phân loại văn bản bằng phương pháp Support Vector Machines

TÀI LIỆU THAM KHẢO
[1] Dr. Tie-Yan Liu - SVM and Its Applications to Text Classification.
[2] S.S.Keerthi, S.K. Shevade, C. Bhattacharyya, K.R.K Murthy - Improvements to
Platt’s SMO Algorithm for SVM Classifier Design.
[3] John C. Platt - SMO : A Fast Algorithm for Training SVM.
[4] Jun Yan, Ning Liu, Benyu Zhang, Shuicheng Yan,Zheng Chen, Qiansheng
Cheng, Weiguo Fan, Wei-Ying Ma - OCFS: Optimal Orthogonal Centroid Feature
Selection for Text Categorization.
[5] Hoàng Công Duy Vũ, Nguyễn Lê Nguyên – Luận văn Tìm kiếm văn bản theo chủ đề.
[6] Seminar về Support Vector Machines do thầy Huỳnh Văn Đức tổ chức tại Đại học
Kinh tế TP.HCM

SVTH: Phan Thúc Bình

49