Tải bản đầy đủ (.pdf) (30 trang)

Một số thuật toán bayes phân lớp đa nhãn và áp dụng vào phân lớp văn bản đa nhãn lĩnh vực điện tử

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

1

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ CHĂM

MỘT LỚP THUẬT TOÁN BAYES PHÂN LỚP ĐA NHÃN
VÀ ÁP DỤNG VÀO PHÂN LỚP VĂN BẢN ĐA NHÃN
LĨNH VỰC ĐIỆN TỬ

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

HÀ NỘI - 2012


2

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ CHĂM

MỘT LỚP THUẬT TOÁN BAYES PHÂN LỚP ĐA NHÃN VÀ
ÁP DỤNG VÀO PHÂN LỚP VĂN BẢN ĐA NHÃN
LĨNH VỰC ĐIỆN TỬ

Ngành: Công nghệ Thông tin
Chuyên ngành: Hệ thống Thông tin
Mã số: 60 48 05


LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS. TS Hà Quang Thụy

Hà Nội - 2012


4

Mục lục
Lời cam đoan .................................................................................................................. 1
Lời cảm ơn ...................................................................................................................... 2
Tóm tắt nội dung ........................................................................................................... 3
Mục lục ........................................................................................................................... 4
Bảng các ký hiệu và chữ viết tắt ................................................................................... 6
Danh sách bảng biể u ..................................................................................................... 7
Danh sách hình ảnh ....................................................................................................... 8
Mở đầu ............................................................................................................................ 9
CHƢƠNG 1. GIỚI THIỆU CHUNG VỀ PHÂN LỚP ĐA NHÃN VĂN BẢN ...... 11
1.1 Giới thiệu chung .................................................................................................. 11
1.1.1 Phân lớp văn bản ........................................................................................... 11
1.1.2 Phân lớp đa nhãn (Multiple Label Class - MLC).......................................... 12
1.1.3 Ý nghĩa và ứng dụng ..................................................................................... 13
1.2 Cách thức phân lớp đa nhãn................................................................................. 14
1.2.1 Phân lớp dựa vào xếp hạng ........................................................................... 14
1.2.2 Phân lớp theo cấu trúc phân cấp (Hierarchical structure) ............................. 14
1.3 Phương pháp phân lớp đa nhãn............................................................................ 15
1.3.1 Phương pháp chuyển đổi bài toán ................................................................. 15
1.3.2 Phương pháp thích nghi thuật toán ............................................................... 20
Tóm tắt chương 1 ....................................................................................................... 22

CHƢƠNG 2. THUẬT TOÁN PHÂN LỚP ĐA NHÃN BAYES ............................. 23
2.1 Phân lớp Bayes .................................................................................................... 23
2.2 Giới thiệu chung về phân lớp đa nhãn Bayes ...................................................... 25
2.3 Phân lớp đa nhãn Bayes dựa trên chuỗi phân lớp ................................................ 27
2.4 Phân lớp đa nhãn Bayes dựa trên chuỗi phân lớp cải tiến ................................... 29
2.5Phân lớp đa nhãn Bayes trực tuyến....................................................................... 33
Tóm tắt chương2 ........................................................................................................ 37


5
CHƢƠNG 3. THỰC NGHIỆM VÀ ĐÁNH GIÁ ...................................................... 38
3.1 Môi trường và các công cụ sử dụng thực nghiệm ............................................... 38
3.2 Dữ liệu thực nghiệm ............................................................................................ 39
3.2.1 Đặc trưng một tài liệu thực nghiệm .............................................................. 39
3.2.2 Thu thập dữ liệu ............................................................................................ 41
3.3 Thực nghiệm ........................................................................................................ 44
3.3.1 Phát biểu bài toán .......................................................................................... 44
3.3.2 Mô hình đề xuất ............................................................................................ 45
3.3.3 Mô tả cài đặt chương trình ............................................................................ 50
3.3.4 Giới thiệu hệ thống........................................................................................ 51
3.3.5 Thực nghiệm hệ thống .................................................................................. 55
3.3.6 Đánh giá kết quả thực nghiệm ...................................................................... 57
Tóm tắt chương 3 ....................................................................................................... 59
Kết luận và định hƣớng phát triển ............................................................................ 60
TÀI LIỆU THAM KHẢO........................................................................................... 61
PHỤ LỤC ..................................................................................................................... 62
Phụ lục I: Kết quả phân lớp chi tiết với thuật toán CC .............................................. 62
Phụ lục II: Kết quả phân lớp chi tiết với thuật toán ECC .......................................... 64



2
Tóm tắt nội dung
Phân lớp văn bản nói chung và phân lớp đa nhãn văn bản nói riêng là
một lĩnh vực tuy không mới nhưng mang tính cấp thiết trong tất cả các lĩnh
vực: kinh tế, chính trị, văn hóa, xã hội, giáo dục – đào tạo, …
Phân lớp đa nhãn văn bản không chỉ là cách thức gán cho mỗi văn
bản, giáo trình hay tài liệu các nhãn lớp nào đó mà thực sự hướng tới việc
phân tích ngữ nghĩa, từ ngữ của văn bản giúp máy tính hiểu được tài liệu đó
nói gì và có thể thuộc về lớp tài liệu nào. Việc này càng trở lên quan trọng
trong các Nhà trường vì lượng tài liệu, giáo trình ngày càng lớn do ngành
nghề mở rộng, số lược học sinh, sinh viên theo học ngày càng nhiều; chưa
kể đến kho giáo trình điện tử của mỗi trường, đặc biệt là kho giáo trình điện
tử được mang lại từ hệ thống Internet. Từ đó giúp người quản lý trực tiếp có
thể kiểm soát được số lượng giáo trình hiện có chi tiết hơn: có bao nhiêu
giáo trình? phục vụ cho những ngành học nào? Giáo trình cần tìm có thể
được tìm thấy trong lớp tài liệu nào? …
Luận văn tập trung nghiên cứu một số thuật toán phân lớp đa nhãn
văn bản Bayes và tiến hành thử nghiệm áp dụng mô hình đề xuất trên miền
dữ liệu là file dữ liệu được tổng hợp từ các giáo trình/tài liệu Điện tử tại
trung tâm thư viên và kho dữ liệu mở của Trường Cao đẳng Công nghệ
Viettronics và cho ra sản phẩm là hệ thống phân lớp đa nhãn tài liệu
NVClassification (Naïve Bayes Classification). Hệ thống có ba phần: Phần
Client, phần Server và phần giao tiếp giữa Client và Server sử dụng Thrift 0.
81.

