KHAI THÁC DỮ LIỆU TRÊN WEB VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ NHẬP LIỆU

67 1.6K 0
KHAI THÁC DỮ LIỆU TRÊN WEB VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ NHẬP LIỆU

Đ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

TRƯỜNG ĐẠI HỌC QUỐC GIA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN NGUYỄN BÌNH MINH KHAI THÁC DỮ LIỆU TRÊN WEB VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ NHẬP LIỆU Ngành: Công nghệ thông tin Chuyên ngành: Quản lý Hệ thống thông tin Mã số: 10110022 HÀ NỘI 5/2013 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu LỜI CẢM ƠN Trước hết, tôi xin bày tỏ lòng cảm ơn chân thành TS. Nguyễn Văn Đoàn, là người tận tình hướng dẫn tôi trong suốt thời gian làm luận văn tốt nghiệp. Tôi xin cảm ơn các thầy, cô giáo ở Viện Công nghệ thông tin - Đại học Quốc gia Hà Nội đã giảng dạy tôi trong suốt thời gian học tập tại viện và tạo điều kiện giúp đỡ tôi hoàn thành luận văn này. Cảm ơn các bạn bè, đồng nghiệp đã cổ vũ động viên tôi trong suốt quá trình học tập tại viện. Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có hạn nên chắc chắn luận văn này còn nhiều thiếu sót và hạn chế nhất định. Kính mong nhận được sự góp ý của thầy cô và các bạn. Luận văn thạc sĩ này được thực hiện trong khuôn khổ đề tài nghiên cứu mang mã số, Đại học Quốc gia Hà Nội. Hà Nội, ngày 20 tháng 05 năm 2013 Học viên Nguyễn Bình Minh 2 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu LỜI CAM ĐOAN Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm nghiên cứu, tìm hiểu của riêng cá nhân tôi. Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài 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 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 20 tháng 05 năm 2013 Học viên Nguyễn Bình Minh 3 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu TÓM TẮT LUẬN VĂN Trong những năm gần đây cùng với phát triển nhanh chóng của khoa học kỹ thuật là sự bùng nỗ về tri thức. Kho dữ liệu, nguồn tri thức của nhân loại cũng trở nên đồ sộ, vô tận làm cho vấn đề khai thác các nguồn tri thức đó ngày càng trở nên nóng bỏng và đặt ra thách thức lớn cho nền công nghệ thông tin thế giới. Hiện nay, lượng thông tin trên Internet càng ngày càng khổng lồ, điều này khiến việc sử dụng Internet để khai thác thông tin hữu ích, phục vụ cho các mục đích của tổ chức hay cá nhân luôn có những khó khăn nhất định của nó. Nhất là đối với những mục đích đòi hỏi cần khai thác thông tin với khối lượng lớn trên Web, chẳng hạn một công ty quảng cáo muốn thu thập thật nhiều thông tin liên lạc của các doanh nghiệp trong nhiều lĩnh vực để gửi thư quảng cáo. Những công việc như thế này nếu được thực hiện thủ công bằng sức người thì sẽ mất rất nhiều thời gian, công sức, và chúng cũng khá tẻ nhạt do tính chất phải lặp đi lặp một vài thao tác của việc thu thập dữ liệu. Do những vấn đề cấp thiết được đề cập ở trên nên em chọn đề tài: “Khai thác dữ liệu trên Web và xây dựng ứng dụng hỗ trợ nhập liệu”. Mục tiêu của đề tài nhằm đưa ra phương pháp cũng như công cụ có khả năng hỗ trợ con người trong những bài toán có yêu cầu thu thập dữ liệu, giúp giảm thời gian và sức lực của con người nhưng vẫn đảm bảo tính toàn vẹn của dữ liệu. 4 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu MỤC LỤC MỞ ĐẦU 7 CHƯƠNG 1. TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU TRÊN WEB 9 CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG 18 CHƯƠNG 3. HIỆN THỰC ỨNG DỤNG VÀ ĐÁNH GIÁ KẾT QUẢ 45 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 5 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu MỤC LỤC HÌNH ẢNH Hình 1-1. World Wide Web 9 Hình 1-2. Sơ đồ hoạt động của một web crawler đơn giản 10 Hình 1-3. Phân loại web cùng khả năng của các web crawler 14 Hình 2-4. Một trang web danh bạ 30 Hình 2-5. Sơ đồ Use Case của ứng dụng DESS 38 Hình 2-6. Sơ đồ các trạng thái của Bot 40 Hình 2-7. Quá trình hoạt động tổng quát của ROBOT 42 Hình 3-8. Sơ đồ cấu trúc cơ sở dữ liệu của chương trình 53 Hình 3-9. Sơ đồ tuần tự của tác vụ start Bot 54 Hình 3-10. Sơ đồ tuần tự của tác vụ resume Bot 54 Hình 3-11. Sơ đồ tuần tự của tác vụ pause Bot 55 Hình 3-12. Sơ đồ tuần tự của tác vụ stop Bot 55 Hình 3-13. Sơ đồ tuần tự thể hiện quá trình hoạt động tổng quát của Robot 56 Hình 3-14. Quá trình thu thập dữ liệu tổng quát 58 Hình 3-15. Sơ đồ class của các Crawler 59 Hình 3-16. Sơ đồ tuần tự hoạt động của Simple Crawler 60 Hình 3-17. Sơ đồ tuần tự hoạt động của Advanced Crawler 60 Hình 3-18. Sơ đồ class của các Extractor 64 6 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu MỞ ĐẦU Trong thập kỷ qua, chúng ta đã được chứng kiến sự phát triển đến chóng mặt của Internet mà tiêu biểu là các trang thông tin. Internet đã và đang được coi là một nguồn cung cấp tin khổng lồ với mọi chuyên mục, mọi vấn đề mà người sử dụng cần đến. Với sự phát triển này, lượng thông tin từ Internet mang đến cho người sử dụng là quá lớn dẫn tới việc chúng ta cần phải có các ứng dụng Internet thông minh và hiệu quả hơn đối với người sử dụng. Tuy nhiên nếu lượng thông tin mà họ cần khai thác là quá nhiều thì quá trình duyệt web, trích xuất và lưu trữ theo cách thủ công lại trở thành một công việc khó khăn, hao tốn nhiều sức lực, thời gian của con người. Một số ví dụ có thể kể ra như: nhu cầu trích xuất thông tin về tất cả các mặt hàng thuộc một chuyên mục của một website bán hàng nào đó nhằm phục vụ mục đích khảo sát thị trường, nhu cầu tổng hợp tin tức từ các website tin tức để xây dựng các trang web thông tin tổng hợp, nhu cầu thu thập thông tin về các doanh nghiệp thuộc một ngành nào đó trên website danh bạ doanh nghiệp để gửi email quảng cáo, tiếp thị, v.v… Chính những ví dụ thực tế như trên đã nảy sinh ra nhu cầu: cần phải có một phương thức hoặc công cụ nào đó có khả năng tìm kiếm, trích xuất thông tin trên web và lưu trữ lại thông tin đó theo ý muốn của con người, một cách tự động và hiệu quả, và đó cũng chính là mục tiêu được đặt ra cho đề tài này. Đó là: Tìm hiểu phương pháp khai thác lượng dữ liệu trên, từ đó xây dựng được một ứng dụng thu thập dữ liệu tự động từ các website, phục vụ cho các nhu cầu của cá nhân hay tổ chức. Các nhiệm vụ: • Tìm hiểu về các kiến thức nền tảng • Tìm hiểu về các kỹ thuật khai thác dữ liệu tự động từ các website • Tìm hiểu về các công nghệ liên quan và xây dựng ứng dụng khai thác dữ liệu trên một website cụ thể Bố cục của luận văn: Mở đầu: Đặt vấn đề về ý nghĩa , tính cấp thiết, nhiệm vụ và tính thực tiễn của đề tài. 7 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu Chương 1: Tổng quan về khai thác dữ liệu trên Web Trong chương này, chúng ta sẽ tìm hiểu các khái niệm cơ bản về trình thu thập web (web crawler), các chiến lược thu thập dữ liệu, trình bóc tách và trích xuất thông tin (web scraper), sự phân loại các trang web, từ đó vẽ ra bức tranh chung về khai thác dữ liệu trên web để hiểu hơn về các giá trị thực tiễn mà nó mang lại trong đời sống con người. Chương 2: Phân tích, thiết kế ứng dụng Phần đầu chương sẽ trình bày về các kiến thức nền tảng và các công nghệ liên quan, ở phần tiếp theo nêu phát biểu cho bài toán khai thác dữ liệu trên web cũng như giải pháp thực hiện, kiến trúc thành phần của ứng dụng. Chương 3: Hiện thực ứng dụng và đánh giá kết quả thu được Đặc tả thông tin đầu vào cho ứng dụng, lược đồ cơ sở dữ liệu tương ứng và chức năng của các module trong chương trình. Phần tiếp theo trình bày ví dụ cụ thể và kết quả thu được khi thực hiện ứng dụng. Kết luận: Phần cuối của luận văn sẽ nhìn lại những điều đã làm được, nêu lên những hạn chế, từ đó đề ra hướng phát triển sau này. 8 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu CHƯƠNG 1. TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU TRÊN WEB 1.1 TÌM HIỂU CÁC KIẾN THỨC TỔNG QUAN 1.1.1 WORLD WIDE WEB World Wide Web (WWW, hay gọi tắt là Web) là một ứng dụng phổ biến và phát triển mạnh mẽ nhất của Internet hiện nay. World Wide Web là một mạng lưới bao gồm các tài liệu siêu văn bản (hypertext) được đặt trên các máy tính nằm trong mạng Internet [1]. Các siêu văn bản này có khả năng liên kết lẫn nhau thông qua các siêu liên kết (hyperlink). Sử dụng một trình duyệt web (web browser), con người có thể xem được các trang web (web page, cũng chính là một siêu văn bản) trên màn hình máy vi tính, nội dung các trang web có thể có chữ, hình ảnh, video, thậm chí có thể tương tác với người sử dụng thông qua các thiết bị như bàn phím, chuột. Cũng chính nhờ các hyperlink mà các trang web có thể liên kết được với nhau thông qua chỉ một cú click chuột, đây là khả năng đem lại sự mở rộng vô cùng lớn cho world wide web. Hình 1-1. World Wide Web Nội dung các trang web chủ yếu được viết bằng ngôn ngữ HTML hoặc XHTML. Khi muốn truy cập một trang web, trình duyệt web sẽ gửi yêu cầu đến máy chủ (web server) chứa trang web đó. Máy chủ sẽ hồi đáp bằng nội dung trang web được yêu cầu trong trường hợp trang web đó thật sự tồn tại trên máy chủ và được cho phép truy cập. Cả hai quá trình yêu cầu và hồi đáp này đều được thực hiện dựa trên giao thức HTTP (Hyper Text Transfer Protocol). 9 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu 1.1.2 TRÌNH THU THẬP DỮ LIỆU WEB – WEB CRAWLER Một Web Crawler là một chương trình máy tính có thể “duyệt web” một cách tự động và theo một phương thức nào đó được xác định trước [1]. Vì là một chương trình 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 duyệt web của con người (web crawler phải sử dụng các phương thức dựa trên HTTP trực tiếp chứ không thông qua web browser như con người). Các web crawler thường bắt đầu với một danh sách URL của các web page để ghé thăm đầu tiên. Khi ghé thăm một URL, crawler sẽ đọc nội dung web page, tìm tất cả các hyperlink có trong web page đó và đưa các URL được trỏ tới bới các hyperlink đó vào danh sách URL. Dựa vào danh sách URL này, Crawler lại tiếp tục quá trình duyệt đệ quy để ghé thăm tất cả các URL chưa được duyệt đến. Quá trình này được gọi là web crawling hoặc là web spidering, các web crawler còn được gọi là các robot (bot) hoặc nhện web (web spider). Thường thì các crawler được tạo ra để phục vụ cho một mục đích, tác vụ nào đó. Ví dụ các máy tìm kiếm (search engine) sử dụng crawler để tải các web page, các web page này sau đó được search engine đánh chỉ mục để có thể cho kết quả nhanh hơn khi được tìm kiếm. Hình 1-2. Sơ đồ hoạt động của một web crawler đơn giản Về bản chất, web crawling chính là quá trình duyệt đệ quy một đồ thị cây có các node là các web page. Tùy thuộc vào chiến lược của crawler, các node có thể được duyệt theo chiều sâu hoặc duyệt theo chiều rộng. Trong thực tế, quá trình crawling web sẽ phải đối diện với rất nhiều vấn đề khó khăn như: kích thước khổng lồ của world wide web, các trang web HTML được viết không chuẩn, hạn chế ghé thăm một 10 [...]... năng và giới hạn hoạt động của các Web crawler, so với thành phần crawler của ứng dụng cần xây dựng Tuy nhiên để có thể đi vào các vấn đề chi tiết, cụ thể hơn trong việc hiện thực các kỹ thuật sử dụng bởi ứng dụng, ta cần phải phân loại lại các trang Web dựa 32 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu vào cách thức chuyển trang từ trang đó sang các trang Web. .. (ví dụ login bằng username và password gì, nhập liệu các giá trị gì vào form, dữ liệu sau khi trích xuất được thì cần xử lý như thế nào …) 35 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu Như vậy, dựa trên những phân tích trên đây, ta đưa ra các giải pháp sau: • Ứng dụng cần tập trung vào hai module chính, quan trọng nhất đó là Crawler và Extractor Cả hai module... trang web bằng cách gửi một yêu cầu HTTP đến web server, cũng giống như cách web browser làm Đây cũng là một kỹ thuật được sử dụng bởi các web crawler 11 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu • Phân tích cấu trúc DOM: phân tích nội dung HTML của web page và xây dựng một cây DOM (Document Object Model), giúp scraper có thể duyệt các node trên cây này và chỉ... quá trình thu thập web chính là quá trình duyệt đệ quy một đồ thị Các website được xem như một đồ thị với các trang là các 14 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu đỉnh (node) và các siêu liên kết là các cạnh Chính vì thế các chiến thuật thu thập dữ liệu cũng được xây dựng dựa trên các thuật toán tìm kiếm trên đồ thị Các thuật toán tìm kiếm trên đồ thị bao gồm:... JavaScript, làm thay đổi cấu trúc DOM hoặc nội dung bên trong của trang web, hoặc không thể xếp vào loại I 33 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu Giả sử một trang web X có thể dẫn đến một trang web Y khác và Y là một trang cần thiết cho quá trình thu thập dữ liệu mong muốn Trang web X sẽ được xếp vào loại II nếu như ta không thể đến được Y (hoặc chính xác hơn là... thể hình dung ứng dụng sẽ gồm 2 module chính: crawler module và data extractor module Crawler module sẽ giúp ứng dụng “duyệt” nhiều trang web tương tự một cách tự động (ví dụ các trang phân trang của cùng một trang danh mục), với mỗi trang web được duyệt qua crawler module sẽ tải nội dung 16 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu trang web về và lưu trữ tạm... thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu URL đã được ghé thăm trước đó, các trang web động, nội dung các trang web được cập nhật thường xuyên v.v… 1.1.3 TRÌNH BÓC TÁCH VÀ TRÍCH XUẤT THÔNG TIN – WEB SCRAPER Các trang web chủ yếu được viết bằng các ngôn ngữ đánh dấu như HTML, XHTML và được nhắm đến đối tượng sử dụng là con người chứ không phải máy tính Các trang web lại... thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu cả một vấn đề không nhỏ Các trang web được viết ra để phục vụ cho đối tượng chính là con người, các nội dung thể hiện trên trang web luôn có ngữ nghĩa riêng của nó mà chỉ có con người mới có thể hiểu được Tuy nhiên, để ý một điều rằng, các website tuy rằng rất đa dạng và phong phú, nhưng các trang web nằm trong cùng một website... thông số đầu vào 17 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG 1.4 CÁC KIẾN THỨC NỀN TẢNG VÀ CÔNG NGHỆ LIÊN QUAN 1.4.1 HTML HTML (HyperText Markup Language – ngôn ngữ đánh dấu siêu văn bản) là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web HTML được xem như là một ứng dụng của SGML (Standard Generalized Markup... không cần load trang web mới 1.1.4.3Khả năng của các web crawler Nhìn chung, các web crawler hiện nay hầu hết đều chỉ có thể crawl một phần rất nhỏ của World Wide Web, đó là những trang web có thể đến được bằng cách đi theo các liên kết hyperlink Các crawler này thường phải bỏ qua các trang có tính động theo 13 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu máy khách (client-based . sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu CHƯƠNG 1. TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU TRÊN WEB 1.1 TÌM HIỂU CÁC KIẾN THỨC TỔNG QUAN 1.1.1 WORLD WIDE WEB World Wide Web. thiết, nhiệm vụ và tính thực tiễn của đề tài. 7 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu Chương 1: Tổng quan về khai thác dữ liệu trên Web Trong chương. dựa trên giao thức HTTP (Hyper Text Transfer Protocol). 9 Luận văn thạc sỹ Khai thác dữ liệu trên Web và Xây dựng ứng dụng hỗ trợ nhập liệu 1.1.2 TRÌNH THU THẬP DỮ LIỆU WEB – WEB CRAWLER Một Web

Ngày đăng: 10/04/2015, 09:18

Từ khóa liên quan

Mục lục

  • 1.1 TÌM HIỂU CÁC KIẾN THỨC TỔNG QUAN

    • 1.1.1 WORLD WIDE WEB

    • 1.1.2 TRÌNH THU THẬP DỮ LIỆU WEB – WEB CRAWLER

    • 1.1.3 TRÌNH BÓC TÁCH VÀ TRÍCH XUẤT THÔNG TIN – WEB SCRAPER

    • 1.1.4 PHÂN LOẠI WEB

      • 1.1.4.1 Phân loại dựa vào sự thể hiện của tính động

      • 1.1.4.2 Phân loại dựa vào cách thức tạo ra tính động

      • 1.1.4.3 Khả năng của các web crawler

      • 1.2 CÁC CHIẾN LƯỢC THU THẬP DỮ LIỆU

        • 1.2.1 CHIẾN LƯỢC THU THẬP DỮ LIỆU THEO CHIỀU SÂU

        • 1.2.2 CHIẾN LƯỢC THU THẬP DỮ LIỆU THEO CHIỀU RỘNG

        • 1.3 ĐÁNH GIÁ SƠ BỘ

        • 1.4 CÁC KIẾN THỨC NỀN TẢNG VÀ CÔNG NGHỆ LIÊN QUAN

          • 1.4.1 HTML

          • 1.4.2 XML

          • 1.4.3 XHTML

            • 1.4.3.1 Tính chuẩn của một tài liệu XML (well-formed)

            • 1.4.3.2 Tên các phần tử và tên các thuộc tính phải ở dạng chữ in thường

            • 1.4.3.3 Các thẻ không rỗng bắt buộc phải có thẻ đóng

            • 1.4.3.4 Các thuộc tính luôn phải ghi rõ giá trị

            • 1.4.3.5 Các phần tử rỗng

            • 1.4.4 XPATH

              • 1.4.4.1 Cú pháp và ngữ nghĩa

              • 1.4.4.2 Axis specifier

              • 1.4.4.3 Node test

              • 1.4.4.4 Predicate

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan