1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thu thập và lưu trữ thông tin tuyển dụng trên mạng internet

75 49 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 2,39 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thu thập và lưu trữ thông tin tuyển dụng trên mạng internet Thu thập và lưu trữ thông tin tuyển dụng trên mạng internet Thu thập và lưu trữ thông tin tuyển dụng trên mạng internet luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-NGUYỄN THỊ HIỀN

THU THẬP VÀ LƯU TRỮ THÔNG TIN TUYỂN DỤNG

TRÊN MẠNG INTERNET

Chuyên ngành: CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ KHOA HỌC KHOA HỌC VÀ KỸ THUẬT TÍNH TOÁN

NGƯỜI HƯỚNG DẪN KHOA HỌC:

TS NGUYỄN HỮU ĐỨC

Trang 3

LỜI CAM ĐOAN

Tôi, Nguyễn Thị Hiền, xin cam đoan luận án là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Nguyễn Hữu Đức

Các kết quả nêu trong báo cáo luận án là trung thực, không sao chép của bất kỳ công trình nào khác

Hà Nội, ngày tháng năm 2019

HỌC VIÊN

NGUYỄN THỊ HIỀN

Trang 4

LỜI CẢM ƠN

Để hoàn thành luận án này, trước hết tôi xin bày tỏ lòng kính trọng và biết ơn tới TS Nguyễn Hữu Đức, người thầy đã trực tiếp hướng dẫn, giúp đỡ tôi trong quá trình học tập và thực hiện luận án

Tôi xin chân thành cảm ơn các thầy cô của Viện Nghiên cứu quốc tế về Khoa học và Kỹ thuật tính toán, các đồng nghiệp khoa Cơ bản-Kỹ thuật cơ sở, trường Cao đẳng Công nghệ và Kỹ thuật Ô tô đã giúp đỡ, tạo điều kiện để tôi có thể hoàn thành luận án này

Cuối cùng tôi xin cảm ơn gia đình và những người bạn vì sự động viên trong suốt thời gian thực hiện luận văn

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

DANH MỤC BẢNG v

DANH MỤC HÌNH VẼ, BIỂU ĐỒ vi

MỞ ĐẦU 1

CHƯƠNG 1: SỬ DỤNG INTERNET ĐỂ THU THẬP VÀ LƯU TRỮ THÔNG TIN TUYỂN DỤNG 3

1.1 Thông tin và thu thập thông tin 3

1.2 Thông tin tuyển dụng 3

1.3 Kiến trúc hệ thống Crawling và các thuật toán 6

1.3.1 Kỹ thuật tiếp cận dữ liệu lớn 6

1.3.2 Kiến trúc tổng quát về một crawling system 6

1.3.3 Các yêu cầu của một hệ thống crawling 17

1.3.4 Các chiến lược trong các hệ thống Crawling 20

1.3.5 Các thuật toán crawling 25

1.4 Các công cụ crawling hiện nay 33

1.4.1 Nutch Apache 33

1.4.2 Newspaper 34

1.4.3 Event Registry 34

1.4.4 SearchBlox 34

1.4.5 Scrapy 34

Kết luận chương 1: 35

CHƯƠNG 2: XÂY DỰNG HỆ THỐNG THU THẬP VÀ LƯU TRỮ THÔNG TIN TUYỂN DỤNG TRÊN INTERNET 36

2.1 Xác định mục tiêu 36

Trang 6

2.2 Các công cụ trong giải quyết yêu cầu trong mục tiêu 36

2.2.1 Công cụ scrapy [22] 37

2.2.2 XPATH [22] 43

2.2.3 D3.js 45

2.3 Phân tích yêu cầu 46

2.4 Thiết kế hệ thống 47

2.4.1 Kiến trúc hệ thống 47

2.4.2 Cơ sở dữ liệu cho chứa tệp 48

2.4.3 Thiết kế chi tiết 49

Kết luận chương 2 54

CHƯƠNG 3: MÔ PHỎNG THỰC NGHIỆM CHƯƠNG TRÌNH 55

3.1 Môi trường cài đặt và công cụ lập trình 55

3.2 Demo chương trình 57

3.3 Đánh giá với sự thay đổi tham số tùy chỉnh 60

3.3.1 Thay đổi với sự thay đổi tham số tùy chỉnh CONCURRENT_REQUEST 60

3.3.2 Thay đổi tham số Download_Delay 61

Kết luận chương 3 62

CHƯƠNG 4: KẾT LUẬN VÀ PHƯƠNG HƯỚNG NGHIÊN CỨU, PHÁT TRIỂN 63

4.1 Kết luận 63

4.2 Các mục tiêu đã và chưa đạt được 63

4.3 Nghiên cứu trong tương lai 64

TÀI LIỆU THAM KHẢO 65

Trang 7

DANH MỤC BẢNG

Bảng 1.1 Kết cấu bản tin tuyển dụng 3

Bảng 1.2 So sánh các công cụ crawling điển hình hiện nay 33

Bảng 2.1 Thử nghiệm thay đổi tham số 42

Bảng 2.2 Thuộc tính Xpath selector 44

Bảng 2.3 Bảng các cột dữ liệu chính 48

Bảng 3.1 Thử nghiệm ảnh hưởng của tham số CONCURRENT_REQUEST 60

Bảng 3.2 Thử nghiệm ảnh hưởng của tham số DOWNLOAD-DELAY 61

Trang 8

DANH MỤC HÌNH VẼ, BIỂU ĐỒ

Hình 1.1 Mô hình khung dữ liệu lớn [1] 6

Hình 1.2 Các mô hình điện toán dữ liệu lớn [1] 7

Hình 1.3 Biểu đồ Flowchart của một Crawler điển hình [7] 8

Hình 1.4 Mô hình Crawler của Google thời kỳ đầu [23] 9

Hình 1.5 Các luồng của crawler kết nối với frontier [7] 10

Hình 1.6 Các Thẻ HTML và cây thẻ tương ứng [7] 15

Hình 1.7 Mô hình Multi-threading Crawler [7] 16

Hình 1.8 Đặc điểm của hệ thống thu thập dữ liệu web [8] 18

Hình 1.9 Kiến trúc tuần hoàn cho các công cụ tìm kiếm [7] 19

Hình 1.10 Các con số hiển thị đường dẫn của Breath -First Crawling [7] 20

Hình 1.11 Các số hiển thị đường dẫn của Thu thập thông tin đầu tiên [7] 21

Hình 1.12 Thu thập dữ liệu lặp đi lặp lại [7] 22

Hình 1.13 Nguyên mẫu mô hình Hiwe [5] 24

Hình 1.14 Các liên kết ngoài trỏ đến trang web khác [3] 25

Hình 1.15 Crawler với chiến lược ngữ cảnh tập trung [7] 31

Hình 2.1 Kiến trúc tổng thể của scrapy [22] 37

Hình 2.2 Luật Little, hệ thống xếp hàng và đường ống [22] 39

Hình 2.3 Cấu hình và các thành phần ảnh hưởng đến hiệu năng của Scrapy [22] 40

Hình 2.4 Mô hình hiệu năng tiêu chuẩn của Scrapy [22] 41

Hình 2.5 Thành phần hệ thống D3.js [4] 46

Hình 2.6 Lược đồ Use Case 47

Hình 2.7 Kiến trúc hệ thống 48

Hình 2.8 Các loại biểu đồ trong Module hiển thị 53

Hình 3.1 Các tệp trong dự án thử nghiệm 55

Hình 3.2 Dữ liệu thu được sau khi crawl 58

Hình 3.3 Giao diện ban đầu trong thử nghiệm 58

Hình 3.4 Dropdown-Box lựa chọn các ngành trong lĩnh vực cần khảo sát 59

Trang 9

Hình 3.5 Hiển thị phân tích về các khu vực được tuyển dụng (Đà Nẵng, Hà Nội…) và lĩnh vực tuyển dụng (công ty sản phẩm hay dịch vụ) 59

Hình 3.6 Số năm kinh nghiệm cho yêu cầu tuyển dụng kỹ năng Linux 60

