Đại Học Quốc Gia Tp. Hồ Chí Minh
Trường Đại Học Công Nghệ Thông Tin
Báo cáo cuối kỳ môn Khai Phá Dữ Liệu
KỸ THUẬT GOM NHÓM VĂN BẢN
BẰNG THUẬT TOÁN K-MEAN
GVHD : PGS.TS. Đỗ Phúc
Học Viên : Đỗ Duy Phúc
MSHV : CH1101122
Lớp : Cao Học K6
Tp. HCM, Tháng 11 Năm 2012
Mục Lục
Lời Nói Đầu
!"#$
%&'$()*+,!$&-&.&'
,/*&.!01234)245,
&'$)67-*$'"#$8
$0*9%,01*(*4:$67
*$67-";$)*(-&,$&<
=$,>0?(@A'$0+&&'"""
,0%&*BC%,$$'@"
D%CE)4F$'),!G&'H#,IJ&J
KG,JK=GJL*0-=,$#$&'HKML
6E)"-/,*9
N.*B&-$&.&'=$3/HGJOGJ&
&L,3/H,OGJ&&L"D7&P,$3=8'
@$IJ=E+IJ=GJ1$Q30=$,$,7
*',+"R17(13N,+'A8>
!G&'H!&'*B3/L%&'(JS
C+T',"K,*+3*4*C,*((%C
$)UV&'1"W,$#$&'Q=8
:1,++$*B&-&.
Q=83*4*C,($*B$J,>
GUA$)-&<*,$!")U7
,A$)(*B$'*(G&P,$P*7G"
M+G@=,$A ,#F$KX'DQW8*BY*C
$=,$ZRJ;GJ[ZRJ;GG\,[ZRJ]^,[_
R,*V$`J-'+G@a1,Q=8
H&,JGJL-'$&P1,$#OJG,,
Q=8"
b
Phần 1: Cơ Sở Lý Thuyết
1. Khai Phá Dữ Liệu
Khai phá dữ liệu (data mining) =-67,A$%khám phá tri
thức từ cơ sở dữ liệu( Knowledge discovery in database, KDD). c6+
d<2,e*BCBU4d<$f, $
7+A$%%C$$$(S)U+1-&
'"1&P$!$E)U$d<$7'
6.,$ @E'@!G&'"R,*G&P$
!$U$ @E43"
MPEfA$%$)*(/7*B)U+
1&'Gg(*9/3/,0((
*B,PEG&P!"WE.$=-672=,
V$7.fA8&'!G&'4G&'%
G&h*$-*,*$$JY*+).1$
3/%*B=(&h<A"_
2. Gom Nhóm Văn Bản
Gom nhóm văn bản(document/ text clustering)+d<,fgom
nhóm dữ liệu(data clustering). B$$'U$d<
3H\,,JJijkL<EH
J,JGGiXFL$ HJJOMXL"RU*6,
=C,Q=8Gl*B*41 ,"
m$%,--$'$<EU*-'
+$%9Af$6-Hf*4L,+1B'Q
=8"R,d<7'6.,*6*BJ+!$$
$G$"n,E=>S-A$%6-"R,
+=,$6-Q=8G@B6-H$73fL*B
=C-$'Q=8*B6@,$-"B.
,+3*4,=3o8G@B+7,73
Ef$6-*C*B=C-"]<6='*B
%p"F6-E*BJ+7&Pf!$$ $
G$"
q
r%p"
M+!$,@(*BJ+$9)+1
',$,*$'Q=8,s+*4
G<!<+G<$='G,-'$"m$
%,8QGlG8$6$=',$6
,HVLE"R,$6,8Q+
'Gl3',4";6`**4%3E+
!$,'A8tD-1fCf$
E)%680,6`)f$1,$$
*$$/"
3. Phân Loại Thuật Toán Gom Nhóm Văn Bản
a) Phân loại theo đặc tính của thuật toán
;$1,$,(6,.u$1,$$='
H&GJL$1,$G8GHJJJL"
M+$($1,$$=',$G,G$*+!*VJ,
U,v'Q=8&<EG<!*VGl@
+E5*(.,+$,@"cf$1
,$0$6&'$='"
w+-$$1,$G8G8*>N+G<6@$
G3,&'"D'f/@% 6f$6
x
G,,$ 6sB-G<6@&'+$@*"
]85f$1,$,.$6,V"
b) Phân loại theo mô hình biểu diễn dữ liệu
R$)*3E,+=,$,$*>*7,f
+'*B&s*(.,76,."+$$/%
+%=(&h&',Q=8"K*=E.$6,.E
(6,.1,$&<J,$/< %=(&h&
',A$%"
F-$$C1,'. =(&hv'
+J!*.&',+*(4"RU*( +
'Q=8+&.=(&hsB,$C1,&
'4@"
M+$%C,$=(&hJ!*B.,=N$
UyPU'Q=8+14H&zJL"M+
14,C*V>*>dG<C@f$*:,+*V>"
K-%J!$CA8+&.*V> G@"D',
E*V>C*3*4(=,$**0
HI,=JL!$*0%$6*:*V>-
G<*){$.@$*:7@"
M+CA8$U'< =(&h=NJ!1UO'
*B.,(3-"D'+-.,+E=8@
*/C.3H,IOLf+1U*.,+
!$6,.@,s1&'"
M+*(C4f%J,{4
)<fU"K,1*6+G@-C$=(&h
$,4*>dG<!*V$=(&h-2=,
VE3'f$UyPUG33's-
,J,+v,*"
4. Các Phương Pháp Đánh Giá
;$1,$,(*B*$$J,4$$"#
37G<*V14$,$@3"]<< !
$,0&<Ed<E)*B<'"D7&P+
E ) |j l E 7 ! $ s H
}
\,,L,+G@E)Ud<jkGl !$
~OJGJ";$!$*$$Gl*B=1.*6"
;'<$4'Qf$1,$,độ chính
xácHprecisionL độ triệu tậpHrecallL"R,d<jkđộ triệu tập *B
*>d:'$'Q=8EAH*C6*B
=9'Lđã được truy xuất raG,-tất cả các tài liệu có liên quan'
V.,,=+1'*BY"R,*độ chính xác:'
'đã được truy xuất và có liên quanG,-tất cả tài liệu đã được
truy xuất. W%3&h*(*B*+'1+$,8,d
=N$3,=+'*,=3o3,,E~O
JGJ+-*,BCB8*+'1*+7$*B-
'*(,.=`.C"RA-k*+'1F*+7$%
)~OJGJ9A$*B*>dGu
c+7$*+'10*B,s G@HF
p
L
=C(V.*$ G@/$7&P*+7$,
!G,-*+'1,B.H/*B${B
F
•"x
F
L
c(+),'*$$+1,$,/
8*>NG<V.f+1$6-8,H*B&<*,$
-Q)*$$L$6*B%3H*f$
1,$,L*B*@$'*B3U$6-
8,"R%)*4'Gu
R,*u
nu9G@'
argmaxu%G@jG,,F*.*B$>@*
iu)<f6-8,
ju)<f6*f1,$
€
R,~OJGJ:*B3B9A$fA$%,
,9'G33:*BG<3f=8
6$"r-*,=9Gđộ thuần khiếtHpurityLf
entropy"F*,3Qf$E+6-9+!
,,+H-!%@!L,J,%CG<6
@$3f$'Uv6-EA,vH`!
@!L"D/)Gu
CG@B6=N-G@Bf$(,.'+G<
!)(C1%$-*,E(*B$&P-+
"REC+G<3A$G@B6-
8,$6*B%=1,$%$7$*
1G<:*B3Bf$6"
c{=N):N,0Bs
H\,,OMjL+-*,C!G,-*+C
,J,"R,<CMj*B@84$*+&*!>H,^J&
MjiMjL"RJ,*>dA-n
h
G@',6-hn
l
G@
S,6ln
h,l
G@S,6-h 6l,%
)Gu
Mj-.,,8••p‚,*$>fG@p*.&'G<G,-
'*@$6$6-".*+<fMj
+-*,*+7$,A$%,(>*BG<=3
@3G@B$6%3G@B$6-
8,";+G@B*$($=C4,Q=8*48*>
+G@6,-k, %C,0B$*,
4@(*BG&P"
ƒ
M+$%$43Bf+1,$,G<9*>f
$6.,A4."M+-C19=1*(*,
*+9*>%'Q=%"R,1sHMjL
CA8.,*B |MjHJJ,^J&\,,Lu,
+1frG@,+.,P(%|Mj
*B*>du
R,$1SH,\G,L3'0
E,$=C4,$!$$E8E
/3'*f*(+/7*6"M+1S
+P=(&h<A3+G<9B4v6.,
='@"
W
•
Bảng 1: Một ma trận nhầm lẫn cho các phân lớp:
A (4 phần tử), B (4 phần tử), C (8 phần tử)
W8p(&h8Gu1,$,(6='
6|6W6='$*@B,6-;
+$,8,"
R38!$E8E*4*B&s,,.6$='"
kE*@-$1,$,G&P,0+!$
&P*(*$$*f+1,$,0G$6
$='„U+CA8*0HA$%*B A$
%cứng hóa - hardening$6L=N$*+$>…
,<*+Ef$'";d$',)*+
EB+…$>f+,*%*B,+6
*C+'*4B…f6%Gl+
8"
†
5. Một Số Thuật Toán Tiêu Biểu
a) K- means và các mở rộng
* Thuật toán k-means
R,d<$&'1,$,OJG+!
$ f 6 7 "MP E f 1 ,$ n *@ B P
EH*B=(&h$*(,*4Lk,
*v*@BPE+4*(3"#OJG
1 ,$ E =( , ,. 1 ,$ , $ =' H&GJ
,GL"
FE=8&P3fOJGG&P+a1:
,"D%G<79=C+f1OJG0*BE
*CE=87$!%*61,$X,&H
Ef0$L$E*B-, $7*C0
E!";C1,$Gu
;,+1k *(m
1
(1)
,…,m
k
(1)
1,$<=N$,
=-Gu
OW-$u$v*@BPE,*(
3"
R,*vx
p
*B67$,+S
i
(t)
8(
6,*B$"
OW-:uv7,$$*(-=N 6*B
7U$*@BPE*B6,,*"
R1,$*B,N*{+P&U.+$G<6=92
*9"
* Các dạng mở rộng của k-means
R,d<,Q=8*(sB-(&'*s1,$
OJG4@*B=C*9$&.sB!u
p•
OR1,$ k-means cầuHspherical k-meansLu*61,$!<-
1,$OJG4@"#G&P1,$&'Q=8
*B($J!*4*B@8"REG&P
,G%,8$‡&*(%7!*V,$*9B
6"
M&s9=C+&,7&h*OJG4
*(.CuP+-,G<.,SE$
+$ˆ*4*(&S*C1,$+P4$*(@
*>!ˆ$6Gl()4,..hˆ
*+).fO(nkl),,*nG@B'Q=8,1&
'k G@,@lG@2"R1,$0
sB$&P,$1&'Q=8-7*9"
OR1,$k-means cầu trực tuyếnHonline spherical k-meansLu*61
,$+fOJG"G&Pa1 . *(
Q@A$%,,S*.*B*+7$!<,
@!"
D-S .<C$Q=8*B4*CE
P"r,,$B-+1,$.,,E+1&'
+1,$OJG"#$Q=8*B*,A$%6
$Gl.*(3&'*,*(*B6=9,
f%"DCGl<*4:%&<,+:'
3*>*((8).!,$&'*,CJ,"R1
,$0*B$&P*(6=8G*B84U+%
%C,3H7&Pn,,JL"
OR1,$k-means nhân kernel kmeansur% +1&'
OJG(,7$=%$*($='+
$C7"‰*NGJJJG%+$.,$*(
*C+44!!$&'Q=8G<$
='+$C7"
pp
Hình 2: (a) cho thấy một hình dạng phân bố dữ liệu không lồi mà thuật toán k-means gặp
vấn đề khi gom nhóm. Trong (b) là thuật toán kernel kmeans đã thành công phân biệt rõ
hai nhóm như là kết quả của việc chiếu các vectơ văn bản lên một không gian có nhiều
chiều hơn.
b) Các thuật toán sản sinh (generative algorithm)
R,E=(1,$c-means mờ (fuzzy c-means), +1
,$3.8-$,."R,$1&'Q=8.
$,.3'30E"K,1=N$.,$
8*>4G<6@$3f&'$!$@E'A8
,(*B$&P*($$$sG<'&'f&'
h*V03173Ef+'Q=8,
46$"
;$!$$='&<E*+!*V'J,UJ,*>
d-*+).O(n
2
)"R0$*+!*V(*B
7-,+1"RJ,+$$$%G8G
*611G&P+fP,B
$=--B%$G3$Q=8"
M+1,$%$3*BG&P,1,$G8
Gu
OM%nGG"
p
OR1,$,$,*BHJJ,^,L"
OM%,MGJGO~GJ"
OR1,$OJG&<E%$G3H,&JO=GJ&JGL"
c) Các thuật toán gom nhóm phổ (spectral clustering algorithms)
M+1+&.=(&h<E,44$*:
&,*%J!(*B&h&>+*V>"n,9=,
%$*0,*V>*(G$63B
@"
W,$=60*%$*0@E*V>CA8.,
+G@$E5HJ,\,L$1,$,9
--@";/=,V:'**0HI,L@
8H,^J&LO"RE$*V>!$*B
6='+$@*Š%38a1E*4-'G3!
<"RE+G<s*$($*4*(%
8-&'Q=8%$*0OGl<'@!"
M+G@1,$E=(+u
OR1,$` .H&&J&JJ,L"
OcV,0H\^^GJL"
pb
Phần 2: Demo Thực Hiện Gom Nhóm Văn Bản
Bằng Thuật Toán K-Means
1. Cụ Thể Thuật Toán K-means
c,u
O R1$*@B‹Œ•
ŽŒp_•
O ]@Pu#
cu
O ;$P;
HŒp""#L$0
R1,$OJGV=@=-u
p" ; SE*( 6=*fP
" n$H,$.LU*(,P 6*(*Y
3"CY$.,%&U"D%Y$.
,d$P*{9*>1,$(8'
8*+6='!*B
b" R7. 6,UP
q" m.=-
Hình 3. Sơ đồ khối chương trình
pq
Hình 4: Các vector trọng tâm ban đầu của từ cụm được biểu diễn bằng chấm đỏ.
Trọng tâm sau khi cập nhật được biểu diễn bằng dấu x đỏ
px
Hình 5: Cập nhật trọng tâm sau lần lặp thứ 2 và thứ 3
2. Áp Dụng Thuật Toán K-mean Vào Phân Lớp Văn Bản
a) Giới thiệu
c($&P1,$#OJ,6-Q=88<'J,
Q =8 v Q =8 *B =( &h &- &. J,
'J,Q=8G&P%J,
"]1$J,($&P1,$#OJ,
,PQ=8"
b) Mô hình vector không gian
M%J,%J,.+%*.G@,*.
&'$'Q=8H=3o*@B,LJ!*>&
•.7&P4:G@"*BG&P, V
1:P=8C.EA"]&P*Ef'@
V]M|kR"
R'$3*B=(&hJ!"
Mv7-!)-+1E='"C.8,
'$>f,J,"M+G@$$7,$$$
>2*B BH.L*{*B$("M+,
!$@3*B=C*C'G@ tf-idf (term frequency – inverse
document frequency)"c>df1P+,)&P"R
0*4'U*!U,$,PU&"C*B<
$*4,8G@4fJ,G@U,U<HG@B$UE
='8,'L"DJ,,.*+(*BG&P*(G,G$$
'-$3"
R)A$% J, 6=*3A C%*B
$ 6,U6='*E%3@E*4
<'*B"R,!%J:<'k&, 6=
*"]@=*?+3*4/8$*>*BU*
p}
G@,$)&P<C%G@/*BU1&
'"
c) Xác định trọng số (tọa độ) của hạn (term) trong văn bản
R,%J,9*( BP(.,$J!
'Q=87f$=CG@*>!,P"DJ, G@,
'&J,
R,* *+I
&
*B7=)tf-idf,+.,Q=8&
Gu
\O&\HLŒ\H&L"&\HL
D-u
O \iJ\JAJuG33'f+.,+Q=8
P(&"
O &\OJGJ&,J\JAJu>*8,G33'f+
.,,=+1Q=8*,K*B7=N)u
D- G@Q=8.3')*B+E
p*($0B,•"
d) Xác định các hạn(term) đặc trưng cho văn bản
‹$*>$.*,Q=87'$$UPU*
,Q=8"R$U,Q=8+=8,$*=',
CD'"
c@-'$*>$.,Q=8%$U@d$&36Gl
*B,.=`*E$U@d0$-U.,UuZ%[
Z[Z[ZGl[_;$U*B UG,OI,&,C|"
c@-Q=8C|'$U!*@&h%C$U,C
|U*!/($&P'$$,8<*
p€
='"REC$U,CD'$UY'$$U*!
1Gl,',7$"
Ví dụ:ZW$Gd[ZGd[Z.Gd[ZGd[_%'$U*!(
,',7$"
R,)&P`JG&P'$ UJ,=-u
O W-pu U=NU*("M+U*(V$UY9=C
,CD'*B V$U0&sC$
&U"RU*(*BGCJ,)<8&fG@6C"D'
GC8&G@6CGl/'E *B$PU
46C-";$PU&*BJ7*
,Q=8"
D7&Pu
Z'$([
MSU*(u Z'[Z'[Z[
O W-u $PU9=C3'4,Q=8"
]*{,.=`*B$U $&U2.f
Q=8Gl*B$$U*!";$U*!Gl*B
A1,$%19=C*(%$PUG@
3',,Q=8"
R1,$%PU9=C=-Gu
c,u
O R1$U*!H*{,.=`U&36LUQ=8*Y
O ‘Gu33'@(f+UyPU,Q=8
cu
O R1$UyPU9=C,Q=8
R1,$u
p" R%19=C~
p
)$U*!9=CHG33'-!
‘GLU1U*!*,"
" n$~
Op
=N~
p
~
~1v
b" D-vUyPU‹+~
Op
<'
" D-vU*!’+~
p
<'
" ]Œ‹@v-’
pƒ
" C]FH]L“Œ‘G%u
p" ~
Œ~
•]•
" ~Œ~•]•
" ]Œ’@v-‹
" C]FH]L“Œ‘G%
p" ~
Œ~
•]•
" ~Œ~•]•
q" C~
$v
" R%1.=-b-~
Op
*B$=N~
1~
$=N1
v
=" B.%&U1,$841~
…‘G*BG&P,!%Hd3'
E,+Q=8L"r]FH]L*C3P],Q=8
*Y"
3. Chương Trình Demo
a) Giới thiệu
;!%&J,*BC-,&',G,J=N1%k="
R,!%*B*$=-,Q=8*{*41
$-"
b) Hướng dẫn sử dụng chương trình demo
;!%=,Vu
O ~Jmain.exe!%7
O RPdata)$1'&UC'$U
vB,!%
O RPinput)$1Q=8*,,P";$\J
*B-*>&.JH*"L";!%7
.GlAY38$1,Ps$P,
&'&,"
O RPoutput )$CA8=,V$P,"Mv
P,*.&',+PQ=8*G"R,
vP,)$1!)-+1*,
)$UyPU*s-G@3G3'fQ
=8!% *B"
p†
]&P!%u
O ;,1$Q=8,P,P";$Q=8
*B-*>&.J"
O ;<1"JJ
O #CA8Gl*B,P,
•
Phần 4: Kết Luận
m$%=E/*{%(*B$$'
4d<')$ 3*{*G6
,d<$&'P(d<,&'Q=8"
;/*{=C*B4'.$-C1',3*4
$A841,$%=(&h$a1@E$3
*BG&P"
R*{34CA8E)'+8$,
<G<<'*BA$%,Q=8+$,8,"Mv
-C18$*4C.C,0B
$"D,,+0B,(G$
7$<E,:"
R,=C!%&J,*{'< *B**f$
=-!=8,A$%,Q=8"RE%0E)
.,E!%:&U)'"#CA8*f
!%*+7$S2!*@3C9*>"*6
4*4A *((E)G6!,d<"
cC*6JC/=C";$!R$>$=.*{=`0
* =C"
p
Tham Khảo
•p‚cvF/Giáo Trình Khai Thác Dữ Liệu, ‹WcrmnR"r;M••}
•‚,G”"|&JIG&‡&I&|"~,Recent Developments in Document
Clustering”,=Jp}••€
•b‚ ;G ]" FJ,J Machine Learning :: Text feature extraction (tf-idf)
]JJ=Jpĥpp
uyyJ,J"G,J\,J"JyI,&JGGytŒpxƒ†
•q‚RJJJFVector space document model
uyyG}ĥ"G"G\"J&yJJGyJ,OGJO&,JO,&J
•x‚uyyJ"IJ&",yIyK‘