Tải bản đầy đủ (.docx) (18 trang)

PHÂN ĐA LỚP VĂN BẢN BẰNG PHƯƠNG PHÁP SVM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (211.38 KB, 18 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
o0o
BÀI THU HOẠCH MÔN KHAI PHÁ DỮ LIỆU
PHÂN ĐA LỚP VĂN BẢN
BẰNG PHƯƠNG PHÁP SVM

Giảng viên hướng dẫn:
PGS.TS. Đỗ Phúc
Sinh viên thực hiện:
Lê Minh Trí CH1101149
Lớp: Cao học khóa 6
Mục lục
Trang 2
LỜI MỞ ĐẦU
Ngày này, cùng với sự phát triển công nghệ thông tin cũng như sự bùng nổ của
internet làm cho khối lượng thông tin trong việc lưu trữ và trao đổi đang ngày càng lớn. Vì
thế, việc xử lý, phân loại thông tin bằng cách thủ công trở nên khó khăn. Do đó, đòi hỏi
phải có cách tổ chức, phân loại thông tin tự động. May mắn là tốc độ xử lý của máy tính
càng ngày càng lớn và thực sự trở thành một công cụ đắc lực, hỗ trợ con người trong nhiều
lĩnh vực, trong đó có phân loại thông tin. Máy tính trở thành một công cụ hữu hiệu cho
việc phân loại tự động thông tin bằng cách học, hay còn gọi là máy học và được áp dụng
trong việc phân lớp văn bản.
Trước hết, em xin gửi lời cảm ơn chân thành tới PGS.TS. Đỗ Phúc. Qua những buổi
giảng dạy và hướng dẫn tận tình của thầy trong môn Khai phá dữ liệu đã giúp em hiểu biết
thêm nhiều kiến thức. Qua đó em xin trình bày trong bài tiểu luận này bài toán phân đa lớp
văn bản dựa trên thuật toán vector hỗ trợ (Support Vector Machine). Hi vọng bài luận có
thể góp phần nào giải quyết bài toán tổ chức và phân loại thông tin tự động.
Trang 3
I. TỔNG QUAN BÀI TOÁN PHÂN LỚP VĂN BẢN
I.1. Giới thiệu bài toán phân lớp văn bản


Phân lớp văn bản là việc gán một văn bản tài liệu được biểu diễn trong ngôn ngữ tự
nhiên vào một hoặc nhiều lớp đã được xác định trước. Đầu tiên, người ta xây dựng một mô
hình miêu tả một tập hợp ban đầu các văn bản dựa trên một tập các dữ liệu huấn luyện. Tập
dữ liệu huấn luyện là tập các trang văn bản đã được gán nhãn lớp tương ứng cho chúng.
Quá trình xây dựng tập dữ liệu huấn luyện này thường được thực hiện bằng con người. Sau
đó, mô hình được sử dụng để phân lớp các trang văn bản chưa được gán nhãn.
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
hoặc có thể được 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.
Nhiệm vụ của bài toán phân lớp dữ liệu là cần xây dựng một bộ phân lớp để khi có
một dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu đó thuộc lớp nào. Có nhiều
bài toán phân lớp dữ liệu, như phân lớp nhị phân, phân lớp đa lớp, ….
Phân lớp nhị phân là quá trình tiến hành việc phân lớp dữ liệu vào một trong hai lớp
khác nhau dựa vào việc dữ liệu đó có hay không một số đặc tính theo quy định của bộ phân
lớp.
Phân lớp đa lớp là quá trình phân lớp với số lượng lớp lớn hơn hai. Như vậy, tập
hợp dữ liệu trong miền xem xét được phân chia thành nhiều lớp chứ không đơn thuần chỉ
là hai lớp như trong bài toán phân lớp nhị phân. Về bản chất, bài toán phân lớp nhị phân là
trường hợp riêng của bài toán phân lớp đa lớp.
I.2. Mô hình phân lớp văn bản
Phân lớp văn bản định nghĩa thống nhất như là việc xác định tên các chủ đề của văn
bản dựa trên nội dung của nó. Phân lớp văn bản là công việc được sử dụng để hỗ trợ trong
quá trình tìm kiếm thông tin, chiết lọc thông tin, lọc văn bản hoặc tự động dẫn đường cho
các văn bản tới những chủ đề xác định trước. Để phân lớp văn bản, người ta sử dụng
phương pháp học máy có giám sát. Tập dữ liệu được chia ra làm hai tập là tập huấn luyện
và tập kiểm tra, trước hết phải xây dựng mô hình thông qua các mẫu học bằng các tập huấn
luyện, sau đó kiểm tra sự chính xác bằng tập dữ liệu kiểm tra.
Trang 4
Một hệ thống phân lớp văn bản bao gồm ba thành phần chính:
• Biểu diễn văn bản, tức là chuyển các dữ liệu văn bản thành một dạng có cấu trúc

nào đó, tập hợp các mẫu cho trước thành một tập huấn luyện.
• Thực hiện việc sử dụng các kỹ thuật học máy để học trên các mẫu huấn luyện vừa
biểu diễn. Như vậy việc biểu diễn ở giai đoạn thứ nhất sẽ là đầu vào cho giai đoạn
thứ hai.
• Thực hiện bổ sung các kiến thức thêm vào do người dùng cung cấp để làm tăng độ
chính xác trong biểu diễn văn bản hay trong quá trình học máy. Trong nhiều
trường hợp, các phương pháp học hệ thống phân lớp có thể bỏ qua thành phần
này. Như vậy thành phần thứ ba được coi là trung tâm của một hệ thống phân lớp
văn bản. Trong phần này, có nhiều phương pháp học máy được áp dụng như mô
hình mạng Bayes, cây quyết định, phương pháp K người láng giềng gần nhất,
mạng Neuron, SVM, mô hình Maximum Entropy.
I.3. Quá trình xây dựng bộ phân lớp văn
bản
Quá trình phân lớp dữ liệu thường gồm hai bước: xây dựng bộ phân lớp và sử dụng
mô hình đó để phân lớp dữ liệu. Các công cụ phân lớp được xây dựng dựa trên một thuật
toán phân lớp qua bước học quy nạp.
Bước 1: Xây dựng mô hình. Một mô hình sẽ được xây dựng dựa trên phân tích các đối
tượng dữ liệu đã được phân lớp từ trước. Tập các mẫu dữ liệu này còn được gọi là tập dữ
liệu huấn luyện. Các lớp của tập dữ liệu huấn luyện được xác định bởi con người trước khi
xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát. Trong bước
này, ta còn phải tính độ chính xác của mô hình, mà còn phải sử dụng một tập dữ liệu kiểm.
Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để xác định nhãn lớp cho
các dữ liệu khác mới trong tương lại.Tồn tại nhiều phương pháp phân lớp dữ liệu để
giải quyết bài toán phân lớp tùy thuộc vào cách thức xây dựng mô hình phân lớp như
phương pháp Bayes, phương pháp cây quyết định, phương pháp k người láng giềng gần
nhất, phương pháp SVM, phương pháp Maximum Entropy… Các phương pháp phân
lớp khác nhau chủ yếu về mô hình phân lớp. Mô hình phân lớp còn được gọi là thuật toán
phân lớp.
Bước 2: Sử dụng mô hình. Sử dụng mô hình được xây dựng ở bước 1 để phân lớp dữ liệu
mới. Như vậy, thuật toán phân lớp là một ánh xạ từ miền dữ liệu đã có sang một miền giá

trị cụ thể của thuộc tính phân lớp, dựa vào giá trị các thuộc tính của dữ liệu.
Trang 5
I.4. Phương pháp biểu diễn văn bản
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
hoặc đặc trưng của văn bản tương ứng với một vector đặc trưng. Đôi khi, thay vì những từ
đơn, các đặc trưng có thể được biểu diễn bằng các cụm từ hoặc chuỗi n từ với n >= 2. Theo
các nghiên cứu về 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 được lấy ra từ văn bản gốc.
Sau khi xác định được các đặc trưng, chúng ta cần tính giá trị đặc trưng (hoặc trọng
số từ khóa) cho mỗi văn bản. Mỗi từ khóa t
i
trong một tài liệu D
j
được gán một trọng số w
ij
và do đó, mỗi tài liệu được biểu diễn như một vector. Trọng số từ khóa có thể được tính
toán bằng nhiều cách khác nhau. Cách đơn giản nhất theo mô hình Boolean là gán trọng số
bằng một giá trị nhị phân chỉ ra từ khóa có mặt hay không có mặt trong văn bản, tức là giá
trị trọng số w
ij
là 1 nếu từ khóa ti xuất hiện ít nhất một lần trong tập tài liệu D
j
và w
ij
là 0
trong trường hợp ngược lại. Phương pháp khác là tính số lần xuất hiện của từ khóa trong
một tài liệu gọi là tần suất từ khóa. Tần suất từ khóa được tính theo công thức:
Trong đó N là tổng số từ khóa của tài liệu D

j
và occ(t
k
, D
j
) là số lần xuất hiện của từ
t
k
trong văn bản D
j
. Phương pháp này được gọi là phương pháp dựa trên tần số từ khóa (TF
– Term Frequency).
Phương pháp này có vẻ rất trực quan nhưng mặt hạn chế của phương pháp này là
nếu một từ xuất hiện nhiều lần trong tài liệu sẽ có tần xuất cao. Tuy nhiên nếu những từ
này đều xuất hiện trong tất cả các văn bản thì nó sẽ không mang nhiều thông tin ngữ nghĩa
của văn bản và do đó độ quan trọng của nó giảm đi.
Thông thường tần suất của các từ khóa trong văn bản không đồng đều nhau. Một số
từ khóa xuất hiện rất thường xuyên, trong khi đó, một nửa số từ khóa xuất hiện chỉ một lần.
Để giải quyết hạn chế này, Phương pháp dựa trên nghịch đảo tần số văn bản (IDF – Inverse
Document Frequency) với tần suất logarit (tương tự với tần suất từ
khóa). Với phương pháp này, giá trị wij được tính như sau:
Trang 6





−=
=
0

)log()log(log
i
i
ij
hm
h
m
w

Trong đó, m là số lượng văn bản, h
i
là số các văn bản có chứa thuật ngữ t
i
Phương pháp dựa trên nghịch đảo tần số văn bản IDF được sử dụng phổ biến hơn
phương pháp dựa trên tần số IF, nhưng phương pháp này vẫn chưa giải quyết triệt để hạn
chế của phương pháp tần số từ khóa. Theo đó, một từ xuất hiện nhiều lần có tần suất cao,
từ xuất hiện ít có tần số thấp.
Phương pháp chuẩn thường được sử dụng là Term Frequency Inverse Document
Frequency (IFIDF), hàm tính trọng số từ khóa được xác định bởi công thức:
[ ]















+
=
0
1log)log(1
i
i
ij
ij
h
h
m
f
w
Trọng số TFIDF của một từ khóa biểu diễn độ quan trọng của từ khóa. TFIDF của
một từ khóa trong một tài liệu sẽ giảm nếu như từ đó xuất hiện trong hầu hết các văn bản.
Vì vậy, một từ xuất hiện quá ít hoặc quá nhiều được đánh giá ít quan trọng hơn so với các
từ xuất hiện cân bằng.
Trang 7
nếu t
i
xuất hiện trong d
j
nếu ngược lại
II. PHƯƠNG PHÁP PHÂN LỚP SVM
II.1. Phân lớp SVM nhị phân
Thuật toán máy vector hỗ trợ (Support Vector Machines - SVM) được Corters và

Vapnik giới thiệu vào năm 1995. SVM rất hiệu quả để giải quyết các bài toán với dữ liệu
có số chiều lớn như các vector biểu diễn văn bản. Thuật toán SVM ban đầu chỉ được thiết
kế để giải quyết bài toán phân lớp nhị phân tức là số lớp hạn chế là hai lớp. Hiện nay, SVM
được đánh giá là bộ phân lớp chính xác nhất cho bài toán phân lớp văn bản, bởi vì đó là bộ
phân lớp tốc độ rất nhanh và hiệu quả đối với bài toán phân lớp văn bản.
Ý tưởng của SVM là tìm một mặt phẳng sao cho cận trên của xác suất lỗi là nhỏ
nhất. Đối với dữ liệu không thể phân tách tuyến tính, SVM ánh xạ dữ liệu từ không gian
đầu vào vào không gian đặc trưng dựa trên hàm nhân.
Các ứng dụng của SVM trong thực tế cho hiệu quả phân lớp rất cao so với các
phương pháp phân loại máy học khác và được ứng dụng trong rất nhiều lĩnh vực:
Phân lớp văn bản: Nhiệm vụ của phân lớp văn bản là phân loại những tài liệu văn
bản tự nhiên thành một số loại được định nghĩa trước dựa trên nội dung. Đặc trưng của các
vector văn bản là có số chiều rất lớn, do đó rất thích hợp để áp dụng phương pháp SVM.
Nhận dạng ảnh: Hiện nay có một số lượng hình ảnh rất lớn trên Internet hoặc trên
những cơ sở dữ liệu chuyên dụng. Những kỹ thuật của việc nhận dạng ảnh được ứng dụng
trong rất nhiều lĩnh vực như: rút trích thông tin, lọc dữ liệu trên Internet, ứng dụng trong y
học, phát hiện vật thể, an ninh
Nhận dạng chữ viết: Nhận dạng chữ viết là một trong những ứng dụng rất rộng rãi
của SVM, nó có thể ứng dụng trong các ngành như: bưu điện (phân loại thư theo mã bưu
điện), số hóa các văn bản (nhận dạng chữ viết của một văn bản được scan lên máy tính),
Bài toán phân loại văn bản bằng SVM nhị phân: Cho một văn bản, dựa vào nội dung
kiểm tra xem văn bản đó thuộc vào loại gì trong hai loại đã cho trước.
Sau khi trích chọn đặc trưng, mỗi văn bản được biểu thị dưới dạng một vector . Mỗi
vector là một điểm trong không gian n chiều. Các văn bản huấn luyện thuộc 2 lớp (được
đánh nhãn là +1 và -1) là các điểm trong không gian đầu vào n chiều. SVM sẽ tìm một mặt
phẳng tốt nhất phân tách 2 tập điểm +1 và -1. Mặt phẳng đó sẽ là hàm phân lớp để quyết
định một mẫu mới sẽ thuộc lớp nào. Tổng quát bài toán: “Cho một tập huấn luyện các
Trang 8
vector trong không gian n chiều. Các vector thuộc một trong hai lớp +1 và -1. Khi có một
vector mới, phải xác định được nó thuộc lớp nào trong hai lớp đã cho”.

II.1.1.Phân lớp tuyến tính
Xét một tập huấn luyện S gồm l phần tử:
Với y
i
thuộc 1 trong 2 giá trị là +1 và -1 có nghĩa x
i
thuộc 1 trong 2 lớp. Ta phải tìm
một hàm số thực:
Sao cho
Khi phân lớp một mẫu . x được phân vào lớp dương (+1) nếu f(x) >= 0 và lớp âm (-
1) nếu ngược lại
Xét trường hợp f(x) là hàm tuyến tính (siêu phẳng tuyến tính). Ta có:
Với: được gọi là trọng số (weight) của siêu phẳng
được gọi là ngưỡng (threshold)
Hình - Phân lớp tuyến tính
Bài toán được đặt ra là tìm bộ (w, b) sao cho siêu phẳng có thể phân tách được dữ
liệu huấn luyện
II.1.2. SVM với siêu phẳng có lề cực đại
Cho bộ dữ liệu huấn luyện , siêu phẳng , ta có một số định nghĩa sau :
Trang 9
− Lề hàm số (functional margin) của một mẫu (x
i
, y
i
) đối với một siêu phẳng (w, b)
được định nghĩa:
− Lề hình học (geometric margin) là lề hàm số với các trọng số được chuẩn hóa
Ý nghĩa thực tế của lề hình học là khoảng cách từ mẫu đến siêu phẳng phân tách
Khi đó lề của một siêu phẳng đối với bộ dữ liệu S là lề hình học nhỏ nhất trong số
các lề hình học của các điểm thuộc S đối với siêu phẳng

Bài toán SVM được định nghĩa như sau:
Tìm siêu phẳng tuyến tính (tìm bộ (w,b)) có thể phân tách được bộ dữ liệu huấn
luyện S sao cho lề cực đại
Hình - Phân lớp tuyến tính với lề cực đại
Các điểm nằm trên 2 lề của siêu phẳng được gọi là các support vector. Chỉ có những
điểm này mới ảnh hưởng đến kết quả phân lớp (ảnh hưởng đến siêu phẳng). Các điểm khác
có thể bỏ đi mà không làm ảnh hưởng đến kết quả của siêu phẳng. Đây là một ưu điểm của
SVM vì để lưu kết quả hay xử lý tính toán ta chỉ cần thao tác trên các support vector.
Hai lề của siêu phẳng phân tách có thể được chuẩn hóa theo dạng:
với lề bên phía các điểm thuộc lớp +1 và được gọi là mặt phẳng (+)
với lề bên phía các điểm thuộc lớp -1 và được gọi là mặt phẳng (-)
Do 2 mặt phẳng này song song nên khoảng cách giữa 2 mặt phẳng cũng là khoảng
cách từ 1 điểm trên mặt phẳng này đến mặt phẳng kia. Gọi x
0
là điểm thuộc mặt phẳng (+),
khoảng cách từ x
0
đến mặt phẳng
Do đó để khoảng cách giữa 2 lề là cực đại thì ||w|| phải đạt cực tiểu với điều kiện
Trang 10
Để thuận tiện trong tính toán ta thay ||w|| bằng . Khi đó bài toán được phát biểu là:
Tìm
Với ràng buộc
II.1.3. Bài toán tối ưu hóa
Xét hàm mục tiêu:
Với ràng buộc:
Hàm Lagrange của bài toán trên là:
Với là các nhân tử Lagrange
L đạt cực trị khi:
Thay các biểu thức trên vào hàm L ta có:

Khi đó bài toán được phát biểu lại là:
Với điều kiện:
II.1.4. Giải thuật huấn luyện
Để tìm được siêu phẳng tối ưu ta phải giải quyết bài toán tối ưu hóa.
Tìm
Với điều kiện
Trang 11
Đây là một bài toán tối ưu quy hoạch toàn phương rất lớn. Số lượng biến số bằng
với số lượng mẫu x
i
có nghĩa là có thể từ vài ngàn đến vài chục ngàn, do đó độ phức tạp
của việc giải bài toán tối ưu là rất lớn. Do đó giải thuật huấn luyện là một trong những
phần quan trọng nhất của SVM.
* Điều kiện Karush - Kuhn – Tucker (KKT):
Điều kiện Karush-Kuhn-Tucker (KKT) là điều kiện cần và đủ để 1 điểm là lời giải
tối ưu cho bài toán quy hoạch toàn phương hữu hạn dương. Điều kiện KKT cho bài toán
với mọi i:
Do đó để giải được bài toán tối ưu hóa của SVM, ta phải tìm bộ thỏa điều kiện này.
Có nhiều phương pháp để giải bài toán này, trong đó SMO là một trong những phương
pháp phổ biến nhất hiện nay.
* Giải thuật SMO (Sequential Minimal Optimasation)
SMO là một giải thuật đơn giản giải quyết bài toán tối ưu hóa toàn phương nhanh
chóng mà không cần tốn bộ nhớ lưu trữ ma trận hàm nhân. Tư tưởng của SMO là chia nhỏ
bài toán quy hoạch toàn phương lớn này thành một loạt những vấn đề quy hoạch nhỏ nhất.
Những bài toán nhỏ sẽ được giải quyết bằng cách phân tích, do đó tránh được bài toán tối
ưu toàn phương có thời gian rất lớn. Lượng bộ nhớ sử dụng trong SMO là tuyến tính với
kích thước bộ huấn luyện (O(n) với n là số lượng mẫu huấn luyện), cho phép xử lý những
bài toán rất lớn.
Không giống các phương pháp khác, SMO giải quyết bài toán tối ưu hóa nhỏ nhất
tại mỗi bước. Đối với bài toán tối ưu hóa của SVM, bài toán tối ưu hóa nhỏ nhất bao gồm

hai nhân tử Lagrange bởi vì các nhân tử Lagrange phải thỏa ràng buộc tuyến tính. Tại mỗi
bước, SMO chọn hai nhân tử để tiến hành tối ưu hóa, các nhân tử còn lại xem như hằng số.
Sau khi tối ưu hóa, giá trị của các nhân tử Lagrange sẽ được cập nhật. Giá trị tối ưu hóa
của hai nhân tử Lagrange được tìm bằng cách phân tích, do đó tránh được bài toán tối ưu
hóa toàn phương. Đây cũng chính là điểm mạnh của SMO so với các phương pháp còn lại.
Giải thuật SMO bao gồm 2 thành phần:
− Phần phương pháp phân tích để giải bài toán tối ưu của 2 nhân tử Lagrange
Trang 12
− Phần Heuristic để chọn 2 nhân tử để tối ưu
Các bước chính trong giải thuật SMO:
Bước 1: Khởi tạo mảng alpha bằng 0
Khởi tạo biến delta = 1
Bước 2: Kiểm tra điều kiện KKT, nếu tất cả đều thỏa thì dừng giải thuật, ngược lại qua
bước 3
Bước 3: Chọn 2 nhân tử:
Heuristic 1: Dựa vào delta chọn nhân tử thứ 1
Heuristic 2: Dựa vào nhân tử thứ 1 chọn nhân tử thứ 2
Bước 4: Tối ưu
Tối ưu 2 nhân tử sao cho vẫn đảm bảo điều kiện
Nếu độ biến thiên của hàm Lagrange nhỏ hơn epsilon thì delta = 0, ngược lại delta = 1
Quay lại bước 2
II.1.5. Ưu khuyết điểm của SVM
Ưu điểm:
− Ưu điểm của SVM là độ chính xác phân lớp rất cao. Vì thế, SVM là một trong
những phương pháp phân lớp phổ biến hiện nay.
− SVM có thể được áp dụng cho nhiều bài toán như: Nhận dạng kuôn mặt, nhận dạng
chữ, phân lớp văn bản, …
− SVM cho thời gian phân lớp tương đối nhanh.
Khuyết điểm:
− Thời gian để huấn luyện theo phương pháp SVM lâu, không gian bộ nhớ sử dùng

lớn.
− SVM chỉ được thiết kế cho phân lớp nhị phân. Tuy nhiên trong thực tế cần phải
phân loại nhiều lớp.
II.2. Phân loại đa lớp
Một số phương pháp phân loại đa lớp sử dụng SVM phổ biến hiện nay là: One-
versus-All (OvA), One-against-One (OvO), và phương pháp dựa trên cây nhị phân DDAG.
II.2.1. One-versus-All
Phương pháp này là phân một lớp với các lớp còn lại. Phương pháp này chia bộ
Trang 13
huấn luyện làm 2 loại: các mẫu dương là các mẫu thuộc lớp i, các mẫu âm là các mẫu còn
lại. Sau đó ta sẽ huấn luyện tập này. Gọi hàm phân lớp của lớp thứ i là:
D
i
(x) = w
i
T
x + b
Đối với một vector x cần được phân lớp, ta tính tất cả các hàm D
i
(x). Luật phân lớp là: Nếu
D
i
(x) > 0 thì x thuộc lớp i, ngược lại x không thuộc lớp i
II.2.2. One-Against-One
Trong phương pháp này là ta sẽ phân từng cặp lớp với nhau. Đối với bài toán phân
lớp k lớp ta xây dựng k(k-1)/2 bộ phân lớp SVM nhị phân. Đối với mỗi cặp lớp i, j, ta lấy
các mẫu thuộc lớp i gán cho nhãn dương (+1), các mẫu thuộc lớp j gán cho nhãn âm (-1).
Sau đó phân lớp bộ dữ liệu này. Gọi hàm phân lớp cho mỗi cặp lớp i, j là:
D
ij

(x) = w
ij
T
x + b
Các thử nghiệm thực tế đã chứng tỏ rằng phương pháp OvO cho kết quả có độ chính
xác cao hơn phương pháp OvA.
II.2.3. DDAG(Decision Directed Acyclic Graph)
Platt, Cristianini và J. Shawe-Taylor đã đề xuất phương pháp phân lớp pairwise dựa
trên cây quyết định gọi là Decision Directed Acyclic Graph (DDAG).
Một Directed Acyclid Graph (DAG) là một đồ thị có hướng và không chu trình. Một
DAG có gốc (Rooted DAG) là DAG có một node duy nhất mà không có cung chỉ vào nó
Decision Directed Acyclid Graph (DDAG) trên k lớp là một đồ thị DAG nhị phân
có gốc với k node lá được gắn nhãn bởi k lớp, mỗi node trong số n = k(k – 1)/2 node trong
được gắn nhãn bởi một cặp lớp, và SVM được dùng để huấn luyện hàm phân loại giữa 2
lớp đó
Khi phân lớp dữ liệu x, bắt đầu từ node gốc với nhãn là cặp i, j. Nếu hàm quyết định
tại node này dương, thì cung bên trái được chọn gồm tất cả những node mà nhãn không
bao gồm j, ngược lại cung bên phải được chọn gồm tất cả những node mà nhãn không bao
gồm i. Tiếp tục tương tự với các node mà ta gặp cho đến khi găp node lá. Khi ấy dữ liệu x
sẽ được phân vào lớp là nhãn của node lá đó. Đường đi xuyên qua DDAG được gọi là
đường đi định giá (evaluation path)
DDAG tương đương với những bước trên một danh sách, mỗi node loại bỏ một lớp
khỏi tập các lớp. Danh sách này được khởi tạo là một danh sách gồm tất cả các lớp. Tại
Trang 14
mỗi node trên DDAG, nếu hàm quyết định cho kết quả là một lớp nào thì lớp còn lại sẽ bị
loại bỏ khỏi danh sách. Đến khi nào danh sách chỉ còn một lớp thì dữ liệu x được phân vào
lớp đó
III. CHƯƠNG TRÌNH:
Chương trình gồm 3 phần
− Tiền xử lý: có nhiệm vụ chính là nhận vào file văn bản thô, sau đó tiến hành xử lý

để xuất ra file chứa các vector tương ứng với các văn bản đầu vào.
− Huấn luyện: các văn bản sau khi xử lý, sẽ xuất ra các file chứa các vector được
vector hóa từ các văn bản. Sau đó các file này được đưa vào module huấn luyện.
Sau khi huấn luyện module này sẽ xuất ra các file huấn luyện.
− Phân lớp: các văn bản cần phân lớp được đưa vào module tiền xử lý văn bản,
module này sẽ xử lý và xuất ra các vector của các văn bản. Vector này được đưa vào
module phân lớp, module này sẽ xác định lớp kết quả của văn bản.
Sau khi qua giai đoạn tiền xử lí dữ liệu và huấn luyện để có thể phân lớp một đoạn văn bản
thuộc thể loại nào, chương trình cần các thông số:
• File huấn luyện: file này được tạo ra ở giai đoạn huấn luyện phân loại văn bản
• File kết quả và thư mục bộ phận lớp là các thông tin về mô hình cây và bộ phân
lớp theo mô hình cây.
• Các key file và class file là các file chức các thông tin về các từ khóa của văn
bản và các lớp (thể loại) văn bản.
• Sau khi nhập văn bản và nhấn nút Phân lớp, máy sẽ tự động nhận diện văn bản
thuộc thể loại nào.
Trang 15
Trang 16
IV. KẾT LUẬN:
Trong tiểu luận này đã trình bày bài toán phân lớp văn bản và các vấn đề liên quan
đến phân lớp văn bản như biểu diễn đặc trưng, vector hóa văn bản. Ngoài ra, tiểu luận cũng
đã trình bày về phương pháp phân lớp Support Vector Machines, một phương pháp phân
lớp có hiệu quả rất cao cùng với các vấn đề liên quan.
Nhược điểm của phương pháp SVM là nó chỉ có khả năng phân lớp nhị phân. Do đó
đã có rất nhiều phương pháp kết hợp các bộ phân lớp nhị phân SVM để giải quyết vấn đề
phân đa lớp. Tiểu luận cũng đã trình bày một số phương pháp phân đa lớp thông dụng, phổ
biến hiện nay.
Trang 17
Tài liệu tham khảo:
• An Introduction to Support Vector Machines and Other Kernel-based Learning

Methods - Nello Cristianini và John Shawe Taylor.
• Support Vector Machines for Classification and Regression - Steve R. Gunn.
• A Tutorial on Support Vector Machines for Pattern Recognition - Christopher J.C.
Burges.
• Large margin DAGs for Multiclass classification - J.C. Platt, N. Cristianini, và J.
Shawe-Taylor.
• Half-against-Half Multi-class Support Vector Machines - H. Lei, Venu
Govindaraju.
• />Trang 18

×