Biểu đồ 3.1 Kết quả Ảnh hưởng của tham số CONCURRENT_REQUEST đối với hiệu năng Scrapy 61

Biểu đồ 3.2 Kết quả ảnh hưởng của tham số DOWNLOAD_DELAY 62

Trang 10

MỞ ĐẦU

Trong thời đại ngày nay, với sự hỗ trợ rất nhiều từ mạng Internet, các ứng viên có thể tìm hiểu thông tin nhà tuyển dụng rất nhanh chóng, ngược lại phía doanh nghiệp cũng tương tác gần hơn với ứng viên thông qua website tuyển dụng, email, các trang mạng xã hội, … qua đó giúp doanh nghiệp tuyển dụng nhân sự được nhanh chóng, tiết kiệm và hiệu quả Theo khảo sát của JobStreet.com [19], triển vọng thị trường việc làm tại Việt Nam được nhìn nhận khá tích cực từ cả hai phía:Ứng viên (người lao động – 4.50) và Nhà tuyển dụng (4.57), một tín hiệu đầy lạc quan so với các nước trong khu vực Đông Nam Á với mức trung bình từ Ứng viên là 3.46, Nhà tuyển dụng là 3.16 Trong thị trường lao động đang bùng nổ, các ứng viên Việt Nam cho thấy họ chủ động nắm bắt các cơ hội việc làm thông qua các nguồn việc làm trực tuyến Những kênh tìm việc được ưa thích đang chiếm lĩnh trên internet như mạng việc làm, trang mạng tuyển dụng của doanh nghiệp và mạng xã hội với 47% Ứng viên sử dụng (tỷ lệ thấp nhất khu vực, Malaysia đứng đầu với 54%) bên cạnh các phương pháp truyền thống như người quen giới thiệu và các công ty tuyển dụng

Lượng thông tin tuyển dụng và tìm kiếm việc làm trên mạng Internet ngày càng tăng là cơ sở để thu thập và lưu trữ thông tin tuyển dụng trên mạng Internet,

từ đó làm cơ sở để phân tích xu hướng nghề nghiệp dựa trên các thông tin tuyển dụng này

Lượng thông tin về tuyển dụng hiện nay rất lớn, quý giá mà nếu trích xuất thành công, nó sẽ giúp rất nhiều cho việc kinh doanh, nghiên cứu khoa học, dự đoán xác định xu thế tuyển dụng, xu thế việc làm, thực trạng mức lương Chính vì thế, những dữ liệu này phải được thu thập, tổ chức, lưu trữ, tìm kiếm, chia sẻ theo một cách khác so với bình thường

Xuất phát từ nhu cầu này, trong khuôn khổ luận văn thạc sỹ, học viên đề xuất

thực hiện đề tài "Thu thập và lưu trữ thông tin tuyển dụng trên mạng Internet", với

mục tiêu chính là nghiên cứu và thử nghiệm các kỹ thuật thu thập thông tin tuyển

Trang 11

dụng trên mạng Internet, tổ chức lưu trữ chúng nhằm phục vụ các mục đích tìm kiếm và phân tích về sau

Đề tài nghiên cứu, tìm hiểu các nguồn thông tin tuyển dụng trên mạng Internet, các thuật toán thu thập dữ liệu trên Web; Xây dựng công cụ thu thập dữ liệu

từ các nguồn khác nhau; trực quan hóa dữ liệu của các thông tin tuyển dụng này

Đối tượng nghiên cứu của đề tài là các thuật toán crawler và khung Scrapy Phạm vi nghiên cứu: Website tuyển dụng được lựa chọn ở đây là Itviec.com trong thời gian tính đến tháng 3/2019

Trong luận văn, tác giả nghiên cứu lý luận; các yếu tố ảnh hưởng đến hiệu năng của Scrapy Tác giả cũng đã tạo ra một hệ thống thu thập thông tin tuyển dụng

về các công việc về IT sử dụng khung Scrapy Ngoài ra, tác giả đã xây dựng thử nghiệm một website để trình diễn dữ liệu được trích xuất với các chức năng chính như sau:

 Lựa chọn theo kỹ năng xem mức lương mà nhà tuyển dụng đăng tuyển

 Hiển thị phân tích về các khu vực được tuyển dụng theo tỉnh thành

 Lĩnh vực công ty tuyển dụng bao gồm dạng dịch vụ hay làm sản phẩm IT

 Số năm kinh nghiệm cho yêu cầu tuyển dụng kỹ năng được chọn

Nội dung của luận văn được chia làm 4 chương với nội dung như sau:

Chương 1 đưa ra cái nhìn tổng quan về kiến trúc hệ thống, thuật toán và các công cụ thu thập thông tin trên mạng Internet

Chương 2 nghiên cứu công cụ thu thập dữ liệu web Scrapy; thể hiện các bước xây dựng hệ thống thu thập và lưu trữ thông tin trên Internet

Chương 3 đưa ra những kết quả thực nghiệm và trực quan dữ liệu thu được cũng như đánh giá hiệu năng thu thập dữ liệu

Chương 4 kết luận và phương hướng nghiên cứu, phát triển

Trang 12

CHƯƠNG 1: SỬ DỤNG INTERNET ĐỂ THU THẬP VÀ LƯU TRỮ

THÔNG TIN TUYỂN DỤNG 1.1 Thông tin và thu thập thông tin

Thu thập thông tin Internet là việc sử dụng mạng Internet để thu thập thông tin Ngày nay, với sự phát triển mạnh mẽ của Công nghệ thông tin – truyền thông, đặc biệt là sự bùng nổ của mạng Internet, đã tạo ra một kho thông tin khổng lồ Thông tin trên Internet rất đa dạng và phong phú Thu thập thông tin bằng cách sử dụng mạng Internet giúp cho quá trình thu thập thông tin trở nên nhanh hơn, dễ dàng hơn

1.2 Thông tin tuyển dụng

Qua thu thập và khảo sát các thông báo tuyển dụng trên báo các website tuyển dụng như Vietnamworks, JobStreet, ITViec.com… vào tháng 11/2018, có thể

nhận thấy cấu trúc chung của một tin tuyển dụng như sau:

Bảng 1.1 Kết cấu bản tin tuyển dụng

STT Tên tiêu chí Ý nghĩa tiêu chí Ví dụ cụ thể

Tên chủ thể Trình bày tên chủ thể

trong thông báo

"Công ty cổ phần Taxi SASCO tuyển dụng lái xe Taxi"

Lôgô

In Lôgô của chủ thể tuyển dụng trong thông báo

Lôgô của Shell

Hình ảnh

kèm theo

Minh hoạ bằng hình ảnh trong thông báo tuyển dụng

Hình ảnh ô tô trong thông báo tuyển lái xe Taxi

Yêu cầu giới Giới tính cần cho vị trí

tương ứng "Nam", "Nữ", "Nam/Nữ"

Yêu cầu tuổi Tuổi cần tuyển cho vị

trí tương ứng "Tuổi từ 35 trở xuống"

Chuyên

ngành

Chuyên ngành cần tuyển cho vị trí tương ứng

"Tốt nghệp cao đẳng trở lên ngành điện cơ, cơ khí, điện lạnh" Trình độ của ứng viên

Trang 13

STT Tên tiêu chí Ý nghĩa tiêu chí Ví dụ cụ thể

Loại bằng Yêu cầu xếp loại tốt

nghiệp

"Tốt nghiệp từ hạng trung bình - khá trở lên"

Ngoại ngữ Yêu cầu trình độ ngoại

ngữ "Biết Anh ngữ"

Tin học Yêu cầu trình độ tin

học

"Sử dụng thành thạo các phần mềm Corel, photoshop"

Kinh nghiệm Yêu cầu kinh ngiệm

"ưu tiên cho ứng viên đã từng làm cho công ty Nhật"

"Có kinh nghiệm về các bản vẽ chuyên ngành cơ điện lạnh, nước, kiến trúc ít nhất 3 năm"

Kỹ năng Yêu cầu kỹ năng

"Communication, analytical and training skills", “Ability to work

in a multicultural team”

“Biết đo đạc”

Phẩm chất Yêu cầu phẩm chất

"Đạo đức nghề nghiệp", "thật thà, trung thực", "có tinh thần trách nhiệm"…

Ngoại hình Yêu cầu ngoại hình

"Không bị dị tật", "Dễ nhìn"

"Ngoại hình phù hợp với nghề lái

xe taxi"

Sức khỏe Yêu cầu sức khỏe "Sức khỏe tốt"

Hộ khẩu Yêu cầu hộ khẩu "Hộ khẩu thường trú tại thành phố

Hồ Chí Minh"

Hồ sơ Yêu cầu và chỉ dẫn hồ

"Tải đơn xin việc từ trang web…"

"Hồ sơ (không cần công chứng):

- Đơn dự tuyển (viết tay), yêu cầu nêu rõ vị trí dự tuyển, tóm tắt quá trình làm việc, kỹ năng kinh nghiệm và mức lương đề nghị…" Phương tiện Yêu cầu phương tiện "Có xe gắn máy riêng"

Số lượng

tuyển

Số lượng cần tuyển cho 1 vị trí đăng thông báo

"Phiên dịch tiếng Hoa: 10 người"

Vị trí tuyển

Tên, chức danh mà chủ thể tuyển dụng dùng

Coi là vị trí quản lý khi: chủ thể tuyển dụng gọi là chức danh quản lý, tên các chức danh có từ "quản lý", hoặc có chứa từ chỉ

"Nhân viên thiết kế mẫu"

"Kỹ sư xưởng"

"Giám sát bán hàng (Account Manager)"

"Giám đốc điều hành"

Trang 14

STT Tên tiêu chí Ý nghĩa tiêu chí Ví dụ cụ thể

chức năng của người quản lý

Địa điểm Địa điểm ứng viên sẽ làm việc nếu trúng

tuyển

"Bệnh viện Pháp Việt cần tuyển"

"Nhân viên làm việc tại Bình Dương"

Thời gian

Thời gian trong ngày ứng viên sẽ làm việc khi được nhận

"ca nguyên ngày", "ca nửa ngày"

Mô tả

Mô tả công việc của vị trí mà ứng viên phải đảm nhiệm nếu trúng tuyển

"Vẽ bản vẽ thi công (Shopdrawing) các hệ kỹ thuật cơ điện lạnh, nước, kiến trúc cho các công trình xây dựng"

"Lập kế hoạch thực hiện bản vẽ, triển khai cho các kỹ sư, giám sát, kiểm tra bản vẽ"

Lương Đề cập lương có thể được hưởng

"Lương thoả thuận"

"Mức ăn chia theo ca"

"Lương căn bản 2,269 USD/năm"

Quyền lợi

khác

Hứa hẹn về các quyền lợi khác khi trúng tuyển

"Được hưởng các chế độ BHYT

và BHXH theo luật định; Có các chế độ phúc lợi tốt và môi trường làm việc năng động"

"Có cơ hội phát triển nghề nghiệp tương xứng với trình độ chuyên môn và kinh nghiệm"

"Ngoài lương hàng tháng, được hưởng thêm lương kinh doanh tuỳ theo kết quả công việc thực tế; Được đào tạo"

Trên đây là cấu trúc chung Một số bản tin tuyển dụng có thê thiếu hoặc khác những thông tin ở trên

Trang 15

1.3 Kiến trúc hệ thống Crawling và các thuật toán

1.3.1 Kỹ thuật tiếp cận dữ liệu lớn

Hình 1.1 Mô hình khung dữ liệu lớn [1]

Theo một số nghiên cứu gần đây về việc phân tích dữ liệu qua mạng xã hội như của tác giả Aftab Ahmed Chandio và cộng sự (2015) [1], một mô hình thu thập

và xử lý dữ liệu lớn được đề xuất như Hình 1.1 Một số phương pháp và công cụ hỗ trợ xử lý dữ liệu lớn được phân loại và trình bày như trong Hình 1.2

Như vậy có rất nhiều kỹ thuật trong cách tiếp cận dữ liệu lớn mà tùy từng phương pháp sẽ có những cách tiếp cận khác nhau

1.3.2 Kiến trúc tổng quát về một crawling system

Với nguồn thông tin mở và miễn phí trên Internet, các hệ thống Crawling, hay còn gọi là hệ thống thu thập thông tin tự động từ Internet, đang là công cụ hữu ích cho việc thu thập dữ liệu phục vụ cho các hệ thống Dữ liệu lớn Quy trình thu thập dữ liệu tự động điển hình được mô tả như trong Hình 1.3

Trang 16

Hình 1.2 Các mô hình điện toán dữ liệu lớn [1]

Trang 17

Hình 1.3 Biểu đồ Flowchart của một Crawler điển hình [7]

Quy trình này mô tả hoạt động của một Crawler điển hình Những crawler nhƣ vậy xuất hiện trong các công cụ tìm kiếm nhƣ Bing hay Google Các cỗ máy tìm kiếm này bắt đầu quá trình thu thập và tìm kiếm từ một số trang web “mồi”, sau

đó dò theo các liên kết trên những trang web này để phát hiện những trang cần tìm mới Ví dụ, phiên bản đầu của Google sử dụng mô hình crawler nhƣ đƣợc minh họa trong Hình 1.4

Trang 18

Hình 1.4 Mô hình Crawler của Google thời kỳ đầu [23]

Hoạt động cơ bản của một crawler như sau:

1 Khởi tạo URL hoặc URL đầu tiên;

2 Thêm nó vào danh sách xử lý;

3 Chọn URL từ những trang danh sách cần xử lý;

4 Tìm nạp trang web tương ứng với các URL đó trong danh sách;

5 Phân tích cú pháp trang đã truy xuất để trích xuất các URL của những trang liên kết;

6 Thêm tất cả các liên kết chưa được truy cập vào danh sách URL, tức

là vào danh sách;

7 Một lần nữa bắt đầu với bước 2 và lặp lại cho đến khi danh sách trống

Trang 19

Hoạt động của trình thu thập dữ liệu web cho thấy rằng nó được đệ quy tiếp tục thêm các URL mới hơn vào kho lưu trữ cơ sở dữ liệu của công cụ tìm kiếm Điều này cho thấy chức năng chính của trình thu thập dữ liệu web là thêm liên kết mới vào một tập chờ (frontier) và chọn URL gần đây từ nó để xử lý tiếp sau mỗi bước đệ quy Luồng trình thu thập thông tin cơ bản được hiển thị trong Hình 1.3

Hình 1.5 Các luồng của crawler kết nối với frontier [7]

Frontier có thể được xây dựng như một hàng đợi FIFO (Hình 1.5) URL của những trang web “mồi” được đưa vào đầu hàng đợi URL để thu thập thông tin tiếp theo được lấy từ phần đầu của hàng đợi và các URL mới được thêm vào phần đuôi của hàng đợi Có thể xây dựng hàng đợi này một cách độc lập với các công cụ thu thập hoặc phân tích khác Việc tra cứu sự tồn tại của một URL trong hàng đợi có thể được thực hiện thông qua mảng băm (với URL là khóa) nhằm tăng hiệu quả tìm kiếm Mảng băm phải được giữ đồng bộ với frontier thực tế

Trang 20

Cấu trúc dữ liệu frontier được xây dựng như một hàng đợi ưu tiên Hàng đợi

ưu tiên là một mảng động luôn được sắp xếp theo số điểm ước tính của các URL Ở mỗi bước, URL tốt nhất được chọn từ đầu hàng đợi Khi một trang tương ứng được tìm nạp, các URL được trích xuất từ trang đó và được tính điểm dựa trên một giá trị heuristic Sau đó, chúng được thêm vào frontier theo cách thứ tự của hàng đợi ưu tiên được duy trì Chúng ta có thể tránh các URL trùng lặp ở frontier bằng cách giữ một bảng băm riêng để tra cứu Khi vượt quá kích thước tối đa của frontier (MAX), chỉ các URL MAX tốt nhất được giữ ở frontier