1

http://thrift. apache. org/



Mở đầu
Những thành tựu những năm gần đây trong lĩnh vực máy tính, thông
tin và những công nghệ lưu trữ làm cho dữ liệu thu thập và được lưu trữ với
lượng rất lớn. Các kho dữ liệu tuy rất lớn nhưng thông tin lại nghèo nàn như
hiện tượng “ngập trong dữ liệu nhưng thiếu thông tin”. Do đó, vấn đề đặt ra
là làm thế nào để các tổ chức, cá nhân có thể thu được các tri thức và phân
lớp các dữ liệu từ kho dữ liệu khổng lồ đó, tức là gán cho nó một nhãn và
đặt nó vào một lớp cụ thể nào đó.
Từ các yêu cầu đó, bài toán phân lớp đa nhãn các văn bản, tài liệu
được nhiều công trình nghiên cứu đề cập đến.
Phân lớp đa nhãn là bài toán phân lớp cho phép một đối tượng có thể
có nhiều hơn một nhãn. Chẳng hạn như, trong bài toán phân lớp văn bản,
nếu mỗi nhãn lớp tương ứng với một chủ đề thì một văn bản có thể thuộc
vào nhiều chủ đề, tương ứng là văn bản đó được gán nhiều nhãn lớp. Nhiều
công trình nghiên cứu về các thuật toán phân lớp đã được công bố, chẳng
hạn như [DCH10, GM05, GS04, PC10, RD10, TK07, ZGH10, ZPH09],
trong đó công trình [TK07] cho một khái quát về các giải pháp phân lớp đa
nhãn tới năm 2007. Từ năm 2007 tới nay, nhiều giải pháp phân lớp đa nhãn
tiếp tục được đề xuất, chẳng hạn như [DCH10, PC10, RD10, ZGH10,
ZPH09].
Một lớp thuật toán phân lớp đa nhãn điển hình là các thuật toán phân
lớp đa nhãn Bayes. Một số giải pháp phân lớp Bayes đa nhãn đã được đề
xuất, chẳng hạn như [DCH10, ZGH10, ZPH09].
Luận văn tập trung nghiên cứu một số thuật toán phân lớp đa nhãn
Bayes và ứng dụng vào phân lớp đã nhãn các tài liệu thuộc lĩnh vực điện tử
là lĩnh vực đã và đang được đào tạo tại Trường Cao đẳng Công nghệ
Viettronics.
Nội dung luận văn gồm có 3 chương:
Chương 1: Giới thiệu chung về phân lớp đa nhãn văn bản.
Chương 2: Giới thiệu một số thuật toán phân lớp đa nhãn văn bản

Bayes.
Đây là cơ sở để tác giả đưa ra mô hình thực nghiệm với những cải
tiến ở chương 3.
Chương 3: Thực nghiệm và đánh giá.
Trình bày các bước cài đặt chương trình thi thành thực nghiệm hệ
thống cài đặt theo mô hình đề xuất. Đồng thời tiến hành đánh giá kết quả
thử nghiệm của hệ thống. Kết quả thực nghiệm cho thấy tính đúng đắn và
khả năng áp dụng của mô hình vào thực tế là khả quan.
Phần kết luận và định hướng phát triển luận văn: Tóm lược
những nội dung chính đạt được của luận văn. Nghiên cứu, triển khai giải
pháp nâng cao hiệu quả hệ thống phần mềm đã xây dựng.


7
Chương 1. Giới thiêụ chung về phân lớp đa nhãn văn bản
1.1 Giới thiệu chung
1.1.1 Phân lớp văn bản
Phân lớp là một trong những mối quan tâm lớn của con người trong
quá trình làm việc với một tập hợp đối tượng. Điều này giúp họ có thể tiến
hành việc sắp xếp, tìm kiếm các đối tượng một cách thuận lợi. Khi biểu diễn
đối tượng vào các hệ thống thông tin, tính chất lớp vốn có của đối tượng
trong thực tế thường được biểu diễn tương ứng bằng một thuộc tính “lớp”
riêng biệt [TK07].
Bài toán phân lớp văn bản được phân biệt một cách chi tiết hơn,
phân lớp nhị phân khi miền áp dụng chỉ có 2 lớp (|C| = 2), và phân lớp đa
nhãn khi miền áp dụng có nhiều hơn hai lớp (|C| >2) [TK07].
Phân lớp văn bản là một trong những nhiệm vụ quản lý tài liệu dựa
trên nội dung. Đây là một vấn đề quan trọng trong việc gán một tài liệu vào
một hoặc nhiều lớp cho trước[TK07, XL05].
1.1.2 Phân lớp đa nhãn (Multiple Label Class - MLC)

a. Khái quát
Phân lớp đơn nhãn, mỗi tài liệu chỉ được gán chính xác vào một và
chỉ một lớp; Phân lớp đa nhãn (MLC) cho phép gán một đối tượng (văn bản,
giáo trình, tài liệu,…) vào một hoặc nhiều lớp đồng thời [HPDN09, DCH10,
GM05, TK07].
Phân lớp đa nhãn được các nhà nghiên cứu định nghĩa thống nhất
như là việc gán tên các chủ đề (tên lớp/nhãn lớp) đã được xác định trước
vào các văn bản dựa trên nội dung của nó [TK07].
b. Bài toán phân lớp đa nhãn
Trong [DCH10], bài toán phân lớp đa nhãn được Dembczyński và
các cộng sự mô tả chi tiết như sau:
Cho χ biểu thị một không gian tính năng/đặc trưng, và L =
{λ1,λ2,…,λm} là một tập hợp hữu hạn của các nhãn lớp. Giả định rằng một
phiên bản x  là χ (không tất định) liên kết với một tập hợp con của các
nhãn L 2L, tập hợp con này thường được gọi là các thiết lập của nhãn có
liên quan, trong khi phần bù L\L được coi là không thích hợp đối với x. Từ
đó, xác định một tập hợp L các nhãn có liên quan với một vector nhị phân
y=(y1, y2,…, ym), trong đó yi=1λiL. Y = {0, 1}m xác định được tập nhãn
có khả năng.


