ĐẠI HỌC QUỐC GIÁ HÀ NỘI TRUONG DAI HOC CONG NGHE TRINH VIET DUNG XAY DUNG HE THONG KHAO DUYET WEB PHAN TAN VA THU THAP DU LIEU PHỤC VỤ CÁC HỆ HỖ TRỢ QUYẾT ĐỊNH Ngành: Công nghệ thông
Trang 1
ĐẠI HỌC QUỐC GIÁ HÀ NÓI TRUONG BAI IIOC CONG NGITE
‘TRINH ¥ ' DŨNG
XÂY DỰNG HE THONG KHAO DUYET WEB PHAN TAN VA
THU THAP DU LIEU PHUC VY CAC HE HO TRG
QUYET DINIT
LUAN VAN TIIAC SI CONG NGIIE THONG TIN
IIA NOI - 2015
Trang 2ĐẠI HỌC QUỐC GIÁ HÀ NỘI TRUONG DAI HOC CONG NGHE
TRINH VIET DUNG
XAY DUNG HE THONG KHAO DUYET WEB PHAN TAN VA
THU THAP DU LIEU PHỤC VỤ CÁC HỆ HỖ TRỢ
QUYẾT ĐỊNH
Ngành: Công nghệ thông tin
Chuyên ngành: Truyền đữ liệu và mạng máy tính
Mã số: Chương trình đào tạo thí điểm
LUẬN VĂN THẠC SI CONG NGHE THONG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYÊN DẠI THỌ
Trang 3
LOI CAM DOAN
'Yôi xin cam doan kết quả đạt được trong luận văn lả sản phẩm của riêng cA
nhân tôi, không sao chép lại của người khác Trong loản bộ nội dung của luân văn những điều dược trình bảy hoặc là của cả nhân hoặc lả được tổng, hợp từ nhiều nguồn tàn liệu Tắt cá các tải liệu tham khảo đều có xuất xứ rõ rằng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy
định cho lời cam đoan của mình
Hả Nội, ngảy 19 tháng 10 nam 2015
Trịnh Việt Dũng
Trang 4MỤC LỤC
DANH MUC CAC KY HIEU VA CHU VIF!
DANH MUC CAC HINH VE
1.3.1 Phân loại quyết định 3
1.3.2 Các thành phần của hệ hỗ trợ ra quyết định J
1.3.3 M6 hinh ra quyết đình 6
1⁄4 Miệt trường hợp sử dụng hệ hỗ trợ yet định trong việc dự đoán giả sản
1.43 Dự đoán giá 11
CHUONG 2 MOT 86 HE THONG THU THAP Dt LIEU 13
21 Kién tric chung của hệ thống Web Crawler - - 13 2.1.1 Kho chứa URL 16
2.1.2 Lich str viéng thăm và kho chữa các trang web 17
2.3, HIệ thống thu thập dữ liệu từ Twitter - TwitterEcho 24
24 Từm hiểu về công cụ HTTrack 25
Trang 542 Mô hình triển khai
43 Phin mém va thông số máy chủ
43.2, Cầu hình máy chủ
4.41 Đánh giá hệ théng Web Crawler
Trang 7DANII MỤC CÁC KÝ IIỆU VẢ CHỮ VIẾT TÁT
DE Data Extraction - mét hệ thống bóc lách dữ liệu lừ
website theo luật người sử dụng tạo
we Web Crawler - một hệ thống thu thập đữ hêu
Summary
may tim kiếm như Google, Bing, Yahoo, Daum
FB Crawler Một hệ thống thu thập đữ liệu từ mạng xã hội I*acehbaok
Crawling Quá trình thu thập đữ liệu
Spider Trap Bay các hệ thống thu thập dữ liệu tự động làm cho hệ
thống thu thập dữ liệu rơi vào vỏng lặp v hạn
Robot Hxclusiơn | Giao thức loại trừ robot
Protocol
TOA ‘Twitter Open Authentication dimg dé xdc thue mdi yêu
cầu gửi lên server
Trang 8
DANH MỤC CÁC HÏNITVẼ
Hình 1-1 Các giai đoạn của quả trình ra quyết định
Hình 1-2 Uu điểm của hệ hỗ trợ quyết định
Tình 1-3 Các thành phần của hệ hễ trợ quyết định
Hình 1-4 Sản phẩm đâu giá trên eBay
Tinh 1-3 Néi dung ITTML của sẵn phẩm
Hình 2-2 Trang HTMI, và cấu tric ody cita hé thdng tuang tmg
Hình 2-3 Các thành phần chinh ciia Mercator
Hình 2-4 Kiên trúc của TviHerEcha
Hình 3-1 Aö hình hệ thống thu thập đữ liệu công ty Salthu
Hình 3-2 Kiễn trúc phân tán hệ thẳng khảo duyệt web
Hình 3-3 Các thành phần bên trong ctia Web Crawler
Hình 3-4 Tao moi Web Crawler task
Hình 3-5 Cập nhật thông tin cho Web Crawler task
Hình 3-6 Xoá Web Crawler task
Hình 3-7 Xem dữ liệu download
Hình 3-8 Kiến trúc phan tan cha Tuiter Crawler
Trang 9
Hình 3-9 Danh sách cáo địa diém được hỗ trự bởi Twitter
Hình 3-10 Các chủ đê được chủ ý trên toàn cầu
Hình 3-11 Tạo mới một Twitter task
Hình 3-15 Trao déi thông tin giữa T'witterWorker và QueueManager-
Hình 3-16 Hé thing sit dung 4 shard leu trữ 11B dự liệu
Hình 3-17 Các thành phần của shard cluste
Hinh 4-1 Giao dign website terms naver.com
Hinh 4-2 Man hình kết quả ldy tweet
Hình 4-3 Màn hình kết quả lấy danh sách fbllower
Trang 10DANH MỤC CÁC BẰNG
Bang 3-1 Cdu tic bang crawler agent info
Bảng 3-2 Danh sách tham sé cia statuses/filter API
Bang 3-8 Cấu trúc bằng twitter_open_authentication
Bảng 4-1 Danh sách 6Ì người dùng Twiffer
Bảng 4-2 Mô bình triển khai hệ thẳng
Trang 11LOL CAM ON
Dễ hoàn thành nội dung luận văn này tôi đã nhận được rất nhiều sự giúp đỡ
từ thầy giáo hướng dẫn, gia đỉnh, cơ quan, bạn học và cá nhần
Trước hết tôi xin bay 14 long biết ơn sâu sắc đến Tiến sĩ Nguyễn Đại Thọ — Người thầy đã trực tiển hướng dẫn, lận tình giúp đỡ tôi trong quả trình xây dung
và hoàn thành luận văn nảy
'Tôi xin gửi lời cảm ơn đến các dồng nghiệp trong công ty Saltlux dã hỗ trợ tôi trong quá Irình phát triển hệ thống và hoàn thiện luận văn
Tôi xin chân thành cảm ơn các thay giáo, cô giáo trong Khoa Công nghệ thông tin, trường Đại học Công nghệ, Đại học Quốc gia IIả Nội cũng như các thầy giáo, cô giáo trong các viện nghiên cứu, các trưởng đại học khác tham gia giảng đạy ở trường đã tận tỉnh hướng dẫn, trang bị cho tôi những kiến thức quý
báu trong suốt quá trình học tập tại trường
TỌo có nhiều hạn chế về thời gian và kiến thức ne[in luạiIn van khong tránh khỏi những thiếu sói, rất mong nhạ[a đuLiợc những ý kiến đóng góp quý
báu của quỷ thây coL] và các bạn cùng quan †a —m
Cuỗi cùng tôi xin bày tổ lòng biết ơn chân thành đến bố mẹ, vợ, gia dình,
và bạn bè những người luôn tạo điều kiện, đông viên, giúp đỡ tôi rất nhiệt tỉnh
để hoàn thánh luận văn
IIa Nội, ngây 19 tháng 10 năm 2015
Học viên
Trang 12MO DAU
Bi cùng với sự phát triển mạnh mẽ của mạng Internet trong những thập kỷ
gần dây trên toàn cầu, nguồn dữ liệu web trở thành kho dữ liệu khổng lồ dễ khai
tháo thông tin hữu ích (theo thông kê của NGtCrall vào tháng 10 năm 2015, có
khoảng 878.269.546 site trên toàn thể giới [9]) Nguồn dữ liêu mà Internet mang
la ngày cảng trở nên đỗ số, da dạng, bao phũ lên tất cá mọi mặt của guộc sống,
từ văn hoá, kinh tế, chính trị, du lịch, học tập, nghiên cứu v.v Với sự phong phủ
vỗ tải nguyên như vậy, nhu cầu về tìm kiếm và xử lý thông tín, củng với yêu sầu
về khả năng khai thắc chúng một cách hiệu quả để giúp cho cơn người dé dang
và chỉnh xắc hơn trong việc đưa ra quyết dịnh, chiến lược kinh doanh, phần tích
tủi ro (trong kinh doanh), trong việc makerting và quảng bá sẵn phẩm, hay trong
việc diễu tra tâm lý và ý kiến của khách hàng đã trở nên cần thiết trong xã hội
hiện đại Nhưng van để tìm kiếm và sử dụng nguồn tài nguyên đỏ như thể nào để
phuc vụ cho công việc của mỉnh lại là một vấn để khó khăn đối với người sử
đụng, nhất là đối với những người đóng vai trò điều hành, ra quyết định ở các công ty, doanh nghiệp
Để thoả mãn yêu cầu trên Công ty Saltlux - một công ty chuyên về lĩnh
vực tìm kiếm ngữ nghĩa vả big daLa - đã giới thiệu một dịch vụ, một giải pháp
tổng thế giúp chúng ta sử dụng nguồn tài nguyên đỏ dễ dàng hơn, tập trung hơn
và hiệu quả hơn, qua đỏ nâng cao dược chất hượng công việc vả tiết kiểm dược
thời gian, đỏng góp vào sự phát triển của các doanh nghiệp, công ty Giải pháp được giới thiệu bao gồm các quả trình thu thập dữ liệu từ Internet, phân loại va
phân cụm dữ liệu thu thập được, phân tích đữ liệu, tim kiếm đữ liệu vả trực quan
hoá đữ liệu - sử dựng các biểu dỗ, dễ thị để biểu diễn dữ liệu
'Irong phạm vi luận văn tôi giới thiệu quy trình khảo sát, phân tích, thiết
kế, phát triển và thử nghiệm một hệ thẳng khảo đuyệt web và thu thập đữ liệu - một hệ thống manh mẽ thu thập dữ liệu từ nhiều nguồn khác nhau (trang tin tức,
dién dan, blog, mạng xã hội Twitter), thu thập nhiều loại dữ liệu khác nhau như himl, text (doc, đocx, pđf ), nnages (png, gứ, jpg, ) videos, và các loại
file phé biến khác như (.zip, rar, xÌš, xÌsx, ovs, hwp, ) Hệ thống được xây
đựng có khá năng chạy trên nhiều môi trường hệ điều hành khác nhau như Unix-
bascd, Windows Với việc thiết kế hệ thống chạy da luỗng đồng thời, số lượng
luồng được cấu hình động giúp cho hệ thống dễ ding tuỳ chỉnh một cách linh
hoạt tận dụng tối da nguồn tài nguyên của máy chủ cũng như bãng thông mạng,
Ngoài ra với kiến trác phan tán công việc linh hoạt, giúp hệ thống có khả năng, được mở rộng trên nhiều máy, tính năng mả các công cu thu thâp dữ liêu phố
Trang 13biến khác chưa lam duoc nhu HT Track, WebSPHINX, Web Application Attack
and Audit Framework, OWASP Zed Attack Proxy v.v Sử dụng cơ sở dữ liệu
NoSQI - MongoTDB dể lưu trữ dữ liêu giúp hệ thống dám bảo lưu trữ dược dữ
liệu rất lớn, tốc độ đọc/ghi dữ liệu nhanh, đễ đàng tích hợp với các hệ thống
khác Đây cũng là ưu điểm vượt tội so với các công cụ HTTrack,
'WebSPIIINX v.v chỉ cho phép lưu trữ dữ liệu thu thập được dưới dạng file IIệ
thống thu thập đữ liệu nảy cũng là hệ thẳng mà tôi tham gia thiết kế và phát triển
tại công ty nơi tôi đang làm việc
Hệ thống thu thập đữ liệu được trình bảy trong luận văn đã góp phần đáng
kế vào việc thúc đẩy sự phát triển của công ty, và đã được triển khai tới khách
hàng là cơ quan nhà nước (Văn phòng chính phủ, Bộ nội vụ, Bộ quốc phòng )
ở Hàn Quốc và doanh nghiệp ở Nhật Bản (5amuraiz) Phụ Lục 1 liệt kê danh
sách các đơn vị đã triển khai hệ thống
Nội dung cúa luận văn được tổ chức thành 5 chương như sau
Chương 1: Trình bảy lý thuyết chung về hệ hỗ trợ quyết định Đây là kiến thức nên tảng về hệ thống hỗ trợ ra quyết định như quá trình ra quyết định, các thành
phần cơ bản oúa hệ hỗ trợ ra quyết định
Chương 2: Tìm hiểu và khảo sát một số hệ thống thu thập dữ liệu được giới
thiệu trong các bài báo khoa học như Mercator và 'witterHcho, đồng thời tiến
hành khảo sát hệ thống đã được triển khai thực tổ như HTTraok Giải pháp cho
việc lưu trữ dữ liệu lớn cũng được trình bày trong chương này
Chương 5: Irinh bảy chỉ tiết thiết kê hai hệ thống khảo duyét web và thu thập
đữ liệu L1ê thống thứ nhất là hệ thông thu thập đữ liệu tir website chung như các
diễn đàn, blog, tin tức, v.v Hệ thống thử hai là hệ thống chuyên thu thập đữ liệu
tir mang x4 hoi Twitter
Chuong 4 Cài dặt, triển khai và dánh giá: chương này trình bay chi tid v
đặt, triển khai hệ thống, và đánh giá kết quả dựa trên yêu cầu thực lây được từ
Trang 14CHIUONG 1 TONG QUAN VE IIE 116 TRO QUYET BINII
Su phat triển nhanh chóng của mạng Internet trong những thập ký gần đây
đã mang lại nguồn dữ liêu to lớn laượng dữ liệu được chỉa sẻ trên mmạng là rất
lớn với nội dung phong phú, đa dang đến từ nhiễu nguồn cung cấp đữ liêu khác
nhau nhự: các site tin tức (cung cấp thông tin liên quan đến mọi mặt trong cuộc
sống như giáo dục, kinh tế, chính trị, ngoại giao, thể, giải trí, v.v), các điển đản, các kênh truyền hình trực tuyển mạng xã hội, v.v Nguồn dữ liệu phong
phú, nhưng việc sử dụng chúng mật cách hiệu quả để giúp ích cho con người
đặc biệt những người có vai trô ra quyết định trong các tổ chức, các công ty
đang là một thách thức lớn Ý tưởng của luận văn là xây dựng hệ thống thu thập
đữ liệu trên web, trên các mạng xã hội Dữ liệu thu thập được đùng cho các hệ thống phân tích, tùn kiếm sau này Dưới đây học viền trình bay ly thuyé ết chung
và một trường hợp sử đụng thực tế hệ hỗ trợ ra quyết
1.1 Thế nàu là ra quyết định
VicUe duQa ra quyết định đối véi moO vấn để xuất hiẹLIn trong khắp
các lĩnh vực, hoạt doCing của đời sống mà đôi khi chúng ta không nhạ[In ra Từ
những vielTlc đo n gién nhul chon molt bol quan do dé di du tie Te cho đến
các vieLlc lớn lao nhull phan bé ngin sách vào các chuLloLing trình của quốc
gia đều là các công viel le đu la ra quyết dịnh
Vai ly du la ra quyết định chính là chọn ra trong các giải pháp kha thi
mọ[ giải pháp mà theo ngu -lời đua ra quyết định là phủ hợp nhất
1.2 Quá trình ra quyết định
1.3.1 Phân loại quyết định
Có thể phân ra bến loại quyết định như sau:
- Quyết định có cầu trúc (Structured Decision): Các quyết định mà nguLiời ra
quyết dịnh biết là chắc chắn ding
- Quyết định không cấu trúc (NonstucLured Decision): Các quyết định mà
nguHời ra quyết định biết là có nhiều câu trả lời gần đúng và không có cách nào
để tìm ra câu trả lời chính xác nhất
- Quyết định deO quy (Reewring Decision): Cac quyél định lạ~lp di, lạ[Tp lại
- Quyết định không deO quy (Nonrecurring Decision): Các quyết định không
1.3.2 Cúc giai doạn của quá trùnh ra quyểt dịnh
'Theo 8imen, các giai đoạn của quá trình ra quyết định bao gồm các pha:
- NhaUn dinh (intelligence): ‘lim kiếm các tinh huéng dẫn đến vieLlc phải ra
quyết định, nhan đạng các vẫn để, nhu cầu, củ ~] họ “li, rủi ro v.v.
Trang 15- Thiét ké (Design): Phan tich cac huCéng tiép caLIn để giải quyết vấn đề, đáp
ứng các nhu cầu, tạFIn dụng các coL] họLli, hạn chế các rủi ro v.v
- Lựa chọn (Choice): Cân nhắc và đánh giá từng giải pháp, đo luLờng hạL]u quả
của từng giải pháp và chọn giải pháp tối uLlu
- Tién hanh ra quyết định (Implementation): Thực hien giải pháp đuFlợc chọn, theo dõi kết quả và điều chỉnh khi thấy cần thiết
1.3.1 Khái niệm hệ hỗ trợ ra quyết định
Trong thạF]p niên 1970, Scott Morton đu[1a ra những khái niẹ[lm đầu tiên về HẹF] hỗ trợ ra quyết định (Decision Support Systems-DSS) Ong dinh
Trang 16nghĩa DSS nhuÏ1 là những hẹ[] thống máy tinh tuDoLIng tac nhim giúp những nguHời ra quyết định sử dụng dữ lieu và mô hình để giải quyết các vấn đề không có câu trúc [7]
Experience Increased productivity Speed
Intuition Increased understanding Information
Knowledge Increased flexibility
Reduced problem complexity
Reduced cost
Hình 1-2 Ưu điểm của hệ hỗ trợ quyết định Cho đến nay chuFla có mọFlt định nghĩa thống nhất vé DSS Tuy nhiên tất cả đều đồng ý mục đích coL] bản nhất của D8§ là để hỗ trợ và cải tiến vieLlc
- Quan ly giao diện người dùng
Quản lý mô hình (Model Management) bao gồm các mô hình ra quyết định
(DSS models) va viele quan li cac mé hinh nay MoLt số ví dụ của các mô
hình ra quyết định như: mô hình nếu thì, mô hình tối u[lu, mô hình tìm kiếm
mục đích, mô hình thống kê
Quan ly dit ligu (Data Management) thuc hieDn céng vieUc lu[]u trữ các thông
tin của hẹL] và phục vụ cho việc cạL]p nhạt, truy vấn thông tin
Quản lý giao diện người dùng (User Interface Management) quản lí viẹLlc giao tiếp giữa ngu lời dùng cuối và HeFT ra quyết định.
Trang 17
Hình 1-3 Các thành phần của hệ hỗ trợ quyết định
1.3.3 Mô hình ra quyết định
MoLit đạỂ1c truLIng coL] bản của HẹL] hỗ trợ ra quyết định là phải có ít
nhat moLit mô hình hỗ trợ ra quyết định VieLlc chọn lựa và xây dựng mô hình
nằm trong giai đoạn thứ hai (Design Phase) của quá trình ra quyết định
Mọ[]t mô hình là mọ[]t khái quát hóa hay trừu tu[lợng hóa của thực tế
Mô hình hóa là vie[le khái quát hóa và trừu tu[Jơng hóa các vấn đề thực tế
thành các mô hình định tỉnh hay định luợng Đó là mọt quy trình kết hợp cả
khoa học (sự chính xác, logic) và nghẹ[] thuạL]t (sự sáng tạo)
6
Trang 18MỹLIL mô hình thu ~ờng bao gồm bà thành phần coL] bản
- Decision Variables: Đây là các lựa chọn xác định bởi ngu[Llời ra quyết định
Chẳng hạn trong bài toán quyết định đầu tuLl thì đây là số tiên đầu tu _l, noLli
đầu tui, thời gian đầu tui v.v
- Uneuntrollable Variables: Đây là các biến không nằm trong sự kiểm soát của
ngui lời ra quyết định (bị tác đọi Ing bởi các yếu tố bên ngoài) Chẳng hạn trong bai toán trên thỉ dây lá tốc dọIT lạm phát, lãi suất ngân hàng v.v
- Result Variables: Đây là các biến kết quả của mô hình Chẳng hạn trong bai
toán trên thì đây là tỉ số lợi nhuạ 1n
Khi lựa chọn quyết dịnh cuối cùng, ngui lời ra quyết dịnh có thể muốn có
mọFI quyết định tôi u[u (optimal) hay mọ[IL quyết định thỏa đáng, gần tôi uu
(good enough) Do vaLly cé thé chúa ra hai loại mô hình hỗ trợ ra quyết dinh
Mô hình quy chuẩn (Normative Miodel): Mô hình này xem xét tật cả các
phuDoDng án và chọn ra phuDoDng án tối u=u
Mô hình mô tả (Descriptive Model): Mô hình này xem xé mọLlt tạ[lp
hợp các điêu kiẹLIn theo ý ngu[lời dùng và xem xét các phu[loLIng án theo
này không xem xét hột tắt cả các phuLloLlng ấn nên kết quá cuỗi củng có thể chỉ gần tôi u[lu
Mö hình quy chuẩn thuLlờng đuợc sử dụng trong bài toán tối u[lu hỏa
mọi |t mục tiêu Mô hình mô tả thui lờng đuil lợc sử dụng trong bài toán tôi ml lu
hóa đa mục tiêu khi các mục tiêu này có thể mâu thuẫn nhau
1.3.4 Phân loại hệ hỗ trụ ra quyết định
Theo 1Iolsapple và Whinston (1996) [8] phân ra 6 lọai hẹ[ hỗ trợ ra quyết định:
- Hướng văn bản (Texi-Oriented D§SS)
- HuLlởng coLl sở di heLlu (Database-Oriented DSS)
- HuLiởng bảng tính (Spreasheet-Oriented DSS)
- HuHởng nguHời giải quyết (Solver-Oriented DSS)
- Hul lớng luại It (Rule-Oriented I285)
- Hul lớng kết hợp (Oompound 1388).
Trang 19Tướng văn bắn - Thông Lin (bao gdm dé ligDu va kiến thức) đu lợc lu[lu rữ
đuLiới dang vaUn bản Vì vạLly hẹLl thông đỏi hỏi laLlu trữ và xử lí các vaLin
bain moMt cach hicMu quả Các công nghel mdi nhul Hef quan li vain ban
đựa trên web, Intelligent Agents có thế đu “lợc sử dụng cùng với heL nay
HuLiớng coL] sử dữ liẹLu - CoL] sở đữ bẹ-lu đóng vai trò chủ yếu trong heO
nay Thong tin trong co] sé dé licOu thuOong cé céu true chaLt o
16 rang HeL nảy cho phép nguLlời dùng truy vẫn thông tin dé dang va TẤt mạnh
về báo cáo
ding thue hicOn vieCe phan lich truLớc khi ra quyết dịnh Bản tính có thể báo
gdm nhiều mọ[ hình thẳng kê, lạ_—p trình tuyến tỉnh, mọ[] hình tải chính v.v
Ban tinh phổ biển nhất đỏ là Microsoft Execl Hẹ[] này thu lởng duÏlợc dùng
xông rãi trong các hẹLl liên quan tới ngụ Hời dùng cuối
chui lo Ing trình để giải quyết mọi It vấn để cụ thể chẳng hạn nhi | tính toán giá
ban ra của sắn phẩm hay tính toán xu huLlớng bán hàng MọLlt số trợ giúp khác phức tạp nhu[] lá tối u[lu hóa đa mục tiêu Hẹ[ nảy bao gềm nhiều trợ giúp
như vậy
HuLớng Ina Ot — Kidn thie cia heD nay đu [Tợc mô tả trong ede quy lua thi
tục hay lí lẽ HeLl này còn được goi lả he chuyên gia Các quy luật nảy có thế
là dịnh tính hay định lu[lợng Các ví dụ của hẹi nảy nhuí] lả hu lớng dẫn
không lu[u, huOdng dẫn giao thông trên biển, trên bọ ¬, v.v
HuHớng két hop - MoLt heO téng hop có thể kết hợp hai hay nhiều ho[In
trong số na[lm họ] hỗ trợ quyết định kế trên
1.4 Một trường hợp sử dụng hệ hỗ trợ quyết định trong việc dự đoán giá
sản phẩm được bán dau giá Trên eBay
Dấu giá trực tuyến đang rất phổ biến Theo báo cáo của website bin đầu
gid trực tuyến lớn nhất thé giới eBay trong quý tải chính đầu tiên năm 2006 lợi
nhuận thuần (net revenue) là 1.39 tỉ đô, dự đoán mức tăng trưởng 35% trong những năm tới Việc thu được lợi nhuận lớn từ việc đấu giá sản phâm đã thu hut
những nhà nghiên cứu quan tâm đến lĩnh vực đầu giá trực tuyến, và hệ thẳng hỗ
trợ dự đoán giá sản phẩm đấu giá ra đời là cần thiết
Hệ hỗ trợ dự đoán giá hỗ trợ cả người bán và người nua Người bán có
thể sứ dựng hệ hỗ trợ nảy dưa ra giá ban dầu và gợi ý đưa ra mô Lá sản phẩm.
Trang 20Người mua sử dụng hệ hỗ trợ để đặt giá một cách hợp lý Để dự đoán gia cudi
của sản phẩm đấu giá, hệ hỗ trợ thực hiện các công việc sau:
- Thu thập dữ liêu từ website eBay
~ Tiền xử lý dữ liệu
- Dự đoán giá
1.4.1 Thu thập dữ liệu từ website eBay
Có một số cách để thu thập dữ liệu đấu giá từ website eBay: sử dụng eBay
API (Application Programers Interface), sử dụng Web Crawler, hoặc mua tập
dữ liêu do từ nhà cung cấp khác Hệ hỗ trợ được trình bảy trong ví du này sử
dụng một Web Crawler HarvEX (http://www.xellsoft.com/HarvEX html) để
download HTML của các trang đấu giá Mỗi một sản phẩm đấu giá được gắn
một ID để phân biệt Hình 1-4 mô tả trang sản phẩm đấu giá trên eBay
‘ny Ceagorens any Motre way Errone
fasts stems Ant xepory:Gummumes isons » dope Pad MPD Pees» Aue Pa > Bot
206 White Ipod in
“Ren nhọc 30912809778
Bidding has ended for this tem
Sarto eyo ty «a em ow
Hê hỗ trợ dự đoán giá dựa trên những đặc trưng sau: tỉ lệ phản hồi
(feedback rating) - đây là tỉ lệ phản hồi tích cực trên tổng số phản hồi về sản
phẩm đấu giá, số lượng hình ảnh của sản phẩm đấu giá, và mô tả sản phẩm đấu
gia.
Trang 21Đặc trưng đầu tiên là tỉ lệ phản hồi cBay có một hệ thẳng lưu trữ các
phan hỗồi của người mua đối với người bản trong các giao dịch trước đó gọi là
Feedback Fornm Người bán có tí lệ fecdback cao hơn sẽ có độ tin cậy cao hơn
Có một số nghiên cửu chỉ ra rằng có mỗi liên hệ giữa người bản và giá đấu giá
mong doi cua sản phẩm Người mua thường muốn biết thông tin về sản phẩm
đấu giá cảng nhiều càng tốt Những thông tin này giúp họ làm giảm được sự
tỉ lệ
phản hồi Nhưng có một số thông tỉn khó có thể mô tả trong dạng văn bản Ví
không chắc chắn về chất lượng sản nhằm thay cho việc chí quan tâm
đụ, mô tả sản phẩm về một đôi giày bán đấu giá 'giày hai mn’ (slightly worn shocs) cỏ thể là mòn nghiêm trọng hoặc vẫn trong điều kiện sử dụng được
‘Trong trưởng hợp này, số lượng hình ảnh mô tả được sử dụng để dự đoán giá Một cách khác để bên bán có thể thuyết phục bên mua bằng cách đưa ra các
thông tin thêm về sản phẩm bán Thông tin nảy được viết bằng ngôn ngữ tự
nhiên trong dó chứa các thông tim về giao dịch, chính sách hoản trả sản phẩm,
hay chỉ phí cho vận chuyển hàng Vì thông tin thêm là hữu ích đối với người
mua nên thông tìn này dược sử dụng như một dặc trưng dễ dự đoán giá
Việc trích xuất ba đặc trưng tử trang HTMI gốc của sản phẩm dấu hệ
thống thực hiện như sau Trích xuất giả và tỉ lệ phán hồi đựa vào tìm kiếm nội
dụng 'Winning bid! va '£eedback' Số lượng hình ảnh sản phẩm đấu gia được tìm
bằng cách đếm số tag <img> trong phân mô tả sản phẩm IIình 1-5 lả ví dụ nội
dung HTML của sản phẩm đầu giá
<himi>
[non-relevant code omitted)
<span id="DetailsCurrentBidText" class="titlePurchase'» Winningbid: </span>
‘<span id="DetailsCurrentBidValue"> <b> US $175.00 </b></span>
[non-relevant code omitted)
Feedback:citd> <td width="100<strong> 100[non-relevant code omitted)
</- Begin Description »
<FONT style="FONT-WEIGHT: bald; COLOR: rgb(0,66,154)" size=5>
This is the Apple 30G White Ipod in Box. This is the new 30 gig video
picture music igod Hokl up lo 7,500 Songs.äribep; It comes in great candition barely
used in the ariginal box with instruction book,  : and the instellation ed for
itunes. This is a great deal&nasp;
<SPAN style="TEXT-DECORATION: underline"»DONT MIS§ OUTIII</SPAN></FONT><BR>
Hình 1-5 Nội dung HTML của sản phắm
Đổi với dặc trưng mô tả sẵn phẩm, hệ thẳng sẽ xây dựng vcctor dại điện (vector
Tepresentation) cho đặc trưng này Hinh I-6 đưa ra ví dụ của vector đại diện
10
Trang 22Tarms
plural, normal, form, strip, suffix, ratriev, belong, read,
singular, algorithm, figur, meant, letter, end, process, chang,
word, assum, usual, quantiti, system, stem, english, exampl,
term, root, set, convert, porter, inform, paragraph, diminish,
ĐỂ xây dựng vector hệ thống sử dụng 2 phương thức BOW (bag-ol-word) và
thuật toán xác định từ gốc Porter
1.43 Dự đoán giá
Để dự đoán giá của sản phẩm đấn giá, hệ thống sử dụng CAIRT
(Classification and Regression Trees) - cay quyét dmh phân lớp và cây quyết
định hồi quy Ilình 1-7 mỗ tả cây quyết định hồi quy
ay héi quy bao gom vac decision node va leaf node Méi mot decision
node cé hai node con, node con cé thé 14 decision node hodc leaf node Root cia
cây nằm ở trên củng không có node cha
Chi tiết của việc dự doán giá dựa vào CART như thế nào tôi không trình
bay chỉ tiế bởi vì đây là một lĩnh vực khác vượt ngoài phạm vi luân văn tôi
dang nghiên cứu
11
Trang 231.5 Kết luận
Chương 1 trinh bảy lý thuyết chung về hệ hỗ trợ quyết định Đây là kiến
thức nên tảng về hệ thống hỗ trợ ra quyết định như quá trình ra quyết định, các
thành phần cơ bản của hệ hỗ trợ ra quyết định
12
Trang 24CIIUONG 2 MOT SỐ TIE TIONG TIIU TIAP DU LIỆU
Chương nay trớnh bảy kiến trỷc chung cia Web Crawler Tỳm hiểu một số
hệ thống thu thập dữ liệu được trớnh bảy trong cõc bỏi bõo khoa học vỏ nghiởn
cứu sản phẩm đọ được triển khai thực tế Dóy cũng lỏ cơ sở để xóy dụng hệ
thống khảo duyệt wcb vỏ thu thập dữ liệu của tối
2.1 Kiễn trỷc chung của hệ thừng Web Crawler
'Web Crawler (hay cún được gọi với tởn khõc như Web Spider hoặc Web
Robot) lỏ một chương trớnh mõy tỉnh cụ thể “duyệt web” một cõch tự dộng theo
một phương thức nỏo đỏ được xõc định trước Vớ lỏ một chương trinh nởn quõ trớnh “duyệt web” của cõc Web Crawler khừng hoỏn toỏn giống với quả trớnh đuyệt web của con người (Web Crawler phải sử dụng cõc phương thức đựa trởn HTTP truce tiờp chứ khừng thừng qua Web Browser như con người)
Động cơ ban dầu thỷc dóy việc thiết kể Web Orawler lỏ việc lấy nội dung,
trang web vỏ lưu trữ chỷng ở cõc kho chứa cục bộ sau đụ sẽ được sử dụng chủ
cõc ứng dụng khõc như phón tợch dữ liệu, search engine v.v Cõc Web Crawler
thường bắt dầu từ một trang wcb hoặc một danh sõch cõc trang wcb nảo đụ, sứ
đụng cõc liởn kết ngoỏi trong trang web đụ để mở rộng ra cõc trang tiếp theo
Quõ trớnh nỏy tiếp Lục với cõc trang web mới, cõc trang nảy lại cung cấp cõc liởn
kết ngoỏi khõc để đi theo Cứ như vậy cho tới khi đạt tới một số lượng trang web
xõc định hoặc thoả mọn một điều kiện nảo đụ,
Mừi trưởng wcb lỏ thực thể động, với cõc khừng gian con thay đối theo
cõc xu hưởng khõc nhau vả thường thay đổi với tốc độ rất nhanh Do đụ chỷng
ta luừn cn sử dụng cõc crawler để giỷp cõc ứng dung dul loc cal Ip nhal It bằng
cõch cạ -]p nhạ[It noi dung mới của cõc trang web, xụa bỏ hoạf1c sửa đổi noLi dung cũ Cõc hẹL thống tớm kiếm thuLiờng cố gắng thu thaLlp đuLlợc cảng
nhiều trang web cỏng tốt Cõc hẹ[] thống nỏy thu[lờng sử dụng Web Crawler dờ
bao tri col | sờ dif liel lu đu! lợc đõnh chỉ mục của chỷng, cón bằng cõi giõ của quõ trớnh crawling vỏ đõnh chỉ mục với hỏng tricLlu truy vấn mả h[] thống
nhạLIn đuLợc Xiodule crawler của cõc hẹL] thống nảy thuLờng cụ xu huLiớng
vỏ mục tiởu chỉnh lỏ dowmload hờt cõc trang web mỏ nụ gai lp Ngui lợc lại, cõc
crawler khõc lại chỉ chọn mọ[ số trang web để tải vỏ duyeLIt trong s6 rất nhiều cõc trang web nụ gạLlp, cõc crawler nảy đuLlợc gọi lỏ cõc crawler cụ lựa chọn preferential crawler hoalc crawler dia trờn kinh nghieOm Ching đuLlợc sử
đụng để xóy đựng cõc kho đữ lii lu cụ chi diờm, tt dol ng hớa cõc nguồn lực
khai phõ vỏ đõp ứng chủ cõc đại lý phần mềm Cõc crawler đờ lựa chọn đuợc
xóy dựng để lấy ra cõc trang web theo moLit chủ đề xõc đinh đuLiợc gọi lỏ cõc
crawler theo chii dờ topic crawler hoa[ 1e crawler tạ[ Tp trung, fbcused crawler.
Trang 25Có mọt số khía cạnh của các topic crawler, dang du “loc tạ[Ip trung
nghiên cứu Mo: It câu hỏi then chốt đã đang thu hút sự quan tâm của các nhà
nghiên cứu lả: Làm thé nao dé dat dulgc tinh chat lua chọn của crawler Cac
vin để phụ thuoOc nhiều vào ngữ cảnh nhuL] mục tiêu của ứng đụng cha (ma
crawler la mọ[IL thành phần) hoaLc các tín hicLlu ngữ nghĩa trong trang web
cũng nhuL] những đạ[lc truLlng (feattres) của các luLợc đề đu[lợc xây dựng từ
các trang web cũng đã du[ ợc xem xét Thêm vào đẻ, các crawlcr cũng sử dụng các co[l chế khác nhau trong vie Jc xi ly cdc yếu tổ này
Mọ[It khía cạnh quan trọng thứ hai cần xem xét khi nghiên cứu các
crawler, da] Ic biel It la cdc topical crawler, đó là bản chất của nhiel Im va crawl (duye Dt web) Các tính chất của vieDc crawl nhuD 1a cac truy vấn hay là các từ
khỏa đu Lợc cung cấp nhu là các đầu vào cho cae crawler, cdc hé soD nguldi
dimg uscr-profile, hay các thuọ[lc tỉnh của trang web cần tải (các trang
tuCloLing ty, các trang web phổ biến, v.v.) có thể dẫn tới các thay đổi đáng kể
trong vicDe thiết kế
các tham số nhuL số lulợng cực đại các trang web cần nạp hay dung luLiợng
bọi | nhớ có thể vv l2o đó, mọi Ít nhiel Im vụ crawling có thé dul gc xem
nhu[] mọt bài toán tìm kiếm bị Tảng buọ-lc bởi nhiều mục tiêu (multi-
objective) Tuy nhiên, do sự đa dạng của các hàm mục tiều cọ_ng với sự thiểu
các hiểu biết chính xác về không gian tìm kiếm lảm cho vẫn để càng trở nên phức tạp HoLIn nữa, mọỔt chuLloLing trình crawler có thể sẽ phải giải quyết
các vấn đề về tối uLlu hóa nhuT tối u=lu Loàn cục vá tỗi u lu cục bạ]
Trang 26frontier Danh sach nay được tạo ra bởi các URL hạt nhân (Seed URL) được
cung cấp bởi người dùng va các chương trình khác Mỗi vòng lạFip crawling bao gém: lay ra URL can duOge download tiép theo tir frontier, nap trang web
tu[loEing ứng với URL đó bằng giao thức HTTP, bóc tách trang web vừa tải về
để lấy ra các URL và các thông tin mà ứng dụng cần, và cuối củng là thêm các trang URL chuLla đuLợc thaLÌm vào frontier Truớc khi các URL đu[lợc thêm vào frontier chúng sẽ đu[lợc gan cho moLIt đọ[] đo thể hiẹ[in đánh giá hieDu quả khi tha[im trang web tuF]o[lng ứng với ƯRL đó Quá trình crawling
có thể kết thúc khi mot sé luOong nhất định các trang web đã đu[1ợc tải Nếu
chu[JoLing trình crawler đã sẵn sảng để duyeLlt mọFit trang web khác và trang
thái của frontier là rỗng, mọFIt tín hieDu trang thái kết thúc (dead-end) sẽ
đuỂlợc gửi cho crawler Chu[oFng trình crawler sẽ không có trang web mới dé
Trang 27mọLI văi nút hạt nhđn va sau đó đi theo câc cạnh để tới câc nút khâc Quâ trình
tải mọL t trang web vă trích ra câc liín kết trong nó tuLloLlng tự nhuLl viẹL c
mổ rọ[]ng mọ[Tt nút trong băi toân tìm kiếm trín dĩ thi Molt crawler có chủ
điểm cố ging đi theo câc cạnh mă đu[lợc kỳ vọng lă dẫn tới câc vị trí trong đỗ
thị lă hợp lẹL với chủ điểm đỏ
21.1 Kho chứa URL
Frontier lă danh sâch câc công vie[ le cần lđm của mọ[ ]t crawler, nó chứa
câc URL của câc trang web chu~la đuLlợc tha[lm Trong thuạ[lt ngữ tìm kiếm
đồ thi, frontier lă mọLIt danh sâch mở câc nút chu _la đuL lợc mở rọ _Ing (chuL a đuÖợc tha[Im) MạL1c dù có thể có nhu cầu phải lun câc frontier lín đĩa đối với câc crawler rất lớn, ở đđy để đoIIn giản hóa chúng tôi chỉ giới thiẹ[lu
frontier nhul ii u trúc đữ liệu trong bọỒ nhớ trang Dựa trín dung
luLiợng boL nhớ có thể, ta có thể quyết định kích thuLlớc cực đại cua frontier
Tựa văo dung lulTợng lớn của bọ[1 nhớ mây tính ngăy nay, kích thui lớc mọ[ TL
frontier vao khodng 100,000 url không phải lă hiĩm Do cac frontier chi cĩ kích
thui lớc giới hạn ta cần có mọi It eo | chế để quyết định URI năo cần bị bố qua
khi số luQong URL trĩn frontier dat toi giới hạn đó can phải lu_u ÿ ring frontier có thể bị đầy nhanh hoLn nhiều so với số luLiợng trang web đuLiợc đuyẹ[ Ta có thể câ tới khoảng 60,000 url trong ñontier khi mới duyeLt
di lợc khoảng 10,000 trang web do trung bình có khoảng 7 liín kết trong mol It
ic
trang web
Frontier có thể đuLJc thực thi nhu] mọ[It hang doi FIFO nếu ta muốn
xđy dựng moLit crawler theo duyeLit chiều roL ng (breadth-first) để duyeLlt web
theo chiến luOve md (blindly) URL cin duOgc đuyeLT tiếp theo đuÖợc lđy từ
đỉnh của hăng đợi vă câc URL mới đuLlợc thím văo cuối hảng đợi Do kích
thu [ức hạn chế của fronticr, chúng ta cần phải đảm bâo lă không thím câc URL
JaOp lai vao hang doi Do vay mot co[ chế tìm kiếm tuyến tính để tìm ra
mọi It URI mới dul lợc trích ra từ nọi li dung cia url dang dul lợc duye[ ]t có
nằm trín frontier chuLa lă rất cần thiĩt MoDt giải phâp đu lợc đuLla ra lă định
vi mol It lul long bol | nhĩ can thiĩt dĩ duy tri mol It bang bal Im riíng (với khỏa
lă URL) để luEu giữ mỗi mọLlt URL của frontier để thuạ[ lợi cho viẹLe tìm
kiểm Bảng baLm nảy phải đuLiợc giữ đồng bọLl với frontier thực sự MioLlt
giải phâp khâc tốn nhiều thời gian ho~In lă duy trì bản thđn hăng đợi đỏ nhu[]
mọt bảng ba~m (cũng với khóa lă URL), Diều năy cung cấp mọt câch tìm
kiếm nhanh chóng để trânh vie~lc luEu lạtTp lại câc URL Tuy nhiín, mỗi lần
crawler cần mọ -It URL để duyeLlt, nó cđn phải tìm kiím vă lđy ra URL mới
duoc dala văo frontier pần dđy nhất Nếu bọ[] nhớ không phâi lă vẫn dễ nổi
cọ -lm, giải phâp thứ nhất có thể sẽ tốt he[Tn MoLt khi frontier dat tĩi kich
16
Trang 28thuức tối đa, thì crawlor theo chiều roLng chi có thể thêm duy nhất mọLlL
URL chuLla đuLlợc thaLIm từ mỗi trang web đã đu lợc duyeLlt
Nếu phần frontier đu Liợc thực thi nhuLI mọ _lt hàng đợi u lu tiên chứng ta c6 moO crawler u[lu tiên hay còn gọi là crawler lỗi nhất đầu tiên (best-first
crawler) Hang đợi u[lu tiên có thể là mọt mảng đọ “ng luôn đuLợc sắp xếp
theo doO do duQue dánh giá của các URL chuẴla duHợc thaFm Tại mỗi
buLlớc, URL tết nhất đuLiợc lấy ra ở đầu hang doi MoLit khi trang web
tu[lo[Tng ửng đui ợc nạp, các uri liên kết từ nó du[ ợc lấy ra và du[lợc danh
giá dựa trên mọ Jt số kinh nghiẹLm Sau đó chúng lại đu[lợc thêm vào frontier
tại các vị trí phụ thuọi le vào đọi | đo đó Chúng ta có thế tránh viẹl c thêm
riêng bieLlt để tìm kiếm Khi frontier đạt tới kích thu [iớc tối đa là max, chỉ có
max URL tết nhất đuLợc giữ lại trong ữontior
Nếu chu[lo[Ing tinh crawler nha Tn thay fronticr 14 réng trong khi nó cần
URL tiép theo để duyeLit, quá trình crawling sẽ ngừng lại Với mọLÍt giá trị max
lin va moMt vai URI, hạt nhân thui ong lronticr rất hiểm khi đạt tới trạng thái
rong
Tai moLt số thời điểm, mọ[]t crawler có ?hể gạLlp mọ -]t bay nhẹ[In
(spider trap) mà dẫn nó 1di mg Ot sé luC ong lon cdo URL khác nhau cùng trổ tới
moLlt trang web ‘I'a cé thé han chế điều nay bing cach han ché số luLiợng các
trang web mã cratrler truy cá _Ìp tới từ mọi ]t tên miễn xác định Đoạn mã le[inh
liên quan tới frontier có thé dim bao ring mọi chuỗi k URL lién tiép (thu Dong
k-100), dul Ive
site quá nhiều lần, và noLli dung các trang web tải đuLlợc sẽ có xu huLliớng khác
bìe~L nhiều huFIn
ra bởi crawler, chỉ chứa duy nhất mol It dia cht URI chuẩn
1.2 Lịch sử viếng thăm và kho chứa các trang web
Phân lịch sử vidng thăm ctia crawler 14 moCt danh sach doOng cdc URL
đã đuLlợc nạp bởi crawler Nỏ chứa các đu[lờng đẫn mà crawler da di qua bat
dau Ur trang hat nhân Mọz1L URL đầu vào chỉ đu Lợc tạo trong phân lịch sử sau
khi trang web ta[loEng ứng đã đu Liợc nạp Phần này đuLợc sử dụng cho viẹLe
phân tích và đánh giả các trang web sau này Vỉ dụ, chúng ta có thể gắn cho mỗi
trang web mọ -]t giá trị trên đuLlởng dẫn và xác định các sự kiẹLln có ý nghĩa (ví
đụ nhull viẹ e khám phá ra mọ Ít nguồn lực quan trọng) Trong mọi lt số
truLởng hợp phần lịch sử đuLlợe lu[u trữ ở bọ[ nhớ ngoài, nhung nó cũng
có thể đuLlợc duy trì nhuLl mọLlt câu trúc đữ liẹLlu trong boLl nhớ trong Liêu này cho phép tìm kiếm nhanh chóng để kiểm tra xem liẹ[lu mọ[It trang web đã
17
Trang 29duoc đuyeLIt hay chu la Vio[le kiểm tra này là rất quan trong để tránh di
tha _m lại các trang web, và do đó tránh viẹLlc thêm các URL d& duLloc duyeLt
vào trong fiontier có kích thu[ ớc giới hạn Cũng với lý do tai oIing tự, vie[ e
chuẩn hóa các URL truL1ớc khi thêm chúng vào lịch sử cũng, rit quan trọng,
Khi trang web đã đu[lợc tải, nó có thể đuHợc luIu trữ, đánh chỉ số để
phục vụ cho ứng dựng chinh (vi du moCt may lầm kiếm) Ổ dạng dolIn gián
nhất, mọL t kho chứa các trang web có thể có thể luLlu các trang web đã đuLlợc
crawl nhu[ các file riêng bie[It Trong tru[lờng hợp đó, mỗi trang phái du[ Tợc
ánh xạ tới mọL: tên file duy nhất MọoLIt cách dé thực hiẹLn điểu này là ánh xạ
URI, của mỗi trang tới mọ: t chuỗi nén bằng cach sit dung mol It dang ham
balm với xác xuất xung đọ[ thấp (để đảm bảo tính đuy nhất của tên file) Các
giá trị ba[Im đu[lợc sử dụng làm các tên file Ví dụ có thể sử dung ham baOm
mọt chigu MDS dé cung c4p m& bam 128 bil cho mai URL Gié ri bam
128 bit sau dé duOge chuyén thanh 32 ký tự ở dạng co sé 16 tuCoCng img
Theo cách này la số có các Len file 6 chiéu dai cd dinh cho eae URL cd do dai
bắt ky Cac kho chứa nọ[li dung trang web có thể đuLợc sử dụng để kiếm tra
ligt a mo It URI d& dul loc crawl trul ide dé hay chul la bang cach chuyển
URL đó sang 32 ký tự thạLp lục phân và kiểm tra sự tồn tại của nó trong kho
chứa Trong mọLIt số truLlờng hợp, điều nảy có thể dẫn tới sự không cân thiết
của cấu trúc đữ lieLu lịch sử trong bọL] nhớ trong
31.3 Tải các trang web
Để nap moCt trang web, ta can moLit IITTP client 44 gti moDt yêu cau
HITP téi moLit trang web va đọc các đáp ứng Phía client cần có mọi t thời gian tỉmeout để đảm bảo rằng nó không lãng phí quá nhiều thời gian để giao tiếp
với mọ[]t server quả chạ —m hoạ-]c đọc mọ[]t trang web quá lớn Trên thực tế, thuÄLlèng giới hạn chen chỉ download các trang wcb có kích thu[lức nhỏ hoLÌn
10-20KB Phía client cần duyeLIt các đáp ứng header để lấy các mã trạng thải và
các sự định hui lởng lại (rediroction) Chứng cũng duyc lt header va uMu that
gian sửa đổi (ast-modifv) để xác định đọ[] cạ[Ip nhạ[It của trang web ViẹLc
kiểm tra các lỗi và ngoại lei | lả rất quan trọng trong quá trình tải trang web do
chúng ta sé phải liên hẹ_] tới hàng triệL]u server ở xa bằng củng mọLt đoạn mã
1eLinh Thêm vào đó, vieLle thu thại Ip các thông kê về thời gian timeout và các
mã trạng thái cũng rất hữu ích trong viec xác định các vẫn để nây sinh hoạEc
để thay đổi tự đọIIng gid tri timeout C4c ngén ngữ lại]p trình hieLIn đại nhuL]
Java hoạ c Perl cung cấp các coLl ché doOn giản cùng nhiều giao die[In lạLIp
trình để tải các trang web Tuy nhiên, ta cũng cần phải cẵn thạ[In trong vieLlc sử
đụng các giao điẹ[ In bạ[ Ìe cao do có thể sẽ khó tìm ra các lỗu ở bại le thấp
18
Trang 30Chúng 1a không thể kết thúc viefTe nói về quá trình crawling ma không đề
cạLlp tới giao thức loại trừ robot - Robot Exclusion Protocol Giao thức này
cung cấp mọi + co[1 chế cho các nha quản trị web server để thông bảo về các
quyền truy nhạLIp file trên server, đạLlc biẹLlt là để chỉ định các file không
đuHợc truy cạp bởi mọ-]L crawler Điều nảy đuLJợc thực hic[In bằng cách
luHu mọLTIt Ble cô tên rebots.txt duLiới thu[] mục chủ của web server (chẳng
han http:/Awww.biz-uiowa.cdw/robots txt), File nay cung cấp các chính sách truy
caDp cdc cho User-agents khac nhau (rubols hoaDe crawler) MoDt gid in
Lser- agent '*' biểu điễn mọi It chính sách mại le định cho bất kỳ crawler nao không khớp (match) các giá tn User-agent khac trong lile Mọi số các dầu vào
bị cắm Disallow duLlgc dé ra cho moLit User-agent Bat ky URL nado bắt đầu
với giá trị tru lòng đỉsallow đuợc đạ[It sẽ không đu-lợc truy xuất bởi các
crawler ứng với các giá trị User-agent đã chỉ định Khi mot crawler muốn lay
ra mo Ct trang web tir web server, dầu tiên nó phải nạp {ile robots.txt va dam bảo
ring URL cần nạp là không bị cắm Các thông tin chỉ tiết về giao thức loại trừ
nay có thể tìm thấy ở hfp⁄/www robotstxtorp/we/norobotshtml Viẹ le lu[lu cache các chính sách truy nhạCp của mọE1 số server đu[lợu truy nhaDp gin đây là khá hiel lu quả Điều này cho phép tránh phải truy nhal Ip mol It file
Tobots.bet mỗi khi cần nạp mọ_lt RL Tuy nhiên, ta cần phải đầm bảo ring các thông tin trong cache 14 đủ cạLlp nhạ —t
Tisallow: /cgi-bin/ | ngoại rừ hai thư myc để cập ở đây
Disallow: /tmp/
Uscr-agent: BadBot | Máy tìm kiểm BadBot không dược phép thăm bất cứ
Disallow: / thư mục náo
User-agent: BadBot | Riéng may tim kiém BadBot không được phép thăm bat
Disallow: / ow th muc nao cén tit cA cdc may tim kiểm còn lại đều
Disallow: /private/ | private
3.14 Duyệt và phân tích nội dưng
Sau khi trang web dã duMge tãi về, chúng ta cần duye "]L nọ[lí dụng của
nó để lấy ra các thông tin sẽ đuLlợc nạp trở lại và giúp định huLlớng viẹLle đi
theo cae dul léng din tiếp theo ca crawler Viel Ic duyel It nol li dung có thể
doDn gidn chỉ bao hàm viẹLc trích ra các LIRL/liên kết má trang web liên kết tới hay nó có thể bao hàm các xử lý phức tap nhu_ làm sạch các nọ_ lí dung
TTTML để phân tích câu trúc cây của các thẻ Viẹ[le đuyẹ[t có thé bao gồm các
19
Trang 31buHớ để chuẩn héa cac URL du Oye lay ra, loai bé cae tir dimg khdi ne Di dung
trang web v.v Các thành phần của boL! duyeLit duLloc m6 ta o phần sau,
BoO duyefit HTML đã đu[lợc xây dụng sẵn trong rat nhiều ngôn ngữ
Chứng cung cắp các tính naLlng dễ dễ dàng xác định các thế HTML và liên kết
gid tri cde cap thuọ[c tinh trong moLt vaOn ban HTML cho truDéc Dé liy
ra dullge cdc URI hyperlink tér moMt trang web, ta cd thé sit dung cic boll
duyeLt ở trên đề tìm các thé anchor và lấy ra các giá trị của thug Je tinh href tuLloLing ứng Tuy nhiên, chúng ta cần chuyén ede URL tuLloLing đôi sang các
địa chỉ URL tuyẹLIt đối sử dung URL coL] sở của trang web noLli chúng đuLiợc
trích ra
Các URI, khác nhau tu lo Ing ứng với cùng mọi It trang web có thể dui lợc ánh
xạ vào mọi dang chuẩn doOn nhất Điều này rất quan trọng nhằm tránh đu[lợc
Vie_c nạp củng mọLlt trang web nhiều lần Sau đây là các buLlởc đuLiợc sử
dụng trong các hàm chuẩn hỏa thông dụng:
- Chuyển giao thức và tên máy chủ sang dạng chữ (huờng Vi du
HTTTP://www UIOWA.edu đui lợc chuyển thanh http:/Avww.uiowa.edu
- |.aai bé phan anchor hoal lc reference cia URI 10 do:
http://spiders.uiowa.edu/fag.htm# duLigc thu gon thanh
http://spiders uiowa.edw/fag htm
- Thuc hie[Tn viẹ[le mã hóa URI, bằng các kỷ tự thông dụng nhu[ '~' Điều
http:⁄dollar.biz.uiowa cdu/47EpanU/
- Đổi với mọ[It số URI, thêm vào dấu ‘” http://dollar biz.uiowa.cdu va
http //dollar biz uiowa edu/ phai củng ánh xa vào cùng mọi ]t dang chudn Viele thêm vào dấu *? hay không trong nhiều truLJòng hợp đôi hỏi kinh nghìo -Im
- Str dung các kinh nghiel Im dễ nhại In ra các trang web mạ lo dịnh Các tên file nhuÏ[] mdex.html hay index.htm có thể bị loại khối URI, bởi chúng vẫn du[lợc
cơi là các file mạ[1c định Nếu điểu này là ding, chúng có thể du[lợc lấy ra
bing cach chi sur dung URL col sé
- Loai bé ky tu *.’ va thul | muc cha khdi dal long din URI 10 dé, dia chi
URL /%7ecpanBizintel/Sceds/ /ODPSeeds.dat duOge doCn gian hóa thành
20
Trang 32- Để lại các số higLlu cống trong các LIRL ngoại trừ đó là cổng 80 Mọ[IL cách
khác lả để lại các số hieLlu cỗng trong URL và thêm cổng 80 néu sé hieLlu công
không du ợc chỉ định
3.24.2 Loại bồ
Khi duycLIL mọFL trang web dễ trích ra các thông tin nọ[Hi đụng hoạEc
để tính điểm các URL mả trang đó trỏ tới, thông thu[lờng ta nên loại bô các từ
đuÏ lợc dùng thu[lởng xuyén hay tit dime (stopwords) nul ‘it’ hay ‘can’ trong
Tiếng Anh Tiến trình xử lý vie[le loại bỏ các từ đừng khỏi va[In bản đuLlợc gọi là stoplisting Ngoài vieLlc xử lý các từ dừng, ta cũng cần lẫy ra từ gốc của các từ có trong va[In bản Quá trình stemrming chuẩn hóa các từ bằng cách đúc kết các hình thải của các từ thành mọ[It từ ở dang géc hay stem Ví dụ: từ
connocl, connected hay connoction đều đu[lợc đu[la về dạng conneotL
từ dừng và chuyển các dạng thức của từ sang dạng gốc
3.2443 Xây dựng các thẻ HTML
Các chuLoEng trình crawler có thể đánh giá giá trị của mọt URL
hoạ[lc mọ[Tt tử trong nọLli dung trang web bằng cách xem xét ngữ cảnh của các
thế HTML mà nó thuọ[1c vào Để làm đuCợc điều này, mọ[TL crawlcr cần sử
đụng cây các thể hoạL]c cầu trúc DƠM của trang IITML Ilinh 2-2 chỉ ra câu
tm) > duQgc liy làm gốc của cây các thẻ khác và text tạo thành các nút của cây Dáng
trúc cây của các thể tu[ o[ nạ ứng với va[In bản HTMI, nguồn Thử
tiếc là, rất nhiều trang web có cấu trúc HTMI không chuẩn Vỉ dụ, mọi It thẻ bắt
đầu có thể không có thẻ đóng, hoaLlc các thê không đuLlợc lồng nhau mọLlt
cách hợp lý Irong nhiều truLlờng hợp, thể <html> hoạLlc <body> đều bị thiếu
trong trang IITML Do đó các tiêu chuẩn dựa trên cầu trae (structure-based
criteria) thu lòng cần cé moLit bulléc tiền xử ly đề chuẩn hóa mọ[it va[In bản
HTML có cấu trúc không chuẩn, quả trình xử lý này gọi lá lim sach (lidying)
các trang HTML Nó bao gồm câ viẹL c chèn thêm các thế bị thiêu và sắp xếp
lại thử tự các thể trong trang Vie[1e làm sạch mọi t trang HTML là cần thiết để
ảnh xạ nọ[li dung của trang vào trong mọ[It cấu trúc cây để đảm bảo tính toàn
vẹn, mỗi nút có rnọl It cha duy nhất, từ đó phân tích nên câu trúc cây của các thể
Chú ý rằng vieLIc phân tích cdu trac DOM chi can thiết nếu crawler theo chủ
điểm có ý định sử dụng câu trúc của trang HTMIL cho những phần tích phúc tạp,
Còn nếu œrawler chỉ cần các liên kết trong mọE t trang, các từ khóa vả vị trí xuất
hiẹ—n của chúng trong trang web thì chi cân sử dụng các bọLI đuyẹLIt HTML
thông thu[ờng Các bạ[T đuycLt nảy rất sẵn trong nhiều ngôn ngữ lạLTp trình.
Trang 33<li> <a href="blink.html'>LAMP</a> Linkage analysis with multiple processors </li>
‘<li> <a href="nice.html">NICE</a> The network infrastructure for combinatorial exploration </li>
<li> <a href="amass.himl">AMASS</a> A DNA sequence assembly algorithm </li>
<li> <a href="dali.htmI">DALI</a> A distributed, adaptive, first-order logic theorem praver.</li>
<ul>
</body>
<hmk-
Hình 2-2 Trang HTML và cấu trúc cây của hệ thống tương ứng
Thần đầu của chương nảy giới thiệu cẩu trúc cơ bản của một Wcb
Crawler Tiếp theo, tôi sẽ giới thiệu hai hệ thống thu thập dữ liệu được trình bày trong các bài báo khoa học và một hệ thống đã dược triển khai trên thực tế
2.2 TIệ thống thu thập dữ Hiệu Mercator
Vào năm 1999 hai tác giả Allan Ileydon và Mare Najork đã đề xuất một
kiến trúc cho hệ thông thu thập dữ liệu Web có khả năng mớ rộng trong bai báo
co tén "Mercator - A Scalable, Extensible Web Crawler" Trong bai bao nay, hai
tác giả đưa ra một số thành phần yêu cầu cẩn có đối với hệ thống thu thập đữ
liệu Web có khá năng mở rộng, dó là
- Thành phần được gọi lã LJ Frontier cho vide lau tri danh sách các LJRI cần
đownload
- Thành phần cho việc giải quyết tên miền và địa chỉ IP
- 'Thành phần cho việc download trang sử dụng giao thức HIP
- 'Thành phần cho việc trích rút liên kết từ tài liệu HTML
- Thanh phần cho việc kiém tra URI nảo đó đã dược viếng thăm hay chưa
2
Trang 34người dùng, và được load động khi hệ thống bắt đầu tiến trình duyệt dữ liêu
Cấu hình mặc định bao gồm các giao thức: HTTP, ETP, Gopher Dựa vào câu trúc URL, hệ thống sẽ lựa chọn giao thức thích hợp cho việc download Sau đó
nó sử dụng chức năng fetch trong "Protocol Modules" để download trang từ
Internet (2) và ghi dữ liệu download được vào trong R1S
(3) sử dụng "Content Seen" để kiểm tra nôi dung trang (gắn với URL khác) đã
được viếng thăm trước đó hay chưa (4)
Nếu đã được viếng thăm, hệ thống sẽ không xử lý thêm nữa, đồng thời xoá URL
khoi Frontier Dua vao MIME type trong trang download duoc, cac module
thích hợp sẽ được chọn để xử lý tiếp theo (5)
Vi du, "Link Extractor" va "Tag Counter" str dung cho MIME text/html, va GIF
Stats xử lý các trang có MIME 1a image/gif Voi MIME 1a text/html hé théng sé trích rút tất cả các liên kết bên trong nó, mỗi liên kết được chuyển đổi thành
URL đầy da, qua "URL Filter" để kiểm tra (6)
Cac URL sau khi qua "URL Filter" sé duoc "URL Seen" (7) kiém tra xem URL
da duge viéng thăm hay chưa, hoặc URL có nam trong Frontier hay khong Néu
không sé bd xung URL mdi vio Frontier (8)
Thông tin trên cũng là cơ sở lý thuyết cho việc xây dựng hệ thống khảo duyệt 'web của tôi được trình bảy trong luận văn này
23
Trang 352.3 TIệ thống thu thập đữ liệu ta Twitter - TwitterEcho
Các dịch vụ truyền thông đa phương tiện xã hội (social media) đã nỗi lên
trong vài thập kỹ gần đây, thay đỗi cách mà chúng ta thông tỉn với nhau l3o đó,
chúng trở thành đối tương nghiên cứu trong một vài lĩnh vực bao gồm thu thập
thông tin, phân tích mạng xã hội Việc thu thập đỡ liêu cho địch vụ nảy thường
là vẫn dề phức tạp vì các địch vụ thường không kết nếi trực tiếp tới nơi mà dữ
liệu dó dược sinh ra, thậm chí cho mục dích nghiễn cứu Do dó, những nhà
nghiên cứu cân xây dựng hệ thống cho việc thu thập dữ liệu đó hoặc là sử dụng
các API được cung cấp bởi mạng xã hội, hoặc là thu thập dữ liệu thông qua Web
Crawler
Đặc biệt mạng xã hội 1witer chứa dựng nguồn thông tin cho việc nghiên cửu, từ việc phân tích tương tác của người sử dụng, phân tích việc sử dựng hashlag, và tich dẫn ƯRI., phân tích nội dung cụ thể nào đó (ví dụ: phần tích sự lan truyền của dịch cúm, điều tra số lượng người nước ngoài nới tiếng Bồ
Bao Nha)
'Yêu cầu kỹ thuật trong TwitterEcho:
- Tôn trong gidi han (Adhering to limitations)
- Van hanh lién tuc (Continuous Operation)
- Khá năng mở rông thời gian thực (Run-time expandahility)
- Đẩy đủ đữ liệu (Data completeness)
- Tha thir 18i (Fault tolerance)
- Module hoa (Modularity)
Hình 2-4 dưới đây mô tả kiển trúc phân tán tập trung của TwitterEcho
của ba Lác giá Masko Bosnjak, Eduardo Oliveira, Jose Martins
24
Trang 36Deleted / Suspended
Hình 2-4 Kiến trúc của TwitterEcho
~ "Client": bằng việc sử dụng nhiều Client, chúng ta có thể tạo được hệ thông
mở rộng đề tăng lượng request toi Twitter API
~ "§erver": nhiệm vụ chính của Server là: (1) điều phối quá trình thu thập dữ liệu
thông qua việc cấp phát dánh sách các người dùng tới Client, và (2) lưu trữ dữ
liệu đã được download
2.4 Tìm hiểu về công cụ HTTrack
HTTrack là một công cu miễn phí cho phép bạn download World Wide
'Web từ Internet tới thư mục nằm trên máy tính của bạn HTTrack sắp xếp cấu
trúc liên kết của site gốc Dưới đây là một vài hình ảnh mô tả giao diện của
HTTrack.
Trang 37Aion Dowriaed web ote()
Wob Addrazees: (URL) eee
scmeweb com“eoa¥
I
ee Proterences end minor optons SOR
Hình 2-Š Kéo thả một vài địa chỉ web
Hình 2-6 mô tả giao diện cấu hình HTTrack
Browser ID | Log Index Cache | Expert
Links | Limits Flew Contal | Fiters | Bua | Spiae Proxy
Ni of multiple connections ie 3
TimeOut (s) p j5
T Remove hostllimeout Petiss
T Remove hostiflow
Hinh 2-6 Cau hinh HTTrack
Hình 2-7 mô tả sử dụng bộ filter để lọc các liên kết mà HTTrack cần viếng
thăm
26
Trang 38Browser ID | Log Index Cache | Expert
Links | Limits | Flaw Control Fitts | Build | Spider Proxy
‘You can exlude or accept several URLs ar links, by using wild cards
‘You can use both comma () or space behveen fillers
Example: +*2ip, wer com wwe edu/eqibin/* cgi
Exclude link(s) gt "ipg
awww someweb com/review*l */A*
* preview
Tip you wanttn accept al gif files on web(s) use something like
win samewab com/* git
(o* gtwill accept/torbid ALL gif on ALL sites)
Hình 2-7 Lọc liên kết
Hình 2-8 mô tả giao diện thiết lập lịch để hệ thống tự động kết nối tới các nhà
cung cap dé download
‘Log Window Help
‘You can stat the mir now by pressing the START button,
‘r datine connecton parametors