Đôi khi, trình thu thập thông tin có thể gặp “bẫy nhện” (vì một số trang không muốn bị thu thập thông tin) dẫn đến một số lượng lớn các URL khác nhau tham chiếu đến cùng một trang Một cách để giảm bớt vấn đề này là giới hạn số lượng trang mà trình thu thập thông tin truy cập từ một tên miền nhất định Bằng cách này, crawler hạn chế không truy cập cùng một trang Web quá thường xuyên và

do vậy các trang được thu thập thông tin có xu hướng đa dạng hơn

b) Lịch sử thu thập

Lịch sử thu thập thông tin là danh sách các URL được đóng dấu thời gian theo thời điểm chúng được tìm nạp Lịch sử được sử dụng phục vụ cho quá trình phân tích thu thập và đánh giá

Cũng giống như với frontier, chúng ta giả định Lịch sử được xây dựng dưới dạng một cấu trúc dữ liệu trong bộ nhớ Điều này cho phép tra cứu nhanh để kiểm tra xem một trang đã được thu thập thông tin hay chưa Kiểm tra này rất quan trọng

để tránh truy cập lại các trang và cũng để tránh thêm URL của các trang được thu thập thông tin vào frontier có giới hạn kích thước Vì những lý do tương tự, cần kiểm tra URL trước khi thêm chúng vào lịch sử nếu nội dung trang không thay đổi trong lần thu thập tiếp theo

Khi một trang được tìm nạp, nó có thể được lưu trữ / lập chỉ mục cho ứng dụng chính (như công cụ tìm kiếm) Ở dạng đơn giản nhất, kho lưu trữ trang có thể lưu trữ các trang được thu thập thông tin dưới dạng các tệp riêng biệt Trong trường hợp đó, mỗi trang phải ánh xạ tới một tên tệp duy nhất Một cách để làm điều này là

Trang 21

ánh xạ mỗi trang URL thành một chuỗi nhỏ gọn bằng cách sử dụng một số dạng hàm băm với xác suất va chạm thấp (đối với tính duy nhất của tên tệp) Cơ chế này

hỗ trợ việc tìm kiếm nhanh trên các tài liệu đã được lưu trữ

c) Fetching (Tìm nạp)

Để tìm nạp một trang Web, chúng ta cần một máy khách HTTP gửi yêu cầu HTTP tới URL của trang và đọc phản hồi Client cần đặt một ngưỡng hạn chế thời gian chờ (timeout) để đảm bảo không tiêu phí quá nhiều thời gian vào các máy chủ chậm hoặc các trang lớn Trên thực tế, có thể hạn chế dung lượng tải của mỗi trang (10- 20KB đầu tiên) Khi đó client cần phân tích header của trang để nhận biết mã trạng thái và ra quyết định tìm kiếm tiếp Header của trang cũng cung cấp thông tin

về thời gian sửa đổi cuối cùng của trang để xác định tuổi của tài liệu Kiểm tra lỗi

và xử lý ngoại lệ rất quan trọng trong quá trình tìm nạp trang vì chúng ta cần xử lý rất nhiều máy chủ từ xa với cùng một client Ngoài ra, số liệu thống kê về thời gian chờ và mã trạng thái cũng có thể có ích cho việc xác định sự cố hoặc cập nhật thay đổi cho nhãn thời gian của URL Các ngôn ngữ lập trình hiện đại như Java và Perl thường cung cấp sẵn các giao diện lập trình và thư viện để tìm nạp các trang từ Web Tuy nhiên, cần thận trong việc sử dụng các giao diện cấp cao, vì chúng thường dẫn đế việc khó phát hiện các vấn đề ở cấp độ thấp hơn Ví dụ, với Java, người ta có thể muốn sử dụng lớp java.net.Socket để gửi các yêu cầu HTTP thay vì

sử dụng lớp java.net.HttpURLConnection dễ đọc hơn

Việc thu thập dữ liệu từ các trang web từ Web cũng cần lưu ý tới kỹ thuật robot Giao thức robot cung cấp một cơ chế cho các quản trị viên máy chủ Web thể hiện chính sách truy cập tệp của họ; cụ thể hơn để xác định các tệp có thể không được truy cập bởi trình thu thập thông tin

Kỹ thuật này thực hiện bằng cách tạo một tệp có tên robot.txt trong thư mục gốc của máy chủ Web (chẳng hạn như http://www.abc.edu/robots.txt) Tệp này cung cấp chính sách truy cập cho các người dùng khác nhau (rô bốt hoặc trình thu thập thông tin) Giá trị „*‟ biểu thị chính sách mặc định cho bất kỳ trình thu thập thông tin nào không khớp với các người dùng được định nghĩa trong tệp Khi trình

Trang 22

thu thập thông tin muốn truy xuất một trang từ máy chủ Web, trước tiên, nó phải tìm nạp tệp robot.txt thích hợp và đảm bảo rằng URL cần tìm nạp không bị vô hiệu hóa Thông tin chi tiết về giao thức loại trừ này có thể được tìm thấy tại [20] Có thể lưu trữ lại các tệp robots.txt của những máy chủ được truy cập gần nhất nhằm hạn chế việc truy cập chúng mỗi lần cần tìm nạp URL

Các URL khác nhau tương ứng với cùng một trang Web có thể được ánh xạ lên một dạng chính tắc duy nhất Điều này rất quan trọng để tránh tìm nạp cùng một trang nhiều lần Dưới đây là một số bước được sử dụng trong quy trình chuẩn hóa URL điển hình:

1 Chuyển đổi giao thức và tên máy chủ thành chữ thường Ví dụ: HTTP: // www.abc.edu được chuyển đổi thành http://www.abc.edu

2 Xóa phần „anchor‟, hoặc "reference" của URL Do đó, http: // abc.edu/faq.html#what được chuyển thành http://abc.edu/faq.html

3 Thực hiện mã hóa URL cho một số ký tự thường được sử dụng, chẳng hạn như “~” Điều này sẽ ngăn trình thu thập thông tin xử lý http://abc.edu/~opt/ như một URL khác với http://abc.edu/%7Eopt /

Trang 23

4 Đối với một số URL, hãy thêm dấu "/" Chẳng hạn http://abc.edu và http://abc.edu/ phải ánh xạ tới cùng một hình thức chính tắc

5 Sử dụng phương pháp phỏng đoán để nhận ra các trang Web mặc định Tên tệp như index.html hoặc index.htm có thể bị xóa khỏi URL với giả định rằng chúng là các tệp mặc định Nếu đó là sự thật, chúng sẽ được truy xuất bằng cách sử dụng URL cơ sở

6 Xóa “ ” và thư mục mẹ của nó khỏi đường dẫn URL Do đó, đường dẫn URL /%7Eopt/lampp/Seed/ /wins.part được chuyển thành /%7Eopt/lampp/wins.part

7 Chuyển lại số cổng trong URL trừ khi đó là cổng 80 hoặc 8080 (mặc định của HTTP) Chẳng hạn như web abc có cổng là 8018 thì nên chuyển tất thành 8018

Điều quan trọng là phải nhất quán trong khi áp dụng các quy tắc chuẩn hóa

Có thể hai quy tắc dường như trái ngược nhau hoạt động tốt như nhau (chẳng hạn như đối với số cổng) miễn là áp dụng chúng một cách nhất quán trên các URL Như

đã lưu ý trước đây, “bẫy nhện” đặt ra một vấn đề nghiêm trọng đối với trình thu thập thông tin Các URL giả được tạo bởi bẫy nhện ngày càng có kích thước lớn hơn Một cách để giải quyết các bẫy như vậy là việc giới hạn kích thước URL, ví dụ: 128 hoặc 256 ký tự

Khi phân tích một trang Web để trích xuất thông tin nội dung hoặc để chấm điểm các URL mới được đề xuất bởi trang, nên xóa các từ hoặc từ khóa thường được sử dụng, chẳng hạn như "it" và "can" Quá trình loại bỏ từ khỏi văn bản được gọi là danh sách dừng Lưu ý một số hệ thống nhận không quá chín từ (“an”, “and”,

“by”, “for”, “from”, “of”, “the”, “to”, and “with”) làm từ dừng Ngoài danh sách dừng, người ta cũng có thể chuẩn hóa các từ được tìm thấy trong trang bằng cách chuyển một số từ tương tự về hình thái với một dạng gốc Ví dụ, “connect”,

“connected” and “connection” sử dụng trong các ngôn ngữ lập trình

Trang 24

Hình 1.6 Các Thẻ HTML và cây thẻ tương ứng [7]

e) Cây HTML