8
Giả định quan sát được tạo ra một cách độc lập và ngẫu nhiên theo
một phân bố xác suất P(X, Y) trên χ × Y, nghĩa là một quan sát y = (y1, ...
,ym) là phép thể hiện tương ứng của vector Y=(Y1,Y2, … ,Ym). Tác giả biểu
thị Px(Y)=P(Y|x) phân phối có điều kiện của Y cho X = x, và
Px(i) (Yi )  P(i) (Yi | x) phân phối biên tương ứng của Yi:

x(i ) b  


  ( y)

x
yY : y1  b

(1)

Một phân lớp đa nhãn h là một X → Y chỉ định một tập hợp con nhãn
(dự đoán) mỗi trường hợp x χ. Vì vậy, số lượng của một phân lớp h là một
vector:
h(x) = (h1(x), h2(x), … , hm(x)).
Thông thường, MLC được coi là một bài toán xếp hạng, trong đó các
nhãn được sắp xếp theo mức độ phù hợp. Sau đó, dự báo sẽ nhận mẫu xếp
hạng hoặc chức năng chấm điểm:
f(x) = (f1(x), f2(x), . . . , fm(x))
(2)
Các nhãn λi này chỉ đơn giản là sắp xếp thứ tự giảm dần theo điểm số
fi(x) của chúng.
1.1.3 Ý nghĩa và ứng dụng
Phân loại các hợp chất hữu cơ, phân nhóm âm nhạc, phân lớp ngữ
nghĩa; Lọc nội dung: loại bỏ thư rác, lọc thông tin trên trang web. Phân lớp
các tập hợp văn bản vào các chủ đề cho trước, quản lý tri thức và tìm kiếm
thông tin trên Internet.
1.2 Cách thức phân lớp đa nhãn
1.2.1 Phân lớp dựa vào xếp hạng
Một cách thức phân lớp thuộc về nhóm học có giám sát và liên quan
chặt chẽ đến phân lớp đa nhãn là xếp hạng (Ranking). Nhiệm vụ xếp hạng
là sắp xếp theo thứ tự tập hợp các nhãn L [TK07, GM05].
1.2.2 Phân lớp theo cấu trúc phân cấp (Hierarchical structure)
Năm 2001, Clare & King chỉ ra rằng, trong một số bài toán phân lớp

cụ thể, các nhãn thuộc về một cấu trúc phân cấp. Hệ thống phân cấp lên đến
4 cấp [TK07].
Khi các nhãn trong một tập hợp dữ liệu thuộc về một cấu trúc phân
cấp thì chúng ta gọi đó là phân lớp theo cấu trúc phân cấp. Nếu mỗi mẫu
được cấp nhãn với nhiều hơn một nút trong cấu trúc phân cấp, thì cách thức
phân lớp này được gọi là phân lớp đa nhãn phân cấp [TK07].


9
1.3 Phương pháp phân lớp đa nhãn
1.3.1 Phương pháp chuyển đổi bài toán
Để minh họa phương pháp này, chúng ta sẽ sử dụng dữ liệu của Bảng
1.1. Nó bao gồm bốn mẫu (tài liệu trong trường hợp này) thuộc về một hoặc
nhiều của 4 lớp: Sports, Religion, Science, Politics [TK07].
Bảng 1.1: Mẫu bộ dữ liệu đa nhãn

a. Phương pháp 1 (được đặt tên là PT1)
Phương pháp này lựa chọn một cách chủ quan hoặc ngẫu nhiên một
trong nhiều nhãn của từng phiên bản đa nhãn và loại bỏ các nhãn còn lại.
b. Phương pháp 2 (được đặt tên là PT2)
Phương pháp này chỉ đơn giản là loại bỏ tất cả các phiên bản đa nhãn
ra khỏi tập hợp dữ liệu. Bảng 1.2 và Bảng 1.3 cho thấy bộ dữ liệu được
chuyển đổi bằng cách sử dụng phương pháp PT1 và PT2. Hai phương pháp
chuyển đổi bài toán loại bỏ nhiều thông tin của dữ liệu gốc đa nhãn [TK07].
Bảng 1.2: Dữ liệu được chuyển đổi bằng phương pháp PT1

Bảng 1.3: Dữ liệu được chuyển đổi bằng phương pháp PT2

c. Phương pháp 3 (được đặt tên là PT3)
Phương pháp này xem xét mỗi bộ nhãn khác nhau tồn tại trong bộ dữ

liệu đa nhãn như là một đơn nhãn. Nên nó nhận biết một phân lớp đơn nhãn
H: X→P(L), trong đó P(L) là tập hiệu suất của L. Bảng 1.4 cho thấy kết quả
của việc chuyển đổi dữ liệu của Bảng 1.1 bằng cách sử dụng phương pháp
này. Một trong những mặt hạn chế của PT3 là nó có thể dẫn đến các tập hợp
dữ liệu với số lượng lớn các lớp và ít mẫu trong mỗi lớp [TK07].


10
Bảng 1.4: Dữ liệu được chuyển đổi bằng phương pháp PT3

d. Phương pháp 4 (được đặt tên là PT4)
Phương pháp chuyển đổi bài toán phổ biến nhất (gọi là PT4) nhận
biết |L| phân lớp nhị phân Hl: X → {l, ¬l}, cho mỗi nhãn khác nhau l trong
L. Nó biến đổi các dữ liệu đầu vào |L| tập dữ liệu Dl chứa tất cả các mẫu của
tập dữ liệu gốc, được gắn nhãn l nếu nhãn của các mẫu gốc là l và được gắn
nhãn ¬l của các mẫu gốc không phải l.
Đối với việc phân lớp của một mẫu mới x, phương pháp này đưa ra
kết quả là một tập nhãn hợp nhất, sản phẩm của |L| phân lớp [TK07]:
H PT 4 x   {l} : H ( x)  l

(3)

lL

Hình 1.1 cho thấy bốn tập hợp dữ liệu được PT4 tạo ra khi áp dụng
cho các dữ liệu của Bảng 1.1.

