TOM TAT LUẬN VĂN THẠC SĨLuận văn này được thực hiện nhằm mục đích xây dựng hệ thống thu thậpdữ liệu về nhà chung cư tại khu vực thành phố Hồ Chí Minh một cách tự động,chính xác và cập nh
Trang 1ĐẠI HỌC QUỐC GIA TP HỖ CHÍ MINH
TRUONG ĐẠI HỌC BACH KHOA
DANG NGUYEN HOA
HE THONG THU THAP THONG TINNHAM HO TRO ĐÁNH GIÁ CHAT LƯỢNG
SAN PHAM, DICH VU
Chuyên ngành: Hệ thống thông tin quan ly
Mãsô: 60.34.48
TP HO CHI MINH, thang 11 nam 2014
Trang 2ĐẠI HỌC QUỐC GIA TP HỖ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
a
HE THONG THU THAP THONG TINNHAM HO TRO DANH GIÁ CHAT LƯỢNG
SAN PHAM, DICH VU
CHUYEN NGANH: HE THONG THONG TIN QUAN LY
MASO CHUYEN NGANH: 60.34.48
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI:TRUONG ĐẠI HOC BACH KHOA - ĐHQG -HCMCán bộ hướng dẫn khoa hoc: TS Lê Thanh Vân
Cán bộ chấm nhận xét 1: TS Lê Lam SơnCán bộ chấm nhận xét 2: TS Nguyễn Tuan Dang
Luận văn thạc sĩ được bảo vệ tại Trường Dai học Bách Khoa, DHQG Tp HCMngày 06 tháng 0Inăm 2015.
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
I TS.Lé Thành Sách Chủ tịch2 _ TS Nguyễn Thanh Bình Thư ký3 TS Lê Lam Sơn Phản biện |
4 TS Nguyễn Tuan Đăng Phản biện 25 TS Võ Thị Ngọc Châu Ủy viênXác nhận của Chủ tịch Hội đồng đánh giá luận văn và Trưởng khoa Quản lý chuyên
ngành sau khi luận văn đã được sữa chữa (nêu có).
CHỦ TỊCH HỘI ĐÔNG TRƯỞNG KHOA KH-KTMT
Trang 4ĐẠI HỌC QUOC GIA TP.HCM CONG HÒA XÃ HỘI CHỦ NGHĨA VIET NAMTRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập — Tự do — Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨHọ tên học viên: ĐẶNG NGUYÊN HÓA MSHV: 12321060
Ngày, tháng, năm sinh: 15/01/1987 Nơi sinh: Bình Định
Chuyên ngành: Hệ thống thông tin quản lý Mã số: 60.34.48I TÊN DE TÀI:
Hệ thống thu thập thông tin nhằm hỗ trợ đánh giá chất lượng
sản phẩm, dịch vụ.Il NHIỆM VU VÀ NỘI DUNG:
1 Xây dựng một công cụ thu thập dữ liệu tự động từ nhiều website đảmbảo tính chất chính xác và cập nhật dữ liệu về nhà chung cư tại khu vựcthành phố Hồ Chí Minh; và đưa ra một số gợi ý từ những yêu cau timkiếm nha chung cư cho người sử dụng
2 _ Nghiên cứu va đề xuất phương pháp thực hiện.3 Chay thử và đánh giá hệ thông
Ill NGÀY GIAO NHIEM VU:20/01/2014IV NGAY HOAN THANH NHIEM VU:14/11/2014v CÁN BO HUONG DAN:TS LE THANH VAN
Tp Hô Chi Minh, ngày 06 tháng 01 năm 2015TRUONG KHOA KH&KTMT CAN BỘ HƯỚNG DAN
TS LE THANH VAN
Trang 5LỜI CÁM ƠN
Lời đầu tiên, xin được gởi lời cảm ơn đến các thây cô trong khoa Khoa học vàKỹ thuật máy tính đã tạo điều kiện cho tôi hoàn thành khóa học Trong thời gian hainăm học tập tại trường, tôi đã nhận được sự tận tình hướng dẫn, giảng dạy của các
thây cô cũng như các cán bộ quản lý của khoa
Đặc biệt, tôi xin được gởi lời tri ân đến côTS.Lê Thanh Vânngười trực tiếphướng dẫn trong suốt thời gian làm dé cương và thực hiện luận văn Những gợi ý,
định hướng đúng lúc của Cô cho phép tôi hoàn thành nghiên cứu của mình Thực
hiện đề tài này ngoài việc đánh giá hoàn tất khóa học còn mang đến những cái nhìnmới tong quan, hé thong và cơ hội ap dụng kiến thức học được vào trong công việcthực tế
Cuôi cùng, xin được gởi lời cảm ơn đên gia đình và bạn bè, những người đãđộng viên và tạo điêu kiện thuận lợi cho tôi trong suôt quá trình học tập và thựchiện luận văn này.
Tp Hô Chi Minh, tháng 11 năm 2014
Học viên cao học khóa 2012
Đặng Nguyên Hóa
Trang 6TOM TAT LUẬN VĂN THẠC SĨLuận văn này được thực hiện nhằm mục đích xây dựng hệ thống thu thậpdữ liệu về nhà chung cư tại khu vực thành phố Hồ Chí Minh một cách tự động,chính xác và cập nhật dữ liệu; đưa ra gợi ý từ những yêu cau tìm kiếm của ngườidùng hỗ trợ cho người dùng đây nhanh quá trình tìm kiếmnhà chung cư theo nhu
câu Dé đạt được mục đích dé ra, dé tài cần thực hiện qua giai đoạn chính như sau.
Bước đầu, khảo sát các website bât động sản để thu thập dữ liệu dựa trênyếu tô xếp hạng của trang trên Alexa (http://www.alexa.com/)
Bước hai, trên cơ sở các bài toán thu thập dữ liệu tự động,bên cạnh tham
khảo các phương pháp giải quyết van dé từ các bài báo, công trình nghiên cứu liênquan, tác giả đề xuất phương pháp thực hiện xây dựng hệ thống thu thập dữ liệu tự
động vê nha chung cư.
Bước cuối cùng, các yếu tố ảnh hưởng trực tiếp đến việc chọn nha chung cưđược phân tích, xem xét khi xây dựng hệ thống thu thập tự động lay các thông tinchính dựa trên các yếu tố ảnh hưởng này Việc chạy thử nghiệmvới dữ liệu thực chophép đối chiếu với mục tiêu ban đầu dé radựa trên 4 tiêu chí: hiệu qua, an toàn,
năng suat, sự thỏa man.
Những đánh giá và kết luận của báo cáo cho thấy tính khả thi khi triển khaihệ thống này vào sử dụng thực tế
Trang 7ABSTRACTThe thesis is done with the purpose of building a system for collecting dataabout condominiums in Ho Chi Minh City area automatically, accurately andupdating; it suggests results base on a search request from the seeker, help them toshorten their seeking period To achieve its goals, the thesis need to follow steps asbelow:
First step, collecting data from real estate website, basing on ranking factorson Alexa website (http://www.alexa.com/).
Second step, based on the problem of automatic data collection, besidereferring methods of solving problems from the article, related research, the authorwill propose methodology to build a system for collecting data about thecondominium automatically.
Final step, analyzing and considering factors affecting directly topurchasing behavior of customers when building this system which collecting datamainly base on these factors The running tests with real data allows us to make acomparison with the initial objective based on four criteria: effectiveness, safety,productivity, satisfaction.
Assessments and conclusions of this thesis will show the feasibility ofimplementing this system in reality.
Trang 9DANH MỤC BANG BIEUBảng 3.1: Danh sách trang web dé thu thập tin rao bán căn hộ - se: j1Bang 3.2: Danh sách trang web dé thu thập tin tức thị trường bat động sản j1Bang 3.3: Chỉ tiết bang dit liệu thu thập tin rao bản căn hộ - -cc+cscsesese 36Bang 3.4: Chi tiết bang dit liệu thu thập tin tức thị trường bất động sản 37Bảng 4.1:Thống kê thời gian xử lý các kết quả tìm kiém của người dùng 49Bang 4.2:SỐ lượng tin rao về hệ thống/ĐhúIt - - + ccstsEeksEeEeEeEererkrkrkekrereeerree 49Bảng 4.3: Đánh giá chất lượng tin rao thu thập «+ se Sex cerkEeErkrkeerereeesree 50Bảng 4.4: Kết quả thực tế của hệ thÔng c- -c-c-kk+k+tsEeESEEEEEEEEEEEEEEEEEEEkrksrsreerree 50
Trang 10DANH MỤC HÌNH ẢNHHình 2.1: Kiến trúc chuẩn của Web CFQWÏF - + Set SkEESEEkEEErkerrrkrkerrred 6
Hình 2.2: Quy trình hoạt GONG CUA CTWÏGF” Ă S111 11 11 VVEEEEtksseeeessse 7
Hình 2.3: Mô hình crawler da lUOng -c-c- EESE+ESESESEEEEEEEEEEEEEEEEEEEkrksrrererree 13
Hình 2.4: Ví dụ rút trích thong tin cccccccccccccccccccccccccccccceeeeeeeeeeeeeeeeeeeeeeseeeeeeeeeeseseseeeees 17
Hình 2.5: Biểu diễn cây DO M «set EEEEEE11511111111111111111111111EEE.gye 19
Hình 2.6: Phân loại hàm DG viccccccccccccccscccccssscccccssscccccssccccccssecccessscsccuuseccusecsceuunesess 21
Hình 2.7: Cấu trúc tong quát của hàm DAM, viececcccccccscscsescssssssescscsesescsvsveveneneasasevevens 22Hình 2.8: Sơ đồ vòng lặp chính của ÌM]D5 + c+cseskekstsEsEeEeEekerkrkrkekrkreeerree 23Hình 2.9: Cơ chế duyệt đồ thị của các CLAWLED ceccccccccscscsscscsssscsevssssesesscsesscsesscsesscaes 24Hình 2.10: Phần mêm Viet SpDÌđ€F - + SE *EEEEESESESESEEEEEEEEEEEEEEEEEEEEEkrkrkrerree 26
Hình 3.1: Mô hình Đài fOÁI - << 0000 ngờ 29
Hình 3.2: Sơ đồ Use Case của người đÌHg c- + cccststskekeEsEeEkEekerkrkrkekrkreeerree 30Hình 3.3: Các bài viết cần thu thập từ trang web nguồn (www.batdongsan.com.vn)32Hình 3.4: Ví du nội dung bài viết trang web nguon(www.batdongsan.com.vn) 33Hình 35 Các bài viết cẩn thu thập từ trang web nguồn
(WWW MUADANNNAAALCOMLVN ) ecccccccccccesccccccccccsesecccccccuseseccescccueeeececescuueeceeseuueeeeeeeesanes 34
Hình 3.6: Vi du nội dung bài viết trang web nguôn(www.muabannhadat.com.vn)35Hình 3.7: Lưu đồ hoạt động của hệ thong ¬ 38Hình 3.8: So sánh nội dung tring nhau tiêu để từ web nguồn
Trang 11Hình 3.11: Sử dung hàm băm dé so sánh tiêu dé trùng Nhat ncccecececeseecssesstseseseees 42Hình 3.12: Kết quả tìm kÌẾM - «+ << EEEEEEEESEEEEEEEEEEEEEETETETETESEEEEkrkrerree 44
Hình 3.13: Các tin rao ĐẢH GOL Ý SE ret 45
Hình 3.14: Giao diện chính hệ thống thu thập thông tin căn hộ chung cư 45Hình 3.15:Hién thị thông tin cơ bản của căn hộ khi người dùng ro chuột lên bài255 46Hình 3.16: Giao diện tab tin tức mới về thị truong bat động SAN 46Hình 3.17: Giao diện tab tìm kiếm (lựa chọn tìm kiếm trên khu vực, diện tích và
QUA) P8 — ố.ốỐốỐốỐốỐốỐố ốỐốỐố 47
Hình 3.18: Nội dung thông tin bài viết thu thập căn hộ CHUNG CH - 55s: 47Hình 3.19: Giao diện tab thông kê tin rao DAN CAN ỒỘ - << << S1 E34 48Hình 4.1: Mô hình chất lượng sử AUag cccccececcscccsssssssssssesssesssscscscsvsvevencssssasavevevecevens 50
Trang 12DANH MUC CHU VIET TAT
URL — : Uniform Resource LocatorHTML : HyperText Markup LanguageCSDL : Co so dữ liệu
Trang 13MỤC LỤCMUC BtPEỆHAiâiẳđẳaaaảddididididiiad l
Chương 1: TONG QUAN - G3 3 111515151515 5 1 1111111101111 1111111111131 1e |1.1 Lý do chọn dé tài: - - + z3 1 E1 1 1111111111111 0111 1110111012111 |
1.2 Mục đích nghiên CỨU: - Ăn re 21.2.1 Khảo sát, phân tích hiện trạng: - ng re 2
1.2.2 Xây dựng hệ thống thu thập thông tin nhằm hé trợ đánh giá chất lượng san
phẩm, CỊCh VỤ: -cc G1110 1 111 TH TT re 31.2.3 Đánh giá việc triển khai hệ thống: - ¿5-5252 SE2E£E+E2EE£E£E£EzEeErerkrree 31.3 Đối tượng và phạm vi nghiÊn CỨU: ¿2-2 +2 55+++S££E+E+E+£E£EeEzerrerereerees 3
14 Phương pháp nghiÊn CỨU: (<< 9.00 0S re 3
1.5 BỐ cục luận Văn: - G11 11191 111 1911191 1111111111 T111 ng ng: 4Chương 2: CƠ SỞ LÝ THUY ẾTT - + 2E S2 SESEEE£ESEEEEEEEEE5E1E5 E1 E111 eckrkd5
2.1 = GOT HHIGU Web 0v 7/02 ae 5BI N./0sr 2 52.I.[.[ FrOntier: oo eee eececccceccceceeeeessssnsaaeneceeeeeeeeeeeesseeesssssaaaeeeeeeeeeeeeeeeeeeeeeaas 8
2.1.1.2 Cách thức chuyền trang khi thu thập dữ liệu của crawler: 92.1.2 Các chiến lược thu thap dO LGU: 035 102.1.3 Crawler đa luéng (Multi-threaded Crawler): -<<< <-<sss<<s2 122.1.4 Các yêu cầu đối với crawler [5Š]: ccccccsccsesscsssessesesessesssesscsesesseseseeseseseesesesen 142.1.5 Đánh giá đối với CraWÌ€T: ¿-©- + SE SESE E9 2E E23 1511511111111 11 1E cxe 142.1.6 Các van dé khi xây dựng crawler [5]: - - ¿55s ecxveecereerererrees 16
2.2 Bai toán rút trích thông fIn: - - - < << 0 HH ke 172.2.1 Rút trích thông tim: - G9999 00 ke 17
Trang 142.2.2 Các kỹ thuật rút trích thông tint << 5GB 119 1 ve rre 182.2.3 Rút trích thông tin dựa trên cây DOM? Ăn 1 re 192.3 Hàm bam (Hash ÍUnCfiOT)) (<< < 1 3990010199 90 ng re 202.3.1 Khái nIỆm: - G9 ọ nrrh 20
2.3.2 Tính chất cơ bản của hàm băm: - + 5+++++cxteEterxeerkrrrkrrrkrrrriee 20
2.3.3 Phân loại hàm băm: - << c0 3333111111110 1 1111111111111 1 ngu 212.3.3.1 Các hàm băm CÓ KhÓA << 000 re 212.3.3.2 Các hàm băm không KHÓA: «<5 50 1 ke 21
2.3.4 Cấu trúc ham băm: - 2+ SE 1xx 222.3.5 Một số hàm băm thông dụng: - «<< ng, 22
2.3.5.2 Hàm băm ÀÍÏ)Š o0 Tre 2324 Tinh hình nghiên cứu liên qUaT - << 1 1139930151111 v9 3311 1 ve rre 24
2.5 _ Tóm tắt chương: - c5: St E2 E1 111515151111 11 111115151111 11 1111111 28Chương 3: BÀI TOÁN THU THẬP THONG TIN VÀ PHƯƠNG PHAP THUC
3.2.1.2 Xác định nội dung thu thập của We©bsSI{©: -Ă SH he geg 32
3.2.2 Thực hiện lẫy dữ liệu - - 5256213 1 E5 1 121 1511111111111 111111 rk 36
3.2.3 Phương pháp thực hiỆn: (<< 1 ng ngờ 37
3.2.3.1 Xây dựng hệ thống: - 2 ©E+E+EESE+ESEEEEEEEEEEEEErErrkrkrrrrrrree 37
Trang 153.2.3.2 Kiếm soát các bài viết trùng nhau: - ¿5552 s+s+cscecxveereceee 39
3.2.3.3 Chức năng gợi ý cho người UNG? - << «s9 ve.42
3.3 Giao diện hệ thống - - SE 1 E5 1 3211151111111 1111111111111 453.4 Tóm tắt chương: -¿ - + SE SE 3 1515 1112111511111 1111111111111 46Chương 4:KIEM THU, DANH GIÁ THUC HIEN 2 +5+c+c+£z£ececee: 49
4.1 Thực hiện đánh giá: c S199 11 9 0111 1n và 49
4.2 Đánh giá chất lượng của hệ thống: - ¿52252952 S*2E+EE E2EErxrrerererreee 514.2.1 Đánh giá kết quả thực hiện của hệ thống: c.ceccecsesseessessseeeseseseseeeseees 51A2.2 Tóm tắt ChUONg? ccccccccsccceccssscsescsescscsssscscssscssssescssscsssescscscsssssesscsssssesseseans 52Chương 5: KẾT LUẬN uoceeccccccccscscscscscscscscscesececscssscscsesssssscscssssscscscsvevevstsnenseseeen 535.1 Tóm tắt nội dung nghiên CỨU: - ¿2-5 25+ + +E+E+E££E+EeEe+ErEeEerererreei 535.2 _ Những hạn chế: : 6+ S21 1 E515 11111 1111111511 1111111111111 535.3 KẾtluận: G11 TT H111 TT HH HT TH ng 545.4 _ Hướng nghiên cứu tiẾp theO: ¿5-5256 S22 EEEESEEEEEEEEErErkerrrkrrrreee 54
Tài liệu tham Kha eecececscseccsscscscssescscscsesscscscscssscscscscsssscscssscsssscscssssssscscevsessscsescens 55
Trang 16Chuong 1: TONG QUANl1 — Lý do chọn đề tài:
Hiện nay, chúng ta đang sống trong thời đại phát triển và đạt được nhiềuthành tựu đáng ké của công nghệ thông tin Các loại thông tin, số liệu, âm thanh,hình ảnh đều được số hóa, từ đó được lưu trữ, phân loại, xử lý và chia sẻ thông tindưới sự hỗ trợ của máy tính Tất cả các ngành, các lĩnh vực đều xem công nghệthông tin là nền tảng để nâng cao hiệu quả, cải thiện chất lượng từ khâu sản xuấtđến cung ứng dịch vụ
Tìm kiếm luôn là một trong những bài toán quan trọng trong việc lưu trữ vàtổ chức dữ liệu Các máy tìm kiếm như Google, Yahoo, Bing ra đời đã tạo nêncuộc cách mạng lớn trong việc tìm kiếm thông tin trên internet Tuy nhiên, nhữngmáy tìm kiếm này có một số trường hợp trả về kết quả quá lớn, không được sắpxếp, phân loại không phù hợp với yêu cầu tìm kiếm của người dùng Do đó, ngườidùng rất khó tìm kiếm thông tin hữu ích với lượng thông tin không lỗ như vậy
Thu thập, xử lý và khai thác thông tin sao cho hiệu quả đang là một van démới mẻ trong lĩnh vực khai phá dữ liệu Bài toán có ý nghĩa lớn đối với nhu cầu tiếp
cận thông tin của con người.
Trong khảo sát của công ty nghiên cứu thị trường Vinaresearch “Báo cáo
thị trường nhà ở tại Hà Nội và thành phố Hồ Chí Minh”thực hiện vào năm 2013,khảo sát trực tuyến thì tỉ lệ có nhu cầu mua căn hộ chung cư tại thành phố Hồ ChíMinh là 28% và tỉ lệ này ngày càng tăng Đây là con số cho thấy nhu câu về thịtrường mua căn hộ chung cư tại thành phố Hồ Chí Minh là khá lớn Và qua khảo sátcũng cho thấy có quá nhiều kênh thông tin cho người có nhu cầu mua căn hộ chungcư tham khao.Dac biệt, kênh thông tin website bất động sản xuất hiện rất nhiềucùng nhiều thông tin gây khó khăn cho việc lựa chọn cho người dùng có nhu cầumua bán bất động sản Nhu cầu đặt ra có trang web giúp người dùng có được thôngtin tong hợp về nhu cầu can bán căn hộ chung cư ở thành phố Hồ Chí Minh trongmột trang duy nhất, đưa ra gợi ý căn hộ bán cho người dùng, tóm tắt tin
Trang 17Theo báo cáo nghiên cứu của tác giả Phạm Thị Vân Trinh “Mô hình đo
lường những yếu tố ảnh hưởng đến quyết định chon mua căn hộ chung cư củakhách hàng tại thành phố Hồ Chí Minh” thực hiện vào năm 2011, tác giả đưa ra cácyếu tô ảnh hưởng đến quyết định mua căn hộ chung cư:
> Các yếu tố gây anh hưởng (hỗ trợ vay vốn của ngân hàng, tiễn độ
thanh toán).
> Các yếu tố thuộc tinh sản phẩm (vi trí, hướng nhà, diện tích, chất
lượng căn hộ, thiết kế).> Yếu tố cá nhân (thu nhập của khách hàng).> Các yếu tổ marketing (quảng cáo, khuyến mãi, giá cả).> Các yếu tố xã hội
Do đó, việc xây dựng một hệ thống thu thập thông tin căn hộ chung cư ởthành phố Hồ Chí Minh một cách tự động đưa ra gợi ý cho người dùng nhằm hỗ trợcho người dùng tìm kiếm thông tin nhanh chóng, hiệu quả và đưa ra quyết định khi
lựa chọn mua căn hộ chung cư.1.2 Mục dích nghiên cứu:
Đề tài được thực hiện để đạt được kết quả là xây dựng hệ thốngthu thậpthông tin nhằm hỗ trợ cho người dùng trong việc tìm kiếm thông tin và đưa ra quyếtđịnh khi lựa chọn mua căn hộ chung cư, được thể hiện qua 3 nội dung chính sau:
1.2.1 Khao sát, phân tích hiện trạng:
- Khảo sát các website hiện nay về bat động sản có thông tin cần bánnha chung cư tại thành phố Hồ Chí Minh
- Xac dinh cac yếu tố có ảnh hưởng đến việc lựa chọn nhà chung cư của
người dùng.
Trang 181.2.2 Xây dựng hệ thống thu thập thông tin nhằm hỗ trợ đánh giá chất lượng
sản phẩm, dịch vụ:Dựa trên các tài liệu nghiên cứu, các bài báo về thu thập dữ liệu tự độngtrong và ngoài nước; sử dụng các bộ mã nguồn mở,các module hỗ trợ sẵn có, xâydựng một công cụ thu thập dữ liệu đáp ứng một số yêu câu sau:
- — Thu thập dữ liệu tự động từ nhiều website bất động sản đảm bảo tínhchính xác và cập nhật về thông tin căn hộ chung cư ở thành phố Hỗ
Chí Minh.
- Dua ra một số gợi ý theo nhu cầu cho người dùng nhằm hỗ trợ giúpngười dùngthu hẹp phạm vi, đây nhanh quá trình tìm kiếm và đưa racác quyết định
1.2.3 Đánh giá việc triển khai hệ thống:
Tiêu chuẩn dé đánh giá VIỆC triển khai hệ thống mới trong điều kiện thực tế:- Khả năng thu thập thông tin tự động từ các website chon trước về
thông tin căn hộ chung cư ở thành phố Hồ Chí Minh Tóm tắt cácthông tin cơ bản liên quan đến nhu cầu mua căn hộ chung cư
- Dua ra một số gợi ý theo nhu cầu cho người dùng.1.3 Đối tượng và phạm vi nghiên cứu:
Trong phạm vi luận văn này tập trung các website bất động sản chung cư tạikhu vực thành phố Hỗ Chí Minh để xây dựng hệ thống thu thập thông tin tự độngnhăm hỗ trợ người dùng đưa ra quyết định khi lựa chọn muacăn hộ chung cư Trongđó, bao gồm các kỹ thuật, công nghệ thu thập, rúttríchthông tin trên các website vaxây dựng hệ thống thu thập thông tin tự động trực tuyến
1.4 Phương pháp nghiên cứu:
v Tìm hiểu, nghiên cứu và áp dụng các bài toán thu thập thông tin tự dộng:
- Nghiên cứu lý thuyết về khai phá dữ liệu và khai phá dữ liệu web
Trang 19- Nghiên cứu cơ chế hoạt động của các hệ thông thu thập thông tin và
các công cụ dé ứng dụng xây dựng hệ thống thu thập thông tin
- Nghiên cứu các bài báo, báo cáo đã được công bô có mô hình va
các yêu cầu tương tự với hệ thống dự định triển khai.v Đánh giá lại việc triển khai hệ thống trong điều kiện thực tế: tiêu chí là khả
năng đáp ứng các yêu câu của bài toán đặt ra.1.5 Bo cục luận van:
Bo cục của luận văn này gôm năm chương:
Chương 1: Tổng quan — Giới thiệu tổng quan, lý do hình thành, mục tiêu, đốitượng, phạm vi nghiên cứu, phương pháp nghiên cứu của đề tài
Chương 2: Cơ sở lý thuyết — Trinh bay tong quan về cơ sở lý thuyết và các nghiên
cứu liên quan.
Chương 3:Bài toán thu thập thông tin và phương pháp thực hiện - Trình bày
mô hình của hệ thống, quá trình xây dựng hệ thống.Chương 4: Kết qua nghiên cứu — Trình bày kết quả của dé tài.Chương 5: Kết luận - Kết luận từ kết quả nghiên cứu, nêu những hạn chế và hướngnghiên cứu tiếp theo cho đề tài
Trang 20Chương2: CƠ SỞ LÝ THUYETChương 2 trình bày tổng quan về lý thuyết bài toán thu thập thông tin, cácnghiên cứu có liên quan làm cơ sở dé xây dựng hệ thống thu thập thông tin nhăm hỗ
trợ cho người dùng.2.1 Giới thiệu web crawler:2.1.1 Web crawler:
Trinh thu thập web (Web crawler) là một chương trình máy tinh có thé
duyệt website một cách tự động theo một phương thức nao đó được xác định trướcthông qua URLs (Uniform Resource Locator) Web crawler cũng được xem nhưweb spider hay web robot [5].
Hau hết các công cụ tìm kiếm online hiện nay đều sử dung quá trình nay đểthu thập va cập nhập kho dữ liệu phục vụ nhu cầu tìm kiếm của người dùng Mụcdich chung của các hệ thống search engine là số lượng trang web dau vảo dat giá tricao nhất có thể, trong đó web crawler làm công việc chính là duy trì co sở dữ liệuđược đánh chỉ mục, trả về giá trị của bộ thu thập và bộ lập chỉ mục để có thể cho kếtquả nhanh hơn khi được tìm kiếm Ví dụ như Google Crawler của Google, các
website trên internet được Google Crawler duyệt qua và thu thập lại nội dung và lưu
trữ trong cơ sở dữ liệu và được tìm kiếm khi có yêu cau từ phía người dùng Ở ViệtNam, cũng có một số mô hình thu thập thông tin như: baomoi.com, phần mềm
VietSpider
Trang 21h World Wide h
| Web !
Web pages
| URLs Mioulti-threaded !> Scheduler downloader l
|
Hình 2.1: Kiến trúc chuẩn của web crawler [5]
> Queue: nhận danh sách dia chỉ cần crawling, lưu trữ, chuân hóa va
chuyền cho Scheduler
> Scheduler:
» Xac định mot thứ tự crawling cho các dia chi (ordering).
= Phân bố các địa chi cho hệ thống crawler phân tán.=» Xác định thời gian để Re-crawling một địa chỉ.Đề làm những nhiệm vụ này, Scheduler cần được xây dựng dựa
trên các chính sách (crawling policies):
= Selection Policies: xác định những địa chi nao cần đượccrawling dựa trên PageRank, nếu đã có trên máy chủ dựa vào
Trang 22thức robots exclusion protocol cho phép quản tri củawebserver câu hình được khu vực nào crawler không thê vào.
= Parallelization Policies: cho phép tổ chức crawling song song
và phân tán.
Nguyên lý hoạt động của một crawler: xuất phát từ những trang cho trướcgọi là hạt giống (seed pages)đây là những địa chỉ website muốn thu thập thông tin,và duyệt từ trang này đến trang khác thông qua những liên kết chứa trong nhữngtrang mà nó đi qua, quá trính này gọi là crawling Crawler tổng hợp nội dung (vănbản và những liên kết) từ những website và lưu chúng vào trong cơ sở dữ liệu
|
C Fetch page › |C Parse page › |
( Add URLs » |
to frontier
Hình 2.2: Quy trình hoạt động cua crawler [6].
Crawling Loop
Trang 232.1.1.1 Frontier:Là một danh sách công việc của một crawler hay còn gọi là To-do list.
Frontier dùng dé chứa những URL chưa được crawler duyệt qua Ban dau Frontierchứa các URL hạt nhân do người dùng hoặc chương trình khác cung cấp Mỗi vònglặp crawling bao gồm: lay các URL tiếp theo cần được tải về từ Frontier, nap trangweb tương ứng với URL bằng giao thức HTTP, tải nội dung trang web Quá trìnhcrawling kết thúc khi:
> Đạt được điều kiện dừng ví dụ như SỐ lượng trang web tải về đáp
ứng được yêu câu đặt ra.
> Danh sách các URL tai Frontier rỗng, không còn trang web yêu cầu
crawler tải về.
Frontier có thể coi như một hàng đợi làm việc theo cơ chế FIFO (First InFirst Out), vào trước ra trước trong trường hợp sử dụng thuật toán tìm kiếm theochiều rộng (Breadth-First) để thu thập thông tin Crawler sử dụng thuật toán tìmkiếm này gọi là thu thập theo chiều rộng Các URL được lay ra thu thap duoc chontừ trên xuống dưới trong danh sách va các URL mới được thêm vào đuôi của danhsách Trong frontier, các URL chỉ được lay một lần Dé tránh việc trùng lặp URLđược trích xuất đã có trong danh sách chưa dùng hàm băm với URL là khóa Hàmbăm này sinh ra các giá trị băm tương ứng với mỗi URL Sử dụng hàm băm sé timkiếm nhanh hơn vì việc so sánh các giá trị băm nhanh hơn nhiều việc so sánh mộtgiá trị với một khối dữ liệu lớn Khi frontier đạt đến miễn giới hạn, thì các trình thuthập theo chiều rộng sẽ làm việc theo cơ ché: sau khi đưa một URL ra khỏi frontierđể tiễn hành quá trình thu thập trang tương ứng thay vì việc lấy tất cả URL trongtrang này trình thu thập sẽ chỉ lay URL chưa thăm dau tiên và thêm vào frontier
Frontier có thé coi như một hàng đợi ưu tiên trong trường hợp sử dụng thuậttoán tìm kiếm tối ưu (Best-First) Trinh thu thập sử dụng thuật toán tim kiếm nàygọi là thu thập ưu tiên Hàng đợi ưu tiên là một mảng với các phần tử các URLđược sắp xếp theo điểm đánh giá Trình thu thập ưu tiên làm việc theo cơ chế: URL
Trang 24lay ra khỏi Frontier dé tiễn hành thu thập thông tin luôn là URL tốt nhất Sau khithu thập trang web tương ứng, các URL được trích xuất ra đưa vào Frontier và danhsách URL được sắp xếp lại theo thời điểm đánh giá Dé tránh việc trùng lặp URLdùng hàm băm với URL là khóa Khi frontier đạt đến miền giới hạn, cơ chế làmviệc của trình thu thập tối ưu cũng giống với trình thu thập theo chiều rộng chỉ kháclà các URL được lấy là các URL tốt nhất (URL có điểm đánh giá cao nhất).
Nhiều khi trình thu thập có thể bắt gặp spider trap dẫn nó đến một lượnglớn các URL khác nhau nhưng trỏ đến cùng một trang web Một cách để giảm bớtvan dé này là hạn chế số lượng trang mà các trình thu thập truy cập từ một tên miễnnhất định Các mã liên kết với frontier có thể đảm bảo rằng trong một chuỗi liên kếtcác URL trong frontier sẽ chỉ chứa một URL từ một tên miền máy chủ Như vậytrình thu thập sẽ tốt hơn bởi không truy cập vào cùng một trang quá thường xuyên
và các trang truy cập cũng có xu hướng đa dạng hơn.
2.1.1.2 Cách thức chuyển trang khi thu thập dữ liệu của crawler:Vấn đề cốt lõi hoạt động của crawler để lấy nội dung các trang web mộtcách tự động là dựa vào cách thức chuyền trang từ trang web này sang trang webkhác, hoặc thay đối nội dung này sang nội dung khác trong cùng một trang web
> Chuyén trang sử dung các phương thức HTTP GET, HTTP POST
Các trang web loại này không sử dụng JavaScript hoặc có su dung
JavaScript nhưng không ảnh hưởng đến cách thức chuyển trang
hoặc nội dung trang web.
> Chuyển trang sử dung đến các đoạn mã nhúng client-side như
JavaScript làm thay đổi cau trúc DOM hoặc nội dung bên trong củatrang web Ví dụ như: công nghệ Ajax sử dụng JavaScript để thựchiện các yêu cầu GET hoặc POST chỉ dé lay và nhận dữ liệu, dữliệu nhận được từ máy chủ được JavaScript xử lý để hiển thị kết
quả cho người dùng.
Trang 252.1.2 Cac chiến lược thu thập dữ liệu:
Quá trình thu thập web chính là quá trình duyệt đệ quy một đồ thị Các web
được xem như một do thị với các trang là các đỉnh (node) và các siêu liên kết là các
cạnh Chính vì vậy các chiến lược thu thập dữ liệu cũng được xây dựng dựa trên cácthuật toán tìm kiếm trên đồ thị Các thuật toán tìm kiếm trên đồ thị: tìm kiếm theo
chiêu sâu, tìm kiêm theo chiêu rộng và tìm kiêm ngâu nhiên [15].
> Chiến lược thu thập dữ liệu theo chiều sâu
Từ một danh sách chứa các liên kêt cân duyệt, thực hiện các bước
sau:
(1) Cho danh sách = {trang đầu tiên}(2) Lay trang dau tiên trong danh sách
- Nếu có, qua (3)- Nếu không, qua (5)
(3) Trang này đã xét tới chưa ?
- Nếu rồi, quay lại (2)- Nếu chưa, qua (4)(4) Đánh dấu trang này đã tới rồi Phân tích và tìm các liên kết có
trong trang đó không?
- Nếu có, thêm liên kết này vào đầu danh sách Quay lại (4)- Nếu không, quay lại (2)
(5) Kết thúc.Chiến lược thu thập dữ liệu theo chiều rộng
Từ một danh sách chứa các liên kêt cân duyệt, thực hiện các bước
Sau:
(1) Cho danh sách = {trang dau tiên}
Trang 26Sau:
(2) Lay trang đầu tiên trong danh sách- Nếu có, qua (3)
- Nếu không, qua (5)
(3) Trang này đã xét tới chưa?
- Nếu rồi, quay lại (2)- Nếu chưa, qua (4)(4) Đánh dấu trang này đã tới rồi Phân tích và tìm các liên kết có
trong trang đó không?
- Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4).- Nếu không, quay lại (2)
(5) Kết thúc.Chiến lược thu thập dữ liệu theo ngẫu nhiên
Từ một danh sách chứa các liên kêt cân duyệt, thực hiện các bước
(1) Cho danh sách = {trang đầu tiên}(2) Lay ngẫu nhiên một trang trong danh sách
- Nếu có, qua (3)- Nếu không, qua (5)
(3) Trang này đã xét tới chưa?
- Nếu rồi, quay lại (2)- Nếu chưa, qua (4)(4) Đánh dấu trang này đã tới rồi Phân tích và tìm các liên kết có
trong trang đó không?
- Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4)- Nếu không, quay lại (2)
(5) Kết thúc
Trang 27> Chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây tho (Naive
Best - First): sử dụng thuật toán tim kiếm lựa chọn tốt nhất theo qUytắc tính điểm số cho các URL Điểm số của một URL được tinhbăng phương pháp độ tương đồng cosin (cosine similarity, [19])
của trang web tương ứng và truy vần mà người dùng đưa ra.
Quá trình thu thập dữ liệu dùng trong trình thu thập tuần tự được
thực hiện như sau:
(1) Cho danh sách Sắp xếp các URL theo thứ tự giảm dan điểm số.(2) Lay trang đầu tiên trong danh sách
- Nếu có, qua (3)- Nếu không, qua (5)
(3) Trang này đã xét chưa?
- Nếu rồi, quay lại (2)- Nếu chưa, qua (4)(4) Đánh dấu trang này đã tới rồi Phân tích và tìm các liên kết có trong
trang này
- Nếu có, thêm các liên kết vào cuối danh sách Quay lại (4)- Nếu không, quay lại (2)
(5) Kết thúc.2.1.3 Crawler đa luéng (Multi-threaded crawler):
Việc sử dụng đa luồng trong đó mỗi luéng xử lý một vòng lặp crawling cóthé cải thiện được đáng kể tốc độ và hiệu qua sử dụng băng thông Mô hình crawlerđa luéng là mô hình làm việc gồm nhiều luồng trên cùng một frontier với mỗi luồnglà một vòng thu thập Chính vì thế cần một cơ chế đồng bộ dé tránh việc xung độtkhi các luéng cùng tiễn hành quá trình thu thập trên một frontier
- _ Luỗng đầu tiên bắt đầu bằng cách khóafrontier dé chọn URL tiếp theo cho
quá trình thu thập dt liệu.
Trang 28- Sau khi lay ra một URL, nó sẽ mở khóa frontier cho phép các luéng tiếp
theo truy cập vào frontier.
- Frontier lại bị khóa lại dé những URL mới được thêm vào.Các bước khóa này cần thiết để đồng bộ hóa việc sử dụng frontier khi màfrontier bị chia sẻ bởi nhiều vòng thu thập
Các mô hình thu thập đa luồng cũng giải quyết trường hop frontier bị rỗng.Nếu một luéng phát hiện frontier rỗng, nó không tự động hiểu là toàn bộ crawler đãđến trang thái kết thúc, có thé các luéng khác dang nạp thêm các URL mới Mộtcách giải quyết với tình trạng này là đặt một luéng mot trang thai cho khi frontier bikhóa Khi hết thời gian chờ nó sẽ kiểm tra lai frontier Sẽ có một bộ kiểm tra theodõi số luéng dang ở trạng thái chờ tại thời điểm hiện tại Chỉ khi tất cả các luồngđều trong trạng thái chờ thì khi đó crawler sẽ dừng lại [9]
Frontier
| |
|
| || |
Get URL Add URLs Get URL Add URLs '| |
| Ý Ý |
| _ _— |
' d b ry
| —+ Check for termination dt] „@ end > Check for termination fore] ,œ end |
[not «mi [not dere
Lock frontier Lock frontier h
J 1| Pick URL Pick URL' fom frontier fom frontier
: Lock freeticr Lock frertier' L 1
' Add URLs Add URLs
| to frontier to frontier
J J
' ——— Unlock fronticr Unlock frontier
Hình 2.3: Mô hình crawler da luong [9]
Trang 292.1.4 Cac yêu cầu đối với crawler [5]:
Tính mềm dẻo (robustness): Nhiều website có nội dung được tạo tự động cóthé tạo ra những trang web với số lượng không xác định được, gọi là bay spider(spider trap) Lỗi này có thể do lỗi trong quá trình phát triển website Vì thế, các bộthu thập cần có khả năng điều chỉnh việc loại bỏ URL để thoát khỏi những bẫy này
Politeness: Nhiều web server của website có thiết lập những qui định chotừng bộ thu thập có thể tải tài liệu tại website đó Khi đó, các bộ thu thập tài liệu
phải tuân theo qui định này.
Tính phân tán (distributed): Bộ thu thập cần có khả năng thực hiện trong
môi trường phân tán trên nhiêu máy.
Có khả năng tăng trưởng (scalable): Kiến trúc của bộ thu thập tài liệu cần
cho phép tăng hiệu quả thu thập khi tăng thêm máy và băng thông.
Hiệu qua (efficiency): can duoc thiét ké hiéu qua trong viéc su dung cac tainguyên hệ thống như: bộ xử lý, dung lượng lưu trữ va băng thông mang, ưu tiên thu
thập những trang hữu ích trước tiên.
Tính mới (freshness): cần thu thập nội dung một trang nào đó theo chu kỳxấp xi với tan số thay đổi nội dung của trang đó
Có khả nang mở rộng (extensible): Có khả năng mở rộng phạm vi thu thậpcác định dạng tài liệu, giao thức tải tài liệu.
2.1.5 Đánh giá đối với crawler:
Để đánh giá chương trình thu thập thông tin tự động hoạt động tốt haykhông phụ thuộc vào chất lượng các trang web thu thập về chương trình và thờigian sống của các trang web này Dé giải quyết van dé naycan xác định những trangweb quan trọng và có giá trị và cơ chế phân tích để đánh giá mức độ chính xác và
hoàn chỉnh kêt quả truy vần của người dùng.
> Độ quan trọng của trang web được đánh giá theo một số tiêu chí
[9]:
Trang 30= Từ khóa trong tài liệu: một trang web được xem có liên quannêu nó chứa một phân hoặc tât cả từ khóa trong truy vân.
= Tần số phát sinh: số lần xuất hiện của một từ hay cụm từ khóa
trong nội dung trang web Mật độ khóa quan trọng trong việcđánh giá độ quan trọng trang web.
=» Thẻ meta và câu lệnh title: trình thu thập sẽ đọc nội dung và
đánh giá độ quan trọng Các thẻ meta có nhiều hiệu lực cho
việc đánh giá:<meta name="description” content="miéu tả nội dungwebsite”>
<meta name=”keywords” content=”danh sách từ khóa”>
Với câu lệnh <title>(tiêu dé của trang web)</title> không bị bỏtrong thì độ quan trọng của nó có thé được nâng lên
= Sự tương đồng với các trang hạt giống: các trang tương ứngvới các URL hạt giống thường là đơn vị đo cho độ liên quan
của các trang thu thập.
= Tính phố biến của liên kết: một chương trình thu thập thông tincó thé sử dụng kết quả xếp hạng các liên kết của các trang như:Alexa, Google Page Rank dé đưa đánh giá về độ quan trọng.Đánh giá kết quả trả về cho người dùng: phân tích thông tin thuthập về có độ chính xác (precision) và độ hoàn chỉnh (recall):
= Độ chính xác: tỉ lệ giữa số lượng các tài liệu liên quan trongcác tài liệu thu thập được với tong số tài liệu thu thập được
|{releuant documents} n {retrieved documents}|
recision =Pp |{retrieved documents}|
= Độ hoàn chỉnh: tỉ lệ giữa số lượng tài liệu liên quan trong tàiliệu thu thập được với tổng số tài liệu liên quan
Trang 31{relevant documents} n {retrieved documents}|
recall =
|{relevant documents}|
2.1.6 Cac van dé khi xây dựng crawler [5]:
Chon các URLs: cần có một chiến lược lựa chọn các trang web để crawlertải về Các trang web có nhiều lượt truy cập, cung cấp nội dung có giá trị và phdbiến nên được ưu tiên trong danh sách URL
Cập nhật nội dung: các trang web cập nhật nội dung thường xuyên Vì vậy
cần có chiến lược cập nhật crawler phù hợp
Thu thập nội dung trang web tối ưu: khi các crawler thu thập nội dung cáctrang web sẽ làm tiêu hao tài nguyên Nếu crawler chiếm quá nhiều tài nguyênmạng thì có thé bị quản trị của các website thu thập thông tin loại trừ Vì vậy, cóchiến lược dé nâng cao khả năng hoạt động và ít tốn tài nguyên cho crawler
Xử lý song song: dữ liệu trên internet vô cùng lớn, nên can có nhiều crawler
hoạt động cùng lúc.
Khả năng lưu trữ: crawler hoạt động truy cập vào một URL, lọc thông tin
rồi tìm ra các địa chỉ URL khác (dựa vào những liên kết có bên trong các seeds).Sau đó thêm chúng vào danh sách URL Vì vậy cần phải định nghĩa trước giới hạnđộ sâu của liên kết
Các van dé khó khăn khi xây dung crawler:> Số lượng khống 16 các dữ liệu cần được crawling.> Tốc độ tăng trưởng nhanh chóng các dữ liệu HTML dựa trên các
ngôn ngữ: ASP, PHP, JSP.
> Tốc độ thay đối dữ liệu trên các tài liệu
Trang 322.2 Bài tốn rúttrích thơng tin:2.2.1 Ruttrich thơng tin:
Rút trích thơng tin (Information Extraction - IE) là một lĩnh vực của khai
phá dữ liệu (Data Mining) cĩ nhiệm vụ lay ra các mẫu thơng tin “cĩ ích ”đỗi với
người dùng.
Theo Jaeyoung Yang và cộng sự, rút trích xuất thơng tin (IE) là bài tốnnhận dạng những thành phân thơng tin cụ thể của một văn bản, những thành phần
này chính là hạt nhân tạo nên ngữ nghĩa của văn ban đĩ [11].
Nĩi một cách đơn giản, rút trích xuất thơng tin là quá trình xử lý thơng tin,đầu vào là một văn bản và đâu ra là các thơng tin cĩ giá trị với người dùng Dữ liệuđượcrút trích ra cĩ nội dung và cau trúc thỏa mãn yêu câu người dùng Bài tốn rút
trích thơng tin như sau:
Dau vào: Văn bản cĩ câu trúc bat kỳ.
_ TẢ.là //emeve leoxarsee : 8
—=m an¬ TED oman lọo2ocxeyese cox cột ————
fet jn Panis (Jtine Soochow @lMyVkcở
Teast Ki chenfood maÏs?ac®Sszes
Mayer
DnB tes?prehe nhìu Fagor te ’
-Abert 1 Ste? il he J 0-682 Tele
Hình 2.4: Ví du rút trích thơng tin[13]
Trang 332.2.2 Các kỹ thuật rút trích thông tin:
Dữ liệu đầu vào cho bài toánrút trích thông tin rất đa dạng Dữ liệu có thể
dạng không câu trúc, bán câu trúc hoặc có câu trúc.
>Dữ liệu không câu trúc: dữ liệu không câu trúc thường dùng dé chi
dữ liệu ở dạng tự do và không cân câu trúc định nghĩa săn, ví dụnhư ngôn ngữ tự nhiên.
Dữ liệu có cau trúc: dữ liệu có câu trúc thường dùng dé chỉ dữ liệulưu trữ trong các hệ quản trị cơ sở dữ liệu, trong đó các thực thê vàcác thuộc tính được định nghĩa sẵn
Dữ liệu bán cấu trúc: là dit liệu có cấu trúc nhưng không hoàn toàntường minh, nó không tuân theo những cau trúc, cách thức cau trúc
của bảng và các mô hình dữ liệu trong cơ sở dữ liệu nhưng nó chứa
những thẻ, những đánh dấu tới những phan từ ngữ nghĩa riêng biệt
của các bản ghi và các trường riêng biệt bên trong dữ liệu.
Dữ liệu từ các trang web là một dang cho dữ liệu bán cầu trúc Hệ thống tậptrung vào bài toán thu thập dữ liệu về và rút trích thông tin từ dữ liệu bán cấu trúc
Có nhiều cách tiếp cận để giải quyết bài toán rút trích thông tin, dựa vào đặctrưng của dữ liệu để giải quyết bài toán rút trích thông tin thì có một số cách:
> Dữ liệu có cau trúc: được lưu trữ trong CSDL, việc lay thông tin
thông qua các câu truy vân của người dùng.
Dữ liệu bán cau trúc: các trang web đại diện cho dữ liệu loại này.Để lay thông tin trên trang web thường sử dụng cấu trúc cây DOMvà sử dụng biéu thức chính quy (Regular Expression)
Dữ liệu không cau trúc:với dữ liệu không cấu trúc thì rút tríchthông tin có thể coi là bài toán nhận dạng và rút trích thực thể như:
tên người, tên tô chức, vi tri
Trang 342.2.3 Rút trích thong tin dựa trên cay DOM:
Theo W3C (World Wide Web Consortium) thi DOM (Document ObjectModel) là một giao diện lập trình ứng dung (Application Program Interface - API)
cho các văn bản HTML hợp lệ và các van ban XML có cầu trúc chặt chẽ Nó định
nghĩa câu trúc logic của các văn bản và cách truy xuât, thao tác một văn bản.
<TBODY> Dạng biéu diễn cây DOM của mã HTMI
>
“Th
” + _=A.<TR> 78 | a | | «Tp
hađy Grove } | Aeoken ) ) ( Goran
Hình 2.5: Biéu diễn cây DOMCây DOM được xây dựng trên các thẻ HTML, trong đó node gốc chính làthẻ ngoài cùng <TABLE>, sau đó đến các thẻ long bên trong và lá chính là các nội
dung Như vậy việc trích chọn thông tin trên cây DOM chính là việc duyệt cây
thông qua các cặp thẻ HTML Có hai phương pháp cơ bản để xây dựng các cây
DOM:
> Sử dung các thẻ riêng biệt: trong một cây DOM, mỗi thé là một
node, những cặp thẻ an bên trong là node con cua node hiện tại.
Trang 35= Làm sạch mã HTML: một vài thẻ không cần thé đóng (như<li>, <hr>, <p>) mặc dù chúng có thể đóng Bởi vậy một thẻđóng được chèn vao dé tat cả các thẻ được cân bang Các thẻđịnh dạng không tốt cũng cần thiết được sữa chữa
= Một thẻ sai thường là thẻ đóng, đó là thẻ cắt ngang các khối an
bên trong.
= Xây dung cây: có thé đi theo các khối con của các thẻ HTMLđể xây dựng được cây DOM
> Su dụng các thẻ và các hộp ao (visual cue): thay vì phan tích ma
HTML để sữa lỗi, có thé sử dụng sự biểu diễn hoặc các thông tin ảođể suy luận mối quan hệ có cau trúc của các thẻ và có thé xây dựng
được cây DOM.2.3 Ham bam (Hash function)
2.3.1 Khai niệm:
Ham băm là hàm toán học chuyển đổi một thông điệp có độ dài bất kythành mot dãy bit có độ dài cố định (tùy thuộc vào thuật toán bam) Day bit này
được gọi là thông điệp rút gọn (message digest) hay giá trị băm (hash value), đại
diện cho thông điệp ban đầu [4].2.3.2 Tính chất cơ bản của ham bam:
Hàm băm là một hàm h có hai tính chất sau:> Tính kháng tiên anh:chat nén: h sẽ tạo ra ánh xạ thông điệp x có độ
dài hữu hạn thành h(x) có độ dài n cô định.> Tinhchat dé dàng tính toán: với h cho trước và một dau vào x, có
thể dễ dang tính được h(x)
Trang 36| | OWHF CRHF |
| i
Hình 2.6: Phân loại hàm băm2.3.3.1 Cac hàm băm có khóa
Hàm băm có khóa là hàm băm có dữ liệu đâu vào ngoài thông điệp ra còn
có một khóa bí mật Các hàm băm có khóa được sử dụng để xác thực thông báo và
thường được gọi là các thuật toán tao mã xác thực thông báo (MAC — MessageAuthentication Codes).
2.3.3.2 Cac hàm bam không khóa:
Ngoài hai tính chất cơ ban trên ham băm không khóa còn có tinh chất:> Tinh khang tién anh
> Kháng tiền anh thứ hai
> Tinh khang va cham.
Hàm băm không khóa bao gồm các lớp con MDC (Manipulation DetectionCodes) Các MDC được sử dụng để tạo ra ảnh đặc trưng của thông điệp,
đảm bảo sự toàn vẹn của dữ liệu Bản thân MDC được chia thành hai lớphàm sau:
> Ham băm một chiều (OWHF — Oneway hash function): có tính chat
bô sung:
Trang 37= Kháng tiền ảnh= Kháng tiền ảnh thứ hai
> Ham băm khó va cham (CRHF — Collision resistant hash function):
có tính chất bố sung:= Kháng tiền ảnh thứ hai
=» Kháng va chạm
2.3.4 Cau trúc hàm băm:
Thành phan chính của một hàm băm là một hàm nén và các hàm biến đổikhác Hàm nén được thực thi nhiều lần để băm thông điệp ban đầu của hàm bămthành một chuỗi có chiều dài cố định Các hàm biến đổi khác (có thé có hoặckhông) nhận vào chuỗi bit sau lần cuối cùng thực thi hàm nén và cho kết quả chínhlà mã băm cuối cùng của hàm băm
| |
| : : | |
3 \ Ham nén ⁄ 3
| || |
| |
| || |
⁄
| í Đâu ra chiêu đài cô định
: | ' Các biên đôi khác không bat buộc