Trình thu thập thông tin có thể xác định một URL hoặc một từ nội dung bằng cách kiểm tra ngữ cảnh thẻ HTML mà nó nằm trong đó Để làm được điều này, một trình thu thập thông tin cần phải sử dụng thẻ cấu trúc cây hoặc DOM của trang HTML Hình 1.6 cho thấy một cây thẻ tương ứng với một nguồn HTML Thẻ

<html> tạo thành gốc của cây và các thẻ và văn bản khác nhau là các nút của cây Tuy nhiên có nhiều trang web chứa nội dung HTML không hoàn chỉnh Ví dụ: có thẻ bắt đầu mà không có thẻ kết thúc (có thể do đặc tả HTML), hoặc các thẻ không được lồng đúng cách Trong nhiều trường hợp, thẻ <html> hoặc thẻ <body> bị thiếu hoàn toàn từ trang HTML Do đó, việc phân tích dựa trên cấu trúc thường yêu cầu bước làm sạch (cleaning) nhằm chuyển đổi một tài liệu HTML không hoàn chỉnh thành một hình thức hoàn chỉnh Bước này có thể bao gồm cả việc chèn các thẻ bị thiếu và sắp xếp lại các thẻ trong trang

Việc làm sạch một trang HTML là cần thiết để ánh xạ nội dung của trang lên cấu trúc cây với tính toàn vẹn, trong đó mỗi nút có một cha/mẹ duy nhất Do đó, đây là bước tiền xử lý thiết yếu để phân tích trang HTML dưới dạng cây thẻ Lưu ý rằng việc phân tích cấu trúc DOM chỉ cần thiết nếu trình thu thập thông tin cục bộ

có ý định sử dụng cấu trúc tài liệu HTML theo một cách không tầm thường nào đó

Ví dụ: nếu trình thu thập thông tin chỉ cần các liên kết trong một trang hay một phần

Trang 25

văn bản trong trang, người ta có thể sử dụng các kỹ thuật phân tích cú pháp HTML đơn giản hơn Thường những trình phân tích cú pháp như vậy cũng có sẵn trong nhiều ngôn ngữ lập trình

Hình 1.7 Mô hình Multi-threading Crawler [7]

f) Multi-thread Crawlers

Một crawler đơn luồng sử dụng một vòng thu thập thông tin tuần tự với lượng lớn thời gian trong đó CPU không hoạt động (trong khi truy cập mạng / đĩa) hoặc giao diện mạng không hoạt động (trong quá trình hoạt động của CPU) Với tiếp cận đa luồng, trong đó mỗi luồng theo một vòng thu thập thông tin, việc thu thập thông tin có thể có tốc độ hợp lý và hiệu quả sử dụng băng thông tốt hơn Hình 1.7 biểu diễn một mô hình thu thập thông tin đa luồng cơ bản Mỗi luồng bắt đầu bằng việc khóa cấu trúc dữ liệu frontier để chọn URL cần xử lý Sau khi chọn được một URL, nó mở khóa cho cấu trúc dữ liệu frontier để cho phép các luồng khác truy cập Frontier lại bị khóa khi URL mới được thêm vào nó Các bước khóa/mở khóa cần thiết để đồng bộ hóa việc sử dụng frontier, đó là cách chia sẻ giữa nhiều vòng lặp thu thập dữ liệu (luồng) Mô hình của trình thu thập dữ liệu đa luồng trong Hình 1.7 tuân theo mô hình tính toán song song tiêu chuẩn Trình thu thập thông tin điển hình cũng duy trì cấu trúc dữ liệu lịch sử được chia sẻ để tìm kiếm nhanh các URL

Trang 26

đã được thu thập Do đó, ngoài frontier, nó cũng cần phải đồng bộ hóa truy cập vào lịch sử

Trong mô hình thu thập dữ liệu đa luồng, có tình huống cần phải xử lý khi frontier trống Nếu một luồng tìm thấy frontier trống, điều đó không có nghĩa là toàn bộ trình thu thập thông tin đã đi đến ngõ cụt Có thể các luồng khác đang tìm nạp các trang và có thể thêm URL mới trong tương lai gần Để sử dụng hiệu quả thời gian thực thi của CPU, có thể đặt luồng vào trạng thái ngủ khi gặp một frontier trống Luồng sẽ được đánh thức khi có URL mới được thêm vào frontier

Khi một luồng được đánh thức, nó sẽ kiểm tra lại URL Một trạng thái global được thiết lập để theo dõi số lượng luồng đang ngủ Chỉ khi tất cả các luồng ở trạng thái ngủ thì quá trình thu thập thông tin mới dừng lại Một số phương pháp tối ưu hóa cũng được áp dụng để giảm sự tranh chấp giữa các luồng và để hợp lý hóa việc truy cập mạng

Những nội dung vừa trình bày là các kỹ thuật cơ bản được áp dụng cho crawler Việc xây dựng một crawler trong thực tế có thể phức tạp hơn với những phương pháp xác định kích thước frontier (phạm vi thu thập), chiến lược phân tích trang, biểu diễn lịch sử trình thu thập thông tin và kho lưu trữ trang,…

1.3.3 Các yêu cầu của một hệ thống crawling

Các yêu cầu đặt ra cho một hệ thống crawling được mô tả như hình 1.8

Trong đó:

Tính mềm dẻo

Như chúng ta biết cấu trúc của một trang web có thể thay đổi và cải thiện thường xuyên Bất kỳ thuật toán thu thập dữ liệu web nào cũng phải được thiết kế mềm dẻo phù hợp với các kịch bản thay đổi của cấu trúc trang

Hiệu năng cao

Việc thu thập dữ liệu cần có hiệu quả chi phí tốt Nó cần làm việc được trên

hệ thống phần cứng có sẵn và có khả năng mở rộng theo nhu cầu về hiệu năng

Trang 27

Hình 1.8 Đặc điểm của hệ thống thu thập dữ liệu web [8]

Khả năng bảo trì và cấu hình

Hệ thống thu thập dữ liệu web phải có giao diện cấu hình phù hợp để có thể theo dõi quá trình thu thập thông tin Giao diện nên chứa các số liệu thống kê như tốc độ tải xuống, những trang nào đã được thu thập thông tin, những trường hợp thu thập thông tin nào đang chạy, kích thước của dữ liệu được lưu trữ, mức độ sâu Giao diện giám sát có thể điều chỉnh tốc độ và chọn tắt các tiến trình trình thu thập

Mềm dẻo

Hiệu năng cao

Ít lỗi

Có thể bảo trì

Có thể cấu hình

Trang 28

thông tin, thêm hoặc xóa các nút hệ thống và cung cấp danh sách đen các tên miền không được phép truy cập, v.v

Trong một hệ thống phân tán lớn như Web, người dùng có thể tìm thấy tài nguyên bằng cách lần theo các liên kết siêu văn bản từ tài liệu này sang tài liệu khác Khi hệ thống nhỏ và các tài nguyên của nó có chung mục đích cơ bản, người dùng có thể dễ dàng tìm thấy các tài nguyên quan tâm Tuy nhiên, với hệ thống Web hiện nay bao gồm hàng triệu trang với nhiều mục đích khác nhau, việc điều hướng là rất khó khăn

Trình thu thập dữ liệu Web trong thiết kế điển hình của các công cụ tìm kiếm