Hình 1.1: Bốn tập hợp dữ liệu được PT4 tạo ra
e. Phương pháp 5 (được đặt tên là PT5)
Trước tiên, nó tách từng mẫu (x,Y) trong |Y| thành (x, l) với mọi lY.

Sau đó, nó nhận biết một phân lớp đơn nhãn dựa trên vùng phủ từ bộ dữ liệu
chuyển đổi. Phân lớp hàm suy rộng là những phân lớp có thể tạo ra một hàm
suy rộng có bậc chính xác (hoặc xác suất) cho tất cả các nhãn trong L. Cuối


11
cùng, hàm suy rộng được xử lý để đưa ra một tập hợp nhãn. Bảng 1.5 cho
thấy kết quả của việc chuyển đổi dữ liệu của Bảng 1.1 bằng cách sử dụng
phương pháp này[TK07].
Bảng 1.5: Dữ liệu được chuyển đổi bằng phương pháp PT5
Ex
1
1
2
2

Class
Sports
Politics
Science
Politics

Ex
3
4
4

Class
Sports
Religion

Science

f. Phương pháp nhị phân (Binary relevance Method - BM)
Phương pháp BM biến đổi bài toán đa nhãn bất kỳ thành một bài toán
nhị phân cho mỗi nhãn. Do đó, phương pháp này tạo phân lớp nhị phân |L|,
C1,…, C|L|. Mỗi lớp Cj có trách nhiệm dự đoán sự kết hợp 0/1 cho mỗi nhãn
tương ứng ljL. Phương pháp BM luôn loại bỏ cơ sở giả định về độc lập
nhãn [ZPH09].
g. Phương pháp chuỗi phân lớp (Classifier Chains – CC)
Phương pháp chuỗi phân lớp được sử dụng có thể khắc phục và có
giá trị hơn phương pháp BM bởi những ưu điểm của nó và bất kỳ phương
pháp nào gắn với nó [ZPH09], phương pháp này sẽ được trình bày cụ thể
hơn trong mục 2.3 của Chương 2.
h. Phương pháp kết hợp nhãn (label combination method - CM)
Cơ sở của phương pháp này là kết hợp các bộ nhãn nguyên tử (đơn)
nhằm tạo ra một bài toán đơn nhãn đại diện cho tất cả các tập con nhãn
riêng biệt trong bộ gốc đa nhãn. Mỗi (x,S) được chuyển đổi thành (x,l),
trong đó l là nhãn đơn đại diện cho một tập hợp nhãn con riêng biệt. Bằng
cách này, các phương pháp dựa trên CM đã trực tiếp tính đến các mối tương
quan nhãn. Đối với các bộ dữ liệu có kích thước nhỏ thì phương pháp này
có thể chính xác hơn là đối với các bộ dữ liệu lớn [ZPH09].
1.3.2 Phương pháp thích nghi thuật toán
a. Phương pháp PT6
Năm 2001, Clare và King chuyển thể các thuật toán C4.5 [TK07] cho
dữ liệu đa nhãn. Họ đã thay đổi công thức tính toán dữ liệu ngẫu nhiên như
sau:
N

entropy ( S )   ( p(ci ) log p(ci )  q(ci ) log q(ci ))


(4)

i 1

Trong đó p(ci) là tần số tương đối của lớp ci và q(ci) = 1 - p(ci). Họ
cũng cho phép các đa nhãn trong cùng lớp [TK07].


12
Adaboost.MH và Adaboost.MR là hai phần mở rộng cho phân lớp đa
nhãn của AdaBoost. Trong AdaBoost.MH khi các kết quả đầu ra của các
phân lớp yếu là dương (positive) cho một mẫu x mới và một nhãn l thì ta coi
mẫu này có thể được gắn nhãn l, trong khi nếu nó là âm (negative), thì mẫu
này không gắn nhãn l [TK07].
Hai thuật toán này là sự thích nghi của một phương pháp tiếp cận đặc
biệt, cốt lõi của các thuật toán này là thực sự sử dụng việc chuyển đổi bài
toán (được đặt tên là PT6): Mỗi mẫu (x, Y) được tách thành |L| mẫu
(x,l,Y[l]), cho tất cả các lL, trong đó Y[l]=1 nếu lY, và Y[l] = -1 cho các
trường hợp khác. Bảng 1.6 cho thấy kết quả của việc chuyển đổi dữ liệu của
Bảng 1.1 bằng cách sử dụng phương pháp này [TK07].
Bảng 1.6: Dữ liệu được chuyển đổi bằng phương pháp PT6
Ex.
1
1
1
1
2
2
2
2


l
Sport
Relogion
Science
Politics
Sport
Religion
Science
Politics

Y[l]
1
-1
-1
1
-1
-1
1
1

Ex.
3
3
3
3
4
4
4
4


l
Sport
Relogion
Science
Politics
Sport
Religion
Science
Politics

Y[l]
1
-1
-1
-1
-1
1
1
-1

b. Phương pháp ML – kNN (Multiple Label – k Neibough)
ML - kNN là sự chuyển thể của thuật toán k người láng giềng gần
nhất đối với các dữ liệu đa nhãn (tương tự như PT4). Về bản chất, ML-kNN
sử dụng các thuật toán kNN độc lập cho mỗi nhãn l: Nó tìm từ mẫu k gần
nhất đến các trường hợp kiểm tra và xem xét đối tượng được gắn nhãn với l
là dương và đối tượng còn lại là âm. Điểm khác biệt chủ yếu của phương
pháp này từ việc áp dụng thuật toán kNN ban đầu đến vấn đề chuyển đổi sử
dụng PT4 là việc sử dụng của xác suất trước. ML-kNN cũng có khả năng
xếp thứ hạng của nhãn như là một kết quả đầu ra [TK07].



