Chương 1 CƠ SỞ LÝ THUYẾT
1.3. Thu thập thông tin trên Web
1.3.1. Giới thiệu tổng quan về thu thập thông tin trên Web
Thu thập thông tin (Information Retrieval - IR) trên Web là tập trung vào việc khám phá một cách tự động nguồn thông tin có giá trị trực tuyến. Nội dung Web có thể được tiếp cận theo 2 cách khác nhau: Tìm kiếm thông tin và khai phá dữ liệu trong cơ sở dữ liệu lớn. Có nhiều hình thức về thu thập, rút trích nội dung, thông tin trang web đã được nghiên cứu và phát triển. Chúng ta có một loạt khái niệm như Robot, Search, Web Crawler, Data Wrapper, Web Spider, Web Clipping, Semantic Web, Web Scraping ...
1.3.2. Quá trình thu thập thông tin trên Web
Nắm bắt những đặc tính của người dùng Web là việc rất quan trọng đối với người thiết kế website. Thông qua việc khai phá lịch sử các mẫu truy xuất của người dùng Web, không chỉ thông tin về Web được sử dụng như thế nào mà
còn nhiều đặc tính khác như các hành vi của người dùng có thể được xác định.
Sự điều hướng đường dẫn người dùng Web mang lại giá trị thông tin về mức độ quan tâm của người dùng đến các website đó.
- Các kỹ thuật được sử dụng trong quá trình thu thập thông tin trên Web:
+ Luật kết hợp: Để tìm ra những Web thường được truy cập cùng nhau của người dùng, những lựa chọn cùng nhau của khách hàng trong thương mại điện tử.
+ Kỹ thuật phân cụm: Phân cụm người dùng dựa trên các mẫu duyệt để tìm ra sự liên quan giữa người dùng Web và các hành vi của họ.
- Quá trình tìm kiếm và phân cụm tài liệu: Về cơ bản, quá trình phân cụm kết quả tìm kiếm sẽ diễn ra theo các bước:
+ Tìm kiếm trang web từ các website thoả mãn nội dung truy vấn.
+ Trích rút thông tin mô tả từ các trang và lưu trữ nó cùng với các URL tương ứng.
+ Sử dụng kỹ thuật phân cụm dữ liệu để phân cụm tự động các trang web thành các cụm, sao cho các trang trong cụm "tương tự" về nội dung với nhau hơn các trang ngoài cụm.
- Tìm kiếm dữ liệu trên Web: Nhiệm vụ chủ yếu của giai đoạn này là dựa vào tập từ khoá tìm kiếm để tìm kiếm và trả về tập gồm toàn văn tài liệu, tiêu đề, mô tả tóm tắt, URL... tương ứng với các trang đó.
- Tiền xử lý dữ liệu: Quá trình làm sạch dữ liệu và chuyển dịch các tài liệu thành các dạng biểu diễn dữ liệu thích hợp.
- Chuẩn hoá văn bản: Đây là giai đoạn chuyển hoá văn bản thô về dạng văn bản sao cho việc xử lý sau này được dễ dàng, đơn giản, thuận tiện, chính xác so với việc xử lý trực tiếp trên văn bản thô mà ảnh hưởng ít đến kết quả xử lý.
- Xoá bỏ từ dừng: Trong văn bản có những từ mang ít thông tin quan trọng trong quá trình xử lý, những từ có tần số xuất hiện thấp, những từ xuất hiện với tần số lớn nhưng không quan trọng trong quá trình xử lý đều được loại bỏ. Theo một số nghiên cứu gần đây cho thấy việc loại bỏ các từ dừng có thể giảm bớt được khoảng 20 - 30% tổng số từ trong văn bản.
- Kết hợp các từ có cùng gốc: Hầu hết trong các ngôn ngữ đều có rất nhiều các từ có chung nguồn gốc với nhau, chúng mang ý nghĩa tương tự nhau, do đó để giảm bớt số chiều trong biểu diễn văn bản, ta sẽ kết hợp với các từ có cùng gốc thành một từ. Ví dụ trong tiếng Anh từ user, users, used, using có cùng từ gốc và sẽ được quy về use.
- Xây dựng từ điển: Việc xây dựng từ điển là một công việc rất quan trọng trong quá trình vector hoá văn bản, từ điển sẽ gồm các từ, cụm từ riêng biệt trong toàn bộ tập dữ liệu. Từ điển sẽ gồm một bảng các từ, chỉ số của nó trong từ điển và được sắp xếp theo thứ tự.
- Tách từ, số hoá văn bản và biểu diễn tài liệu: tách từ là công việc hết sức quan trọng trong việc biểu diễn văn bản. Quá trình tách từ, vector hoá tài liệu là quá trình tìm kiếm các từ và thay thế nó bởi chỉ số của từ đó trong từ điển.
- Phân cụm tài liệu: Sau khi đã tìm kiếm, trích rút dữ liệu, tiền xử lý và biểu diễn văn bản chúng ta sử dụng kỹ thuật phân cụm để phân cụm tài liệu.
Hình 1.2. Các bước thu thập thông tin trên trang web 1.3.3. Các kỹ thuật Crawling và Indexing
Một Web thu thập thông tin 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 thu thập thông tin không hoàn toàn giống với quá trình duyệt web của con người (Web thu thập thông tin 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 thu thập thông tin thường bắt đầu với một danh sách URL của các trang web để ghé thăm đầu tiên.
Khi ghé thăm một URL, Web thu thập thông tin sẽ đọc nội dung trang web, tìm tất cả các hyperlink có trong trang web đó 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, Web thu thập thông tin 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 thu thập thông tin còn được gọi là các robot hoặc nhện Web (Web spider). Thường thì các Web thu thập thông tin đượ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 Web thu thập thông tin để tải các trang web, các trang web 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.
Về bản chất, Web thu thập thông tin chính là quá trình duyệt đệ quy một đồ thị Cây có các node là các trang web. Tùy thuộc vào chiến lược của Web thu thập thông tin, 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 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...
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 chứa đựng nhiều thông tin có ích mà con người có thể muốn thu thập và lưu trữ lại, chính vì thế mà các Web scraper được ra đời. Web scraper là một thuật ngữ để chỉ các phần mềm có khả năng bóc tách và trích xuất thông tin chứa trên các trang web một cách tự động. Công việc này được gọi là Web scraping, Web harvesting hoặc Web data extraction. Các Web scraper khác với Web thu thập thông tin ở chỗ, trong khi Web thu thập thông tin tập trung vào việc duyệt các trang web thông qua các liên kết hyperlink, thì Web scraper lại tập trung vào việc chuyển đổi nội dung không cấu trúc của các trang web (chủ yếu được viết bằng HTML) sang thành nội dung có cấu trúc, sau đó bóc tách, trích xuất phần thông tin mong muốn và lưu trữ lại vào các cơ sở dữ
liệu hoặc các bảng (spreadsheet). Các Web scraper cũng có thể thực hiện thêm các công đoạn phân tích dữ liệu sau khi đã trích xuất được để phục vụ cho một mục đích nào đó. Một số ứng dụng của Web scraping bao gồm: so sánh giá cả thị trường trực tuyến, nghiên cứu thị trường, thu thập thông tin để thống kê, theo dõi thông tin thời tiết trên các website dự báo thời tiết, tổng hợp tin tức từ nhiều website...
Một số kỹ thuật được sử dụng trong Web scraping có thể kể ra như:
So trùng: Một kỹ thuật đơn giản nhưng khá hiệu quả để tìm kiếm các phần nội dung chữ có sự tương đồng với nhau (do nội dung trang web chủ yếu là ở dạng ký tự). Kỹ thuật này thường sử dụng biểu thức chính quy (regular expression) để so trùng và tìm kiếm.
Lập trình HTTP: Ta có thể lấy được nội dung 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 thu thập thông tin.
Phân tích cấu trúc DOM: Phân tích nội dung HTML của trang web 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ỉ lấy ra phần nội dung mà nó cần.