có chức năng tạo ra một tập hợp được lập chỉ mục và tìm kiếm Hầu hết các thiết kế của các công cụ tìm kiếm coi trình thu thập thông tin Web chỉ là giai đoạn đầu tiên trong tìm kiếm Web, với rất ít phản hồi từ các thuật toán xếp hạng đến quá trình thu thập thông tin Đây là một mô hình xếp tầng, trong đó các hoạt động được thực hiện theo thứ tự nghiêm ngặt: đầu tiên là thu thập thông tin, sau đó lập chỉ mục và sau đó tìm kiếm Cách tiếp cận của nhà nghiên cứu là cho phép trình thu thập thông tin quyền truy cập vào tất cả các thông tin về tập hợp để hướng dẫn quy trình thu thập thông tin một cách hiệu quả Vấn đề này có thể được phát triển thêm, vì có các công

cụ có sẵn để xử lý tất cả các tương tác có thể có giữa các mô-đun của công cụ tìm kiếm, như được hiển thị trong Hình 1.9:

Hình 1.9 Kiến trúc tuần hoàn cho các công cụ tìm kiếm [7]

Trang 29

Hình 1.9 cho thấy sự tương tác giữa các thành phần khác nhau của một hệ thống tìm kiếm

1.3.4 Các chiến lược trong các hệ thống Crawling

1.3.4.1 Chiến lược thu thập dữ liệu theo chiều rộng (Breath-First)

Để thu thập thông tin từ Internet, việc thu thập được thực hiện từ một tập hợp các trang Web “mồi”

Chiến lược Breath-First được triển khai bằng cách lần theo các liên kết siêu văn bản để dẫn đến các trang được kết nối trực tiếp với những trang “mồi” ban đầu này Trên thực tế, các trang web không thực sự được duyệt trước và có thể áp dụng các hạn chế khác nhau, ví dụ: Hạn chế quá trình thu thập thông tin vào trong một trang web hoặc tải xuống các trang được coi là thú vị nhất trước tiên

Hình 1.10 Các con số hiển thị đường dẫn của Breath -First Crawling [7]

Thuật toán tìm kiếm Breadth-First thực hiện tìm kiếm duy nhất xung quanh các nút lân cận (siêu liên kết) Nó bắt đầu bằng cách theo nút gốc (Hyperlink) và quét tất cả các nút lân cận ở mức ban đầu Nếu tìm kiếm được mục tiêu cần đạt được thì quá trình quét bị dừng nếu không nó sẽ dẫn đến cấp độ tiếp theo

Các loại thuật toán như vậy phù hợp nhất trong đó các nhánh nhỏ và mục tiêu kết quả là giống hệt nhau Khi các nhánh hoặc cây rất sâu thì thuật toán này sẽ không hoạt động tốt, tức là tất cả các đường dẫn đều dẫn đến cùng một nút kết quả

Trang 30

1.3.4.2 Chiến lược thu thập dữ liệu theo chiều sâu (Depth-First)

Hình 1.11 Các số hiển thị đường dẫn của Thu thập thông tin đầu tiên [7]

Thuật toán tìm kiếm Depth-First bắt đầu tìm kiếm mục tiêu từ nút gốc và di chuyển bên cạnh nút con của nó Nếu có nhiều hơn một nút con, thì hầu hết các nút còn lại được ưu tiên cao nhất và đi qua sâu cho đến khi không còn nút con nào nữa Sau đó, nó bắt đầu từ nút chưa thăm tiếp theo và sau đó tiếp tục theo cách tương tự

Bằng cách sử dụng thuật toán này, việc đảm bảo quét tất cả các nút đạt được nhưng khi số lượng nút con lớn thì thuật toán này sẽ mất nhiều thời gian hơn và có thể đi vào vô hạn

1.3.4.3 Chiến lược lặp lại

Một số trường hợp các trang đã được thu thập thông tin, một số hệ thống yêu cầu quy trình được lặp lại định kỳ để thu thập lại các trang được cập nhật này Điều này có thể đạt được bằng cách cơ bản nhất đó là khởi động trình thu thập thông tin thứ hai song song với cái thứ nhất Một loạt các phương pháp để khắc phục vấn đề này: ví dụ, bằng cách thường xuyên khởi chạy lại quá trình thu thập dữ liệu của các trang, trang web hoặc tên miền được coi là quan trọng đối với người dùng Một chiến lược thu thập thông tin tốt rất quan trọng để duy trì danh sách chỉ mục được cập nhật liên tục để làm sao danh mục các trang luôn được cập nhật

Trang 31

Hình 1.12 Thu thập dữ liệu lặp đi lặp lại [7]

1.3.4.4 Chiến lược CRAWLING có phỏng đoán (HEURISTICS)

Các công cụ tìm kiếm sử dụng quy trình thu thập thông tin (ngẫu nhiên) trên WWW để nhắm mục tiêu một loại trang web nhất định, ví dụ: các trang web về một chủ đề cụ thể hoặc bằng một ngôn ngữ cụ thể, hình ảnh, tệp mp3, vị trí địa lý, tài liệu nghiên cứu khoa học cụ thể hoặc tên miền Ngoài các phương pháp này, các phương pháp tiếp cận chung hơn đã được đề xuất Chúng dựa trên phân tích cấu trúc của các liên kết siêu văn bản và kỹ thuật: mục tiêu ở đây là lấy ra số lượng trang lớn nhất liên quan đến một chủ đề cụ thể bằng cách sử dụng băng thông tối thiểu Hầu hết các nghiên cứu được trích dẫn trong luận văn này không sử dụng trình thu thập thông tin hiệu năng cao, nhưng thành công trong việc tạo ra kết quả chấp nhận được

Mã giả cho thuật toán này như sau:

/*Start with given initial Seed URL as input*/

Adaptive_A_Star_Algo(Initial seed, Graph Size)

/*No of times relevancy has to be updated to get better results*/ b: = log(Graph Size);

Repeat For (b times)

/*Insert Seed URLs into the Frontier*/

Insert_Frontier (Initial seed);

/*Crawling Loop*/

While (Frontier! = Empty)

/*Pick new link from the Frontier*/

Link: =Remove_Frontier (URL);

Trang 32

Webpage: = Fetch (Link);

Repeat For (each child_node of Webpage)

/*Calculate Relevancy Valuetill that Page*/

Rel_val_gn (child_node):= Rel_val(topic, node webpage); /*CalculateRelevancyValuefrom that node till the Goal Page*/ Rel_val_hn (child_node):=

Rel_val(topic,goal webpage)-Rel_val(topic, node webpage); /*Calculate Total Relevancy Value of the Path to the Goal Page*/

Rel_val_fn:= Rel_val_gn+Rel_val_hn;

/*Add new link with Maximum Relevancy Value into Frontier*/ Insert_Frontier (child_node_max, Rel_val_max);

End While Loop

/*After b times, A* Search more efficient on updated graphs*/

A_Star_Algo(seed URL, Graph (G));

1.3.4.5 Chiến lược thu thập dữ liệu theo ngẫu nhiên

Kỹ thuật đi bộ ngẫu nhiên (Random-walk technique) là phương pháp lấy mẫu ngẫu nhiên trong đó số lượng bước giữa trang web mẫu được xác định bằng số ngẫu nhiên, thường được rút ra từ các bảng số ngẫu nhiên và từ mỗi liên kết ngẫu nhiên của trang web mẫu lựa chọn xác định hướng của trang được liên kết tiếp theo Trong đó một vài bộ mẫu được lấy, tốt nhất là bắt đầu mỗi bộ từ cùng một trang web; nếu điều này không thể thực hiện thì phạm vi các số mà từ đó lựa chọn được thực hiện phải cho phép mỗi điểm trong nghiên cứu có cơ hội được lấy mẫu bằng nhau mỗi lần

Một số nghiên cứu đã tập trung vào tác động của các bước đi ngẫu nhiên trên các biểu đồ Web hoặc các phiên bản sửa đổi của các biểu đồ này thông qua lấy mẫu

để ước tính kích thước của các tài liệu trực tuyến