13
Chương 2. Thuật toán phân lớp đa nhãn Bayes
2.1 Phân lớp Bayes
Kỹ thuật phân lớp của Bayes dựa trên cơ sở định lý Bayes. Với mỗi
loại đối tượng (object) thì thuật toán Bayes tính cho mỗi lớp đối tượng một
xác suất mà mẫu cần phân lớp có thể thuộc vào lớp đó.
Ý tưởng chính của thuật toán là tính xác suất hậu nghiệm của sự kiện
c xuất hiện sự kiện x đã có trong không gian ngữ cảnh  thông qua tổng hợp
các xác suất tiên nghiệm của sự kiện c xuất hiện khi sự kiện x đã có trong tất
cả các điều kiện riêng T thuộc không gian :
pc | x,    p(c | x, T ) p(T | x )

(5)

Tin

Trong trường hợp phân lớp văn bản, xét biểu diễn văn bản thông qua
tập các từ khóa có trong văn bản đó. Gọi V là tập tất cả các từ vựng. Giả sử
có N lớp tài liệu là c1, c2,c3, … cN. Mỗi lớp ci có xác xuất p(ci) và ngưỡng
CtgTshi; Gọi p(c| Doc) là xác xuất để tài liệu Doc thuộc lớp c hay “xác xuất
để sự kiện c xuất hiện khi đã có sự kiện Doc”.
Cho một lớp c và một tài liệu Doc, nếu xác xuất p(x|Doc) tính được
lớn hơn hoặc bằng giá trị ngưỡng CtgTshc của lớp c thì kết luận tài liệu Doc
thuộc vào lớp c.
Tài liệu Doc được biểu diễn như một vector có kích thước là số từ
khóa trong tài liệu. Mỗi thành phần chứa một từ trong tài liệu và tần suất
xuất hiện của từ đó trong tài liệu. Thuật toán được thực hiện trên tập từ
vựng V, p(x| Doc) và quyết định tài liệu Doc sẽ thuộc vào lớp nào.

Xác xuất p(x| Doc) được tính theo công thức sau:

Trong đó: |V| là số lượng các từ khóa có trong từ vựng V; Fj là từ
khóa thứ j trong từ vựng V; TF(Fj| Doc) là tần suất của từ Fj trong tài liệu
Doc (bao gồm cả từ đồng nghĩa); TF(Fj|C) là tần suất của từ Fj trong lớp c
(số lần Fj xuất hiện trong tất cả các tài liệu thuộc lớp c); p(Fj|c) là xác suất
có điều kiện để từ Fj xuất hiện trong tài liệu của lớp c.


14
Để giảm sự phức tạp và thời gian tính toán, để ý rằng, không phải tài
liệu Doc đã cho đều chứa tất cả các từ trong tập từ vựng V. Do đó, TF(Fi |
Doc) = 0 khi từ Fi thuộc V nhưng không thuộc tài liệu Doc, nên ta có
p((Fj|c))TF(Fj, Doc) = 1. Vậy, công thức (6) được viết lại như sau:

 ( P( F

p (c ) *
pc | Doc 

TF ( F j , Doc)

j

| c))

F j Doc

(8)


n

 p(c ) *  ( P( F | c))

TF ( Fi , Doc)

i 1

i

i

F j Doc

Như vậy, trong quá trình phân lớp không dựa vào toàn bộ tập từ vựng
mà chỉ dựa vào các từ khóa xuất hiện trong tài liệu Doc [HPDN09].
2.2 Giới thiệu chung về phân lớp đa nhãn Bayes
Phân lớp đa nhãn Bayes giả định là tất cả các đặc trưng là độc lập
cho các nhãn lớp (độc lập với ngữ cảnh và vị trí của nó trong tài liệu).
D

p( x | y  c)   p( xi | y  c)

(9)

i 1

Trong trường hợp với dữ liệu Gausian, nhận được kết quả:
D


p( x | y  c, c )   N ( xi | ic ,  ic )

(10)

i 1

Vì vậy, chỉ cần ước tính các thông số Gausian riêng biệt C  D, các ic, ic.
Cho X = k, có nghĩa là từ X xuất hiện chính xác k lần, với k = 0:K-1,
để đơn giản, chúng ta sẽ nói từ này có trọng số k (Nếu từ xuất hiện nhiều
hơn K - 1 lần trong một tài liệu, thì chỉ coi nó xuất hiện K - 1 lần trong tài
liệu; ở đây K sử dụng như một cận trên). Trong trường hợp này, ta có thể
đại diện cho mật độ lớp có điều kiện như là một sản phẩm của đa thức:
D

K

I ( xi  k )
p( x | Y  c,  )  ick

(11)

i 1 k 1

Trong đó, ick = p(Xi=k|Y=c) là xác suất khả năng từ thứ i xuất hiện
k lần trong lớp c (Rõ ràng K ick  1 với mọi i, c).
k 1

2.3 Phân lớp đa nhãn Bayes dựa trên chuỗi phân lớp
Chuỗi phân lớp (Classifier Chains – CC) [ZPH09].
Mô hình phân lớp đa nhãn dựa trên CC liên quan đến phân lớp nhị

phân |L| như BM (BM biến đổi bất kỳ vấn đề nhiều nhãn vào một vấn đề nhị
phân cho mỗi nhãn; do đó phương pháp này huấn luyện |L| phân lớp nhị
phân C1, … C|L|). Một số ký hiệu, đối với tài liệu huấn luyện (x,S), trong đó:
S  L được biểu diễn đặc trưng bởi vector nhị phân (l1,l2,…,l|L|)
{0,1}|L| và x là một ví dụ vector đặc trưng.


