2
MỤC LỤC
Chương 1 Tổng quan 8
1.1 Dẫn nhập 8
1.2 Mục tiêu đề tài: 9
1.3 Phạm vi đề tài 9
1.4 Nội dung luận văn 10
Chương 2 Mẫu thiết kế hướng đối tượng 11
2.1 Khái niệm mẫu thiết kế 11
2.2 Lịch sử và vai trò của mẫu thiết kế 11
2.3 Các loại mẫu được sử dụng trong phát triển phần mềm 12
2.4 Các mẫu thiết kế hướng đối tượng GoF 14
2.4.1 Các mẫu tạo lập (Creational patterns) 15
2.4.2 Các mẫu cấu trúc (Structural patterns) 15
2.4.3 Các mẫu ứng xử (Behavioural patterns) 15
2.4.4 Mẫu thiết kế hướng đối tượng dạng phức hợp 15
2.5 Các bước để lựa chọn mẫu thiết kế 16
2.6 Một số vấn đề được giải quyết bằng mẫu thiết kế 17
Chương 3 Tổng quan về rút trích thông tin 19
3.1 Giới thiệu chung 19
3.2 Giới hạn hướng nghiên cứu của đề tài 21
3.3 Giới thiệu về Rút trích thông tin 22
3.3.1 Khái niệm 22
3.3.2 So sánh rút trích thông tin và tìm kiếm thông tin 22
3.3.3 Hệ thống rút trích thông tin từ các trang web 23
3.4 Bài toán cần giải quyết 25
3.5 Các nghiên cứu liên quan đến bài toán đặt ra 28
3
Chương 4 Mẫu thiết kế xây dựng ứng dụng hỗ trợ rút trích thông tin từ web 30
4.1 Giới thiệu ứng dụng 30
4.2 Kiến trúc ứng dụng hỗ trợ rút trích thông tin từ web Nn theo ch 30
4.2.1 Quá trình s dng ng dng rút trích thông tin t web Nn 30
4.2.2 Kin trúc h thng 32
4.3 Các mu thit k ưc dùng xây dng ng dng 33
4.3.1 Mu thit k MVC 33
4.3.2 Mu Data Access Pattern 35
4.3.3 Mu Dynamic Factory 36
4.3.4 Mu Abstract Factory 39
4.3.5 Mu Strategy 40
Chương 5 Cài t và kim th 43
5.1 Quá trình xây dng các thuc tính h tr rút trích thông tin: 43
5.2 Quá trình xây dng công c h tr rút trích thông tin: 44
5.2.1 Giao din ng dng: 44
5.2.2 T chc lưu tr thông tin các ch và trang web Nn 47
5.2.3 T chc lưu tr thông tin cu hình 49
5.3 Cài t các thành phn có s dng mu thit k hưng i tưng 50
5.3.1 Áp dng mu thit k Dynamic Factory iu hưng x lý các yêu
cu 50
5.3.2 Áp dng mu Abstract Factory cho thành phn rút trích thông tin t
web Nn ni dung ng 52
5.3.3 Áp dng mu thit k Strategy óng gói thut toán 57
Chương 6 Kt lun và hưng phát trin 60
6.1 Kt lun: 60
6.1.1 Kt qu t ưc 61
6.1.2 Hn ch: 62
6.2 Hưng phát trin 62
Tài liu tham kho 63
4
Ph lc A Gii thiu v web Nn 66
A. 1 Khái nim 66
A. 2 Gii thiu v web Nn ni dung ng 67
Ph lc B Cài t minh ha mu thit k mu Dynamic Factory 69
Ph lc C Áp dng thng kê thu thp thuc tính chung ch 71
5
DAN H MC CÁC T VIT TT &
THUT N G
Information Extraction: Rút trích thông tin.
Information retrieval : Tìm kim thông tin.
Information Integration : Tng hp thông tin.
Object Oriented Design patterns: Mu thit k hưng i tưng.
Composite Patterns: Mu thit k phc hp.
Wrapper: Công c rút trích thông tin t web.
Deep web: Trang web Nn.
Meta search engine: Máy tìm kim liên hp.
Web mining: Khai phá web
Content mining: Khai phá ni dung.
Text Mining: Khai phá văn bn.
Structure Mining: Khai phá cu trúc.
Usage Mining: Khai phá s dng
6
DAN H MC CÁC BN G, HÌN H
Hình 3-1 : Mt s form tìm kim theo ch vic làm [10] 26
Hình 3-2: Minh ha Visual Block Tree, và canh l các mc d liu 28
Hình 3-3: Mu ánh nhãn form 29
Hình 4-1 : Biu hot ng ca ngưi s dng 31
Hình 4-2 : Kin trúc h thng h tr rút trích thông tin t web Nn theo ch 32
Hình 4-3: Mô hình MVC 34
Hình 4-4: Mu Data Access Object 35
Hình 4-5 : Mu Factory Method 36
Hình 4-6 : Mu Dynamic Factory - ci tin ca mu Factory Method 37
Hình 4-7: Mu Abstract Factory 40
Hình 4-8: Mu Strategy 42
Hình 5-1: Giao din ca ng dng web dành cho ngưi s dng 45
Hình 5-2: Giao din chính ca công c qun lý 45
Hình 5-3: Giao din qun lý các thuc tính chung 46
Hình 5-4: Giao din qun lý các trang web 46
Hình 5-5 : CSDL lưu thông tin ch và trang web Nn 49
Hình 5-6: Sơ lp thành phn iu hưng x lý yêu cu 50
Hình 5-7: Cài t không dùng mu Abstract Factory 52
Hình 5-8: Mu Abstract Factory cho thành phn rút trích thông tin t web Nn 53
Hình 5-9: Sơ lp áp dng mu thit k Strategy 57
Hình A-1: Quá trình truy cp form 67
Hình A-2: Form minh ha 67
Hình C-1: Mt s trang tìm kim vic làm 71
7
Bng 2-1: Phân loi mu thit k 14
Bng 4-1 : So sánh h thng xây dng và máy tìm kim liên hp 27
Bng 5-1: Minh ha các thuc tính chung theo ch Vic làm 44
Bng C-1: Bng thuc tính thông dng ch vic làm 73
Bng C-2: Bng tng kt thuc tính chung ch Vic làm 73
8
Chương 1 Tổng
quan
Chương 1 giới thiệu ngữ cảnh và lý do thực hiện đề tài; trình bày mục tiêu,
phạm vi đề tài và nội dung chính của từng chương trong luận văn.
1.1 Dẫn nhập
N gành công ngh phn mm ã phát trin rt mnh m và gii quyt nhiu
vn liên quan n phương pháp và qui trình công ngh xây dng phn mm. Tuy
nhiên, khi òi hi ca ngui s dng cui ngày càng nhiu thì phn mm ngày càng
ln và kin trúc càng phc tp, làm cho nhà phát trin khó khăn trong vic gii
quyt nhng vn phát sinh như: s tương thích mã ngun, kh năng tương tác
gia các thành phn, bo trì phn mm. Trong các giai on phát trin phn mm,
thit k là mt công on rt quan trng. Phn mm ưc thit k tt s giúp nhà
phát trin tn ít thi gian, công sc cho công vic cài t, bo trì và tin hóa.
Hin nay, trong quá trình phát trin ng dng, các phương pháp phân tích
thit k hưng i tưng [3] ã phát trin rt mnh m và góp phn áng k vào
vic ci tin cht lưng ca phn mm nh vào kh năng xây dng các lp i
tưng có tính tái s dng cao, d bo trì và d m rng. N gôn ng UML (Unified
Modeling Language) [17] ưc xut s dng như mt ngôn ng chuNn mô
hình hóa các thành t phn mm trong quá trình phân tích thit k hưng i tưng.
Tuy nhiên, các phương pháp hưng i tưng tp trung ch yu vào các hot
ng tng th trong tin trình phát trin phn mm hưng i tưng. N hng phương
pháp này thưng không gii quyt các vn chi tit ny sinh trong quá trình thit
k phn mm. b sung cho phương pháp hưng i tưng, các mu thit k
hưng i tưng (mu thit k GoF, Gamma và cng s [5]) là mt tip cn c
áo, ưc xut gii quyt các vn ny sinh trong quá trình thit k phn
mm hưng i tưng. Khi áp dng các mu thit k này s giúp nâng cao cht
lưng phn mm các yu t: hiu sut ng dng, n nh và tính tái s dng.
tài chúng tôi mong mun óng góp mt phn vào lĩnh vc nghiên cu này.
9
iu c bit trong nhng năm gn ây là các chuyên gia công ngh phn
mm cũng như các nhà nghiên cu ngoài vic nghiên cu nhng mu thit k cho
phát trin phn mm nói chung còn ưa ra nhng mu thit k phù hp cho nhng
lĩnh vc c th như các mu thit k cho Web [1], các mu thit k cho phn mm
hưng dch v [14] [23], các mu thit k trong xây dng cu trúc d liu [15]…
iu này ã thúc Ny các mu thit k hưng i tưng ngày càng ưc a dng.
Trong tài, tôi nghiên cu các mu thit k hưng i tưng áp dng cho nhóm
phn mm rút trích thông tin. Sau ó tôi áp dng các mu thit k ã có và ci tin
cho phù hp vi các tính cht c thù ca nhóm phn mm này.
1.2 Mục tiêu đề tài:
N ghiên cu các mu thit k hưng i tưng, chn lc và xut chnh sa
mt s mu thit k hưng i tưng áp dng vào vic xây dng ng dng h tr
rút trích thông tin t web.
1.3 Phạm vi đề tài
Gii thiu các loi mu thit k, c bit là các mu thit k hưng i tưng
trong lĩnh vc phát trin phn mm. Trình bày cách la chn mu thit k sao cho
phù hp áp dng vào h thng phn mm cn xây dng và mt s vn ưc
gii quyt bng mu thit k.
Áp dng mu thit k hưng i tưng vào vic xây dng ng dng h tr
rút trích thông tin ưc gii hn vào vic chn lc, chnh sa các mu thit k rút
trích thông tin t các trang web Nn vi ni dung ng. ây là các trang web có mt
lưng ln các thông tin Nn bên dưi các giao din tìm kim và không th truy cp
thông qua các công c tìm kim tng quát (xem ph lc A). T cơ s nhng mu
thit k ó, tin hành xây dng b khung h tr vic rút trích thông tin t các trang
web Nn ni dung ng theo tng ch riêng bit.
10
1.4 ội dung luận văn
N i dung ca lun văn ưc t chc thành 6 chương:
Chương 1 gii thiu ng cnh và lý do thc hin tài; trình bày mc tiêu,
phm vi tài và ni dung chính ca tng chương trong lun văn.
Chương 2 gii thiu các loi mu thit k, các mu thit k hưng i tưng
trong lĩnh vc phát trin phn mm. Cách la chn mu thit k sao cho phù hp
áp dng vào h thng cn xây dng và mt s vn ưc gii quyt bng mu
thit k.
Chương 3 gii thiu chung v tình hình nghiên cu và gii hn hưng nghiên
cu ca tài. Phân bit gia hưng nghiên cu ca tài và các hưng nghiên cu
khác. Bài toán t ra và các nghiên cu liên quan cũng ưc trình bày trong chương
này.
Chương 4 gii thiu v ng dng h tr rút trích thông tin t các trang web
Nn theo các ch riêng bit và kin trúc h thng. Chương này cũng trình bày các
khái nim và lý do la chn các mu thit k ưc áp dng vào h thng.
Chương 5 xây dng ng dng bng ngôn ng lp trình Java và gii thích vì
sao s dng các mu thit k ã gii thiu chương 4.
Chương 6 là chương cui cùng ca lun văn. Chương này tng kt, ánh giá
v các công vic ã làm và xác nh hưng phát trin ca tài.
11
Chương 2 Mẫu thiết kế hướng
đối tượng
Chương 2 giới thiệu các loại mẫu thiết kế, các mẫu thiết kế hướng đối tượng
trong lĩnh vực phát triển phần mềm. Cách lựa chọn mẫu thiết kế sao cho phù hợp để
áp dụng vào hệ thống cần xây dựng và một số vấn đề được giải quyết bằng mẫu
thiết kế.
2.1 Khái niệm mẫu thiết kế
Mu thit k [5] mô t gii pháp ưc chng minh cho mt vn lp li
nhiu ln. Mt mu thit k gm 3 phn chính: ng cnh, vn và gii pháp.
• N g cnh: mô t các tin iu kin dn n vic phát sinh vn . Tin iu
kin là các iu kin, tình hung cn có xác nh vic áp dng mu. Các iu
kin kt qu là các kt qu có ưc sau khi áp dng mu.
• Vn : mô t mt vn lp li nhiu ln. Trong các mu thit k, mô t
vn ưc b sung thêm các nh hưng, các khía cnh mà vn cn ưc
xem xét gii quyt nó. Ví d: các yêu cu mà gii pháp phi tha, các ràng
buc cn xem xét, các tính cht mong mun mà gii pháp nên có.
• Gii pháp: ưa ra cách gii quyt vn lp li và chú ý n các nh hưng,
tác ng n nó.
2.2 Lịch sử và vai trò của mẫu thiết kế
Khái nim mu thit k ưc ưa ra bi kin trúc sư Christopher Alexander
khi ông vit cun sách trình bày v mu thit k kin trúc nhà vào nhng năm 1970.
Ý tưng này ã ưc ng dng vào lĩnh vc phát trin phn mm vào u nhng
năm 1980. thi im ó, các ngôn ng lp trình hưng i tưng như Smalltalk,
C++ chưa ưc s dng rng rãi. Công ngh lp trình ph bin là lp trình cu trúc
trong khi lp trình hưng i tưng chưa ưc quan tâm. Tuy nhiên, khi ý tưng
xây dng nhng thư vin lp (framework) ra i và ưc hin thc thì lĩnh vc
12
nghiên cu các mu thit k ra i t ó. Mt trong nhng thư vin lp ưc thit
k u tiên là MVC (Model – View – Controller) [BO] cho ngôn ng Smalltalk.
u nhng năm 1990, Erich Gamma và các cng s (ưc gi là GoF) [5]
nghiên cu và xut 23 mu thit k hưng i tưng mà ngày nay ã ưc vn
dng rt hu ích trong lĩnh vc phát trin phn mm. Thm chí nhng mu thit k
này ã ưc cài t sn trong các thư vin lp hưng i tưng ca mt s ngôn
ng lp trình hin i h tr cho các lp trình viên khi cn. T giai on ó cho
n hin ti, s lưng mu thit k ngày càng nhiu và ưc ng dng các mc
khác nhau trong thit k phn mm.
Mu thit k óng mt vai trò quan trng trong quá trình phát trin ca
ngành công nghip phn mm. Mu thit k giúp gii quyt nhng tr ngi, nhng
vn khó khăn lp li thưng xuyên mà nhng ngưi thit k phn mm gp phi.
N hng chuyên viên phn mm chưa có nhiu kinh nghim, thm chí có nhiu kinh
nghim nhưng gp mt vn mi thì vic gii quyt các vn khó khăn s tn
nhiu thi gian và chi phí. Do ó, mu thit k có th xem là cu ni, là tài liu
truyn t t nhng ngưi có kinh nghim lâu năm hay t nhng nhà khoa hc cho
nhng ngưi còn ít kinh nghim làm vic hay mi tip cn mt công ngh lp trình
mi.
2.3 Các loại mẫu được sử dụng trong phát triển phần mềm
N gày nay mu ã ưc nghiên cu và ng dng cho nhiu lĩnh vc khác
nhau như kin trúc, giáo dc, phát trin phn mm. Trong mi lĩnh vc, mu còn có
th ưc phân lp sâu hơn theo min ng dng (như mu phân tích, mu thit k
phn mm… ), theo mc tru tưng (như mu thit k là loi mu s dng trong
thit k)… Trong mc này, tôi im qua mt s loi mu ã ưc nghiên cu và
ng dng trong lĩnh vc phát trin phn mm [8].
• Mẫu thiết kế: ưa ra gii pháp cho các vn lp li trong thit k phn
mm hưng i tưng. Các mu này liên quan n vic thit k các lp, các
i tưng, các quan h ca nó trong vic hin thc chương trình. Các mu
13
mc thp hơn so vi mu thit k gi là các thành ngữ lập trình
(programming idiom).
• Mẫu phân tích: có gii pháp là mô hình các tin trình nghip v trong pha
phân tích ca vic phát trin phn mm. Không ging như mu thit k, mu
phân tích không phn ánh s hin thc phn mm thc s; chúng chuyn ti
các cu trúc quan nim ca nhng quá trình nghip v.
• Mẫu kiến trúc phần mềm: ưa ra gii pháp cho các vn thuc kin trúc
ca mt h thng phn mm hoc mt h thng con. Trong ó, mi kin trúc
phù hp cho mt nhóm vn nào ó. ng thi mu làm rõ hơn quan nim
ca nhà thit k h thng v t chc h thng và các h thng con.
• Mẫu tiến trình: là loi mu trong ó cp n các vn lp li, ny sinh
trong tin trình phát trin phn mm. Gii pháp ca mu tin trình là tin
trình – mt tp hành ng có th t nhm gii quyt vn .
• Mẫu tiến trình tổ chức: bao gm mt gii pháp cho vn lp li thuc v
cu trúc và t chc trong phát trin phn mm. Gii pháp ca nó mô t các
k thut qun lý và các cu trúc thuc t chc. Mu t chc thưng i chung
vi mu tin trình.
• Đối mẫu: là loi mu trong ó ch ra gii pháp “ti” ã ưc chng minh là
không hiu qu, hoc gây thit hi cho t chc. i mu cũng ngh các k
thut, các cách ci tin tình trng này.
Các loi mu nêu trên có th ưc tng quát thành hai loi mu: mu kt qu
và mu tin trình. Mu kt qu trong ó mô t gii pháp hưng n kt qu là sn
phNm. Các mu thit k có gii pháp là các i tưng, các lp ưc ngh s dng
gii quyt vn . Do ó, mu thit k thuc loi mu kt qu. Tương t, các
mu phân tích, t chc thuc loi mu kt qu. Mu tin trình mô t làm th nào
t ưc kt qu mong mun, gii pháp ca mu là tin trình.
14
2.4 Các mẫu thiết kế hướng đối tượng GoF
Trong phn này, tôi trình bày mt cách sơ lưc v các mu thit k hưng
i tưng GoF. Tôi cũng gii thiu cách la chn các mu thit k có th áp
dng vào h thng ang xây dng và mt s vn dùng mu thit k gii quyt.
Qua hai thp niên phát trin, s lưng các mu thit k ưc xut ngày
càng nhiu. Các mu GoF ưc xem là các mu nn tng cho các nhà khoa hc làm
cơ s xut ra nhng mu thit k hu ích cho ngành công nghip phát trin
phn mm.
N hóm tác gi GoF phân loi các mu thit k da trên 2 tiêu chí như Bng 2-
1. Tiêu chí th nht da theo mc ích ca vic s dng mu, có 3 nhóm: Các mu
to lp (Creational patterns), các mu cu trúc (Structural patterns) và các mu ng
x (Behavioural patterns). Tiêu chí th hai da theo phm vi mà áp dng ca mu:
Các mu th hin mi quan h gia các lp i tưng vi nhau (Class patterns) và
các mu th hin mi quan h gia các i tưng (Object patterns)
Mục đích
hóm tạo lập hóm cấu trúc hóm ứng xử
Phạm vi
Lớp
Factory Method Adapter Interpreter
Template Method
Đối
tượng
Abstract Factory
Builder
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
Facade
Proxy
Chain of Responsibility
Command
Iterator
Mediator
Memento
Flyweight
Observer
State
Strategy
Visitor
Bảng 2-1: Phân loại mẫu thiết kế [5]
15
2.4.1 Các mẫu tạo lập (Creational patterns)
Các mu thit k thuc nhóm này nhm tng quát hóa quá trình thc thi ca
mt tin trình công vic nào ó. Chúng giúp mt h thng c lp vi vic to, thc
hin và biu din các i tưng ca nó. Các mu to lp dng lp (class creational
patterns) s dng tính k tha yêu cu lp khác thc hin công vic theo tng
tiêu chuNn hay tình hung c th. Trong khi các mu to lp dng i tưng (object
creational patterns) s y nhim công vic n các i tưng khác. N hóm này bao
gm các mu: Factory Method, Abstract Factory, Builder, Prototype, Singleton.
2.4.2 Các mẫu cấu trúc (Structural patterns)
Các mu thit k thuc nhóm này quan tâm n vic các lp và i tưng
ưc t chc như th nào trong mt cu trúc ln bao gm nhiu lp i tưng. Các
mu cu trúc dng lp (class structural patterns) s dng tính k tha kt hp các
giao tip (interfaces) hoc các lp hin thc (implementations). Trong khi các mu
cu trúc dng i tưng mô t cách thc kt hp các i tưng hin thc
nhng chc năng mi. N hóm này bao gm các mu: Adapter, Bridge, Composite,
Decorator, Façade và Proxy.
2.4.3 Các mẫu ứng xử (Behavioural patterns)
Các mu thit k thuc nhóm này quan tâm n các gii thut và nhng yêu
cu trách nhim gia các i tưng vi nhau. Chúng th hin s giao tip gia các
i tưng trong h thng và quá trình này ưc iu khin như th nào trong mt
chương trình phc tp. Các mu ng x dng lp s dng tính k tha la chn
và x lý các cách ng x gia các lp. Trong khi các mu ng x dng i tưng s
dng cách kt hp các i tưng x lý. N hóm này bao gm các mu: Interpreter,
Template Method, Chain of Responsibility, Command, Iteratror, Mediator,
Memento, Flyweight, Observer, State, Strategy, Visitor.
2.4.4 Mẫu thiết kế hướng đối tượng dạng phức hợp
Theo Dirk Riehle, mu thit k phc hp [16] là mt mu thit k có ý nghĩa
như các mu thit k thông thưng khác và là s kt hp ca các mẫu thiết kế
nguyên tử (atomic patterns) hay các mu thit k phc hp khác. Trong ó mẫu
16
thiết kế nguyên tử là nhng mu thit k không th ưc mô t bng s kt hp ca
các mu thit k khác.
Trong mu thit k phc hp, các mu thành phn tích hp vi nhau to
thành mt mu da trên s óng góp tính cht ca tng mu. Thc t, chúng ta
thưng hay nhm ln gia mu thit k kt hp và mu phc hp. Chúng ta cn bit
là các mu kt hp s dng cùng lúc nhiu mu gii quyt mt vn c th nào
ó nhưng không th s dng li gii quyt vn tương t trong mt tình hung
khác.
2.5 Các bước để lựa chọn mẫu thiết kế
• la chn mu thích hp phi xác nh ưc cn thit k gì, các vn
phát sinh trong khi thit k, các vn ó thuc loi nào và tham kho ng
vi loi vn ó có th dùng mu nào gii quyt.
• Tham kho ln lưt tng mu ưc chn, xem mc ích s dng, i chiu
vi các vn thit k gp phi. iu này giúp hiu rõ hơn v các mu và tác
dng thc ca mu lên vn cn gii quyt.
• Tìm hiu s tương tác gia các mu thit k xác nh ưc các nhóm mu
phù hp vi bài toán ca mình.
• Các mu ưc phân loi theo mc ích s dng: Creational (kin to),
Behavioral (hành vi), Structural (cu trúc). S phi hp và tính lng ghép
làm cho nhiu mu có c tính và cu trúc khá ging nhau. Do ó cn phi
tìm hiu cNn thn mc ích ca mu phát hin ra im ging nhau và khác
nhau nhm áp dng mt cách hiu qu nht, tránh cài t sai lm v ng
nghĩa khi thit k.
• Tìm kim, kho sát các nguyên nhân có th dn ti vic thit k li cô lp
hóa, nhm tránh các thay i không cn thit.
• Xác nh các thành phn (module, lp i tưng…) có th thay i trong
tương lai. T ó quyt nh xem phi làm gì có th thay i h thng mà
không cn phi thit k li.
17
2.6 Một số vấn đề được giải quyết bằng mẫu thiết kế
Sau ây tôi trình bày mt s vn thưng gp và hưng gii quyt các vn ó
bng mu thit k:
• Tạo một đối tượng bằng một lớp rõ ràng. Xác nh tên lp khi to i
tưng s có mt cài t c th thay cho mt lp o. iu này làm cho vic
thay i ng dng trong tương lai tr nên phc tp. tránh nguy cơ này, ta
có th to i tưng gián tip.
Hưng gii quyt: s dng mu Abstract Factory, Factory Method,
Prototype.
• Phụ thuộc vào phần cứng và hệ điều hành. Mt chương trình ưc thit k
trên Windows s không chy hiu qu trên Linux vì các hàm APIs và
platform là khác bit nhau. Do ó cn phi thit k sao cho chương trình có
th linh ng chuyn i không ph thuc vào bt kỳ h iu hành, phn
cng nào…
Hưng gii quyt: s dng mu Abstract Factory, Bridge.
• Phụ thuộc vào việc thể hiện hay cài đặt của đối tượng. Client bit chi tit
v i tưng mà nó gi n, thưng có xu hưng thay i nu i tưng
thay i. Vì th cn che giu nhng thông tin không cn thit ca i tưng
ó vi Client.
Hưng gii quyt: s dng mu Abstract Factory, Bridge, Memento, Proxy.
• Phụ thuộc vào thuật toán. Cách gii quyt mt bài toán nào ó ti thi
im này có th chưa tt và cn phi ưc m rng thay th hoc ti ưu hóa.
Vic ph thuc vào cách gii quyt mt vn c th thưng làm thay i
các i tưng có liên quan, thm chí gây ra s thay i dây chuyn… Do ó
các thut toán càng c lp thì càng hn ch s ràng buc.
Hưng gii quyt: s dng mu Builder, Iterator, Strategy, Template
Method, Visitor.
• Phụ thuộc quá chặt giữa các đối tượng. Do lp i tưng A và B liên kt
(ph thuc) vi nhau quá cht (chng hn như thit lp quan h song
18
phương) nên rt khó có th thay i lp A nu không hiu rõ v lp B (hoc
thm chí còn phi thay i lp B)
Hưng gii quyt: s dng mu Abstract Factory, Bridge, Chain of
Responsibility, Command, Facade, Mediator, Observer.
• Mở rộng chức năng bằng cách kế thừa. Thay i i tưng bng cách k
tha không phi là d dàng. Mi lp k tha u có mt hoc nhiu cài t
c nh, do ó k tha cn phi có s hiu bit sâu v lp cơ s. Và k
tha có th dn n s bùng n lp, vì có nhiu lp k tha ch bi mt hành
ng ơn gin.
Kt hp i tưng là mt cách thay th cho vic k tha hành vi. Chc năng
mi có th ưc thêm vào ng dng bng cách kt hp các i tưng ã có
hơn là nh nghĩa mt lp k tha t lp ã có. Tuy nhiên nu kt hp quá
nhiu i tưng có th khin cho thit k phc tp.
Hưng gii quyt: s dng Bridge, Chain of responsibility, Composite,
Decorator, Strategy
• Không thể thay đổi lớp. Trong mt vài trưng hp chúng ta cn phi thay
i chc năng ca mt lp i tưng sao cho phù hp vi hoàn cnh thc t
ca h thng hoc tích hp các lp i tưng khác vào h thng, nhưng
chúng ta không có mã ngun ca nhng i tưng ó… iu này yêu cu
chúng ta phi thit k li h thng.
Hưng gii quyt: s dng mu Adapter, Decorator, Visitor.
19
Chương 3 Tổng quan về rút trích
thông tin
Chương 3 giới thiệu chung về tình hình nghiên cứu và giới hạn hướng
nghiên cứu của đề tài. Phân biệt giữa hướng nghiên cứu của đề tài và các hướng
nghiên cứu khác. Bài toán đặt ra và các nghiên cứu liên quan cũng được trình bày
trong chương này.
3.1 Giới thiệu chung
Công ngh thông tin ã tác ng mnh m n s phát trin ca tt c các
ngành ngh trong i sng xã hi và c bit là s ra i ca Internet. ây thc s
là cuc cách mng vĩ i vì mt trong s các ng dng ni bt ca Internet là Word
Wide Web ã mang li cho chúng ta mt kho kin thc mà không mt thư vin, mt
b bách khoa toàn thư hay mt h thng thư vin nào có th so sánh ưc. Tuy
nhiên, ngưi dùng có th d dàng và nhanh chóng tìm thy ưc thông tin cn
thit, Khai phá web óng mt vai trò rt to ln. Khai phá web (web mining) bao
gm khám phá và phân tích d liu, tài tiu, a phương tin t Word Wide Web.
Khai phá Web (web mining) [BO] là vic trích chn ra các thành phn ưc
quan tâm hay ưc ánh giá là có ích cùng các thông tin tim năng t các tài
nguyên hoc các hot ng liên quan ti World Wide Web.
Khai phá Web = Khai phá d liu + X lý ngôn ng t nhiên + World Wide Web
Khai phá web ưc chia thành 3 lĩnh vc nghiên cu chính [19] là khai phá
ni dung Web (Web content mining), khai phá cu trúc Web (Web structure
mining) và khai phá s dng Web (Web usage mining).
• Khai phá nội dung Web:
Khai phá ni dung Web là quá trình x lý ly ra các tri thc t ni dung
các trang văn bn hoc mô t ca chúng. Khai phá ni dung web tp trung vào vic
khám phá mt cách t ng ngun thông tin có giá tr trc tuyn và có th tip cn
theo 2 hưng khác nhau là khai thác văn bn web và ti ưu kt qu tr v t công c
20
tìm kim. Khai phá d liu a phương tin là mt phn ca khai phá ni dung Web.
ây ha hn vic khai thác ưc các thông tin và tri thc mc cao t ngun a
phương tin trc tuyn rng ln.
o Khai phá văn bn Web: là vic s dng k thut khai phá d liu i vi các
tp văn bn tìm ra tri thc có ý nghĩa tim Nn trong nó. D liu ca nó có
th là d liu có cu trúc hoc không cu trúc. Vn này liên quan ch yu
ti vic khai phá bn thân ni dung các văn bn, và ây là ni dung cơ bn
nht cn quan tâm trong khai phá Web.
o Ti ưu kt qu tr v t các công c tìm kim (tng hp kt qu): trong các
công c tìm kim Web, sau khi ã tìm ra ưc các trang Web tha mãn yêu
cu ngưi dùng, còn mt công vic không kém phn quan trng ó là phi
sp xp, chn lc kt qu theo mc phù hp yêu cu ngưi dùng. N goài
vic sp xp kt qu theo hng quan trng ca trang, cn tin hành phân cm
tp các trang Web tr v và to nhãn cm cung cp n ngưi dùng. Quá
trình này thưng s dng các thông tin như tiêu trang, URL, content-type,
các liên kt trong trang Web… tin hành phân cm và ưa ra tp con các
kt qu tt nht cho ngưi dùng.
• Khai phá cấu trúc Web
N h các kt ni gia các văn bn siêu liên kt, World Wide Web cha ng
nhiu thông tin hơn so vi tp các văn bn ni dung trang Web. Ví d: s lưng liên
kt tr ti mt trang Web ưc coi như mt ch s v mc quan trng ca trang
Web ó ng thi các liên kt i ra t mt trang Web ch dn rng các trang ích có
ni dung liên quan ti các ch ang ưc cp trong trang hin ti.
Mc tiêu ca Khai phá cu trúc Web là phát hin thông tin cu trúc v
Web. N u Khai phá ni dung Web ch yu tp trung vào cu trúc bên trong tài liu
thì khai phá cu trúc Web c gng phát hin cu trúc liên kt ca các siêu liên kt
mc trong ca tài liu. Da trên mô hình hình hc ca các siêu liên kt, khai phá
cu trúc Web s phân loi các trang Web, to ra thông tin như tương t và mi
21
quan h gia các Website khác nhau. N u trang Web ưc liên kt trc tip vi
trang Web khác thì ta s mun phát hin ra mi quan h gia các trang Web này.
• Khai phá sử dụng Web:
Khai phá s dng Web hay Khai phá h sơ Web (Web log mining) là vic x
lý ly ra các thông tin hu ích trong các h sơ truy cp Web. Thông thưng các
Máy ch Web thưng ghi li và tích lũy các d liu v các tương tác ca ngưi
dùng khi nhn ưc mt yêu cu truy cp. Vic phân tích các h sơ truy cp Web
ca các trang web khác nhau s d oán các tương tác ca ngưi dùng khi h tương
tác vi Web, giúp tìm hiu cu trúc ca Web. T ó ci thin thit k ca các h
thng liên quan. N hư Khai phá cu trúc Web, mô hình ng x ca ngưi dùng trên
Internet và mô hình s dng Web cn ưc quan tâm cp.
Có hai xu hưng chính:
o Khai phá các mu truy cp: phân tích các h sơ Web bit ưc các mu và
các xu hưng truy cp. Các phân tích này có th giúp cu trúc li các trang
phân nhóm hiu qu hơn, xác nh các v trí qung cáo hiu qu nht, hay
gn các qung cáo sn phNm cho nhng ngưi dùng t ưc hiu qu cao
nht.
o Khai phá các xu hưng cá nhân: Mc ích là chuyên bit hóa các website
cho các lp i tưng ngưi dùng. Các thông tin ưc hin th, sâu ca
cu trúc site và nh dng ca các tài nguyên, tt c u có th chuyên bit
hóa mt cách t ng cho mi ngưi dùng theo thi gian da trên các mu
truy cp ca h.
3.2 Giới hạn hướng nghiên cứu của đề tài
Khai phá ni dung Web là mt trong nhng ni dung cơ bn nht cn nghiên
cu trong quá trình khai phá web. Khi khai phá ni dung Web, mt s bài toán ưc
quan tâm trong khai phá ni dung Web là tìm kim thông tin, rút trích thông tin,
phân loi thông tin, tóm tt thông tin…
22
Trong phm vi tài, tôi tp trung vào hưng nghiên cu rút trích thông tin.
c bit chúng tôi tp trung vào vic rút trích thông tin t các trang web Nn vi ni
dung ng bên dưi các form theo tng ch riêng bit.
Hin nay mc dù ã có nhiu thành tu v lĩnh vc rút trích thông tin t web
và rút trích thông tin t các trang web Nn nhưng nhà phát trin xây dng và phát
trin mt ng dng rút trích thông tin t các trang web Nn vn là mt quá trình phc
tp. tài ca chúng tôi mong mun óng góp vào hưng nghiên cu này.
3.3 Giới thiệu về Rút trích thông tin
3.3.1 Khái niệm
Rút trích thông tin (IE – Information Extraction) [18] là quá trình ly thông
tin t các ngun nhng nh dng không ng nht và chuyn thành mt dng
ng nht. D liu sau khi rút trích ưc s dng, trình bày trc tip cho ngưi
dùng, lưu vào cơ s d liu x lý sau ó hay s dng cho nhng h thng tìm
kim thông tin như mt d liu ã qua bưc tin x lý.
3.3.2 So sánh rút trích thông tin và tìm kiếm thông tin
Tìm kim thông tin (IR – Information Retreival) [19] là phương pháp tìm
kim thông tin, tìm kim văn bn ly ra nhng văn bn phù hp vi nhng tiêu
chí t ra ban u. IE và IR có im chung là em n cho ngưi dùng nhng thông
tin cn thit nhưng IE và IR hoàn toàn khác nhau:
• H thng IR tp trung vào vic tìm kim nhng văn bn liên quan và em
n cho ngưi dùng.
• H thng IE là phân tích văn bn và ch mang n cho ngưi dùng nhng
mu tin phù hp mà ngưi dùng quan tâm.
Ví d: ly bi cnh trong nhà sách, mt h thng IE s tìm kim tt c các
tên và a ch công ty có trong tt c nhng tài liu trong nhà sách. Thông tin này s
ưc nh dng rõ ràng theo mt cu trúc nào ó và trình bày cho ngưi dùng.
Trong khi ó, h thng IR s tìm kim ra nhng cun sách có liên quan n mt
23
công ty nào ó. Thông tin công ty ưa vào tc là yêu cu ca ngưi dùng và kt qu
thu ưc t h thng IR là tp hp nhng cun sách tha mãn yêu cu ó.
Tùy vào tng ng cnh, tng bài toán mà phc tp ca h thng s khác
nhau nhưng cũng có trưng hp IE kt hp vi IR trong mt h thng nào ó.
3.3.3 Hệ thống rút trích thông tin từ các trang web
3.3.3.1 Khái niệm:
Rút trích thông tin t web là quá trình ly thông tin t các trang web và
chuyn thành thành dng ng nht.
N him v chính ca các trang web tìm kim hin nay tr v cho ngưi dùng
nhng tài liu có s tương thích cao vi nhng t khóa mà ngưi dùng ưa vào.
Tuy nhiên, trong khi lưng thông tin vô cùng khng l trên web như hin nay, tn
ti rt nhiu các i tưng trong nhng trang web ni hoc Nn như: thông tin con
ngưi, sn phNm, bài báo, thông tin v t chc, các s kin,… N u như các i
tưng này ưc rút trích ra t web ri tng hp li và cho ngưi dùng tìm kim theo
mt tiêu chí hoc theo mt ch nào ó, ngưi dùng s có ưc mt công c tìm
kim hưng i tưng hiu qu và tha mãn hơn.
3.3.3.2 Phân loại hệ thống rút trích thông tin từ web
N gày nay, có rt nhiu h thng rút trích thông tin t web ưc các nhà phát
trin nghiên cu và xây dng. Các tiêu chí phân loi mt h thng rút trích thông
tin t web như sau:
Dựa vào mức độ can thiệp của con người trong quá trình rút trích thông
tin, các h thng rút trích thông tin có th ưc chia ra làm 4 loi: th công, có
giám sát, bán giám sát và không giám sát. Trong ó, các h thng hoàn toàn t
ng, không có s can thip ca con ngưi ang ưc các nhà nghiên cu quan tâm
nht.
Dựa vào tầng dữ liệu được rút trích: mt trang web s có nhiu trang
HTML, mt trang HTML s có nhiu record và mt record s có nhiu thuc tính.
Do ó, da vào kt qu thông tin rút trích ưc tng nào, các h thng rút trích
ưc chia ra làm 4 loi: tng thuc tính (attribute), tng record, tng trang HTML
24
(page) và tng trang web (site). Hin ti các h thng x lý tng thuc tính và
record chim a s. Và cho n nay, vn chưa thy xut hin các h thng rút trích
thông tin tng site.
Dựa vào các phương pháp rút trích thông tin, các h thng rút trích thông
tin cũng ưc chia thành 3 dng:
• Các h thng da trên các phương pháp th công: s dng các phương pháp
gán nhãn, các cách ly thông tin trc tip t cơ s d liu hoc t các dch v
web (web service).
• Các h thng da trên các phương pháp heuristic: các phương pháp thng kê,
tp lut, s dng các mu thông tin, da vào cu trúc cây,… ưc s dng
rút trích thông tin.
• Các h thng da trên các phương pháp hc: s dng các phương pháp mô
hình Markov, ng nghĩa, hc trên cu trúc cây,… giúp cho các h thng
hiu và rút trích thông tin chính xác hơn.
3.3.3.3 Khảo sát một số ứng dụng rút trích thông tin từ web
• Web-Harvest là công c mã ngun m rút trích d liu Web. Công c
cung cp mt phương pháp thu thp các trang Web mong mun và rút
trích d liu hu ích t chúng. ó là s dng các k thut thao tác trên
text/xml như XSLT, XQuery và biu thc quy tc.
Do các s dng mt s logic nên cn thit mô t quá trình làm th
nào ly d liu mong mun t ni dung hn hp. Tt c các th tc rút
trích trong Web-Harvest là ngưi dùng nh nghĩa thông qua các tp tin cu
hình XML. Mi tp tin cu hình mô t các trình t x lý thc hin mt s
nhim v ưc mc tiêu cui cùng.
• RoadRunner [22] hot ng da trên thut toán hc không giám sát. Mc
ích ca công c là rút trích ưc các d liu t nhng trang web có lưng
ln d liu và cu trúc ít thay i. RoadRunner hot ng bng cách so sánh
cu trúc HTML ca các trang mu cùng loi và to ra mt lưc cho các
d liu cha trong các trang t nhng th HTML.
25
• Dynamo nhn mnh vic rút trích d liu qua các trang web nhng trang
HTML. N hng công c hin nay khi rút trích hoàn tt thưng gp nhiu khó
khăn qun lý vic to ra các RSS feeds nhưng li gp mt s hn ch như
ngun cp d liu cũ có th không ưc quan tâm và thưng b xóa t các
máy ch và máy ch truyn thng không th thc hin các truy vn trc tip.
N gưc li, vi Dynamo s:
o T ng phát sinh RSS t nhng d liu ca trang HTML.
o Lưu tr các ngun cung cp d liu theo th t thi gian.
o Truy vn và tng hp thành các dch v web.
N hn xét: Các công c rút trích thông tin t web này phn ln ch có th áp
dng cho các trang web ni. Vy i vi các trang web Nn, chúng ta có th s dng
li các công c này hay phi xây dng mt h thng mi. N u các công c này có
th tái s dng thì i vi các nhà phát trin, vic tái s dng s ưc tin hành như
th nào?
3.4 Bài toán cần giải quyết
Rút trích thông tin t các trang web da trên ch là mt trong nhng
hưng nghiên cu nhn ưc nhiu quan tâm. Vn tr nên quan trng khi các
trang web ang ngày mt gia tăng và nhu cu s dng thông tin ca ngưi dùng
ưc nâng cao. N hng công c phân tích các lung và các ch thông tin tr nên
cn thit khi giúp ngưi dùng có mt cái nhìn tng quát và nh hưng thông tin tt
hơn. N hng nhân viên làm vic vi các tp d liu văn bn ln như các nhà làm
lut, các nhà báo, nhng nhà thng kê … có thêm công c duyt qua các mng
thông tin d dàng hơn theo các ch .
i vi nhng trang web Nn vi ni dung ng, thông thưng ngưi dùng phi
s dng các trang tìm kim thông tin ca trang web ó. iu này làm cho ngưi
dùng phi tn rt nhiu thi gian và chi phí có th có ưc thông tin mình mun
c bit là các thông tin t các trang web Nn.
26
Hình 3-1 : Một số form tìm kiếm theo chủ đề việc làm [10]
Ví d tìm kim vic làm, ngưi dùng có th truy cp vào các mt trang v vic
làm, s dng các giao din truy vn có th có ưc thông tin cn thit. Sau ó
ngưi dùng li truy cp vào các trang v vic làm khác và tip tc s dng giao din
truy vn ly thông tin. Hình 3-1 mô t 3 giao din mà ngưi dùng phi truy cp
ly ưc thông tin cn thit…Công vic này òi hi rt nhiu thi gian và công
sc ca ngưi dùng. Do ó cn thit phi có mt công c h tr ngưi dùng có
ưc các thông tin mà không cn phi truy cp thông qua giao din truy vn ca
tng trang.
i vi các nhà phát trin: Mong mun có ưc ngun thông tin t các trang
web Nn s dng hoc làm d liu u vào cho h thng khác.
Hin nay có nhiu công c ã ưc các nhà nghiên cu phát trin. Tuy nhiên
các công c này thưng ưc dùng vi 1 ch c th kèm mt s ít trang web Nn
và mt thut toán c nh như v chuyn bay [2], v vic làm [10] [12]… iu này
làm cho các nhà phát trin rt khó khăn khi m rng hay thay i các thành phn
trong h thng. Các nhà phát trin mong mun có ưc mt h thng có th d dàng
b sung hay thay i các ch , các trang web, các thut toán… cũng như d dàng
cho công tác bo trì và m rng t các thành phn trong h thng.
Vy gia h thng cn xây dng có mi quan h th nào vi máy tìm kiếm liên
hợp (meta search engine)? tránh s nhm ln, tôi tin hành so sánh gia h
thng cn xây dng và máy tìm kim liên hp bng 4-1.