1.3.4.6 Chiến lược Deep web

Rất nhiều dữ liệu chỉ có thể truy cập qua các trang Web bằng cách gửi yêu cầu hoặc gửi biểu mẫu thích hợp Chẳng hạn như khi bấm search "ebook" tại mục

tìm kiếm thì website Vinabook.com mới hiển thị dữ liệu về từ khoá "ebook" Deep

Web là tên được đặt cho Web có chứa loại dữ liệu này

Trang 33

Những crawler thu thập dữ liệu Deep Web cần có biện pháp xử lý đặc biệt Một trong những kiến trúc trình thu thập thông tin Web sâu như vậy được đề xuất bởi Raghavan và Garcia-Molina (2001) [18] Hai thách thức cơ bản liên quan đến tìm kiếm Web sâu, tức là khối lượng của Web ẩn rất lớn và cần một loại trình thu thập thông tin thân thiện với người dùng như vậy có thể xử lý giao diện tìm kiếm một cách hiệu quả Một mô hình của trình thu thập thông tin Web hỗ trợ con người

cụ thể được thiết kế và thực thi trong Hiwe (tiếp xúc với Web ẩn) Nguyên mẫu Hiwe được phát triển tại Stanford như Hình 1.13

Hình 1.13 Nguyên mẫu mô hình Hiwe [5]

Theo tác giả Dilip (2011) [5] kỹ thuật Hiwe được thiết kế để tự động xử lý, phân tích và gửi biểu mẫu, sử dụng mô hình nội bộ của biểu mẫu và gửi biểu mẫu Hiwe sử dụng kỹ thuật trích xuất thông tin dựa trên bố cục (LITE) để xử lý và trích xuất thông tin hữu ích Ưu điểm của kiến trúc Hiwe là cách tiếp cận cụ thể cho ứng dụng / nhiệm vụ của nó cho phép trình thu thập thông tin chỉ tập trung vào các trang

có liên quan và việc điền biểu mẫu tự động có thể được thực hiện với phương pháp

hỗ trợ của con người

1.3.4.7 Thuật toán Page Rank

Thuật toán PageRank được phát triển bởi Lawrence Page và Sergey Brin nhằm tính toán mức độ phổ biến của trang web (web page) hoặc một website Thuật toán PageRank này phụ thuộc vào phân tích liên kết web trong đó chỉ số xếp hạng của một trang web được quyết định dựa trên chỉ số xếp hạng của các liên kết ngoài

và liên kết nội dung

Liên kết trong: Liên kết trong là những liên kết xuất phát từ trang web khác đến trang web được quan tâm Nó còn được gọi là liên kết ngược Google chỉ xem

Trang 34

xét các liên kết có liên quan đến trang web nhưng không thể kiểm soát trang web nào trỏ đến trang web

Liên kết ngoài: Liên kết ngoài là những liên kết đang trỏ đến trang web khác

từ trang web như được mô tả trong Hình 1.14

Hình 1.14 Các liên kết ngoài trỏ đến trang web khác [3]

Một trang có thứ hạng cao nếu các trang khác có thứ hạng cao được liên kết với nó Nó được đưa ra bởi:

PR (A) = (1-d) + d (PR (Ti) / C (Ti) + + PR (Tn) / C (Tn))

• Đặt A là trang và có thứ hạng trang là PR (A)

• Đặt PR (Ti) là Pagerank của các trang Ti liên kết đến trang A,

• C (Ti) là số lượng liên kết ngoài đi ra từ trang Ti và

• d là hệ số giảm xóc được giả định là từ 0 đến 1 thường là 0,85 Đôi khi không nhấp vào bất kỳ liên kết nào và nhảy sang các trang khác một cách ngẫu nhiên Nó theo các liên kết trực tiếp

• (1-d) là xác suất nhảy vào một số trang ngẫu nhiên; mỗi trang có thứ hạng trang tối thiểu là (1-d) Nó theo các liên kết không trực tiếp

Để tính Xếp hạng Trang của bất kỳ Trang nào, chúng ta bắt buộc phải biết Xếp hạng Trang của mỗi trang trỏ đến trang đó và số lượng liên kết ngoài từ mỗi trang đó

1.3.5 Các thuật toán crawling

Có nhiều chiến lược crawling khác nhau Nhiều thuật toán trong số này là biến thể của chiến lược Best-First Search Sự khác biệt là ở các phương pháp phỏng

Trang 35

đốn mà họ sử dụng để chấm điểm các URL khơng được chú ý với một số thuật tốn điều chỉnh và điều chỉnh các tham số của chúng trước hoặc trong khi thu thập

dữ liệu

1.3.5.1 Thuật tốn NAIVE BEST-FIRST

Thuật tốn Nạve Best-First [7] là một trong những thuật tốn chi tiết và được đánh giá cao trong các thuật tốn crawler Trong thuật tốn này, đại diện cho một trang Web được tìm nạp là một vectơ với các từ cĩ trọng số theo tần suất xuất hiện Sau đĩ, trình thu thập thơng tin sẽ tính tốn độ tương tự của trang với truy vấn hoặc mơ tả do người dùng cung cấp và chấm điểm các URL trên trang theo giá trị tương tự này Các URL sau đĩ được thêm vào một biên giới được duy trì như một hàng đợi ưu tiên dựa trên các điểm số này

Trong lần lặp lại tiếp theo, mỗi luồng trình thu thập thơng tin sẽ chọn URL tốt nhất ở biên giới để thu thập thơng tin và trả về với các URL mới được chèn lại trong hàng ưu tiên sau khi được tính điểm dựa trên độ tương tự của trang mẹ Độ tương tự giữa trang p và truy vấn q được tính bằng:

* ( , ) cos( , )

của vectơ đại diện cho các trang

Nếu Sim(p,q) = -1 tức là khác nhau tuyệt đối

Nếu Sim(p,q) = 0 tức là độc lập với nhau

Nếu Sim(p,q) = 1 tức là chính xác tuyệt đối

Nếu 0 < Sim(p,q) < 1 tức là trang p cĩ liên quan đến truy vấn q

Nếu - 1 < Sim(p,q) < 0 tức là trang p khơng cĩ liên quan đến truy vấn q Nếu triển khai trên nhiều luồng, trình thu thập thơng tin hoạt động như một trình thu thập N thơng tin đầu tiên tốt nhất trong đĩ N số lượng các luồng đang chạy đồng thời Best-N-first là phiên bản tổng quát của trình thu thập thơng tin đầu tiên

Trang 36

tốt nhất chọn N URL tốt nhất để thu thập dữ liệu tại một thời điểm Trong nghiên cứu về thuật toán này, kết quả cho thấy thấy sự vượt trội rõ ràng trong việc truy xuất các trang có liên quan Cần lưu ý rằng trình thu thập thông tin đầu tiên tốt nhất giữ kích thước biên giới trong giới hạn trên của nó bằng cách chỉ giữ lại các URL tốt nhất dựa trên điểm tương tự được chỉ định

Mã giả cho cách tiếp cận Best-First như sau

/*Start with given Seed URLs as input*/

A_Star_Algo(Initial seed)

/*Insert Seed URLs into the Frontier*/

Insert_Frontier (Initial seed);

/*Crawling Loop*/

While (Frontier! = Empty)

/*Pick new link from the Frontier*/

Link: = Remove_Frontier (URL);

Webpage: = Fetch (Link);

Repeat For (each child_node of Webpage)

/*Calculate Relevancy Value till that Page*/

Rel_val_gn (child_node):= Rel_val(topic, node webpage); /*Calculate Relevancy Value from that Node till the Goal Page*/

Rel_val_hn (child_node):=Rel_val(topic, goal

webpage)-Rel_val(topic, node webpage);

/*Calculate Total Relevancy Value of the Path to the Goal Page*/

Trang 37

và điểm số được kế thừa từ ảnh hưởng của điểm số tiềm năng của các liên kết Gốc của URL là các trang xuất hiện trên đường dẫn thu thập thông tin đến URL SharkSearch, giống như FishSearch tiền nhiệm, duy trì độ sâu giới hạn Tức là, nếu crawler tìm thấy các trang không quan trọng trên đường dẫn thu thập thông tin, nó