15
Thủ tục huấn luyện được trình bày trong hình 2.1 sau đây:
TRAINING (D={(x1, S1), …, (xn, Sn)})
1 for j1 … |L|
2
do ► single-label transformation and training
3
D’  {}
4
for (x, S)  D
5
D’  D’  ((x, l1, …, lj-1, lj)
6
► train cj to predict binary relevance of lj
7
Cj : D’ lj  {0, 1}

Hình 2.1: Giai đoạn huấn luyện (tạo ra) tập dữ liệu D
và bộ nhãn L của CC [ZPH09]
Trong đó, mỗi chuỗi C1,…, C|L| của phân lớp nhị phân được hình
thành. Mỗi phân lớp Cj trong chuỗi có trách nhiệm nhận biết và dự đoán kết
hợp nhị phân của nhãn Lj với không gian tính năng đã cho, bổ sung với tất
cả các các dự đoán nhị phân liên quan trước đó trong chuỗi l1…lj-1. Quá

trình phân lớp bắt đầu C1 và lan truyền dọc theo chuỗi: C1 xác định Pr(l1|x)
và tất cả các phân lớp sau: C2 …C|L| dự đoán Pr(lj| xi, j1,lj-1). Quá trình phân
lớp này được trình bày trong Hình 2.2.
CLASSIFY (x)
1 Y  {}
2 for j  1 to |L|
3
do Y  Y  (lj  Cj: (x, l1,…, lj-1))
4 return (x, Y) ► the classified example

Hình 2.2: Giai đoạn dự đoán của CC cho phiên bản kiểm tra x
Phương pháp chuỗi này thông qua thông tin nhãn giữa các lớp, CC
xem xét mối tương quan nhãn và từ đó khắc phục vấn đề độc lập nhãn của
phương pháp phân lớp nhị phân (BM).
CC không thể thực hiện song song được, nó chỉ có thể diễn ra tuần tự
và do đó chỉ yêu cầu một bài toán nhị phân trong bộ nhớ tại mọi thời điểm
trong chuỗi thời gian – đấy là một lợi thế rõ ràng hơn các phương pháp
khác. Trình tự của chính các chuỗi đã ảnh hưởng đến độ chính xác.
2.4 Phân lớp đa nhãn Bayes dựa trên chuỗi phân lớp cải tiến
Chuỗi phân lớp theo xác suất (Probabilistic Classifier Chains - PCC),
nhóm tác giả đề nghị một chương trình xác suất để xem xét vấn đề từ quan
điểm giảm thiểu rủi ro và dự đoán tối ưu Bayes [DCH10].


16
Cho một phiên bản x, xác suất (có điều kiện) của mỗi nhãn kết hợp
y=(y1,ym)Y có thể được tính bằng cách sử dụng quy tắc tính sản phẩm của
m
xác suất:
P ( y)  P ( y ). p ( y | y ,... y )

(12)
x

x

1



x

i

1

i 1

i 2

Vì vậy, để đánh giá sự phân bố của các nhãn, phải coi m của hàm fi(.)
trên không gian đầu vào tăng cường X  {0,1}i-1, ta nói y1,…, yi-1 như các
thuộc tính bổ sung:
fi : X  {0,1}i 1  [0,1]
( x, y1 ,..., yi 1 )  P( yi  1 | x, y1 ,... yi 1 )

(13)

Giả thiết rằng, hàm fi(.) được coi là một xác suất phân lớp có xác suất
dự đoán là y1=1 hoặc tối thiểu cũng phải xấp xỉ như thế. Do đó, công thức
(12) trở thành:

m

Px ( y )  f1 ( x). f i ( x, y1 ,... yi1 )

(14)

i 2

Với Px (và chức năng mất L(.) đã được giảm thiểu), một dự đoán tối
ưu (15) sau đó có thể được xuất phát một cách rõ ràng. Cách tiếp cận này
được gọi là chuỗi phân lớp xác suất (PCC).
h * ( x)  arg min Y | X L(Y , y)

(15)

y

* Nguồn gốc của PCC
PCC được bắt xuất phát từ chuỗi phân loại (CC) [DCH10].
Điều đáng nói ở đây là các chuỗi ban đầu có thể được xem như một
xấp xỉ được xác định qua công thức (14) ở trên, trong ý nghĩa của việc sử
dụng {0, 1} – xác suất giá trị. Trong thực tế, CC thu được từ công thức (14)
ở trên trong trường hợp đặc biệt đầu ra fi(.) hoặc bằng 0 hoặc bằng 1. Kết
quả đó dẫn tới dự đoán:
Px(y) = [y=yCC]

(16)

Trong đó, yCC là tập hợp nhãn dự đoán của các chuỗi phân lớp [DCH10]. Để
giảm ảnh hưởng của thứ tự nhãn, năm 2009 Read et al. đã đề xuất tính trung bình

các dự đoán đa nhãn CC trên một bộ hoán vị (được chọn ngẫu nhiên). Vì vậy, các
nhãn λ1,…,λm lần đầu tiên được sắp xếp lại do phép hoán vị  của {1, … ,m}, trong
đó di chuyển λi nhãn từ vị trí i đến vị trí π(i), và sau đó CC được áp dụng như
thường lệ. Phần mở rộng này được gọi là tập hợp chuỗi phân lớp (Ensemble
Classifier Chain - ECC) [DCH10, ZPH09].
ECC làm tăng độ chính xác tổng thể và khắc phục sự không phù hợp
cũng như cho phép thực hiện song song. Tập hợp chuỗi phân lớp này đã
được sử dụng thành công trong nhiều bài toán đa nhãn [ZPH09].


17
Tác động tích cực của ECC được biết đến: ECC tạo ra m phân lớp
CC: C1, C2,…, Cm. Mỗi Ck tạo ra: Một thứ tự chuỗi ngẫu nhiên (của L); và
Một tập hợp con ngẫu nhiên của D.
Mỗi mô hình riêng kth (của m mô hình) dự đoán vector yk=(l1,…,
l|L|) {0,1}|L|. Tổng số dự đoán này được lưu trữ trong một vector W=(λ1,…,
λ|L|)R

|L|

như vậy λj   k 1l j  yk . Do đó mỗi λjW đại diện cho tổng số
m

xác nhận của nhãn ljL. Sau đó tiêu chuẩn hóa W thành Wnorm, đại diện cho
một phân phối điểm của mỗi nhãn trong [0,1]. Sử dụng một ngưỡng để chọn
bộ đa nhãn Y cuối cùng, như vậy lj  Y trong đó λj ≥ t đối với ngưỡng t. Do
đó, các nhãn có liên quan trong Y là đại diện cho dự đoán đa nhãn cuối cùng
[ZPH09]. ECC được tác giả chọn làm thuật toán cải tiến trong phần thực
nghiệm ở Chương 3 của luận văn này.
2.5 Phân lớp đa nhãn Bayes trực tuyến

Bayesian online Learning for Multi – label classification framework
– BOMC với mô hình phân lớp tuyến tính [ZPH10].
Mô hình được chi tiết hóa như sau:
Giả sử chúng ta có n tài liệu huấn luyện có vectơ tính năng là
{xiRD}ni=1. Giả sử có C lớp {1, …, C} =: [C], và vector nhãn yi{0,1}C mã
hóa tập hợp đa nhãn mà yic= 1 nếu mẫu xi có trong lớp c, và bằng 0 nếu
ngược lại [ZGH10].
Mô hình sử dụng một biệt số tuyến tính xác suất wc cho mỗi lớp c, và
đường chéo Gaussians độc lập có trung bình và phương sai được ước tính từ
dữ liệu xử lý. Mô hình tập trung chủ yếu vào khả năng p(y|{wc}c,x), xác
suất của nhãn y xác định trọng số {wc}c. Thông qua quy tắc Bayes, hậu
nghiệm của {wc}c có thể được tính bởi công thức [ZGH10]:
p(wc | y, x)  p( y | wc c , x) p(wc c | x)

(17)

Xét các trường hợp sau:
a) Trường hợp đa lớp:
Sử dụng đồ thị được mô tả trong hình 2.3 (bên dưới đường kẻ đứt),
giả định lớp 2 là lớp đúng, ac = wc,x là một biến số tuyến tính, được mã
hóa bằng công thức:
Fwa(wc,ac) := (ac- wc,x)
(18)
trong đó,  là hàm thúc đẩy/Dirac.


