HUTECH
B GIÁO DC VÀ ÀO TO
TRNG I HC K THUT CÔNG NGH
KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PHN MM
LUN VN TT NGHIP
TÌM HIU V PHÂN LOI VN BN
VÀ XÂY DNG CHNG TRÌNH NG DNG
Sinh viên thc hin:
1. H tên: PHAN THANH BÌNH
MSSV: 10102019
2. H tên: LÊ BCH V
MSSV: 10102218
TP. H CHÍ MINH
NM HC: 2005-2006
HUTECH
B GIÁO DC VÀ ÀO TO
TRNG I HC K THUT CÔNG NGH
KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PHN MM
LUN VN TT NGHIP
TÌM HIU V PHÂN LOI VN BN
VÀ XÂY DNG CHNG TRÌNH NG DNG
Sinh viên thc hin:
1. H tên: PHAN THANH BÌNH
MSSV: 10102019
2. H tên: LÊ BCH V
MSSV: 10102218
Ging viên hng dn:
Ths. NGUYN CHÁNH THÀNH
TP.HCM, THÁNG 1 NM 2006
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 1
LI NÓI U
Ngày nay, vi s phát trin ca công ngh thông tin, thì s lng thông tin
cng bùng n nhanh chóng. Các thông tin tn ti di nhiu hình thc khác
nhau nh: các trang web, th đin t, c s d liu… Do đó công vic tìm
kim thông tin theo ni dung nào đó cng tr nên khó khn. T thc tin này
nhu cu phân loi các thông tin đã xut hin t rt sm. Nhng nu dùng con
ngi đ phân loi các thông tin thì s mt rt nhiu công sc và tin bc. Cho
nên ngi ta đã tìm ra nhiu phng pháp phân loi vn bn t đng giúp gim
gánh nng cho con ngi.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 2
TÓM TT NI DUNG
Trong lun vn này chúng tôi s trình bày v các phng pháp phân loi vn
bn và hin thc gii thut K-Nearest Neightbour (K-NN). ây là gii thut
không quá phc tp nhng có đ chính xác khá cao.
Các phn trong lun vn s đc trình bày nh sau:
Chng 1: Chng này s trình bày v nhu cu thc tin ca vic phân loi
vn bn và các ng dng thc t ca các ph ng pháp phân loi vn bn t
đng. Chng này s cho ta thy s cn thit ca vic phân loi vn bn t
đng trong thi đi ngày nay.
Chng 2: Chng này trình bày v các c s lý thuyt liên quan đn quá trình
phân loi vn bn t đng. Cung cp các kin thc rt quan trng dùng đ cài
đt và kim tra hiu qu ca các phng pháp phân loi t đng.
Chng 3: Chng này trình bày tng quan mt s phng pháp phân loi vn
bn t đng nh: Gii thut Rocchio, Gii thut K-Nearest Neighbour, Naïve
Bayes, Gii thut cây quyt đnh, Gii thut mng neuron, Gii thut Support
Vector Machine.
Chng 4: Chng này s trình bày bng thit k và cài đt chng trình phân
loi vn bn t đng theo phng pháp K-Nearest Neighbour. Sau đó chúng tôi
s trình bày các kt qu đt đc sau khi chy th nghim chng trình nh đ
chính xác, tc đ ca chng trình. minh ha cho vic ng dng phng
pháp phân loi vn bn t đng, chúng tôi có cài đt các module crawler dùng
đ rút trích vn bn trên mng máy tính, module index dùng đ lp ch mc các
vn bn đã phân loi và mt trang web tìm kim.
Chng 5: Chng này s trình bày các tho lun và rút ra các kt lun và kt
qu đi chiu vi mc tiêu đ ra. Cui cùng là đnh hng phát trin ca đ tài.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 3
LI CM N
Li cám n đu tiên chúng tôi xin gi đn Thc s Nguyn Chánh Thành. Thy
đã tn tình hng dn và đnh hng cho chúng tôi t đ án c s, đ án
chuyên ngành và nay là lun vn tt nghip. Chúng tôi xin chúc thy luôn vui
v hnh phúc và luôn nhit tình ch bo cho các sinh viên. Tip theo chúng tôi
xin cám n các anh ch trong công ty Thng mi c phn HPT chi nhánh
thng mi TP-HCM đã nhit tình giúp đ và to điu kin cho chúng tôi tìm
kim vn bn và d liu kim chng chng trình. Cui cùng xin cám n đn
các bn thân hc cùng khóa 01- TH đã quan tâm đng viên c húng tôi trong
quá trình thc hin đ tài này.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 4
MC LC
LI NÓI U 1
TÓM TT NI DUNG 2
LI CM N 3
MC LC 4
DANH MC HÌNH 9
DANH MC BNG 11
Chng 1 12
PHÁT BIU VN 12
1.1. Gii thiu 12
1.1.1. ng c thúc đy vic phân loi vn bn t đng
13
1.1.2. Mt s ng dng ca vic phân loi vn bn theo ch đ
14
1.2. Ni dung đ tài
15
1.3. ng dng m rng - Lp ch mc và tìm kim ca Lucene
16
1.3.1. Gii thiu Lucene
16
1.3.2. C s nn tng ca Lucene
18
1.3.3. Mc đích, chc nng, công dng
18
1.3.4. To ch mc và tìm kim
19
Chng 2 20
C S LÝ THUYT PHN LOI VN BN 20
2.1. Biu din vn bn 20
2.1.1. Phng pháp Boolean
23
2.1.2. Phng pháp tn sut t (work frequency)
24
2.1.3. Phng pháp tf-idf (frequency x inverse document frequency)
24
2.1.4. Phng pháp tfc (Term Frequency Component)
25
2.1.5. Phng pháp ltc (Log Term Component)
25
2.1.6. Phng pháp Entropy
26
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 5
2.2. Rút gn danh sách t 26
2.2.1. Phng pháp ngng tn xut ca vn bn.
27
2.2.2. Phng pháp đ li thông tin
27
2.2.3. Phng pháp thông tin tng h
28
2.2.4. Phng pháp đ mnh ca t
28
2.2.5. Phng pháp thng kê
2
χ
29
2.3. Tp vn bn dùng đ phân loi 30
2.3.1. Gii thiu
30
2.3.2. Tp Reuters
30
2.3.3. Tp 20-newsgroup
33
2.4. ánh giá đ chính ca vic phân loi vn bn
34
2.4.1. Thông s precision.
35
2.4.2. Thông s recall
35
2.4.3. Thông s f (f-score)
35
2.4.4. Thông s accuracy
36
2.4.5. Thông s error
36
Chng 3 37
CÁC GII THUT PHÂN LOI VN BN 37
3.1. Gii thut Rocchio 37
3.1.1. Gii thiu
37
3.1.2. Giai đon hun luyn
38
3.1.3. Giai đon phân loi
39
3.1.4. ánh giá gii thut
40
3.2. Gii thut K-Nearest Neighbour
41
3.2.1. Gii thiu
41
3.2.2. Giai đon hun luyn
42
3.2.3. Giai đon phân loi
43
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 6
3.2.4. ánh giá gii thut 44
3.3. Gii thut Naïve Bayes
45
3.3.1. Gii thiu
45
3.3.2. Giai đon hun luyn
46
3.3.3 Giai đon phân loi
46
3.3.4. ánh giá gii thut
47
3.4. Gii thut cây quyt đnh
47
3.4.1. Cây quyt đnh
47
3.4.2. Entropy và đ li thông tin.
49
3.4.3. Ct nhánh cây quyt đnh.
49
3.4.4. Nhn xét
50
3.5. Gii thut mng Neuron (Neural Network)
50
3.5.1. Gii thut
50
3.5.2. ánh giá gii thut
53
3.6. Gii thut Support Vector Machine
54
3.6.1. Các mt phân cách (Hyperplanes)
54
3.6.2. Gii thut Support Vector Machine.
55
3.6.3. Nhân xét.
56
3.7. Chn gii thut
57
Chng 4 58
THIT K VÀ HIN THC CHNG TRÌNH PHÂN LOI VN BN 58
4.1. Quá trình xây dng gii thut K-Nearest Neighbour 58
4.1.1. Xây dng t đin (danh sách t khóa)
58
4.1.2. Giai đon hun luyn
58
4.1.3. Giai đon phân loi
59
4.2. S đ usecase
60
4.3. S đ tun t ca vài nghip v chính
61
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 7
4.3.1. Hun luyn vn bn 61
4.3.2. Phân loi vn bn
62
4.3.3. ánh giá kt qu phân loi
63
4.3.4. Trích rút d liu trên mng
65
4.3.5. Lp ch mc
66
4.3.6. Tìm kim
67
4.4. S đ lp
68
4.4.1. Pakage textcategory.reader
68
4.4.2. Package textcategory.analysis
69
4.4.3. Package textcategory.training
70
4.4.4. Package textcategory.category
72
4.4.5. Package store.
72
4.4.6. Package crawler
73
4.4.7. Package index
74
4.4.8. Package util
74
4.5. Thit k c s d liu
75
4.6. Thit k giao din
76
4.6.1. Màn hình chính ca chng trình
76
4.6.2. Màn hình to loi vn bn
76
4.6.3. Màn hình hun luyn chng trình
77
4.6.4. Màn hình phân loi d liu
77
4.6.5. Màn hình kt qu phân loi
78
4.6.6. Màn hình to ch mc (reverted index)
78
4.6.7. Màn hình trích rút d liu trên mng
79
4.6.8. Trang ch tìm kim theo ch đ
79
4.6.9. Trang tìm kim theo ch đ
80
4.7. Kt qu đt đc
80
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 8
Chng 5 83
ÁNH GIÁ VÀ HNG PHÁT TRIN 83
5.1. ánh giá 83
5.1.1. Kt qu đt đc
83
5.1.2. Các hn ch ca đ tài
84
5.2. Hng phát trin ca đ tài
84
PH LC 86
1. T đin gii thích các thut ng 86
2. Các mã ngun m đc s dng trong lun vn
87
3. Tài liu tham kho
87
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 9
DANH MC HÌNH
Hình 1. Mô hình kin trúc ca Lucene 17
Hình 2. Mô hình không gian vector 3 chiu. 22
Hình 3. nh minh ha cho gii thut phân loi vn bn Rocchio 39
Hình 4. Mình ha xác đnh vector Q ging D1 hay D2 theo gii thut KNN 44
Hình 5. Cây quyt đnh cho ch đ “earning” 48
Hình 6. Biu đ th hin hiu qu ca vic ct nhánh 50
Hình 7. Mô hình mt Perceptron 51
Hình 8. Mô hình mng neuron 53
Hình 9. Mô hình lan truyn d liu 53
Hình 10. ng phân cách 54
Hình 11. Các trng hp ca đng phân cách 55
Hình 12. Biu din nhiu ch đ khác nhau trong phng pháp SVM 55
Hình 13. Mô t phng pháp SVM 56
Hình 14. Ví d cn phân loi vn bn x vi K = 3 59
Hình 15. S đ use case mô t các nghip v ch ng dng 60
Hình 16. S đ tun t ca quá trình hun luyn chng trình 61
Hình 17. S đ tun t ca quá trình phân loi vn bn 62
Hình 18. S đ tun t ca quá trình đánh giá kt qu phân loi 64
Hình 19. S đ tun t ca quá trình đánh giá kt qu phân loi 65
Hình 20. S đ tun t ca quá trình lp ch mc 66
Hình 21. S đ tun t ca quá trình tìm kim 67
Hình 22. Package reader 68
Hình 23. Pakage analysis 69
Hình 24. Pakage training 70
Hình 25. Pakage category 72
Hình 26. Package store 72
Hình 27. Package crawler 73
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 10
Hình 28. Package index 74
Hình 29. Package util 75
Hình 30. C s d liu 75
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 11
DANH MC BNG
Bng 1. Ví d mt t đin 21
Bng 2. Các version ca tuyn tp Reuter. 31
Bng 3 . Thng kê mt s ch đ trong tp Reuters 33
Bng 4. Thng kê mt s ch đ trong tp 20-newsgroup 34
Bng 5. Các trng hp phân loi 35
Bng 6. Tóm tt hiu qu ca các gii thut ( bi Yang & Liu) 57
Bng 7. Kt qu đt đc ca chng trình demo 82
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 12
Chng 1
PHÁT BIU VN
1.1. Gii thiu
Lun vn này trình bày v vn đ phân loi vn bn t đng theo các ch đ
cho trc. tài này đã đc nghiên cu t đu thp niên 1960. K t đó, đ
tài này đã liên tc đc nghiên cu và phát trin thông qua các th vin đin
t, báo chí và các vn bn trc tuyn. Khái nim phân loi vn bn đc đnh
ngha nh sau:
“Phân loi vn bn (Text Categorization) là vic quyt đnh xem mt mu vn
bn thuc v mt ch đ nào đó trong tp ch đ cho trc. ây là chc nng
x lý vn bn tng quát có ích cho vic lp ch mc và truy xut thông tin sau
này, là mt công đon trong h thng x lý ngôn ng t nhiên đ phân tích ni
dung và trong nhiu vai trò khác.”
X lý ngôn ng t nhiên (NLP: Natural Language Processing) là lnh vc
thuc ngành trí tu nhân to và ngôn ng hc. Nó có nhng phng pháp giúp
cho vic x lý, thao tác và hiu ngôn ng t nhiên mt cách d dàng và làm
cho các câu lnh trong máy tính hiu đc các ngôn ng ca nhân loi. Do đó,
nó thu hút rt nhiu nhà khoa hc nghiên cu và đã đt đc nhng thành tu
đáng k. Sau đây là mt vài thành tu có th k đn nh:
c vn bn (Text to Speech)
Nhân dng ting nói (Speech Recognition)
Sinh ra ngôn ng t nhiên (Natural Language Generation)
Máy dch thut (Machine Translation)
Tr li câu hi (Question Answering)
Tìm kim thông tin (Information Retrieval)
Trích rút thông tin (Information Extraction)
Kim chng vn bn (Text-Proofing)
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 13
Tóm tc t đng (Automatic Summarization)
M h v ng ngha (Syntactic ambiguity)
X lý ngôn ng bng thng kê (Statistical Natural Language Processing)
Trong lun vn này chúng tôi trình bày là phân loi vn bn t đng - mt
hng nghiên cu trong lnh vc x lý ngôn ng t nhiên bng thng kê. Mc
tiêu ca vic phân loi vn bn t đng là phi vit mt chng trình có kh
nng phân loi chính xác mt vn bn bt k (bng ting Anh).
1.1.1. ng c thúc đy vic phân loi vn bn t đng
Phân loi vn bn t đng đem li rt nhiu li ích trong đi sng hin nay.
Tht vy, s phát trin vt bc ca Internet dn đn s bùng n ca các vn
bn trc tuyn, cho nên cn phi phân loi các vn bn nhn đc vào các ch
đ khác nhau.
Nu vic phân loi vn bn c đin đc thc hin th công, ngha là thông
qua con ngi (các chuyên gia ca tng lnh vc), thì s lng chuyên gia
tham gia vào vic phân loi là rt ln và thi gian phân loi cng ln hn, điu
này rt tn kém và gây nhàm chán cho các chuyên gia này. Tuy nhiên vic
phân loi th công cng không tránh khi nhng ý kin ch quan ca nhng
chuyên gia, vì vy đ chính xác cng không cao.
Khi đó các công c ph ân loi vn bn t đng rt hu ích cho ngi đc trong
vic t chc d liu. Do đó vic phân loi tin hành bng máy có u đim là
hiu sut cao, có th hot đng bt k lúc nào.Tuy nhiên vn đ ta cn quan
tâm là đ chính xác ca h thng.
Tht vy, nu thc hin theo cách t đng s tn dng đc kh nng quét các
vn bn và kh nng x lý nhanh ca máy tính. Do đó hiu sut s ln hn và
đ chính xác s cao hn nu nh máy tính đc hun luyn tt.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 14
1.1.2. Mt s ng dng ca vic phân loi vn bn theo ch đ
a. Phân loi vn bn theo ngôn ng
mt s trung tâm kim duyt vn bn, s lng vn bn nhn đc rt ln.
Các vn bn này có th đc biu din t các ngôn ng khác nhau. Ta có th
dùng các h thng phân loi vn bn theo ngôn ng đ gán các vn bn này vào
tng ngôn ng c th. Các chuyên gia ngôn ng s kim duyt các vn bn này
theo ngôn ng chuyên môn ca h.
b. Phân loi thông tin theo ch đ
Cng ging nh vic phân loi vn bn theo ngôn ng, vic phân loi thông tin
theo ch đ s phân chia các thông tin nhn đc vào các ch đ khác nhau.
Nu vic phân loi này đc thc hin th công, ngha là thông qua con ngi,
thì s lng chuyên gia tham gia vào vic phân loi là rt ln và thi gian phân
loi cng ln hn. Vic phân loi th công cng không tránh khi ý kin ch
quan ca nhng chuyên gia, vì vy đ chính xác cng không cao. Trong khi đó,
nu thc hin theo cách t đng s tn dng đc kh nng quét các vn bn và
kh nng x lý nhanh ca máy tính. Do đó hiu sut s ln hn và đ chính xác
s cao hn nu nh máy tính đc hun luyn tt.
c. Tìm kim thông tin
Vic phân loi vn bn có th áp dng trong các h thng tìm kim thông tin
nhm tng hiu sut cng nh tng đ chính xác ca vic tìm kim. Do s phát
trin ca Internet, s lng thông tin trc tuyn ngày càng tng. Mt thao tác
ph bin trên Internet là tìm kim. Tuy nhiên, do khi lng thông tin rt ln
nên các c máy tìm kim (search engine) thng t chc d liu vào các ch đ
giúp không gian tìm kim gim đi, qua đó tng hiu sut ca h thng.
Ngoài ra vic tìm kim theo t khoá thng không đt đc đ chính xác cao
nên các search engine thng kt hp vi tìm kim theo ch đ nhm ci thin
đ chính xác ca vic tìm kim.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 15
d. Phân loi email
Chc nng ca mt h thng phân loi email t đng là:
- T chi mail theo lut.
- Phân phi mail vào các folder đnh trc.
- Chuyn mail đn đa ch khác.
1.2. Ni dung đ tài
Trong lun vn chúng tôi tìm hiu và áp dng phng pháp k – Nearest
Neighbour đ phân loi vn bn ting Anh. i vi ngôn ng ting Anh hin
nay có rt nhiu công trình liên quan nh: Google, Yahoo, …
Các vn bn cn phân loi trong lun vn chúng tôi gói gn trong 5 ch đ: Trí
tu nhân to (artificial intelligence), Cu trúc d liu + gii thut (structure and
algorithm), mng máy tính (network), sinh hc (biology), bóng đá (football).
Các ch đ trên đc thu thp t các trang web đc Google phân loi sn do
đó mi th loi rt đa dng v ni dung. Trong đó hai ch đ cu trúc d liu +
gii thut và trí tu nhân to đc xem là tiêu biu nht cho vic phân loi vì
chúng giao nhau rt ln, thêm vào đó là ch đ mng máy tính cng rt gn vì
chúng điu thuc cùng mt lnh vc khoa hc máy tính. Ngoài ra, các ch đ
còn li đi din cho các vn bn hoàn toàn khác nhau nên vic phân loi vn
bn s d dàng hn và đt đ chính xác cao hn. Do đó mt vn bn có th
thuc cùng lúc c hai hoc nhiu ch đ thì vic phân loi s khó khn hn và
mc đ chính xác cng thp hn. Nu gii quyt đc tình hung khó khn
trên thì vic phân loi vn bn cho các ch đ khác s đt đ chính xác cao
hn.
Tóm li, sau khi xây dng thành công gii thut phân loi vn bn cho các ch
đ trên, thì vic m rng phân loi vn bn cho nhiu ch đ khác là điu hoàn
toàn có th t hc hin đc mt cách d dàng. Mi ch đ cn phân loi phi
trên vài trm vn bn mu và phi có các chuyên gia riêng to lp thì mi có
th đt đc đ chính xác cao.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 16
1.3. ng dng m rng - Lp ch mc và tìm kim ca Lucene
1.3.1. Gii thiu Lucene
Lucene là b công c mã ngun m vit bng Java h tr vic to ch mc
(indexing) và tìm kim (searching) vn bn. ây là b công c d s dng, linh
hot và khá mnh vi mô hình kin trúc hng đi tng. Lucene là mt thành
viên rt đc a chung trong các d án ca Apache Jakarta. Trong vài nm
gn đây, hu ht các th vin tìm kim thông tin (IR: Information Retrieval)
bng Java đu hoàn toàn min phí.
Lucene có th to ch mc cho bt kì thông tin dng text nào bn mun, sau đó
thc hin tìm kim theo nhiu tiêu chun khác nhau. Mc dù ch làm vic vi
text, nhng có nhiu tính nng khác đc cung cp đ bn có th to index cho
vn bn Word, file PDF, XML, hay các trang HTML. Lucene không quá phc
tp. Nó cung cp mt khung làm vic c bn, h tr bn xây dng mt công c
tìm kim đy đ chc nng cho website ca mình.
Ta có th xem Lucene là mt tng phía di, giúp x lí thao tác index và search
cho các chng trình bên trên, nh trong hình sau:
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 17
Hình 1. Mô hình kin trúc ca Lucene
Mt s chng trình tìm kim có đy đ chc nng đc xây dng da trên c
s Lucene. Nu bn đang tìm mt s th cn thit đã đc xây dng sn hay
mt khung làm vic dùng cho vic crawling, x lí vn bn, và tìm kim, bn có
th xem ti trang Lucene Wiki ( />lucene/PoweredBy) vi nhiu chng trình: Zilverline, SearchBlox, Nutch,
LARM, và jSearch.
Vi s phong phú ca thông tin, và thi gian là mt trong nhng th quý giá
ca hu ht mi ngi, chúng ta cn làm cho nhng câu truy vn tr nên linh
hot, đc lp, đc bit đ nhanh chóng ct ngang rào cn phân loi cng nhc
và tìm kim chính xác sau đó đa ra kt qu hp lý nht theo yêu cu.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 18
1.3.2. C s nn tng ca Lucene
Lucene là sn phm sáng to ca Doug Cutting và sn có trên SourceForge,
cho phép mi ngi download. Nó gia nhp dòng sn phm phn mm Apache
Software Foundation's Jakarta mã ngun m bng Java vào tháng 9 nm 2001.
T khi đc ph bin rng rãi, Lucene ngày càng đc nhiu ngi dùng và
các nhà phát trin ng h. Tháng 11 nm 2002, phiên bn Lucene 1.2 đc phát
hành, ri đn 1.3. Ngoài nhng t chc đc đ cp đn trang "Powered by
Lucene", còn có các tp chí nh FedEx, Overture, Mayo Clinic, Hewlett
Packard, New Scientist magazine, Epiphany, và mt s khác.
1.3.3. Mc đích, chc nng, công dng
Doug Cutting, mt nhà phát trin đy kinh nghim trong lnh vc text-search
(tìm kim vn bn) và công c phc hi đã sáng to ra Lucene. Cutting là tác
gi chính ca c máy tìm kim V-Twin và hin nay là kin trúc s thâm niên
ti Excite. Ông đã thit k Lucene nhm giúp vic to index và kh nng tìm
kim có th phát trin trên nhiu ng dng, bao gm:
Searchable email : Mt ng dng email cho phép ngi dùng tìm kim
các thông đip đã đc lu tr và thêm vào nhng thông đip mi đ
to index khi chúng đn.
Online documentation search: mt documentation reader CD, Web
hay đc nhúng vào mt ng dng - cho phép ngi dùng tìm kim các
vn bn hng dn trc tuyn.
Searchable Webpages: Mt trình duyt Web hay máy ch proxy có th
xây dng mt công c tìm kim riêng đ to index cho mi trang Web
mà ngi dùng đã vào, cho phép ngi dùng d dàng vào li các trang
Web đó.
Website search: Mt chng trình CGI giúp ngi dùng tìm đc
Website ca bn.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 19
Content search: Mt ng dng cho phép ngi dùng tìm kim các vn
bn đã đc lu li theo mt ni dung c th; nó có th tích hp vào
trong mt hp thoi m vn bn ( Open Document dialog).
Version control và content management: mt h thng qun lí vn
bn có th to index cho các vn bn, hay phiên bn ca vn bn nhm
d dàng trong vic phc hi.
Tt nhiên, nhiu công c tìm kim có th thc hin hu ht các chc nng trên,
nhng ít có công c tìm kim mã ngun m nào li d dùng và linh hot nh
Lucene.
1.3.4. To ch mc và tìm kim
Trc tiên, bn cn đ d liu vào ng dng tìm kim ca mình (indexing) hay
ly d liu ra (searching).
- To ch mc (Indexing) bng các to các đi tng Documents vi nhng
Fields ca nó (là mt cp tên/giá tr) và đ nó vào mt IndexWriter đ phân
tích ni dung ca các Field values thành các token và to ra index.
- Tìm kim (Searching) dùng mt đi tng IndexSearcher. Trc ht, ly
câu truy vn (kiu String) t ngi dùng, truyn nó cho QueryParser (và nh là
QueryParser cn phi đc khi to trc đó, có cùng loi Analyzer khi bn
xây dng index; QueryParser s dùng Analyzer đ phân tích chui truyn vào)
và tr v mt đi tng Query. Sau đó, ly đi tng Query này dùng cho
phng thc IndexSearcher.search(). Nó s tr v đi tng Hits, là mt tp
hp các đi tng Document đc tìm thy. i tng Hits cng cha c score
cho mi Document.
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 20
Chng 2
C S LÝ THUYT PHN LOI VN BN
2.1. Biu din vn bn
Hu ht các vn bn đu chuyn đi mt hay nhiu chui gm các t sang mt
dng thích hp đ có th đc x lý bi gii thut. Các vn bn đc coi là mt
tp hp ca các t mà không quan tâm đn cu trúc câu, trt t t, thì, t loi.
Trong vn bn ting Anh, đ so sánh s khác nhau gia nhng vn bn thì ta
chuyn chúng v dng nhng vector trng s. Chúng ta da vào nhng quy tc
sau đ ly thông tin t các vn bn hun luyn.
Du chm câu phân cách các t
Loi b các con s và du chm câu.
Chuyn tt c các t v dng ch thng.
Loi b nhng gii t (Prepositions), liên t (conjunctions), tr đng t
(auxiliary verbs), mo t (articles), .v.v.
Nhng t đc thay th v dng hình thái t gc. C th là nhng t có cùng t
hình thái thì cng đc đm cho t gc, và chúng đc ct b ph t ca gc
t.
Ví d, nhng t nh: economics và economy s có cùng cách th hin là
econom.
Nhng đc tính bt ngun t nhng tp vn bn hun luyn đc dùng đ to
mt t đin cha nhng t gc, nhng t nhn dng, và s ln mt t xut hin
trong tp hun luyn.
T gc T nhn dng S ln xut hin
Econom 12 1922
Offer 899 1897
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 21
Industr 317 1893
Quarter 758 1842
Incr 18 1835
Bng 1. Ví d mt t đin
Giai đon sau này, t đin s đc s dng nh mt phng tin đ tính toán
tng đi quan trng dùng đ đm s ln xut hin ca t trong tt c các vn
bn.
Mt khi t đin đc to ra nhng vector t đin riêng l đc phát sinh.
Mô hình không gian vector biu din nhng vn bn nh nhng vector trng s
trong không gian n chiu to thành mô hình biu din d liu ca chúng ta.
Phng pháp này cn x lý trc mt lng d liu tng đi nh đ làm tin
ích khi chúng ta x lý mt khi lng d liu khng l.
Trong mô hình này mt vn bn đ c biu din bng mt vector các t vi s
chiu t là tng s t khác nhau ca t đin.
Mi t (term) th i trong mt vn bn d hoc trong câu truy vn th j có mt
giá tr trng s là w
ij
Ví d:
Biu din mt tp hp gm ba vn bn D1, D2, Q vi s chiu t = 3 ngha là
trong t đin có 3 t là T1, T2, T3.
Vn bn D1 cha 2 t T1, 3 t T2 và 5 t T3 => D1 = 2T1 + 3T2 + 5T3
Vn bn D2 cha 3 t T1, 7 t T2 và 1 t T3 => D2 = 3T1 + 7T2 + T3
là s thc.
Nh vy mt vn bn hoc câu truy vn đc biu din di dng:
S chiu = t = | tng s t vng |
d
j
= (w
1j
, w
2j
, …, w
tj
)
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 22
Vn bn Q cha 0 t T1, 0 t T2 và 2 t T3 => Q = 0T1 + 0T2 + 2T3
Ta có cách vit di dng vector nh sau:
Vn bn D1: D1(2, 3, 5)
Vn bn D2: D2(3, 7, 1)
Vn bn Q: Q(0, 0, 2)
Do đó các vector D1, D2, Q s đc biu din trên mô hình không gian vector
3 chiu nh hình v.
Hình 2. Mô hình không gian vector 3 chiu.
Tp hp n vn bn và t tng s t trong t đin, ta có th biu din di dng
mt ma trn nh sau:
tn2n1nn
t222122
t112111
t21
w… w wD
… … … … …
w… w wD
w… w wD
T … T T
T
3
T
1
T
2
D
1
= 2T
1
+ 3T
2
+ 5T
3
D
2
= 3T
1
+ 7T
2
+ T
3
Q = 0T
1
+ 0T
2
+ 2T
3
7
3
2
5
HUTECH
Lun vn tt nghip GVHD: Th.s Nguyn Chánh Thành
SVTH: Phan Thanh Bình & Lê Bch V Trang 23
Mi dòng là mt vector biu din cho mt vn bn, mi phn t w
ij
trong ma
trn tng trng cho s xut hin ca mt t trong mt vn bn nào đó; w
ij
= 0
ngha là t đó không có trong vn bn (do mi vn bn ch cha mt s t nào
đó).
Quan sát ta thy
Nu mt t xut hin trong vn bn càng nhiu, kh nng t đó liên quan đn
ch đ ca vn bn càng ln.
Nu mt t xut hin trong hu ht các vn bn, mà các vn bn đó đu thuc
các ch đ khác nhau, thì t đó không có ý ngha đi vi bt k mt ch đ
nào.
Gi
f
ij
là s ln xut hin ca t i trong vn bn j.
N là tng s các vn bn.
t là tng s t khác nhau trong t đin.
df
i
là tng s vn bn cha t i.
Có nhiu phng pháp đ xác đnh giá tr ca trng s w
ij
2.1.1. Phng pháp Boolean
. Sau đây là mt vài
phng pháp ph bin.
Mt vn bn đc biu din mi mt tp hp các t khóa. Các câu truy vn
da trên phng pháp Boolean là các biu thc Boolean gm các t khóa đc
lien kt vi nhau bi các toán t AND, OR, NOT và các du ngoc đ ch
phm vi. Ví d nh:
[[Rio & Brazil] | [Hilo & Hawaii]] & hotel & !Hilton]
D liu kt xut là các vn bn có liên quan hoc không liên quan và không có
sp xp.
ây là phng pháp đc s dng ph bin vì nó đn gin, d truy vn, hình
thc rõ ràng. Giá tr w
ij
ch bng 1 hoc 0, ngha là t i có hoc không xut
hin trong vn bn j.