sẽ dừng thu thập thông tin dọc theo đường dẫn đó Để có thể theo dõi tất cả thông tin, mỗi URL ở frontier được liên kết với độ sâu và điểm số tiềm năng Độ sâu giới hạn (d) được cung cấp bởi người dùng trong khi điểm tiềm năng của một URL chưa thăm được tính bởi công thức sau:

Score(url) = y * inherited(url) + (1- y) * neighbourhood(url) (1.2) Trong đó y là một tham số, điểm số lân cận biểu thị bằng chứng theo ngữ cảnh được tìm thấy trên trang có chứa URL siêu liên kết và điểm số được thừa kế được lấy từ điểm số của gốccủa URL Chính xác hơn, điểm số được kế thừa được tính là:

inherited(url)=µ * sim(q,p) if sim(q,p)>0 or

inherited(url)=µ * inherited(p) (1.3) Trong đó, nếu µ lại là một tham số, q là truy vấn và p là trang mà URL được trích xuất Điểm số lân cận sử dụng văn bản neo và văn bản trong vùng lân cận của vùng neo của neo nhằm cố gắng lấy lại điểm tổng thể của URL bằng cách cho phép phân biệt giữa các liên kết được tìm thấy trong cùng một trang Với mục đích đó, trình thu thập thông tin SharkSearch chỉ định điểm neo và điểm ngữ cảnh cho mỗi URL Điểm neo đơn giản là sự giống nhau của văn bản neo của siêu liên kết có chứa URL với truy vấn q, tức là sim (q; văn bản neo) Mặt khác, điểm số bối cảnh

mở rộng bối cảnh của liên kết để bao gồm một số từ gần đó Kết quả bối cảnh tăng cường được sử dụng để tính điểm số bối cảnh như sau:

contex(url) = 1 if anchor(url)>0 or

contex(url) = sim(q,aug_contex) (1.4) Cuối cùng, chúng ta lấy được điểm số lân cận từ điểm neo và điểm bối cảnh như:

Neighbourhood(url) = β * anchor(url) + (1- β) * context(url) (1.5)

Ngày đăng: 13/02/2021, 06:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Aftab Ahmed Chandio (2015), "Big-Data Processing Techniques and Their Challenges in Transport Domain", DOI: 10.3969/j.issn.1673-5188.2015.01.007 Sách, tạp chí
Tiêu đề: Big-Data Processing Techniques and Their Challenges in Transport Domain
Tác giả: Aftab Ahmed Chandio
Năm: 2015
2. A. Arasu, J. Cho, H. Garcia-Molina, A. Paepcke, and S. Raghavan (2011), “Searching the Web”, ACM Transactions on Internet Technology, 1(1) Sách, tạp chí
Tiêu đề: Searching the Web”, "ACM Transactions on Internet Technology
Tác giả: A. Arasu, J. Cho, H. Garcia-Molina, A. Paepcke, and S. Raghavan
Năm: 2011
3. Animesh Tripathy and Prashanta K Patra (2008), “A Web Mining Architectural Model of Distributed Crawler for Internet Searches Using PageRank Algorithm”, Asia-Pacific Services Computing Conference, 978-0-7695-3473- 2/08 © 2008 IEEE, pp. 513-518 Sách, tạp chí
Tiêu đề: A Web Mining Architectural Model of Distributed Crawler for Internet Searches Using PageRank Algorithm”, "Asia-Pacific Services Computing Conference
Tác giả: Animesh Tripathy and Prashanta K Patra
Năm: 2008
4. B. Fry (2008), Visualizing data, Beijing: O'Reilly Media, Inc., 2008 Sách, tạp chí
Tiêu đề: Visualizing data
Tác giả: B. Fry
Năm: 2008
5. Dilip Kumar Sharma, A. K. Sharma (2011), “A novel architecture for deep web crawler”, The Dark Web: Breakthroughs in Research and Practice, pp. 334- 358 Sách, tạp chí
Tiêu đề: A novel architecture for deep web crawler”, "The Dark Web: Breakthroughs in Research and Practice
Tác giả: Dilip Kumar Sharma, A. K. Sharma
Năm: 2011
6. Farha R. Qureshi and Amer Ahmed Khan (2013), “URL Signature with body text normalization in a web crawler”, International Journal of Societal Applications of Computer Science (IJSACS), ISSN 2319 – 8443, vol. 2, issue 3, pp. 309-312 Sách, tạp chí
Tiêu đề: URL Signature with body text normalization in a web crawler”, "International Journal of Societal Applications of Computer Science (IJSACS)
Tác giả: Farha R. Qureshi and Amer Ahmed Khan
Năm: 2013
7. Gautam Pant, Padmini Srinivasan, Filippo Menczer (2004), “Crawling the web”, Web Dynamics, pp. 153-178 Sách, tạp chí
Tiêu đề: Crawling the web”, "Web Dynamics
Tác giả: Gautam Pant, Padmini Srinivasan, Filippo Menczer
Năm: 2004
8. Huang, Q., Li, Q., Li, H., and Yan, Z. (2012), “An approach to incremental deep web crawling based on incremental harvest model”, Procedia Engineering, pp. 1081– 1087 Sách, tạp chí
Tiêu đề: An approach to incremental deep web crawling based on incremental harvest model”, "Procedia Engineering
Tác giả: Huang, Q., Li, Q., Li, H., and Yan, Z
Năm: 2012
9. Jiang, L., Wu, Z., Feng, Q., Liu, J., and Zheng, Q. (2010), “Efficient deep web crawling using reinforcement learning”, In Pacific-Asia Conference on Knowledge Discovery and Data Mining, pp. 428–439 Sách, tạp chí
Tiêu đề: Efficient deep web crawling using reinforcement learning”, "In Pacific-Asia Conference on Knowledge Discovery and Data Mining
Tác giả: Jiang, L., Wu, Z., Feng, Q., Liu, J., and Zheng, Q
Năm: 2010
10. Khare, R., An, Y., and Song, I.-Y. (2010), “Understanding deep web search interfaces: a survey”, ACM SIGMOD Record, 39(1), pp. 33–40 Sách, tạp chí
Tiêu đề: Understanding deep web search interfaces: a survey”," ACM SIGMOD Record
Tác giả: Khare, R., An, Y., and Song, I.-Y
Năm: 2010
11. Keerthi S. Shetty, Swaraj Bhat and Sanjay Singh (2012), “Symbolic Verification of Web Crawler Functionality and Its Properties”, International Sách, tạp chí
Tiêu đề: Symbolic Verification of Web Crawler Functionality and Its Properties”
Tác giả: Keerthi S. Shetty, Swaraj Bhat and Sanjay Singh
Năm: 2012
12. Lay-Ki Soon, Yee-Ern Ku and Sang Ho Lee, “Web Crawler with URL Signature – A Performance Study”, 4th Conference on Data Mining and Optimization (DMO) 978-1-4673-2718- 3/12 ©2012 IEEE, pp. 127-130 Sách, tạp chí
Tiêu đề: Web Crawler with URL Signature – A Performance Study
13. S.S. Dhenakaran1 and K. Thirugnana Sambanthan2 (2011), “WEB CRAWLER - AN OVERVIEW”, International Journal of Computer Science and Communication Vol. 2, No. 1, pp. 265-267 Sách, tạp chí
Tiêu đề: WEB CRAWLER - AN OVERVIEW”, "International Journal of Computer Science and Communication Vol. 2
Tác giả: S.S. Dhenakaran1 and K. Thirugnana Sambanthan2
Năm: 2011
14. Swati Mali, B.B.Meshram (2011), “Focused web crawler with page change detection policy”, International Journal of Computer Applications, pp. 51-57 Sách, tạp chí
Tiêu đề: Focused web crawler with page change detection policy”, "International Journal of Computer Applications
Tác giả: Swati Mali, B.B.Meshram
Năm: 2011

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w