18

Hình 2.3: Một đồ thị phân lớp đa nhãn, tương ứng với ví dụ x có nhãn là 2


Để mô hình hóa nhiễu (noise) cho với mục đích thực tế, nhiễu
Gaussians N(0,2) được thêm vào để ac cho năng suất fc, được đại diện bởi:
Faf(ac,fc):= N(fc- ac,2)
(19)
Giả định quan trọng của trong mô hình này về cơ chế ghi nhãn là
khả năng không chỉ khi f2 lớn hơn tất cả các fc khác qua ngưỡng . Quy
tắc này được thực hiện lần đầu tiên đưa một nút khác dc= f2–fc thông
qua các dữ kiện Ffd(fc,f2,dc):=(dc–(fc-f2)). Sau đó kiểm tra xem, nếu
dc>: Fd(dc) := I(dc>), mà ở đây I(x):= 1 nếu x đúng và 0 trong các
trường hợp khác. Theo định nghĩa, sản phẩm của các yếu tố dưới phần
nét đứt trong hình 2.3 là tỷ lệ thuận với αp(y, a, f, d|w, x), trong đó α là
độc lập với w.
Vì vậy, hậu nghiệm p({w}c|y,x) có thể thu được bằng cách lọc
đơn giản a, f và d trong đồ thị [ZGH10].
b. Trường hợp đa nhãn:
Mô hình có khả năng mở rộng bằng cách sử dụng các nguyên tắc so
sánh từng cặp một [ZGH10]. Hình 2.4 mô tả ý tưởng này mà giá trị hệ số ồn
fc của các lớp liên quan được thi hành vượt quá ở các lớp không thích hợp.
Hạn chế của phương pháp này là độ phức tạp tính toán là O(C2) – hệ số này
quá lớn và không phù hợp.

Hình 2.4: Phân lớp đa nhãn thông qua việc so sánh từng cặp.


19
Dẫn tới việc giả định của nhóm tác giả đưa ra là xây dựng một thứ tự
các nhãn phù hợp để đưa ngưỡng biệt số của lớp đến một giá trị chênh lệch
như hình 2.5 [ZGH10].

Hình 2.5: Phân lớp đa nhãn thông qua thứ tự tổng và xu hướng chung



20
Chương 3. Thư ̣c nghiêm
̣ và đánh giá
3.1 Môi trường và các công cụ sử dụng thực nghiệm
Cấu hình phần cứng
Bảng 3.1: Cấu hình hệ thống thử nghiệm
Thành phần
CPU
RAM
OS
Bộ nhớ ngoài

Chỉ số
2.0 GHz Dual Core Intel
1GB
Windows 7 Pro
250GB

Các phần mềm sử dụng
Bảng 3.2: Công cụ phần mềm sử dụng
TT

Tên phần mềm

1

Eclipse-SDK-3.5win32


2

JvnTextPro 2.0

Tác giả

N.C.TúP.X.HiếuN.T.Trang

Nguồn
ipse.
org/downloads

Chức năng
Môi
trường
lập trình java

http://jvntextpro.
sourceforge. net/

Tách câu, tách
từ, gán nhãn

3.2 Dữ liệu thực nghiệm
3.2.1 Đặc trưng một tài liệu thực nghiệm
Trong nội dung luận văn, tác giả thực nghiệm trên dữ liệu thu thập
thông tin từ các giáo trình, tài liệu ngành Điện, các giáo trình được lưu có
cấu trúc sử dụng chuẩn định dạng .XML (Extensible Markup Language) là
ngôn ngữ ở mức thấp nhất, dùng để định nghĩa và miêu tả cấu trúc dữ liệu
bất kỳ [HPDN09].

Giới thiệu một tài liệu huấn luyện
Mỗi giáo trình tổng hợp các nội dung sau: tên, tóm tắt nội dung, mục
lục, thông tin về tác giả, nhà xuất bản, năm xuất bản. Sử dụng font chữ
Times New Roman, kích thước font là 11.5 pt. Ví dụ tài liệu
Tu_Dong_Hoa_San_Xuat (Tự động hóa sản xuất) được biểu diễn như sau:

Hình 3.1: Một giáo
trình sau khi được
biểu diễn theo cấu
trúc XML


21
3.2.2 Thu thập dữ liệu
Dữ liệu thử nghiệm là văn bản tập hợp từ các giáo trình ngành Điện
tử và biểu diễn dưới dạng file .XML, có tag mở và tag đóng, các tag do
người dùng tự định nghĩa. Công việc thực hiện:
1. Xây dựng các lớp.
2. Xây dựng cấu trúc file .xml
Cấu trúc file .xml:

Hình 3.2: Cấu trúc một
tài liệu huấn luyện
.XML

Bảng dưới cho thấy việc tổ chức các thành phần trong 1 tài liệu huấn
luyện có cấu trúc và dễ dàng cho việc trích chọn thông tin:
Bảng 3.3: Tổ chức các thành phần trong một tài liệu XML
Thành phần


