Đạ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 Công Nghệ Tri Thức
Kỹ Thuật Gom Nhóm Văn Bản
Trong Lĩnh Vực Khai Phá Tri Thức
GVHD : GS.TS Hoàn Kiếm
Học Viên : Đỗ Duy Phúc - CH1101122
Trịnh Hoàng Việt Quốc - CH1101127
Lớp: Cao Học K6
Tp. HCM, Tháng 06 năm 2012
Mục Lục
LỜI GIỚI THIỆU
!"#
$%&#'()*+ #%,%-%&
+.)%- /0123(134+
%&#(56,)#&!"#7
#/)8$+/0)')39#56
)#56,!:#()',%+#%;
<#+=/>'?@&#/*%%&!!!
+/$%)AB$+##&?!
C$BD(3E#&(+ F%&G"+HI%I
JF+IJ<FIK)/,<+#"#%&GJLK
5D(!,.+)8
M-)A%,#%-%&<#2.GFINFI%
%K+2.G+NFI%%K!C6%O+#2<7&
?#HI<D*HI<FI0#P2/<#+#+6
)&+*!Q06'02M+*&@7
= F%&G %&)A2.K$%&'IR
B*S&+!J+)*2)3)B+)''$B
#(TU%&0V+#"#%&P<7
90+**#)A%,%-
P<72)3)B+'"#)A#I+=
FT@#(,%;)+# !(T6
+@#(')A#&)'F%O+#O)6F!
L*F?<+#@+"#%&P<7)AW)B
#<+#XQI:FIYXQI:FFZ+YXQI[\+Y]
Q+)U#^.I,&*F?_0+P<7
G%+IFIK,&#%O0+#"NIF++
P<7!
`
Phần 1: Giới Thiệu
1. Công Nghệ Tri Thức:
"# &công nghệ tri thức (knowledge engineering))A)/+P
abcd!e5*_0,)BOD6A(+#&
?#6%M7@B#2)3(-)1^*()*+
(f+/!
g&-&()AD)B#@#$5%;<7+
%h#'#&?cơ sở tri thức (knowledge-based systems)!
)'2,,&3)AF%O+2
3i;f+#6j6&5-+#(&
D&kA@B)=&?)=!
L*F?#OO'f&(+@#$#'#& F
(Fj
Ne##,)=2)3!
NE#'*2.+&? F(!
NQ2.#(D@()*D!
Ng&;(2.+ F(!
N"'#;#()l)AD+!
NQ6A<7+%h&?!
N:9F)##&?!
2. Máy Học:
Máy học (machine learning)*#f6&5-+*i;
+@5)B&BB#'#0+#+W#6
)A#%;D%&62&!U%&
')BT#<*7<B+ F%&!L*,0D(
6+i;)'#6';)*M0#'
R(-)#@B)=%;D%&mA,
R)l<B!
d
3. Khai Phá Dữ Liệu:
Khai phá dữ liệu (data mining) <,56+@#$khám phá tri
thức từ cơ sở dữ liệu( Knowledge discovery in database, KDD). e5*
i;1+n)ABAT3i;#f+#
6*@#$$B###'R(T*0,%
&!0%O# #D(T#i;#6&
5-+#?D&? F%&!Q+)F%O#
#T#?D32!
LODf@#$#()'.6)A(T*
0%&Fo')8.2.+/''
)A+ODF%O !VD-#<,561<+
U#6-f@7%& F%&3F%&$
F%p)#,)+)##IW)*(-0#
2.$)A<'%p;@!]
q
Phần 2: Gom Nhóm Văn Bản
1. Giới thiệu
Gom nhóm văn bản(document/ text clustering)*i;+f gom
nhóm dữ liệu(data clustering). A##&T#i;
2GZ++IIrstK;DG
I+IFFruEK#GIINLuK!QT)5+
<B+P<7Fv)A)30+!
w#$+,,#&#;DT),&
*#$8@f#5,Gf)3K+*0A&P
<7!Q+i;6&5-+)5)AI* ##
#F#!x+D<=R,@#$5,!Q+
*2)35,P<7F?A5,G#62fK)A
<B,#&P<7)A5?+#,!A-+
*2)3+<2y7F?A*6+62D
f#5,)B)A<B,![;5<B)A
$a!E5,D)AI*6%Of ###
F#!
g$a!
L* #+?')AI*#8(*0
&+#+)#&P<7+m*)3
F; ;*F;#<&F+,&#!w#
z
$+7PFvF7#5#<&+#5
+GUKD!Q+#5+7P*
&Fv2&+3!:5^))3$2D*
#+&@7{C,0fBf#D
($57/+5^(f#0+##)#
#.!
2. Phân loại thuật toán.
a) Phân loại theo đặc tính của thuật toán:
:#0+#+'5+-j#0+##<&
G%FIK#0+#F7FGIIIK!
L*#'#0+##<&+#F+F#)* )UI+
T+k&P<7%;DF; )UFv?
*D4)'-+*#+?!ef#0+#
/#5%&#<&!
|*,##0+#F7F7)=M*F;5?#
F2+%&!C&f.?$5f#5
F++#5mA,F;5?%&*#?
)![74f#0+#+-#5+U!
b) Phân loại theo mô hình biểu diễn dữ liệu:
Q#()2D+*<+#+#)=)6+f
*&)A%m)'-+65+-!*##.$
*$<'%p%&+P<7!J)<D-#5+-D
'5+-0+#%;I+#.;$<'%p%
&+@#$!
E,##B0+&-<'%pk&
*I )-%&+*)'3!QT)'*
&P<7*%-<'%pmA+#B0+%
&3?!
L*#$B+#<'%pI )A-+<M#
T}OT&P<7*03G%~IK!L*
03+B)U=)=iF;B?f#)9+*)U
=!J,$I #B@7*%-)U=F?!C&
+D)U=B)2)3'<+#))/
•
GH+<IK #)/$#5)9)U=,
F;)(l#-?#)96?!
L*B@7#T&;<'%p<MI 0TN&
)A-+'2,!C&*,-+*D<7?
).B-2G+HNKf*0T)-+*
#5+-?+m0%&!
L*)'B3f$I+l3
(;fT!J+0)5*F?,B#<'%p
#+3)=iF; )U#<'%p,1<+
UD2&f#T}OTF22&m,
+I+*k+)!
3. Các phương pháp đánh giá.
:#0+#+')A)##I+3##!"
26F;)U03#+#?2![;;
#+/%;Di;D()A;&!C6%O*
D ( €s v D 6 # m G
Z++K+*F?D(Ti;stFv #
•NIFI!:# #)##Fv)A<0-)5!
:&;#3&Pf#0+#+)*6#
GIF+K)*&0GIK!Q+i;stđộ triệu tập)A)=i
9&#&P<7D@G)B5)A<8
&Kđã được truy xuấtraF+,tất cả các tài liệu có liên quan&U-
++<*0&)AW!Q+)độ chính xác9&
&đã được truy xuất và có liên quanF+,tất cả tài liệu đã được truy
xuất.V$2/)')A)*&0*#+7+<M#
2+<*&+<2y2++D•NIFI*,
)+ABA7)*&0)*6#)A,&!Q@,t
)*&0E)*6#$(•NIFI8@#)A)=i
Fj
e*6#)*&0/)A+mF?GF
a
K
<B'U-)#F?.#6%O)*6#+
‚
F+,)*&0+A-G.)A#lA
F
ƒ!z
F
`
K
e'*(+@#$+%&.7)=
MF;U-f*0#5,7+G)A%;)+#,K
#5)A$2G)f#0+#+K)A)?
#&)A2T#5,!Q$()3&
Fj
+)n8F?&argmax$F?jF++F)-)A
#=?)!
Q+•NIFI9)A2A8@#f@#$+
+8&F229)AF;2f<7
5#!g,)+<8F)*BGKf
I+!E)+2Pf#D*5,8*
++*G, $? K+I+$BF;5
?#2f#&Tk5,D@+kG^
? K!C.(Fj
BF?A5<M,F?Af#'+-&*F;
('B0$#,)+D')A#%O,*
!QDB*F;2@#F?A5,
7+#5)A$<0+#$#6#)
0F;9)A2Af#5!
el<M(9M+/Am
GLsK*,)+B F+,)*B+I+!Q+
;BLs)A?73#)*%) =G+\I%LsrLsK!QI+)=
c
i@,n
h
F?&+5,hn
l
F?R+5l
n
h,l
F?R+5,h 5l,$(Fj
Ls,-++7„ƒa…+)#=fF?a)-%&F;F+,
&)?#5#5,!-)*;fLs
*,)+)*6#+@#$+'=)AF;<2
?2F?A#5$2F?A#5,
7+!:*F?A)#'#<B3+P<7)37)=
*F?5+,k,$B+/A#)+
3?')AF%O!
L*#$#32Af*0+#+F;8)=f
#5-+@3-!L*,B08<0)')+
)*8)=$&P<$!Q+0mGLsK
B@7-+)A€LsGII+\I%Z++Kj+
*0frF?+*-+O'$€Ls
)A)=ij
Q+#0RG+ZF+K2&/
D+#<B3+# ##D7D
.2&)f)'*.6)5!L*0R
*O<'%p;@2*F;8A3k5-+
<&?!
V
`
`
ƒ
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ử)
V7a'%p7Fj0+#+'5<&
5€5V5<&#)?A+5,:
*#+7+!
b
Q27 #D7D)3)A%m++-5#<&!
tD)?,#0+#+F%O+/* #
%O)')##)f*0+#+/F#5
#<&†T*B@7)/G@#$)A@#
$cứng hóa - hardening#5K<M#)*#=h
+;)*Df#&!:i#&+()*
DA*h#=f*+)$)A+*5
)B*&)3Ahf5$Fv*
7!
4. 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:
Q+i;#%&0+#+NIF*
# f5 6!LO Df 0+# n )?AO
DG)A<'%p#)'+)3Kk+
)k)?AOD*3)'2!"NIF
0 +# D <'+ +- 0 +# + # <& G%FI
+FK!
ED<7%O2fNIFF%O*_09
+!C$F;68<B*f0NIF/)AD
)BD<76# $)50+#u+%G
Df/#K#D)A,+#6)B/
D !:B0+#Fj
:+*0k )'m
1
(1)
,…,m
k
(1)
0+#;<M#+
<,Fj
NV,#j#k)?AOD+)'
2!
Q+)kx
p
)A56#+*S
i
(t)
7'
5+)A#!
NV,9jk6+##)',<M5)A
6T#)?AOD)A5++)!
aƒ
Q0+#)A+M)l*O%T-*#F;5<81
)8!
* Các dạng mở rộng của k-means:
Q+i;+P<7)'mA,'%&)m0+#
NIF3?)A<B)8#%-mA j
NQ0+#k-means cầu Gspherical k-meansKj)50+# ;,
0+#NIF3?!"F%O0+#%&P<7
)A'#I )3)A?7!QDF%O
+F$+7#‡%)'$6 )U+#)8A
5!
L%m8<B*%+6%p)NIF3
)'-BjO*,+F;-+RD#
*#ˆ)3)'%R)B0+#*O3#)'?
)= ˆ#5Fv'(3+--pˆ
)*(-fO(nkl),+)nF?A&P<7+0%
&k F?+?lF?1!Q0+#/
mA#%O+#0%&P<7,6)8!
NQ0+# k-meanscầu trực tuyến Gonline spherical k-meansKj)50
+#*fNIF!F%O_0 - )'
P?@#$++R)-)A)*6# ;+
? !
C,R-;B#P<7)A3)BD
O!g++#A,*0+#-++D*0%&
*0+#NIF!"#P<7)A)+@#$5
#Fv-)'2%&)+)')A5<8+
f$!CBFv;)39$%;+*9&
2)=)''7(- +#%&)+BI+!Q0
+#/)A#%O)'5<7F)A73T*$
$B+2G6%Ox++IK!
NQ0+#k-means nhân kernel kmeansjg$`*0%&
NIF'+6#<$#)'#<&*
aa
#B6!‰)MFIIIF$*#-+#)'
)B*33 #%&P<7F;#
<&*#B6!
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):
Q+D<'0+#c-meansmờ (fuzzy c-means), *0
+#2-7,#+-!Q+#0%&P<7-
#+-2&2/D!J+0<M#-+#
7)=3F;5?#2f%&# #?D&@7
+')A#%O)'###mF;&%&f%&
p)U/2062Df*&P<7+
35#!
:# ##<&%;D)* )U&I+TI+)=
i,)*(-O(n
2
)!Q/#)* )U')A
6,+*0!QI+*###$F7F
)500F%O*fO+A
#<,,A$#F2#P<7!
a`
L*0+#$#2)AF%O+0+#F7
Fj
NL$xFF!
NQ0+#+#+)AGII+\+K!
NL$+LFIFN•FI!
NQ0+#NIF%;D$#F2G+%IN<FI%IFK!
c) Các thuật toán gom nhóm phổ (spectral clustering algorithms):
L*0*%-<'%p;D+33#)9
%+)$I ')A%p%=*)U=!x+8<+
$#)/+)U=)'F#52A
?!
V+#<5/)$#)/?D)U=B@7-+
*F?#D4GI+Z+K#0+#+8
,,?!:.<+U9&))/GH+K?
7G+\I%KN!QD#)U= #)A
5<&*#?)Š$27_0D)3,&F2
;!QD*F;m)#'#)3)'$
7,%&P<7$#)/NFv;&? !
L*F?0+#D<'*j
NQ0+#^-G%%I%II+K!
NeU+/GZ\\FIK!
ad
Phần 3: 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
a) Phát biểu bài toán phân lớp với K-means:
s
Q0#)?A‹Œ•
ŽŒa`]•
[?Oj"
•
:#O:
GŒa‘"K#/D4‡)-#=?'!
Q0+#+-)*Da0I %30%&‹Uj
‹Œ•
ŽŒa`]•
"NLI-3@#$j
Nx#%&!
N:00-=65!
Nw#$%T-5*Ok)?Aa<*0fa
O!
Ng)+)* ;F%O+7#‡%I+)
~
5f
O:
~
!
gD57aF;)8+a+`<,j#%&
)=-=65!
Q0+#j
NV,aN"-+
:"5•
•GŒa‘"K!
aq
NV,`NQ6+#+7#
NV,dN:00-5
NV,qre3&%Tj-#<,`d+,F;
)85fO!
Hình 3. Sơ đồ khối chương trình
b) Ví dụ hiện thực:
Q;&0+#"NIF5dO+0I+€GKFj
€aG`aƒK€`G`zK€dGcqK€qGzcK€zG‚zK€•G•qK€‚Ga`K€cGqbK
"+7#`I+ja=(x1, y1)b=(x2, y2) )A)=ijρ(a, b) = |x2 – x1|
+ |y2 – y1|!G+6%O.%m(6+7#$
+7#‡%K
’%O0+#j
Bước 1: :CI+5<)fTOj€aG`aƒK €qGzcK
€‚Ga`K!
Bước 2:6+#+7#
az
G`aƒK GzcK Ga`K
CI+ "+7#a "+7#` "+7#d :FI
€
a
G`aƒK
€
`
G`zK
€
d
GcqK
€
q
GzcK
€
z
G‚zK
€
•
G•qK
€
‚
Ga`K
€
c
GqbK
:.6+7#T#I+1-F+,#I+5!
I+ 5Oa
aa ``
G`aƒK G`aƒK
“G<KŒŽ`raŽ”Ž`raŽ
“GI+5OaKŒŽ`raŽ”Ž`raŽ
ŒŽ`r`Ž”ŽaƒraƒŽ
Œƒ”ƒ
a•
Œƒ
I+ 5O`
aa ``
G`aƒK GzcK
“G<KŒŽ`raŽ”Ž`raŽ
“GI+5O`KŒŽ`raŽ”Ž`raŽ
ŒŽzr`Ž”ŽcraƒŽ
Œd”`
Œz
I+ 5Od
aa ``
G`aƒK Ga`K
“G<KŒŽ`raŽ”Ž`raŽ
“GI+5O`KŒŽ`raŽ”Ž`raŽ
ŒŽar`Ž”Ž`raƒŽ
Œa”c
Œb
:00+7#fI+€,#I+5+TOj
CI+
€a G`aƒK
€` G`zK
€d GcqK
a‚
€q GzcK
€z G‚zK
€• G•qK
€‚ Ga`K
€c GqbK
"+7#TI+€a,#OG%;+I+5fTOKjƒ
zb
0+7#T€a,Oa5€a*Oa!
:FIa :FI` :FId
G`aƒK
Q ;+I+€`G`zK
I+ 5Oa
aa ``
G`zK G`aƒK
“G<KŒŽ`raŽ”Ž`raŽ
“GI+5OaKŒŽ`raŽ”Ž`raŽ
ŒŽ`r`Ž”ŽaƒrzŽ
Œƒ”z
Œz
I+ 5O`
aa ``
G`zK GzcK
“G<KŒŽ`raŽ”Ž`raŽ
ac
“GI+5O`KŒŽ`raŽ”Ž`raŽ
ŒŽzr`Ž”ŽcrzŽ
Œd”d
Υ
I+ 5Od
aa ``
G`zK Ga`K
“G<KŒŽ`raŽ”Ž`raŽ
“GI+5O`KŒŽ`raŽ”Ž`raŽ
ŒŽar`Ž”Ž`rzŽ
Œa”d
Œq
"+7#TI+€`,#OG%;+I+5fTOKjz
•q
sI+a
G`aƒK GzcK Ga`K
CI+ "+7#a "+7#` "+7#d :FI
€a G`aƒK ƒ z b a
€` G`zK z • q d
€d GcqK
€q GzcK
€z G‚zK
€• G•qK
€‚ Ga`K
ab
€c GqbK
0+7#T€`,Od5€a*Od!
:FIa :FI` :FId
G`aƒK G`zK
Q ;+#I+#)A<7Fj
sI+a
G`aƒK GzcK Ga`K
CI+ "+7#a "+7#` "+7#d :FI
€
a
G`aƒK ƒ z b a
€
`
G`zK z • q d
€
d
GcqK a` ‚ b `
€
q
GzcK z ƒ aƒ `
€
z
G‚zK aƒ z b `
€
•
G•qK aƒ z ‚ `
€
‚
Ga`K b aƒ ƒ d
€
c
GqbK d ` aƒ `
:FIa :FI` :FId
G`aƒK GcqK G`zK
`ƒ
GzcK Ga`K
G‚zK
G•qK
GqbK
Bước 3: :00-5
:OajaI+€aG`aƒKD5)8
:O`jGGc”z”‚”•”qK}zGq”c”z”q”bK}zKŒG••K
:OdjGG`”aK}`Gz”`K}`KŒGa!zd!zK
:aŒG`aƒK
:`GGc”z”‚”•”qK}zGq”c”z”q”bK}zKŒG••K
:dGG`”aK}`Gz”`K}`KŒGa!zd!zK
:#O,F5)Dj
:Oaˆ€a
:O`j€d€q€z€•€c
:Odj€`€‚
`a
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 đỏ
Bước 4:-<,`<,d,F;)85+O!
u(`j
Q)Aj
Oaj€a€c
O`j€d€q€z€•
Odj€`€‚
Q5,j:aGdb!zKˆ:`G•!zz!`zKˆ:dGa!zd!zK
u(dj
``
Qj
Oaj€a€q€c
O`j€d€z€•
Odj€`€‚
Q5,j:aGd!••bKˆ:`G‚q!ddKˆ:dGa!zd!zK
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:
e'#%O0+#"NI+5,P<77;&I+
P <7 k P <7 )A <' %p %, %- I+
&I+P<7F%O$I+
![0#I+'#%O0+#"NI+
#P<7!
b) Mô hình vector không gian
L$I+$I+-*$)-F?+)-
%&#&P<7G<2y)?A+KI )=%
•-6%O39F?!)AF%O+U
09O<7B-D@![%O)Df&?
U[L€tQ!
`d
Q)A<'%pI !
Lk6, (,*0D<&!B-7+
&#=f+I+!L*F?##6+###
=1)AAG-K)l)A#'!L*+
#?2)A<B)BZN%ZGI6%O%,)5K!e=i
f0O*+(%O!Q/)3&T)
T+#+OT%!B)A;#)3+7F?3fI+
F?T+T;GF?A#TD<&7+&K!CI+
+-)*')AF%O)'F+F##&,#2!
Q(@#$I+5<)2@B$)A
#5+T5<&)D$2?D)3
;&)A!Q+ $.I9;&t%+
5<)![?<)>*2)3.7#)=
)AT)F?+#(%O;B$F?.
)AT0%&!
c) Xác định trọng số (tọa độ) của hạn (term) trong văn bản:
Q+$I+8)'AO'-+#I
&P<76f#<BF?)= +O!L$)A
<B)B=)7+F?f-F?&$!CI+
A + & % I+
Q+))*H
%
)A6<(j
N Q+ ) Z
%
F? 2 & f - + & %!
=)7+F?&!ŽJŽ8&+
`q
0! F?&(-!+%I+^.II
F?f#-F?2&f-)+P<7!
d) Xác định các hạn(term) trong văn bản
‹#)=#-+P<76&#)=#T+P<7!Q#
T+P<7*<7+#)<&+BC&!e?,&#
)=#-+P<7$#T?iFv)A+-<^)D#T?
i/#,T-+TjX$YXYXYXFvY]:#T)A
F+H+%F!
e?,P<7B&#T )?%p$B#T+B
€T) .'#%O&##+7;)
<&!QDB#T+B&#TW&##T)
0Fv+&+6#!
Ví dụ:XV#FiYXFiYX-FiYXFiY]$&#T) '
+&+6#!
Q+(%O^.IF%O&#TI+T)'!L*T)'
U#TW8<B+BC&)AU#T/%m
B#%T!QT)')AFBI+(;7%fF?5B!
C&FB7%F?5BFv.&#T6# !C&#T
Fv) ;&AT#T35B,#T65B!
C6%Oj
X:&#'Y
LRT)'j X:&YX:&YXQY
`z