Thách thức đối với các công ty cung cấp dịch vụ thu thập dữ liệu nói chung và công ty Saltlux nói riêng là làm thế nào để kiểm tra hệ thống lấy đƣợc đủ dữ liệu (dữ liệu đƣợc coi là đủ nếu hệ thống lấy đƣợc 80% trên tổng số dữ liệu cần lấy, ví dụ: một website có 1,000,000 trang, hệ thống lấy đƣợc 800,000 đến 1,000,000 trang thì tiêu chí đủ dữ liệu đã đƣợc đáp ứng), và làm thế nào để kiểm tra hệ thống lấy đƣợc đúng dữ liệu (nội dung hệ thống lấy đƣợc đúng với nội dung của nguồn cung cấp).
Trong luận văn này, kết quả đánh giá bám sát vào 2 tiêu chí đƣợc trình bày ở trên: (1) đủ dữ liệu, (2) đúng dữ liệu và so sánh kết quả thu thập đƣợc với các hệ thống thu thập dữ liệu khác nhƣ HTTrack, WebSPHINX.
Hình 4-1 Giao diện website terms.naver.com 4.1. Triển khai
Tôi triển khai hệ thống dựa trên yêu cầu từ hai khách hàng lớn của công ty (Viện nghiên cứu và Bộ quốc phòng Hàn Quốc). Yêu cầu đầu tiên của Viện nghiên cứu Hàn Quốc là lấy dữ liệu của 31 mục trong website http://terms.naver.com/category.nhn, với tổng là 2,259,347 dữ liệu với mục đích làm giàu cơ sở dữ liệu cho máy dịch tự động - một sản phẩm của Viện nghiên cứu. Yêu cầu thứ 2 đến từ Bộ quốc phòng Hàn Quốc là lấy thông tin profile, các tweet, danh sách following, danh sách follower trên mạng xã hội Twitter (mạng xã hội khá phổ biến ở Hàn Quốc) của người dùng (danh sách người dùng cần lấy
Bộ quốc phòng Hàn Quốc, tôi chỉ lấy thông tin 61 người dùng trong danh sách đã đƣợc cung cấp và đánh giá dựa trên thông tin lấy đƣợc dựa trên danh sách người dùng này. Bảng 4-1 liệt kê danh sách 61 người dùng cần lấy thông tin, lƣợng dữ liệu có thực cần thu thập đƣợc thống kê tại thời điểm viết luận văn này.
# Username Profile Tweet Following Follower
1 JosephFerrisIII 1 1,317 368 1,776
2 ComradekimMOVIE 1 0 169 40
3 DPRK_News 1 950 100 38,400
4 dprkfilms 1 248 2 88
5 DTNNorthKorea 1 146,000 80 1,202
6 juchestrong 1 288 263 153
7 NKoreaReports 1 22,500 1,759 17,600
8 NorthKoreaDPRK 1 2,453 0 2,380
9 nkwitness 1 1,517 155 4,328
10 RetroDPRK 1 1,126 627 636
11 koryotours 1 2,547 2,257 4,634
12 airkoryo 1 44 16 33
13 notoriousgonzo 1 23,600 111 194,000
14 KFAEuskalHerria 1 1,265 313 656
15 KFAPaisValencia 1 374 23 262
16 KFAcapituloVE 1 436 62 124
17 KFAEstadoEsp 1 70 13 204
18 treveraritz 1 10,800 113 749
19 CoreaSocialista 1 21 85 129
20 Corea_del_Norte 1 121 7 1,518
21 CineCoreadelNor 1 2,245 14 775
22 DPRK_CAODEBENOS 1 1,539 17 27,000
23 parti_juche 1 1,934 34 3,564
24 PartidoJucheVK 1 492 245 298
25 juche_songun 1 1,903 2,098 1,099
26 juchefrance 1 1,482 10 911
27 Fekerfanta 1 31,500 779 13,200
28 jeet0212 1 16,000 1027 718
29 ishimarujiro 1 12,900 69 9,208
30 kimi_shimizu 1 4,721 1252 350
31 NKoreaNewsJP 1 20,400 120 378
32 dailynkjapan 1 13,600 483 8,129
33 dprkorean_tan 1 2,052 7 234
34 415_216 1 22,300 0 1,122
35 daioosaka0 1 24,300 2,621 2,616
37 raccoon987 1 73,600 1,117 774
38 fabyorian 1 3,137 1,267 917
39 kelog21 1 130,000 215 21,300
40 uriminzok_nihon 1 714 2 60
41 irsaitama 1 140,000 238 749
42 lala_flower010 1 51,800 216 413
43 chousen24 1 259 35 79
44 kevtarobot 1 61,700 2,015 1,705
45 dprk_info 1 18,300 0 733
46 NorthKorea_News 1 15,000 2,932 5,301
47 yasgreen615 1 10,500 811 1,595
48 secretofnkorea 1 64,300 2,101 1,501
49 MusleNerd 1 54 11 5,583
50 YourAnonNews 1 140,000 1,062 1,610,000
51 Anon_value 1 7 12 264
52 AnonNewsC 1 1,359 551 1,119
53 planetbeing 1 1,276 93 191,000
54 GeohotJailbreak 1 3,631 170 61,900
55 pod2g 1 3,314 242 474,000
56 p0sixninja 1 10,000 739 182,000
57 uriminzok 1 17,300 4 18,500
58 qlaser 1 880 646 316
59 notoriousgonzo 1 23,600 111 194,000
60 yeonjae0528 1 3,267 74 250,000
61 Yunaaaa 1 102 12 782,000
Tổng số 61 1,172,045 30,907 4,145,250
Bảng 4-1 Danh sách 61 người dùng Twitter
Với yêu cầu nhƣ trên, tôi triển khai hệ thống thu thập dữ liệu từ Web - Web Crawler để giải quyết yêu cầu thứ nhất của Viên nghiên cứu, và triển khai hệ thống thu thập dữ liệu từ mạng xã hội Twitter - Twitter Crawler để giải quyết yêu cầu thứ hai của Bộ quốc phòng. Trong Twitter Crawler, tôi sử dụng 7 access token để xác sign request trước khi gửi request tới RestAPI, 2 access token sử dụng cho việc lấy thông tin profile đầy đủ của người dùng, 5 access token sử dụng cho lấy các thông tin còn lại.
4.2. Mô hình triển khai
Tôi sử dụng 8 máy chủ để cài đặt hệ thống thu thập dữ liệu Web. Trong đó, 1 máy chủ sử dụng cho việc cài đặt cơ sở dữ liệu PostgreSQL 9.2, Web Crawler Manager, Twitter Crawler Manager, Queue Manager. 2 máy chủ mỗi máy cài đặt 1 Web Crawler Worker và Twitter Crawler Worker. 5 máy chủ còn lại đƣợc sử để cài đặt MongoDB cluster. Bảng 4-2 mô tả mô hình triển khai hệ
# Server Dịch vụ cài đặt
1 Crawler Web Crawler Manager, Twitter Crawler Manager, QueueManager, PostgreSQL, NFS Server, Mongos 2 Crawler Web Crawler Worker, Twitter Crawler Worker, Mongos 3 Crawler Web Crawler Worker, Twitter Crawler Worker, Mongos 4 MongoDB Shard, Config Server
5 MongoDB Shard, Config Server 6 MongoDB Shard, Config Server 7 MongoDB Shard
8 MongoDB Shard
Bảng 4-2 Mô hình triển khai hệ thống 4.3. Phần mềm và thông số máy chủ
4.3.1. Phần mềm - Oracle Java 1.6 - PostgreSQL 9.2 - MongoDB 3.0.5
4.3.2. Cấu hình máy chủ
Bảng 4-3 mô tả chi tiết thông tin cấu hình máy chủ đƣợc sử dụng để triển khai hệ thống.
# CPU Core OS RAM HDD
1 Intel(R) Xeon(R) E3-1280 V2 @ 3.6GHz
8 CentOS Release 6.5
32GB 1.8TB 2 Intel(R) Xeon(R) E3-1280 V2 @
3.6GHz
8 CentOS Release 6.5
32GB 1.8TB 3 Intel(R) Xeon(R) E3-1280 V2 @
3.6GHz
8 CentOS Release 6.5
32GB 1.8TB 4 Intel(R) Xeon(R) E3-1220 @
3.1GHz
4 CentOS Release 6.2
32GB 1.8TB 5 Intel(R) Xeon(R) E3-1220 @
3.1GHz
4 CentOS Release 6.2
32GB 1.8TB 6 Intel(R) Xeon(R) E3-1220 @
3.1GHz
4 CentOS Release 6.2
32GB 1.8TB 7 Intel(R) Xeon(R) E3-1220 @
3.1GHz
4 CentOS Release 6.2
32GB 1.8TB 8 Intel(R) Xeon(R) E3-1220 @
3.1GHz
4 CentOS Release 6.2
32GB 1.8TB Bảng 4-3 Thông số cấu hình máy chủ
4.4. Đánh giá hệ thống
Thực hiện đánh giá hệ thống theo hai yêu cầu của công ty.
Đánh giá dựa trên 2 tiêu chí: đủ dữ liệu, đúng dữ liệu.
4.4.1. Đánh giá hệ thống Web Crawler Đủ dữ liệu:
Thông tin cần đo SL gốc Web Crawler HTTrack WebSPHINX Từ điển 2,259,347 1,972,948 1,971,052 1,972,939
Thống kê 87.32% 87.23% 87.32%
Bảng 4-4 Kết quả đánh giá hệ thống Web Crawler
Hệ thống Web Crawler lấy đƣợc 87% (>80%) đáp ứng tiêu chí đủ dữ liệu.
Kết quả so sánh với hai hệ thống khác là HTTrack và WebSPHINX chênh lệch không đáng kể, nhƣng việc thống kê số lƣợng đƣợc thực hiện trên Web Crawler dễ dàng hơn nhiều (chỉ cần truy vấn trong cơ sở dữ liệu) so với việc thống kê số lƣợng trên HTTrack và WebSPHINX (đếm số file download đƣợc). Phụ lục 2 trình bày phương pháp thống kê file của HTTrack và WebSPHINX.
Đúng dữ liệu:
Phương pháp áp dụng để đánh giá tiêu chí đúng dữ liệu là: tiến hành lấy 50 mẫu, sau đó so sánh nội dung của mẫu với nội dung trên website. Kết quả thu đƣợc các hệ thống thu thập dữ liệu đều lấy đúng nội dung.
4.4.2. Đánh giá hệ thống Twitter Crawler Đủ dữ liệu
Thông tin cần đo SL gốc Twitter Crawler
HTTrack WebSPHINX
Profile 61 61 61 61
Tweet 1,172,045 134,413 1220 1220
Following 30,907 32,099 0 0
Follower 4,145,250 4,175,747 0 0
Bảng 4-5 So sánh kết quả với HTTrack và WebSPHINX
Thống kê cho thấy hệ thống Twitter Crawler cho kết quả vƣợt trội so với hai hệ thống HTTrack và WebSPHINX khi thực hiện thu thập tweet, following, và follower. So sánh số lƣợng hệ thống Twitter Crawler thu đƣợc với số liệu thực có ta có kết quả nhƣ sau:
Thông tin cần đo SL gốc Twitter Crawler
Thống kê Kết luận
Profile 61 61 100% Đủ
Tweet 1,172,045 134,413 11.47% Không đủ
Following 30,907 32,099 103.86% Đủ
Follower 4,145,250 4,175,747 100.73% Đủ
Bảng 4-6 Kết quả đánh giá hệ thống Twitter Crawler
Kết quả thống kê cho thấy số lƣợng tweet lấy đƣợc thấp hơn so với thực tế do API giới hạn chỉ trả về 3,200 tweet gần nhất. Số lƣợng following và follower lớn hơn so với thực tế do hệ thống chƣa cài đặt tính năng xoá following và follower khi một người dùng nào đó huỷ bỏ follow.
Đúng dữ liệu:
Cách kiểm tra tiến hành nhƣ đối với hệ thống Web Crawler, kết quả thu đƣợc các hệ thống thu thập dữ liệu đều lấy đúng dữ liệu, tuy nhiên hệ thống Twitter Crawler cho dữ liệu đầy đủ hơn.
4.4.3. Một số giao diện sau khi chạy hệ thống
Hình 4-2 Màn hình kết quả lấy tweet
Hình 4-3 Màn hình kết quả lấy danh sách follower 4.5. Kết luận
Chương 4 tiến hành triển khai và đánh giá hệ thống thu thập dữ liệu Web đã đƣợc xây dựng theo giải pháp đã chọn. Kết quả đánh giá đƣợc triển khai theo yêu cầu thực tế mà công ty tôi đã nhận đƣợc yêu cầu từ khách hàng của mình.
Việc đánh giá hệ thống dựa trên hai tiêu chí: đủ số lƣợng, và đúng nội dung.
Thông qua việc so sánh với các công cụ khác nhƣ HTTrack, WebSPHINX, hệ thống thu thập dữ liệu đƣợc trình bày trong luận văn cho kết quả tốt, và vƣợt trội khi thực hiện lấy dữ liệu từ Twitter.