Định dạng XML

Tóm tắt nội dung tài liệu

<summary> Nội dung tóm </summary>

Mục lục tài liệu

<outline> Mục lục giáo trình/tài liệu </outline>

Tên giáo trình/tài liệu

<doc_name> Tên giáo trình/tài liệu </doc_name>

Tên tác giả

<author> Tên tác giả </author>

Tên Nhà xuất bản

Tên nhà xuất bản </publisher>

Năm xuất bản

Năm xuất bản </publish_date>

Tên các lớp

<category> Tên các nhãn lớp </category>


Sử dụng công cụ Notepad++2 xây dựng cấu trúc file .xml và soạn nội dung
giáo trình/tài liệu gồm các thông tin như cấu trúc file .xml đã mô tả ở trên.
2

http://www. filehippo. com/


22
3. Lưu trữ file dữ liệu vào các lớp
- Đặt tên file.
- Chọn nơi lưu tài liệu.

Hình 3.3: Minh họa cách đặt tên, lưu trữ tài liệu vào các lớp
4. Kiểm tra dữ liệu:
Để kiểm tra thể hiện của giáo trình/tài liệu trên web: dữ liệu là chuẩn
theo định dạng .xml ở trên, tác giả đã tiến hành cài đặt một công cụ nhỏ để
kiểm tra sử dụng Junit 4.03.

Hình 3.4: Công cụ kiểm tra dữ liệu học
3

http://junit. org


23
3.3 Thực nghiệm
3.3.1 Phát biểu bài toán
Tác giả tiến hành xây dựng hệ thống phân lớp giáo trình/tài liệu
ngành Điện tử. Với dữ liệu huấn luyện là 120 giáo trình/tài liệu được chuẩn
bị theo bước thu thập dữ liệu ở trên. Từ dữ liệu học, hệ thống đưa ra mô

hình phân lớp cho từng lớp có trong dữ liệu huấn luyện. Với đầu vào là một
giáo trình/tài liệu ngành Điện tử, hệ thống sẽ cho ra các nhãn của các lớp
mà giáo trình/tài liệu được cho là liên quan tới giáo trình/tài liệu nhất.
Như vậy:
Đầu vào: Gồm dữ liệu huấn luyện và tài liệu cần phân lớp
+ Dữ liệu huấn luyện: là các lớp, trong đó các giáo trình/tài liệu
thuộc lớp đó.
+ Văn bản cần phân lớp: là một văn bản thuộc lĩnh vực điện tử.
Đầu ra: Nhãn của các lớp có liên quan nhất đến văn bản đầu vào.
Các pha chính:
+ Huấn luyện mô hình
+ Phân lớp đa nhãn sử dụng mô hình huấn luyện.
3.3.2 Mô hình đề xuất
1/. Mô hình:

Hình 3.5: Mô hình hệ thống
2/. Pha 1: Huấn luyện mô hình
Các bước cần thực hiện gồm 4 bước:
Bước 1: Tiền xử lý dữ liệu
Tách câu, tách từ, gán nhãn cho từng tài liệu để chọn lọc đặc trưng
cho các bước sau. Ví dụ:


24
- Dữ liệu rước khi tiền xử lý:

Hình 3.6: Một tài liệu trước khi tiền xử lý
- Dữ liệu sau khi tiền xử lý:

Hình 3.7: Một tài liệu sau khi tiền xử lý

Bước 2: Lựa chọn đặc trưng của lớp
Tính trọng số cho các đặc trưng tiềm năng của lớp bằng phương pháp
Chi – square để lựa chọn ra đặc trưng tiềm năng tốt nhất của lớp.
Bước 3: Xây dựng vector đặc trưng, có 2 bước nhỏ:
Bước 3.1: Biểu diễn văn bản thành danh sách các từ.
Bước 3.2. Xây dựng vector đặc trưng cho từng tài liệu.
Bước 4: Đưa dữ liệu học vào hệ thống, đưa ra mô hình phân lớp.
Kết quả sau bước 4 là mô hình huấn luyện.
3/. Pha 2: Phân lớp đa nhãn sử dụng mô hình huấn luyện
Dữ liệu thực nghiệm là dữ liệu về các giáo trình/tài liệu thuộc lĩnh
vực điện tử. Kết quả sau pha 2 sẽ là danh sách các nhãn mà tài liệu đầu vào
có thể thuộc về.
3.3.3 Mô tả cài đặt chương trình
Chương trình được tổ chức theo kiến trúc Client – Server. Theo đó,
Server sẽ nhận các yêu cầu phân lớp một tài liệu bất kỳ từ Client và trả về
cho Client các nhãn mà tài liệu được cho là thuộc về nhất.


25
Bảng 3.4: Các gói cài đặt phía Server
nv.classify: thực hiện huấn luyện, phân lớp và đưa ra độ
chính xác của mô hình
nv. feature: thực hiện vector hóa dữ liệu đầu vào
nv.io: chứa các đối tượng sử dụng trong hệ thống:
NVDocument, NVFeatureVector …
nv.io.json: thực hiện lưu và đọc từ điển đặc trưng
nv.server: thực hiện mở Server để nhận các yêu cầu phân
lớp từ Client
nv.services: định nghĩa các dịch vụ mà Server hỗ trợ cho
Client như: Classify Service

nv.util: chứa các thư viện cho hỗ trợ cho các
bước xử lý như: đọc ghi file…

Bảng 3.5: Các gói cài đặt phía Client
nv.multicc.gui: chứa các lớp đồ hoạ cho người dùng thao
tác.
nv. object: chứa các đối tượng truyền thông tin giữa
Client – Server: NVClassificationResult…
nv. services: chứa các dịch vụ hỗ trợ bởi Server.

3.3.4 Giới thiệu hệ thống
Với các thuật toán và các phương pháp phân lớp tài liệu được mô tả
trong luận văn tác giả tiến hành cài đặt hệ thống và cho ra sản phẩm là hệ
thống phân lớp tài liệu NVClassification (Naïve Bayes Classification). Hệ
thống có ba phần: Phần Client, phần Server và phần giao tiếp giữa Client và
Server sử dụng Thrift 0.84.

4

http://thrift. apache. org/


×