Phương pháp này không tách từ chính xác hoàn toàn nhưng có thể chấp nhận trong hệ thống tìm kiếm thông tin vì trong quá trình lập chỉ mục chỉ cần xác định đúng các từ có trọng lượng cao,[r]
(1)LỜI CẢM ƠN Đầu tiên, chúng em xin gởi lời cảm ơn đến Thầy, Cô khoa Công nghệ Thông tin trường Đại học Khoa học Tự nhiên đã tận tình dạy dỗ, dìu dắt chúng em suốt bốn năm đại học Chúng em cảm ơn Cô Nguyễn Thị Diễm Tiên, người tận tình hướng dẫn, giúp đỡ, động viên chúng em hoàn thành luận văn này Chúng tôi cảm ơn các anh Trần Nguyễn Hoàng Phương, Bùi Ngọc Tuấn Anh, Đoàn Hữu Quang Vinh và các bạn Nguyễn Huy Hoàng, Phan Anh Đức đã giúp đỡ, đóng góp ý kiến cho chúng tôi quá trình cài đặt, thử nghiệm chương trình Cuối cùng, chúng cảm ơn Ba, Mẹ và người thân đã khích lệ, động viên chúng thời gian học tập, nghiên cứu để có thành ngày Tháng năm 2004 Sinh viên Lê Thuý Ngọc – Đỗ Mỹ Nhung (2) NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ………………………………………………………………………………… …………………………………………………………………………………… Ngày…… tháng……năm 2004 Ký tên (3) NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ………………………………………………………………………………… …………………………………………………………………………………… Ngày…… tháng……năm 2004 Ký tên (4) MỤC LỤC Phần : TÌM HIỂU VẤN ĐỀ Chương 1: TỔNG QUAN VỀ HỆ THỐNG SEARCH ENGINE Các phận cấu thành hệ thống search engine 1.1 Bộ thu thập thông tin – Robot 1.2 Bộ lập mục – Index 1.3 Bộ tìm kiếm thông tin – Search Engine .3 Nguyên lý hoạt động Chương 2: BỘ THU THẬP THÔNG TIN – ROBOT Ứng dụng Robot 1.1 Phân tích, thống kê – Statistical Analysis 1.2 Duy trì siêu liên kế - Maintenance .5 1.3 Ánh xạ địa web - Mirroring 1.4 Phát tài nguyên – Resource Discovery 1.5 Kết hợp các công dụng trên- Combined uses .6 Robot mục – Robot Indexing .6 Các chiến thuật thu thập liệu [II.1] .8 3.1 Chiến thuật tìm kiếm theo chiều sâu 3.2 Chiến thuật tìm kiếm theo chiều rộng 3.3 Chiến thuật tìm kiếm theo ngẫu nhiên Những vấn đề cần lưu ý web robot 10 4.1 Chi phí và hiểm hoạ 10 4.1.1 Qúa tải mạng và server – Network resource and server load 10 4.1.2 Sự cập nhật quá mức- Updating overhead 11 4.1.3 Những tình không mong đợi – Bad implementations .12 4.2 Tiêu chuẩn loại trừ robot 12 4.2.1 File robot.txt .13 4.2.2 Thẻ META dành cho robot – Robot META tag 14 4.2.3 Nhược điểm file robot.txt .15 Chương 3: BỘ LẬP CHỈ MỤC – INDEX 18 Khái quát hệ thống lập mục 18 Tổng quan phương pháp lập mục ([I.1], [I.2], [II.1]) 21 2.1 Xác định mục từ quan trọng cần lập mục ([I.1]) 21 2.2 Một số hàm tính trọng số mục từ ([I.1]) 23 2.2.1 Nghịch đảo trọng số tần số tài liệu (The Inverse Document Frequency Weight) 24 (5) 2.2.2 Độ nhiễu tín hiệu (Signal Noise): 25 2.2.3 Giá trị độ phân biệt mục từ : 25 2.2.4 Kết hợp tần số xuất mục từ và nghịch đảo tần số tài liệu 26 2.3 Lập mục tự động cho tài liệu .28 Lập mục cho tài liệu tiếng Việt ([III.1], [II.1], [II.2], [II.3], [II.4], [IV.11], [IV.12]) .29 3.1 Khó khăn cho việc lập mục tiếng Việt 29 3.2 Đặc điểm từ tiếng Việt và việc tách từ 31 3.2.1 Đặc điểm từ tiếng Việt: 31 3.2.2 Tách từ 32 3.3 Giải các vấn đề hiển thị tiếng Việt (vấn đề chính tả) 34 3.3.1 Vấn đề bảng mã 34 3.3.2 Vấn đề dấu 35 3.3.3 Vấn đề dấu tổ hợp nguyên âm .36 3.4 Giải các vấn đề từ tiếng Việt 37 3.4.1 Luật xác định các từ láy 37 3.4.2 Luật xác định các liên từ .37 3.5 Xây dựng từ điển tiếng Việt .37 Chương 4: BỘ TÌM KIẾM THÔNG TIN – SEARCH ENGINE 40 Vì ta cần công cụ tìm kiếm (SE) ? .40 Các phương thức tìm kiếm 40 2.1 Tìm theo từ khoá – Keyword searching .40 2.2 Những khó khăn tìm theo từ khoá .41 2.3 Tìm theo ngữ nghĩa – Concept-based searching 41 Các chiến lược tìm kiếm 42 3.1 Tìm thông tin với các thư mục chủ đề .42 3.2 Tìm thông tin với các công cụ tìm kiếm 43 3.3 Tối ưu câu truy vấn 43 3.4 Truy vấn ví dụ 44 Chương 5: MỘT SỐ SEARCH ENGINE THÔNG DỤNG TRÊN THẾ GIỚI VÀ VIỆT NAM .45 1.1 Thư mục Yahoo, Google .54 1.2 Alltheweb 55 1.3 AltaVista 55 1.4 Lycos 55 1.5 HotBot .55 Một số search engine thông dụng Việt Nam 56 2.1 Netnam [IV.12] 56 2.1.1 Phương pháp Netnam SE lập mục liệu .58 (6) 2.1.2 Cú pháp tìm kiếm 59 2.1.3 Sử dụng từ khoá để lọc các tìm kiếm 61 2.2 Vinaseek ([IV.11]) .65 Phần : THIẾT KẾ VÀ CÀI ĐẶT 67 Chương 6: THIẾT KẾ DỮ LIỆU 67 Cơ sở liệu SQL 67 Hệ thống tập tin .71 Chương 7: THU THẬP THÔNG TIN 72 Cấu trúc liệu .72 1.1 Cấu trúc UrlInfo 73 1.2 Cấu trúc StartUrlInfo 74 1.3 Cấu trúc FileRetrieval 75 1.4 Cấu trúc ProjectInfo 75 Xử lý web robot 78 Giải các vấn đề web robot .83 3.1 Tránh lặp lại 83 3.2 Tránh làm qúa tải server 83 3.3 Tránh truy xuất đến các dạng tài nguyên không thích hợp 83 3.4 Tránh các lỗ đen(black holes) 84 3.5 Tránh nơi cấm robot .84 Các thuật toán phân tích cấu trúc file HTML 84 4.1 Thuật toán lấy liên kết .84 4.1.1 Thuật toán ứng dụng cũ đã cài đặt 85 4.1.2 Chọn lựa ứng dụng 89 4.2 Thuật toán lấy tiêu đề 89 4.3 Thuật toán lấy nội dung .90 Duy trì thông tin cho CSDL 91 Resume project 91 6.1 Nguyên tắc resume ứng dụng cũ1 92 6.2 Cải tiến ứng dụng 94 Chương 8: LẬP CHỈ MỤC 97 Tính trọng số từ: .97 Tập tin nghịch đảo : 98 Từ điển mục .105 Quá trình stemming .110 Chương 9: TÌM KIẾM THÔNG TIN .113 (7) Chương 10: CÁC MODULE ,PACKAGE, LỚP CHÍNH CỦA CHƯƠNG TRÌNH 115 Các module, package chương trình 115 Các lớp đối tượng chính module 116 2.1 Module DBController 116 2.2 Module ProcessDoc 117 2.3 Module Query upload.123doc.net 2.4 Module SE .119 2.5 Module Webcopy 119 2.6 Module WebcopyGUI .120 Phần : KẾT QUẢ, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 122 Kết thử nghiệm .122 Hoạt động chương trình 124 2.1 Giao diện quản trị 124 2.1.1 Giao diện chính quản trị .124 2.1.2 Tạo project 125 2.1.3 Tạo StartUrl : 128 2.1.4 Xem từ điển mục 131 2.1.5 Quản lý mục từ 132 2.2 Giao diện tìm kiếm 134 Đánh giá 136 3.1 Ưu điểm 136 3.2 Khuyết điểm 137 Hướng phát triển 137 4.1 Đối với module : 137 4.2 Đối với toàn luận văn: .138 DANH SÁCH CÁC BẢNG 139 DANH SÁCH CÁC HÌNH VẼ 140 TÀI LIỆU THAM KHẢO 141 I Sách, ebook: .141 II Luận văn, luận án 141 III Bài báo .142 IV Website 142 (8) MỞ ĐẦU Trong thời đại ngày nay, thông tin là nhu cầu thiết yếu người trên lĩnh vực Mỗi phút trôi qua hàng triệu triệu trang web đẩy lên nhằm làm giàu nguồn tài nguyên vô tận này Tuy nhiên tồn nghịch lý là dù ví thư viện toàn cầu, internet không thoả mãn nhu cầu thông tin người Xung quanh vấn đề này có nhiều nguyên nhân quan trọng là thông hiểu người và công cụ tìm kiếm trên mạng – search engine – chưa đạt đến mức có thể giao tiếp tốt với Hơn nữa, search engine mang đặc thù ngôn ngữ mà nó hiển thị search engine Tiếng Việt phải giải vấn đề đặc trưng Tiếng Việt, cụ thể là vấn đề bảng mã, ngữ pháp Tiếng Việt Nếu ta hiểu cách thức search engine tổ chức thông tin, thực thi câu truy vấn và đặc trưng ngôn ngữ mà search engine tiếp cận thì ta có thể tối ưu hoá hội nhận các thông tin hữu ích Đây là mục tiêu chính luận văn (9) Phần : TÌM HIỂU VẤN ĐỀ Chương 1: TỔNG QUAN VỀ HỆ THỐNG SEARCH ENGINE Các phận cấu thành hệ thống search engine 1.1 Bộ thu thập thông tin – Robot Robot là chương trình tự động duyệt qua các cấu trúc siêu liên kết để thu thập tài liệu & cách đệ quy nó nhận tất tài liệu có liên kết với tài liệu này Robot biết đến nhiều tên gọi khác : spider, web wanderer web worm,… Những tên gọi này đôi gây nhầm lẫn, từ ‘spider’, ‘wanderer’ làm người ta nghĩ robot tự nó di chuyển và từ ‘worm’ làm người ta liên tưởng đến virus Về chất robot là chương trình duyệt và thu thập thông tin từ các site theo đúng giao thức web Những trình duyệt thông thường không xem là robot thiếu tính chủ động, chúng duyệt web có tác động người 1.2 Bộ lập mục – Index Hệ thống lập mục hay còn gọi là hệ thống phân tích và xử lý liệu, thực việc phân tích, trích chọn thông tin cần thiết (thường là các từ đơn , từ ghép , cụm từ quan trọng) từ liệu mà robot thu thập và tổ chức thành sở liệu riêng để có thể tìm kiếm trên đó cách nhanh chóng, hiệu Hệ thống mục là danh sách các từ khoá, rõ các từ khoá nào xuất trang nào, địa nào (10) 1.3 Bộ tìm kiếm thông tin – Search Engine Search engine là cụm từ dùng toàn hệ thống bao gồm thu thập thông tin, lập mục & tìm kiếm thông tin Các này hoạt động liên tục từ lúc khởi động hệ thống, chúng phụ thuộc lẫn mặt liệu độc lập với mặt hoạt động Search engine tương tác với user thông qua giao diện web, có nhiệm vụ tiếp nhận & trả tài liệu thoả yêu cầu user Nói nôm na, tìm kiếm từ là tìm kiếm các trang mà từ câu truy vấn (query) xuất nhiều nhất, ngoại trừ stopword (các từ quá thông dụng mạo từ a, an, the,…) Một từ càng xuất nhiều trang thì trang đó càng chọn để trả cho người dùng Và trang chứa tất các từ câu truy vấn thì tốt là trang không chứa từ Ngày nay, hầu hết các search engine hỗ trợ chức tìm và nâng cao, tìm từ đơn, từ ghép, cụm từ, danh từ riêng, hay giới hạn phạm vi tìm kiếm trên đề mục, tiêu đề, đoạn văn giới thiệu trang web,… Ngoài chiến lược tìm chính xác theo từ khoá, các search engine còn cố gắng ‘ hiểu ‘ ý nghĩa thực câu hỏi thông qua câu chữ người dùng cung cấp Điều này thể qua chức sửa lỗi chính tả, tìm hình thức biến đổi khác từ Ví dụ : search engine tìm từ speaker, speaking, spoke người dùng nhập vào từ speak Nguyên lý hoạt động Search engine điều khiển robot thu thập thông tin trên mạng thông qua các siêu liên kết ( hyperlink ) Khi robot phát site mới, nó gởi tài liệu (web (11) page) cho server chính để tạo sở liệu mục phục vụ cho nhu cầu tìm kiếm thông tin Bởi vì thông tin trên mạng luôn thay đổi nên robot phải liên tục cập nhật các site cũ Mật độ cập nhật phụ thuộc vào hệ thống search engine Khi search engine nhận câu truy vấn từ user, nó tiến hành phân tích, tìm sở liệu mục & trả tài liệu thoả yêu cầu (12) Chương 2: BỘ THU THẬP THÔNG TIN – ROBOT Ứng dụng Robot Robot thường sử dụng cho mục đích sau : 1.1 Phân tích, thống kê – Statistical Analysis Robot đầu tiên dùng để đếm số lượng web server, số tài liệu trung bình server, tỉ lệ các dạng file khác nhau, kích thước trung bình trang web, độ kết dính, … 1.2 Duy trì siêu liên kế - Maintenance Một khó khăn việc trì siêu liên kết là nó liên kết với trang bị hỏng (dead links) trang này bị thay đổi chí bị xóa Thật không may chưa có chế nào cảnh báo các trì thay đổi này Trên thực tế các tác giả nhận tài liệu mình chứa liên kết hỏng, họ thông báo cho nhau, độc giả thông báo cho họ email Một số robot, chẳng hạn MOMspider có thể trợ giúp tác giả phát các liên kết hỏng trì các cấu trúc siêu liên kết cùng nội dung trang web Chức này lặp lại liên tục tài liệu cập nhật, nhờ đó vấn đề xảy giải nhanh chóng 1.3 Ánh xạ địa web - Mirroring Mirroring là kỹ thuật phổ biến việc trì các kho liệu FPT Một ánh xạ (mirror) chép toàn cấu trúc cây thư mục và thường xuyên cập (13) nhật file bị thay đổi Điều này cho phép nhiều người cùng truy xuất nguồn liệu, giảm số liên kết bị thất bại, nhanh và ít chi phí so với truy cập trực tiếp vào site thực chứa các liệu này 1.4 Phát tài nguyên – Resource Discovery Có lẽ ứng dụng thú vị robot là dùng nó để phát tài nguyên Con người không thể kiểm soát khối lượng thông tin khổng lồ môi trường mạng Robot giúp thu thập tài liệu, tạo và trì sở liệu, phát và xoá bỏ các liên kết hỏng có, kết hợp với công cụ tìm kiếm cung cấp thông tin cần thiết cho người 1.5 Kết hợp các công dụng trên- Combined uses Một robot có thể đảm nhận nhiều chức Ví dụ RBSE Spider [4] vừa thống kê số lượng tài liệu thu vừa tạo sở liệu Tuy nhiên ứng dụng còn khá ít ỏi Robot mục – Robot Indexing Trong quá trình thu thập thông tin phục vụ cho lập mục, ta cần giải vấn đề sau : Một là : Trong môi trường mạng, robot lấy thông tin từ các site Vậy robot site nào ? Điều này hoàn toàn phụ thuộc vào robot Mỗi robot khác có chiến lược khác Thường thì robot viếng thăm các site phổ biến site có nhiều liên kết dẫn đến nó Hai là : Ai cung cấp địa các site này cho robot ? (14) Có nguồn : Robot nhận các URL ban đầu từ user Robot phân tích các trang web để lấy các URL mới, đến lượt các URL này trở thành địa đầu vào cho robot Quá trình này lặp lại liên tục Ba là : Chọn liệu nào tài liệu để lập mục ? Quyết định chọn liệu nào tài liệu hoàn toàn phụ thuộc vào robot, thường thì từ liệt kê sau xem là quan trọng : Ở góc cao tài liệu Trong các đề mục Được in đậm (inktomi) Trong URL Trong tiêu đề (quan trọng) Trong phần miêu tả trang web (description) Trong các thẻ dành cho hình ảnh (ALT graphisc) Trong các thẻ chứa từ khóa Trong các text liên kết Một số robot lập mục trên tiêu đề, số đoạn văn đầu tiên toàn tài liệu (full text) Một số khác lại lập mục trên các thẻ META(META tags) các thẻ ẩn, nhờ tác giả trang web quyền ấn định từ khoá cho tài liệu mình Tuy nhiên chức này bị lạm dụng quá nhiều đó các thẻ META không còn giữ giá trị ban đầu chúng (15) Các chiến thuật thu thập liệu [II.1] Trước các trang web đánh mục, tất các trang web phải lấy máy robot Để lấy tất các trang web, robot phải có chiến thuật Từ số trang web có sẵn, robot lọc danh sách các liên kết, từ đó dò tìm các trang khác Có chiến thuật tìm kiếm Heuristic sau : tìm kiếm theo chiều sâu, tìm kiếm theo chiều rộng và tìm kiếm ngẫu nhiên 3.1 Chiến thuật tìm kiếm theo chiều sâu Từ danh sách chứa các liên kết cần duyệt, thực các bước sau : (1) Cho danh sách = {trang đầu tiên} (2) Lấy trang đầu tiên danh sách Nếu có qua (3) Nếu không qua (5) (3) Trang này đã xét tới chưa ? Nếu rồi, quay lại (2) Nếu chưa, qua (4) (4) Đánh dấu đã tới Phân tích và tìm xem liên kết có trang đó không? (4a) Nếu có, thêm liên kết này vào đầu danh sách Quay lại (4) (4b) Nếu không, quay lại (2) (5) Kết thúc (16) 3.2 Chiến thuật tìm kiếm theo chiều rộng Từ danh sách chứa các liên kết cần duyệt, thực các bước sau : (1) Cho danh sách = {trang đầu tiên} (2) Lấy trang đầu tiên danh sách Nếu có qua (3) Nếu không qua (5) (3) Trang này đã xét tới chưa ? Nếu rồi, quay lại (2) Nếu chưa, qua (4) (4) Đánh dấu đã tới Phân tích và tìm xem liên kết có trang đó không? (4a) Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4) (4b) Nếu không, quay lại (2) (5) Kết thúc 3.3 Chiến thuật tìm kiếm theo ngẫu nhiên Từ danh sách chứa các liên kết cần duyệt, thực các bước sau : (1) Cho danh sách = {trang đầu tiên} (2) Lấy ngẫu nhiên trang danh sách Nếu có qua (3) Nếu không qua (5) (3) Trang này đã xét tới chưa ? (17) Nếu rồi, quay lại (2) Nếu chưa, qua (4) (4) Đánh dấu đã tới Phân tích và tìm xem liên kết có trang đó không? (4a) Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4) (4b) Nếu không, quay lại (2) (5) Kết thúc Những vấn đề cần lưu ý web robot 4.1 Chi phí và hiểm hoạ Việc sử dụng các Robot tốn khá nhiều chi phí, đặc biệt là chúng điều khiển từ xa trên internet Phần này chúng ta cùng thảo luận hiểm hoạ robot gây 4.1.1 Qúa tải mạng và server – Network resource and server load Sau khoảng thời gian dài, thường là tháng, robot bắt đầu hoạt động cách liên tục Để tăng tốc nhiều robot phóng đồng thời đó cần có băng thông lớn Tài nguyên mạng bị khai thác quá mức robot yêu cầu lượng lớn thông tin khoảng thời gian quá ngắn (rapid fire) Kết là thiếu băng thông cho ứng dụng khác Server vừa phải phục vụ yêu cầu robot vừa cung cấp dịch vụ cho user, đó yêu cầu robot tăng lên bao nhiêu thì dịch vụ giảm xuống nhiêu Tác giả robot đã thử nghiệm cách cho thi hành 20 lượt truy cập đồng thời vào server Những lúc robot thu thập thông tin, server bị chậm (18) lại Trong vòng tuần robot đã viếng thăm site này với yêu cầu kinh khủng Chỉ sau 170 lượt truy xuất liên tục, thử nghiệm thất bại server bị quá tải Rapid fire thực là thảm hoạ Hiệu truyền tải thông tin dạng này giao thức web hay HTTP sụt giảm thấy rõ Những giao thức xem xét nhằm cứu vãn tình 4.1.2 Sự cập nhật quá mức- Updating overhead Người ta cho các sở liệu web robot tạo có thể cập nhật tự động thời điểm này chưa có chế kiểm soát thay đổi trên web cách hiệu Cập nhật thông tin quan trọng qúa thường xuyên là điều không cần thiết Xuất phát từ thực tế đó HTTP đưa kỹ thuật ‘if – Modified – Since’ giúp các user – agent xác định thời điểm tài liệu thay đổi Robot phát điều này nó lưu lại các thông tin cũ tốn nhiều nhớ & cần liệu phức tạp Một đặc tính phổ biến robot là khả tiếp nhận các từ cần tìm thu thập liệu Tuy nhiên số người cho đặc tính này không đáng hoan nghênh hai lý : Đầu tiên, các tác vụ tìm kiếm người sử dụng cuối (end - user) góp phần đẩy server vào chỗ quá tải Thứ hai, không có sở đảm bảo có mối quan hệ các từ cần tìm, đúng chính tả và tối ưu sở liệu Ví dụ, tìm kiếm không hỗ trợ các toán tử boolean, user cần liệu xe máy muốn có thông tin đúng thay vì nhập vào cụm từ ‘Ford and garage’ phải nhập vào từ ‘car’ Nhưng người đó không ý thức điều này (19) Một khía cạnh nguy hiểm bắt nguồn từ định hướng sai lầm end – user Một số người sử dụng công cụ mình tốt dự đoán lượng tài liệu lớn có thể có, biết chính xác nơi cần tìm liệu, giới hạn thời gian sử dụng robot, đó số khác lại lạm dụng khả robot cách vô tình cố ý Vì các tác giả viết robot đề nghị nên phân phát sản phẩm mình cho end-user ‘hiểu‘ web robot và khó khăn môi trường mạng 4.1.3 Những tình không mong đợi – Bad implementations Thay vì kiểm tra trên máy cục trước, số tác giả lần đầu tiên viết robot cho thử trên các server thực sự, điều này làm đau đầu không ít nhà quản trị web (web master) Truy xuất trùng lặp có thể xảy robot không lưu lại dấu vết nơi nó đã qua nó không nhận diện các URL mặc dù khác tên lại cùng dẫn đến địa chỉ, ví dụ địa DSN & IP Đôi khi, robot lãng phí thời gian và tài nguyên để thu tài liệu mà sau đó phải vứt Ví dụ hệ thống quan tâm đến file văn (text file) robot lại nhận loại file khác file hình ảnh, file thực thi, … Trong môi trường mạng có vùng gần vô tận Ví dụ, lần phân tích trang robot nhận cùng URL xa cấp, ‘/cgi-bin/pit/’, và tiếp tục ‘/cgi-bin/pit/a/’, ‘/cgi-bin/pit/a/a’, … Sự lặp lại không có điểm dừng này gọi là các lỗ đen (black holes) 4.2 Tiêu chuẩn loại trừ robot Trong quá trình xử lý robot không thể tự định tài liệu nào lập mục, tài liệu nào không đó nó lấy tất gì có thể Thậm chí dù xác định (20) tài liệu vô ích thì nó đã bỏ chi phí đáng kể cho hoạt động thu thập Tiêu chuẩn loại trừ robot đời Các chuẩn này URL nào cần tránh mà còn cảnh báo robot các lỗ đen 4.2.1 File robot.txt Robot.txt là file cấu trúc đặt thư mục gốc server, gồm trường User-agent và Disallow User-agent : cho biết robot nào bị kiểm soát Disallow : cho biết robot có phép kết nối vào URL này hay không Xét các ví dụ sau : Ví dụ # / robots.txt file for Ý nghĩa Ký tự # bắt đầu chú thích http://webcrawler.com/ User-agent: webcrawler Robot có tên là webcrawler có thể đến trang nào Disallow: site User-agent: lycra Robot có tên là lycra bị cấm trên tất các trang site Disallow: / User-agent: * Mọi robot không truy xuất vào thư mục tmp và Disallow: /tmp logs Disallow: /logs Bảng 2.1 :Ví dụ chuẩn loại trừ robot dùng file robot.txt (21) 4.2.2 Thẻ META dành cho robot – Robot META tag META tag là mở rộng chuẩn loại trừ robot, hỗ trợ cho tác giả trang web không có quyền admin Vị trí Nằm phần HEAD file HTML Cú pháp <meta name = ‘robots’ content = ‘index, follow’> Tên trường Ý nghĩa Meta Thẻ báo hiệu bắt đầu Name Tên robot bị kiểm soát Content Cờ định hướng cho robot, các cờ này có thể kết hợp với & phân cách dấu phẩy Bảng 2.2 : Bảng thông tin META tag chuẩn loại trừ robot Các cờ thuộc tính Content [NO]INDEX Ý nghĩa Robot không nên lập mục cho trang này [NO]FOLLOW Robot không nên lấy các liên kết trang này (22) ALL = INDEX, FOLLOW NONE= NOINDEX, NOFOLLOW Bảng 2.3 : Bảng giá trị các cờ thuộc tính Content META tag 4.2.3 Nhược điểm file robot.txt Người ta cho việc liệt kê các trang các thư mục file robot.txt là nguyên nhân thu hút chú ý từ các ‘vị khách không mời‘ Thực chuẩn loại trừ robot là dấu hiệu cảnh báo, không là biện pháp cấm robot cho nên việc tuân theo hay không hoàn toàn là vấn đề tự nguyện Tuy nhiên ta có cách khắc phục : Một là : Tạo thư mục chứa tất các file quan trọng Trường Disallow liệt kê tên thư mục vừa tạo Cấu hình server cho các trang không chứa đường dẫn đến thư mục này Đáng buồn trên thực tế cách này không đạt kết mong đợi các nguyên nhân sau : Các server có robot không bị cấm có thể dẫn đường các robot bị cấm khác đến file này Các file quan trọng có thể nằm log file (file tự truy xuất) Khi cấu hình lại server, admin có thể ‘quên‘ các thư mục này phải cấm robot! ………………………………………… (23) Hai là: chứng thực (athorization) Đây là biện pháp hữu hiệu, sử dụng nhiều lĩnh vực, đặc biệt môi trường mà an toàn liệu trở nên cần thiết Tóm tắt : Có thể nói web robot là dao lưỡi, sử dụng đúng giải nhiều vấn đề, sử dụng sai để lại hậu khó đoán Sau đây là tóm tắt cho vấn đề cần lưu ý web robot Tránh lãng phí tài nguyên Chỉ tải tài liệu cần thiết Nếu hệ thống quan tâm đến các file text (.html, htm, xml, …), web robot nên bỏ qua các liên kết dẫn đến file thực thi (.exe, …), file ảnh (.gif, bmp, …) Bỏ qua các trường liệu hệ thống không dùng đến Đừng lấy các trang giống nhiều lần Tránh cập nhật lại các site cũ quá thường xuyên cách : Ghi nhớ địa web robot đã duyệt qua Dựa vào trường LastModified, trường head Nếu các trường này khác với liệu ta đã có thì đó là thông tin cần ghi nhận Không nên duyệt hết site, cần duyệt đến độ sâu (deep link) cần thiết Tránh làm quá tải server (24) Duy trì khoảng thời gian đợi các lần truy xuất liên tiếp Kết nối với server vào thời điểm thích hợp Tham khảo ý kiến admin để biết thông tin này Kiểm tra web robot trên máy cục bộ, sửa lỗi trươc chạy trên server thực Tuân theo các luật loại trừ robot (25) Chương 3: BỘ LẬP CHỈ MỤC – INDEX Khái quát hệ thống lập mục Các trang Web sau thu thập phân tích, trích chọn thông tin cần thiết (thường là các từ đơn , từ ghép , cụm từ quan trọng) để lưu trữ sở liệu nhằm phục vụ cho nhu cầu tìm kiếm sau này Mô hình xử lý tổng quát hệ thống trình bày sau: (26) Danh sách các trang Web cần lập mục Danh sách các từ stop-word CSDL mục thông tin Lọc các thông tin thừa, chuyển tài liệu dạng văn Tách văn thành các từ Loại bỏ stop-word Tính trọng số và loại bỏ từ có trọng số thấp Loại bỏ hậu tố Lập mục TỪ ĐIỂN Danh sách các hậu tố Hình 3.1 Lưu đồ xử lý cho hệ thống lập mục (27) Lập mục là quá trình phân tích và xác định các từ , cụm từ thích hợp cốt lõi có khả đại diện cho nội dung tài liệu Như vậy, vấn đề đặt là phải rút trích thông tin chính, có khả đại diện cho nội dung tài liệu Thông tin này phải “vừa đủ”, nghĩa là không thiếu để trả kết đầy đủ so với nhu cầu tìm kiếm, phải không dư để giảm chi phí lưu trữ và chi phí tìm kiếm và để loại bỏ kết dư thừa không phù hợp Việc rút trích này chính là việc lập mục trên tài liệu Trước đây , quá trình này thường các chuyên viên đã qua đào tạo thực cách “thủ công “ nên có độ chính xác cao Nhưng môi trường đại ngày nay, với lượng thông tin khổng lồ thì việc lập mục tay không còn phù hợp, phương pháp lập mục tự động mang lại hiệu cao Một thủ tục lập mục tự động cho các tài liệu tiếng Anh có thể xử lý sau: [III.1] Step of tokenization: Tách văn thành các chuỗi nhờ vào khoảng trắng, chuỗi xem là từ Step of removal of stop words: bỏ từ thường xuyên xuất hầu hết các tài liệu lại không quan trọng các tài liệu tính từ, đại từ Step of stemming: loại bỏ các hậu tố (suffixes) để đưa các từ gốc Các từ thu lập mục Tuy nhiên hai bước đầu cần cho quá trình lập mục cho các tài liệu tiếng Việt, bước thứ ba không cần vì tiếng Việt thuộc dòng ngôn ngữ đơn thể (28) Tổng quan phương pháp lập mục ([I.1], [I.2], [II.1]) Phương pháp lập mục gồm phần chính yếu sau : đầu tiên là xác định các mục từ , khái niệm mà có khả đại diện cho văn lưu trữ (bao gồm việc tách từ, loại bỏ stop-word, xử lý hậu tố…) thứ hai là xác định trọng số cho mục từ , trọng số này là giá trị phản ánh tầm quan trọng mục từ đó văn 2.1 Xác định mục từ quan trọng cần lập mục ([I.1]) Mục từ hay còn gọi là mục từ mục, là đơn vị sở cho quá trình lập mục Mục từ có thể là từ đơn, từ phức hay tổ hợp từ có nghĩa ngữ cảnh cụ thể Ta xác định mục từ văn dựa vào chính nội dung văn đó , dựa vào tiêu đề tóm tắt nội dung văn đó Hầu hết việc lập mục tự động bắt đầu với việc khảo sát tần số xuất loại từ riêng rẽ văn Nếu tất các từ xuất hiên tập tài liêu với tần số băng nhau, thì không thể phân biệt các mục từ theo tiêu chuẩn định lượng Tuy nhiên, văn ngôn ngữ tự nhiên, tần số xuất từ có tính thất thường, Do đó mục từ có thể phân biệt tần số xuất hiên chúng Đặc trưng xuất từ vựng có thể định số “thứ hạng - tần số” (Rank_Frequency ) theo luật Zipf : Tân số xuất hiên * thứ hạng = Hằng số (29) Biểu thức luật Zipf có thể dẫn hệ số ý nghĩa từ dựa vào đặc trưng tân số xuất mục từ riêng lẽ văn tài liệu Một đề xuất dựa theo xem xét chung sau: Cho tập hợp n tài liệu, tài liệu tính toán tần số xuất các mục từ tài liệu đó Fik (Frequency): tần số xuất mục từ k tài liệu i Xác định tổng số tập số xuất TFk (Total Frequency) cho từ cách cộng tần số mục từ trên tất n tài liệu n TFk = ∑ Fik i=1 Sắp xếp thứ tự giảm theo tập tần số xuất chúng Quyết định giá trị ngữơng cao và loại bỏ tất từ có tập tần số xuất cao trên ngững Những từ bị loại bỏ là từ xuất phổ biến hầu hết các tài liệu Đó chính là các stop-word Tương tư, loại trừ từ xem là có tần số xuất thấp Việc xoá mục từ xảy tập hợp mà mặt chúng không làm ảnh hưởng lớn đến việc thực truy vấn Những từ xuất trung bình còn lại bây dùng cho việc ấn định tới tài liệu mục từ mục Chú ý: khái niệm xuất ít hai lần cùng đoạn thì xem là khái niệm chính Một khái niệm xuất hai đoạn văn liên tiếp xem là khái niệm chính mặc dù nó xuất lần đoạn (30) xét Tất chú giải khái niệm chính liệt kê theo tiêu chuẩn định nào đó Thực tế cho thấy ý tưởng trên khá cứng nhắc , vì lọai bỏ tất từ có tần số xuất cao làm giảm giá trị recall (độ tương tự), tức giảm hiệu việc trả số lượng lớn mục tin thích đáng Ngược lại, loại bỏ mục từ có tần số xuất thấp có thể làm giảm giá trị độ chính xác Một vấn đề khác là cần thiết để chọn ngưỡng thích hợp theo thứ tự để phân biệt mục từ hữu ích có tần số xuất trung bình phần còn lại 2.2 Một số hàm tính trọng số mục từ ([I.1]) Trọng số mục từ: là tần xuất xuất mục từ toàn tài liệu Phương pháp thường sử dụng để đánh giá trọng số từ là dựa vào thống kê, với ý tưởng là từ thường xuyên xuất tất cảcác tài liệu thì “ít có ý nghĩa hơn” là từ tập trung số tài liệu Ta xét các khái niệm sau: Gọi T={t1,t2, ,tn} là không gian mục, với ti là các mục từ Một tài liệu D lập mục dựa trên tập T biểu diễn dạng: T(D)={w1,w2, wn} với wi là trọng số ti tập tài liệu D Nếu wi=0 nghĩa là ti không xuất D mục từ ti ít quan trọng tài liệu D ta không quan tâm tới T(D) gọi là vector mục D, nó xem biểu diễn cho nội dung tài liệu D và lưu lại sở liệu hệ thống tìm kiếm thông tin để phục vụ cho nhu cầu tìm kiếm (31) Mặc dù T(D) biểu diễn nội dung tài liệu D không phải từ nào có D xuất T(D) mà có từ có trọng lượng (có ý nghĩa quan trọng tài liệu D) lập mục cho D Sau đây ta xét số hàm tính trọng số mục từ 2.2.1 Nghịch đảo trọng số tần số tài liệu (The Inverse Document Frequency Weight) wk nDock : là trọng lượng mục từ k : tổng số tài liệu mà mục từ k xuất nki : số lần xuất mục từ k tài liệu i nk : số lần xuất mục từ k toàn tập tài liệu nDoc : tổng số tài liệu idfk : giá trị nghịch đảo tần số tài liệu (Inverse Document Frequency) Trọng lượng mục từ k : Wk= idf k = log nDoc +1 nDock Như vậy, trọng số mục từ k tăng lên tần số xuất mục từ k các tài liệu i tăng lên giảm xuống số xuất mục từ k tập tài liệu (nDock) tăng lên Biểu thức tổng hợp : wk = nik* [log2 (n)-log2(nDOCk)+ 1] (32) Hàm này gán độ quan trọng cao cho mục từ xuất số ít tài liệu tập hợp tài liệu (đề cao độ phân biệt) 2.2.2 Độ nhiễu tín hiệu (Signal Noise): Trọng số từ đo lường tập trung hay phân tán từ Ví dụ từ "hardware" xuất 1000 lần 200 tài liệu ( tập trung ) thì có trọng lượng cao từ "computer" xuất 1000 lần 800 tài liệu Độ nhiễu mục từ k: noisek = (nki / nk ).log2 (nki / nk ) i=1,nDoc Hàm số nghịch đảo độ nhiễu gọi là độ signal có thể dùng để tính trọng lượng mục từ k : wk =signalk = log2( nk ) - noisek 2.2.3 Giá trị độ phân biệt mục từ : Không muốn kết việc tìm kiếm lại trả tập tất các tài liệu có tập hợp (nghĩa là tập mục các tài liệu chứa nhiều từ giống nhau) Độ phân biệt mục từ là giá trị phân biệt mức độ tương đương các tài liệu Nếu mục từ có mục mà làm cho độ tương tự các tài liệu cao thì nó có độ phân biệt kém (nghĩa là từ này thường xuyên xuất các tài liệu) và ngược lại Như vây các mục từ có độ phân biệt cao nên chọn để lập mục Thực chất việc sử dụng độ phân biệt này cho kết tương đương với việc sử dụng tần số nghịch đảo và tỉ lệ tín hiệu nhiễu (33) Gọi Sim(Di,Dj) là độ tương tự cặp tài liệu Di, Dj Độ tương tự trung bình tính trên tất các cặp tài liệu: Arv_Sim = Sim(Di,Dj) i ≠ j Gọi Arv_Simk là độ tương tự trung bình tính trường hợp mục từ k bị loại bỏ khỏi tập mục Khi đó trọng lượng mục từ k có thể tính theo giá trị độ phân biệt DiscValueK theo công thức: wk = DiscValueK = Arv_Simk - Arv_Sim Phép tính DiscValueK cho tất mục từ k, mục từ có thể xếp theo thứ tự giảm giá trị phân biệt DiscValue K Những mục từ mục có thể thuộc ba nhóm dựa theo giá trị độ phân biệt chúng sau: Độ phân biệt tốt đối vơi DiscValueK dương, mục từ có độ phân biệt cao Đối với DiscValueK gần 0, độ phân biệt các tài liệu không khác thêm vào hay bớt mục từ đó Độ phân yếu DiscValueK âm, mục từ có độ phân biệt thấp (độ tương tự cao ) 2.2.4 Kết hợp tần số xuất mục từ và nghịch đảo tần số tài liệu Phần này đề cập đến số biến thể tần số xuất mục từ tf(Term Frequency) và kết hợp với idf để xác định tầm quan trọng mục từ (34) f(t,d) : tần số xuất mục từ t tài liệu d N : tổng số tài liệu tập liệu n : tổng số tài liệu có mục từ t Max[f(t,d)]: số lần xuất cao mục từ t toàn tập tài liệu tf(Term Frequency) là tần số xuất mục từ tập tài liệu, có thể xác định nhiều công thức khác nhau: tf = f(t,d) tf = f(t,d)/Max[f(t,d)] tf = log2(f(t,d)) tf = log2(f(t,d) +1) tf = ln f(t,d) +1 … idf(Inverse Document Frequency) : là tần số nghịch đảo tần số xuất các tài liệu và tính sau: idf = log2(N/n) idf = log2((N-n)/n) idf = log2(N/n)*2 …… Mỗi công thức trên mang ý nghĩa riêng trường hợp cụ thể, kết hợp tf và idf xác định mức độ quan trọng mục từ cần xét (35) Wit = tf * idf Sự kết hợp hai tiêu chuẩn này cho biết: tầm quan trọng mục từ (do tf mang lại) và phân biệt các mục từ (do idf mang lại) Một mục từ có tầm quan trọng lớn thì giá trị Wit nó phải lớn 2.3 Lập mục tự động cho tài liệu Vấn đề chính lập mục tự động là xác định tự động mục từ mục cho các tài liệu Trong các ngôn ngữ gốc Ấn – Âu thì tách từ có thể nói là đơn giản vì khoảng trắng là ký tự để phân biệt từ Vấn đề cần quan tâm là xác định từ này là từ khoá, có thể đại diện cho toàn nội dung tài liệu Loại bỏ các từ stop-word có tần số xuất cao, từ này thường chiếm đến 40-50% số các từ văn Những từ này có độ phân biệt kém và không thể sử dụng để xác định nội dung tài liệu Trong tiếng Anh, có khoảng 250 từ Số lượng từ này không nhiều nên giải pháp đơn giản là lưu các từ này vào tự điển, và sau đó cần thực so sánh từ cần phân tích với từ điển để loại bỏ Bước là nhận các mục tốt Để giảm bớt dung lượng lưu trữ, các mục từ cần biến đổi nguyên gốc (step of stemming tiếng Anh), Phải loại bỏ các tiền tố, hậu tố, các biến thể số nhiều, quá khứ…Giải pháp là sử dụng danh sách các hâu tố Trong loại bỏ hậu tố thì hậu tố dài ưu tiên loại bỏ trước, sau đó loại bỏ hậu tố ngắn Sau đây là số vấn đề loại bỏ tiếng Anh: Chỉ rõ chiều dài tối thiểu từ gốc sau loại bỏ hậu tố Ví dụ: việc loại bỏ hậu tố “ability” khỏi “computability” hay loại bỏ “ing” (36) khỏi “singing” là hợp lý Tuy nhiên, hậu tố đó không cần phải loại bỏ các từ “ability” và “sing” Nếu nhiều hậu tố kết hợp vào gốc thì ta áp dụng đệ quy cho quá trình loại bỏ hậu tố vài lần lập từ điển hậu tố loại bỏ hậu tố dài trước đến các hậu tố ngắn sau Ví dụ: “effectiveness” “effective” “effect” Trong tiếng Anh, từ gốc có thể bị biến đổi sau đã loại bỏ hậu tố Do đó, ta cần phải có luật định để phục hồi từ gốc Chẳng hạn loại bỏ hai kí tự trùng từ có xuất b, d, d, l, m, n, p, r, s, t cuối các từ gốc sau đã loại bỏ hậu tố Ví du “beginning” “beginn” “begin” Một số ngoại lệ phụ thuộc vào ngữ cảnh đặc biệt phải chú ý, sử dụng các quy tắc cảm ngữ cảnh Ví dụ: quy tắc cho hậu tố “allic” rõ chiều dài cực tiểu từ gốc là ba và không loại bỏ hậu tố sau “met” “ryst”, quy tắc loại bỏ hậu tố “yl” sau “n” “r” Tóm lại, giải vấn đề hậu tố không quá khó chúng ta có sẵn danh sách chứa các hậu tố, danh sách chứa các luật thêm các hậu tố và phục hồi từ gốc sau thêm hậu tố Lập mục cho tài liệu tiếng Việt ([III.1], [II.1], [II.2], [II.3], [II.4], [IV.11], [IV.12]) 3.1 Khó khăn cho việc lập mục tiếng Việt Các điểm khó khăn thực quá trình lập mục cho tài liệu tiếng Việt so với tài liệu tiếng Anh mà chúng ta phải giải : (37) Xác định ranh giới các từ câu Đối với tiếng Anh điều này quá dễ dàng vì khoảng trắng chính là ranh giới phân biệt các từ ngược lại tiếng Việt thì khoảng trắng không phải là ranh giới để xác định các từ mà là ranh giới để xác định các tiếng Chính tả tiếng Việt còn số điểm chưa thống sử dụng "y" hay "i" ( ví dụ "quý" hay "quí" ), cách bỏ dấu ( "lựơng" hay "lượng" ), cách viết hoa tên riêng( "Khoa học Tự nhiên" hay "Khoa Học Tự Nhiên") đòi hỏi quá trình hiệu chỉnh chính tả cho văn cần lập mục và cho từ điển mục Tồn nhiều bảng mã tiếng Việt đòi hỏi khả xử lý tài liệu các bảng mã khác Cách giải là đưa tất bảng mã chuẩn hệ thống Sự phong phú nghĩa từ (từ đa nghĩa) Một từ có thể có nhiều nghĩa khác ngữ cảnh khác nên việc tìm kiếm khó có kết với độ chính xác cao Từ đồng nghĩa từ gần nghĩa: có nhiều từ khác lại có cùng ý nghĩa Do đó, việc tìm kiếm theo từ khoá thường không tìm thấy các websites chứa từ đồng nghĩa gần nghĩa với từ cần tìm Vì vậy, việc tìm kiếm cho kết không đầy đủ Có quá nhiều từ mà mật độ xuất cao không mang ý nghĩa cụ thể nào mà là từ nối, từ đệm mang sắc thái biểu cảm từ láy Những từ này cần phải xác định và loại bỏ khỏi tập các mục từ Nó giống stop-word tiếng Anh (38) Các văn có nội dung chính là vấn đề cụ thể, đề tài nghiên cứu khoa học đôi trọng số các từ chuyên môn này thấp so với toàn tập tài liệu Vì vậy, số thuật toán tính trọng số bỏ sót trường hợp Kết là các từ chuyên môn đó không lập mục Trong các vấn đề trên thì vấn đề xác định ranh giới từ câu là quan trọng vì nó ảnh hưởng lớn đến hiệu quá trình lập mục ( quá trình tách từ sai có nghĩa là nội dung câu bị phân tích sai ) và là vấn đề khó khăn Các vấn đề còn lại là tuý mặt kỹ thuật mà chúng ta có thể giải cách triệt để 3.2 Đặc điểm từ tiếng Việt và việc tách từ 3.2.1 Đặc điểm từ tiếng Việt: Tiếng Việt là ngôn ngữ đơn lập Đặc điểm này bao quát tiếng Việt mặt ngữ âm, ngữ nghĩa, ngữ pháp Khác với các ngôn ngữ Ấn-Âu, từ là nhóm các ký tự có nghĩa cách khoảng trắng Còn tiếng Việt, và các ngôn ngữ đơn lập khác, thì khoảng trắng không phải là để nhận diện từ 3.2.1.a Tiếng: Trong tiếng Việt trước hết cần chú ý đến đơn vị xưa quan gọi là tiếng Về mặt ngữ nghĩa, ngữ âm, ngữ pháp, có giá trị quan trọng Sử dụng tiếng để tạo từ có hai trường hợp: Trường hợp tiếng: đây là trường hợp tiếng dùng làm từ, gọi là từ đơn Tuy nhiên không phải tiếng nào tạo thành từ (39) Trường hợp hai tiếng trở lên: đây là trường hợp hai hay nhiều tiếng kết hợp với nhau, khối kết hợp với gắn bó tương đối chặt chẽ, có tư cách ngữ pháp là từ Đây là trường hợp từ ghép hay từ phức 3.2.1.b Từ: Có nhiều quan niệm từ tiếng Việt , từ nhiều quan niệm từ tiếng Việt khác đó chúng ta có thể thấy đặc trưng "từ " là hoàn chỉnh mặt nội dung, từ là đơn vị nhỏ để đặt câu Người ta dùng "từ" kết hợp thành câu không phải dùng "tiếng" đó quá trình lập mục cách tách câu thành các "từ" cho kết qua tốt là tách câu “tiếng” 3.2.2 Tách từ Việc xác định từ tiếng Việt là khó và tốn nhiều chi phí Do đó, cách đơn giản là sử dụng từ điển lập sẵn Tách tài liệu thành các từ, loại bỏ các từ láy, từ nối, từ đệm, các từ không quan trọng tài liệu Một câu gồm nhiều từ ghép lại, nhiên câu có thể có nhiều cách phân tích từ khác Ví dụ : xét câu "Tốc độ truyền thông tin tăng cao" có thể phân tích từ theo các cách sau: Tốc độ / truyền/ thông tin / / tăng cao Tốc độ / truyền thông / tin / / tăng cao Hiện đã có nhiều giải pháp cho vấn đề này với kết thu cao Tuy nhiên thời gian, chi phí tính toán, xử lý lớn không thích hợp cho việc lập mục cho hệ thống tìm kiếm thông tin vì số lượng tài liệu phải xử lý là lớn (40) Cách giải quyết: lập mục cho các từ có thể có tài liệu Ví dụ câu trên ta nên lập xem xét các từ : tốc độ, truyền , truyền thông ,thông tin, tin , , tăng cao Sau đó dùng ngưỡng chặn để loại bỏ các từ, giả sử từ "truyền thông" không phải là từ xuất thật tài liệu (chỉ có kết hợp ngẫu nhiên từ "truyền" và "thông tin") thì xác suất xuất từ này tài liệu không cao nên tính toán trọng lượng thì từ này bị loại bỏ Một từ tiếng Việt là kết hợp hai hay nhiều tiếng Phương pháp xác định từ ghép lại thông qua nhiều tiếng dựa trên việc xem xét độ gắn kết (cohesion) chúng: Cohension(nij) = size_factor*pair_freqij/(ni*nj) Trong đó: size_factor: kích thước tập mục pair_freqij : tần số xuất từ ni , nj : tần số xuất tiếng i, j Hai tiếng có khả tạo thành từ cao chúng thường xuất chung với nhau, nghĩa là cohension chúng cao Phương pháp này không tách từ chính xác hoàn toàn có thể chấp nhận hệ thống tìm kiếm thông tin vì quá trình lập mục cần xác định đúng các từ có trọng lượng cao, trường hợp việc tách từ là sai thì từ sai lập mục nó có trọng lượng cao, việc lập mục từ sai làm tăng chi phí lưu trữ có lẽ không ảnh hưởng lớn tính chính xác kết tìm kiếm vì dù từ này có trọng lượng lớn (41) Còn trường hợp từ ghép tách thành nhiều từ đơn ví dụ từ "thông tin" lập mục luôn có từ "thông", "tin", "thông tin" , điều này gây ảnh hưởng đến tính chính xác việc lập mục vì thực các từ "thông", "tin" không cần thiết lập mục.Ta giải vần đề này cách từ "thông tin" lập mục thì đó số lần xuất các từ "thông" và "tin" tính toán lại cách trừ các trường hợp đã xuất từ "thông tin" để tính toán trọng lượng cho các từ đơn Nếu từ đơn "tin" luôn xuất từ "thông tin" thì số lần xuất từ "tin" và "thông tin" là nên lập mục cho từ "thông tin" thì số lần xuất riêng từ đơn "tin" nên không lập mục 3.3 Giải các vấn đề hiển thị tiếng Việt (vấn đề chính tả) 3.3.1 Vấn đề bảng mã Sự tồn nhiều bảng mã ( TCVN3, VNI ) dẫn đến việc phải chuyển nội dung các tài liệu viết trên các bảng mã khác bảng mã chuẩn cho hệ thống tìm kiếm thông tin xử lý (lập mục), việc chuyển đổi này là đơn giản trường hợp ta biết bảng mã tài liệu, vấn đề khó khăn là làm cho hệ thống tìm kiếm thông tin nhận tài liệu sử dụng bảng mã nào? Khi phân tích trang tài liệu HTML, dựa vào thông tin <charset> thì có thể biết bảng mã nào sử dụng, ví dụ: charset = UTF-8 thì đó là bảng mã Unicode Tuy nhiên, tài liệu có thể sử dụng nhiều bảng mã khác nên không thể xác định bảng mã tài liệu theo cách trên Ta có thể áp dụng phương pháp phân tích từ khoá để xác định bảng mã sau: dựa trên thống kê số lần xuất (42) các ký tự đặc biệt theo bảng mã, bảng mã nào có tần số sử dụng nhiều thì xem trang đó sử dụng bảng mã đó Thật ra, không cần phải xác định bảng mã có thể lập mục cho hệ thống cách chuyển mã tài liệu sang kiểu định dạng, theo bảng mã quy định hệ thống tìm kiếm Trong thực tế, các bảng mã có phần chung và phần các ký tự đặc biệt là khác Do đó, nhằm hạn chế thời gian và chi phí xử lý, ta chuyển ký tự khác bảng mã quy định Các bước thực sau: Đọc từ, là từ mang dấu tổ hợp nguyên âm hay dấu thì thực so sánh với tất các bảng mã chuẩn để xác định bảng mã từ đó Nếu bảng mã đó không trùng với bảng mã quy định hệ thống thì thực chuyển từ bảng mã đó sang bảng mã quy định Cứ vậy, tiếp tục hết văn và dừng Có thể dùng bảng mã thông dụng nào đó để làm bảng mã quy định cho hệ thống, chẳng hạn Unicode vì theo xu hướng chung thì số lượng các trang web, tài liệu dùng Unicode lớn và tăng nhanh, nên hạn chế số lượng các trang web cần chuyển đổi 3.3.2 Vấn đề dấu Do cách bỏ dấu tiếng Việt chưa thống nên có cùng từ lại có nhiều các bỏ dấu khác nhau, ví dụ "thuý" và "thúy", rõ ràng hệ thống tìm kiếm thông tin cần nhận hai từ này là Phương pháp giải dựa trên đặc điểm từ đơn tiếng Việt có dấu nên ta chuyển dấu từ sau cùng, ví dụ: quý ->thuy1 qúy -> thuy1 (43) Khi đó tất các từ giống cho dù bỏ dấu khác thì qua quá trình xử lý cho chuỗi kí tự giống thuận tiện cho việc so sánh từ 3.3.3 Vấn đề dấu tổ hợp nguyên âm Một tài liệu hay câu truy vấn không thể tránh khỏi trường hợp bỏ thiếu dấu tổ hợp nguyên âm Ví dụ: nuớc(nước), trừong(trường),…Như vậy, ta cần phải xây dựng module xác định và sửa lỗi cho từ Giải pháp đề nghị đây là chuyển các từ định dạng riêng, gồm hai phần: phần đầu là các ký tự không dấu, phần sau là dấu tổ hợp nguyên âm và dấu Giai đoạn chuyển mã thực chuyển các dấu tổ hợp nguyên âm và dấu cuối từ Ví dụ: hường truong772 hừơng truong772 hừong truong772 huờng truong772 Như vậy, dù dấu có bỏ vị trí nào thì cho chuỗi ký tự giống sau xử lý Ngoài ra, nó còn có khả phát từ mà người dùng gõ thiếu dấu tổ hợp nguyên âm Ví dụ: huờng huong72, chương trình tìm kiếm sở liệu và thấy đúng phần đầu, còn dấu thì chọn các tổ hợp gần có thể có từ điển như: hương huong77 hướng huong771 hường huong772 (44) hưởng huong773 hượng huong775 Trong tự điển tiếng Việt, không thể có các từ trưong hay truơng Nên người dùng chắn đã gõ thiếu và đó phải là từ truong772 (trường) 3.4 Giải các vấn đề từ tiếng Việt 3.4.1 Luật xác định các từ láy Từ láy không là từ có ý nghĩa quan trọng tài liệu Vì vậy, ta cần xác định từ láy để giảm số lượng các từ ghép cần lập mục Trong các loại từ láy thì láy hai là nhiều Vì vậy, ta cần phải xây dựng luật để xác định nó Mỗi luật tương ứng với loại từ láy: Từ láy hoàn toàn Ví dụ: xanh xanh =>Luật xác định từ láy hoàn toàn Từ láy phụ âm đầu Ví dụ: biêng biếc=>Luật xác định từ láy phụ âm đầu Từ láy vần Ví dụ: chót vót =>Luật xác định từ láy vần 3.4.2 Luật xác định các liên từ Liên từ đầu câu không đóng vai trò quan trọng tài liệu Hầu hết các trường hợp thì theo sau các liên từ đầu câu là dấu phẩy Ví dụ: Vì thê,…Do đó,…Ta có thể dựa vào cú pháp này để xây dựng luật xác định các liên từ để giảm số lượng từ cần lập mục (45) 3.5 Xây dựng từ điển tiếng Việt Việc xác định từ cho tiếng Việt thì phương pháp giải là dùng từ điển từ lập sẵn Tuy nhiên không thể có từ điển đầy đủ vì có từ có thể "sinh thêm" tương lai Ví dụ đời nhiều ngành khoa học công nghệ đòi hỏi phải phát sinh thêm từ để mô tả chúng , nhu cầu sử dụng tiếng nước ngoài ngày càng tăng dẫn đến tình trạng Việt hoá các từ thông dụng bit, bite, inch,… Do đó bên cạnh việc sử dụng từ điển đòi hỏi phải có phương pháp để phát thêm từ tiếng Việt chưa có từ điển để bổ sung cho từ điển Một "từ" tiếng Việt là kết hợp hai hay nhiều "tiếng" có thể dễ dàng xác định khoảng trắng, phương pháp xác định "từ" gồm nhiều "tiếng" ghép lại dựa trên việc xem xét độ gắn kết (cohesion) chúng: cohesionij = size_factor * pair_freqij / ( ni * nj ) Trong đó: size_factor : kích thước tập mục pair_freqị : tần số xuất từ ni, nj : tần số xuất tiếng i, j Sự kết hợp tiếng có khả cho từ cao cohesion chúng cao (2 tiếng thường xuất chung với thì nó có khả là từ) (46) Giải pháp đề nghị là dùng từ điển lập sẵn ,với chi phí thấp ta có thể lập từ điển tương đối đầy đủ mà kết chính xác nhiều Quá trình xác định thêm số từ thiếu có thể cài đặt phương pháp xác định từ ghép tự động đã nêu trên với tập tài liệu mẫu cho việc xác định từ ghép định, bổ sung thêm từ vào từ điển Tuy nhiên, xác định từ thì không thể thêm nó vào từ điển Vì làm dẫn đến tình trạng bùng nổ liệu Bởi vì từ là quá trình tách từ chưa hẳn là từ thật Do đó, ta xây dựng thêm từ điển phụ để chứa các từ này, sau khoảng thời gian kiểm tra các thông số như: Số lần xuất tất các tài liệu mà hệ thống xử lý Số tài liệu mà từ đó xuất … Nếu các thông số trên đạt tiêu chuẩn nào đó thì chính thức thêm nó vào từ điển chính và xoá nó khỏi từ điển phụ (47) Chương 4: BỘ TÌM KIẾM THÔNG TIN – SEARCH ENGINE Vì ta cần công cụ tìm kiếm (SE) ? Tưởng tượng ta muốn tìm vài sách thư viện lớn Với sức lực cá nhân ta không thể xem qua hết tất sách, vì ta cần danh mục sách Tương tự, tồn hàng triệu trang web trên giới và phút trôi qua số lượng đẩy lên càng nhiều hơn, cho dù ta có tay công cụ lướt web tuyệt vời đến đâu không thể duyệt hết Tuy nhiên, với trợ giúp SE, ta có thể chí xác định vị trí từ cần tìm các trang web khắp nơi trên giới Các phương thức tìm kiếm 2.1 Tìm theo từ khoá – Keyword searching Đây là phương pháp áp dụng với hầu hết các search engine Trừ tác giả trang web xác định từ khóa cho tài liệu mình, ngược lại điều này phụ thuộc vào search engine Như các search engine tự mình chọn và đánh mục cho từ mà chúng cho quan trọng có thể giúp phân biệt các tài liệu khác Các từ đề cập phần II chương II các từ lặp lại nhiều lần chú ý Một số site lập mục cho tất các từ có trang web, số khác chọn số đoạn văn Các hệ thống đánh mục trên toàn văn (full-text indexing systems) đếm số lần xuất từ tài liệu ngoại trừ các từ stopword Có công cụ tìm kiếm còn phân biệt chữ hoa lẫn chữ thường (48) 2.2 Những khó khăn tìm theo từ khoá Search engine thường gặp rắc rối với từ đồng âm khác nghĩa (ví dụ hard cider, hard stone, a hard exam, hard drive) từ có các biến thể khác có tiền tố và hậu tố big, bigger, student, students, … Bên cạnh đó search engine không thể trả các tài liệu chứa từ đồng nghĩa với các từ câu truy vấn 2.3 Tìm theo ngữ nghĩa – Concept-based searching Excite đã tiếng với chiến thuật tìm theo ngữ nghĩa đây chiến thuật này không còn sử dụng Không giống các hệ thống tìm theo từ khoá, hệ thống tìm theo ngữ nghĩa ‘đoán’ ý muốn người dùng thông qua câu chữ Tìm theo ngữ nghĩa hoạt động dựa trên hình thức gom nhóm tài liệu, phức tạp thì dựa vào ngôn ngữ học, các thuyết trí tuệ nhân tạo Excite tiếp cận dựa vào phương pháp tính toán cách đếm số lần xuất các từ quan trọng Khi nhiều từ cụm từ có nghĩa đặt gần tài liệu thì Excite cho chúng ám chủ đề nào đó Ví dụ, từ ‘heart‘ đứng gần các từ ‘attack‘ (cơn đau tim), ‘blood‘ (sự sống), ‘stroke‘ (sự say nắng), thì search engine xếp trang chứa các từ này vào chủ đề y học và sức khoẻ Ngược lại, từ ‘heart‘ đứng gần các từ ‘flowers’, ‘candy’, … thì search engine xếp trang chứa các từ này vào chủ đề trữ tình (49) Các chiến lược tìm kiếm Mọi người nhận xét web là nơi mà ta luôn có thông tin chủ đề gì Nhưng kết cuối cùng thường là lãng phí thời gian cho URL vô ích Do đó đã đến lúc ta nghĩ đến các chiến lược tìm kiếm Ta khởi đầu với đống thông tin trên chủ đề khá rộng ? Hoặc ta đã hình dung cụ thể gì cần tìm ? Hay ta muốn tìm địa đó ? Nếu phạm vi quan tâm ta quá rộng, ta nên xem xét các thư mục web (web directory) Nếu sau đó ta thu hẹp phạm vi cần tìm, hãy xem xét việc lựa chọn công cụ tìm kiếm thích hợp 3.1 Tìm thông tin với các thư mục chủ đề Giống tìm sách thư viện, cân nhắc tìm theo tác giả, tiêu đề, chủ đề, ta thường chọn chủ đề để có thể bao quát vùng thông tin rộng Ví dụ : ta muốn tạo trang chủ (home page) không biết cách viết file HTML nào, chí chưa tạo file ảnh, và không biết cách đẩy trang lên mạng Tóm lại ta cần thông tin cho chủ đề khá rộng xuất trang web (web publishing) Khi hoàn toàn xác định mình cần tìm gì ta nên thư mục web thư mục Yahoo Google,…vì thư mục web tập trung nhiều vào chủ đề quan tâm là công cụ tìm kiếm Gần đây các web site thường kết hợp thư mục web và các công cụ tìm với Ví dụ ta sử dụng Google để tìm thông tin và kết này nằm (50) thư mục web Google, Google cung cấp cho ta liên kết dẫn vào thư mục 3.2 Tìm thông tin với các công cụ tìm kiếm Một số công cụ tìm kiếm gặp rắc rối với liệu đầu vào người dùng Ví dụ : từ chứa các ký tự đặc biệt C++ , từ chứa stopword to be or not to be Xét ví dụ khác ít rõ ràng Giả sử ta là người thích tiểu thuyết trinh thám và muốn tìm trang nói các tác giả yêu thích Nếu đơn giản nhập vào các từ ‘mystery‘ và ‘writer’, phần lớn các search engine trả các liên kết dẫn đến các trang chứa từ trên Như có khả hàng trăm, chí hàng ngàn URL không mong muốn Tuy nhiên ta nhập vào cụm từ, kết khả quan 3.3 Tối ưu câu truy vấn Rất nhiều search engine áp dụng các toán tử Boolean (Boolean operators) các định vị trí (proximai locators) để tối ưu câu truy vấn Đó là các từ khoá sau : STT Từ khóa Ý nghĩa AND / phép toán + Mọi từ câu truy vấn phải có tài liệu OR Tài liệu chứa ít từ cần tìm NOT / phép toán - Tài liệu không chứa [các] từ sau từ khoá (51) NEAR Các từ cần tìm cách bao nhiêu ký tự tài liệu FOLLOWED BY / Các từ cần tìm phải đứng cạnh tài liệu ADJ Bảng 4.4 : Các từ khóa giúp tối ưu câu truy vấn 3.4 Truy vấn ví dụ Một điểm đáng kích lệ search engine là truy vấn ví dụ Sau liệt kê loạt các tài liệu cho là thoả yêu cầu người dùng, search engine còn ‘gợi ý‘ vài site có liên quan đến chủ đề ta quan tâm Nếu có thể ta hãy theo sau các liên kết này, biết đâu có kết khả quan! (52) Chương 5: MỘT SỐ SEARCH ENGINE THÔNG DỤNG TRÊN THẾ GIỚI VÀ VIỆT NAM Vài nét các đặc trưng số search engine thông dụng trên giới Search Google AlltheWeb AltaVista Teoma Engine Database google.com alltheweb.com altavista.com Kích thước(# Khoảng tỉ (1 Khoảng tỉ, Khoảng tỉ trang) tỉ không đánh mục trên toàn mục trên văn teoma.com Khoảng tỉ toàn văn bản) Đa phương Hỗ trợ Hỗ trợ Hỗ trợ Không hỗ trợ tiện (multimedia) Toán tử Mặc định AND AND AND AND Loại trừ - - - - Cụm từ Dùng dấu “ “ Dùng dấu “ ” Dùng dấu “ ” Dùng dấu “ “ (53) Rút gọn Không hỗ trợ Không hỗ trợ Dùng ký tự * Không hỗ trợ OR (chỉ dùng AND, OR, AND, OR, OR (chỉ dùng cho cho danh từ ANDNOT, ANDNOT, tên riêng) riêng ) RANK, () NEAR, () Dùng ký tự * để thay cho các ký tự dấu ““ Boolean Stop words Thông thường Dùng dấu “ “ Thông thường bỏ bỏ qua các từ search qua các từ thông thông dụng dụng + muốn tìm Bỏ qua + muốn tìm và phải đặt search nâng cao cặp dấu “ “ Danh từ riêng Không hỗ trợ Không hỗ trợ Hỗ trợ Không hỗ trợ Giới hạn field intitle:inurl: normal.title: title:domain: intitle:inurl: allintitle: url.all: link:image: site:geoloc:lang:l allinurl: link.all: text:url:host: ast: filetype: link.extension: anchor:applet: afterfate: cần tìm link:site: Trong search nâng cao : (54) cache:info: Các đặc tính ~ tìm từ đồng đặc biệt Duyệt qua các Giới hạn Dùng refine để nghĩa URL tối ưu kết Giới hạn Trong tìm nâng ngôn ngữ ngôn ngữ cao : ngày, vị trí, Trong tìm nâng các trang và Nhiều kiểu file : giới hạn pdf, doc,… Caches : trang Resource để có cao : sử dụng liên kết tập trung ngày, domain, sortby để lọc và trên chủ đề cần xếp kết tìm địa iP web đánh mục Ưu điểm Ưu điểm chính Rất tốt với Tốt trang có Google độ phổ biến cao Dùng nhiều Tính độ phổ biến toán tử Boolean tốt, dựa vào số Không có stop tìm kiếm lượng trang web word Trong tìm nâng cùng chủ đề với cao hỗ trợ hiển các trang thị kết theo xét Thường đạt Các trang tin tức gần đây độ phổ biến kết đáng khích lệ từ Search Engine Google AlltheWeb AltaVista Teoma Bảng 5.5 : Bảng hướng dẫn nhanh cách sử dụng các search engine phổ biến trên giới (55) Search engine Cơ sở liệu Toán tử Lực chọn tìm Linh tinh kiếm Google Toàn văn AND (mặc định) Dùng * để rút http://www.go các trang OR (danh từ web, pdf, ogle.com riêng) doc, xls, Hỗ trợ tìm + cho các stop ps, wpd kiếm nâng cao word thông (4.3B, + 1B dụng, cho các Hệ thống thư phần URL các mục chủ đề mục trang cụ thể (ví (Subject URLs) dụ +edu) Directory) Tin tức : cập - loại trừ Hệ thống thư nhật thường mục mở (Open xuyên (4500 Directory) nguồn ) gọn Kiểm lỗi chính tả Dùng “” tìm cụm Lưu trữ các từ trang đã lập fields : intitle:, mục inurl:, link:, site: Tốt cho tìm Tìm trên hệ thống các trang hay danh mục các chủ bị lỗi 404 đề thư mục Phiên dịch đến web ngôn ngữ Tìm các trang web ~ tìm từ đồng tương tự nghĩa Các dạng file ảnh Nhóm : Usenet từ 1981 đến AlltheWeb Toàn văn AND (mặc định) Không rút gọn Kiểm lỗi chính http://allthewe các trang OR, phải đặt các Dùng dấu “ “ cho tả web, pdf, b.com Tìm nâng cao : (56) Hỗ trợ tìm Flash, từ dấu “ “ cụm từ kiếm nâng cao (3.1B toàn ANDNOT, Field intitle:inurl: video mục RANK link:site: URLs) - để loại bỏ Trong tìm nâng Tin tức : cập cao : nhật thường giới hạn theo xuyên (3000 tranh ảnh, Hỗ trợ sử dụng kỹ thuật “clusters” để tối ưu câu truy vấn ngày, ngôn ngữ, nguồn) domain, file Tranh ảnh format, địa iP Video Audio FPT AltaVista Toàn văn AND (mặc định) Dấu * để rút gọn Kiểm lỗi chính http://altavista các trang Trong tìm nâng Dấu “” cho cụm web (khoảng cao danh từ từ com 1B) và file riêng tìm Tìm nâng cao : Hỗ trợ tìm pdf : AND, giới hạn ngày, kiếm nâng cao Hệ thống thư mục chủ đề (Subject Directory ) Hệ thống thư mục mở (Open tả Phiên dịch : ngôn ngữ Châu Âu & Tin tức (3000 OR, ANDNOT, ngôn ngữ nguồn), ảnh, NEAR, dấu () các ngôn ngữ MP3/Audio, lồng AltaVistaPrim Video - cho loại trừ a : tối ưu câu Châu Á hỏi (57) Directory) Teoma Toàn văn AND (mặc định) Không rút gọn Kiểm lỗi chính http://teoma.co trang web OR (danh từ (khoảng 1B) riêng) m Dùng dấu “ “ cho tả Hỗ trợ tìm + “” cho kiếm nâng cao stopword Field intitle:inurl: Refine để tối ưu câu hỏi site:geoloc:lang:la Resource để có st: - để loại bỏ cụm từ afterdate:beforeda te: betweendate: Gom nhóm kết các trang liên kết tập trung vào chủ đề Trong tìm nâng cao : giới hạn theo ngày, ngôn ngữ, domain, file format, địa iP AskJeeves Nhận kết Giống Teoma www.ask.com từ CSDL Đối với Teoma câu hỏi đơn Giống Teoma Click vào Remove tả Frame để thấy Tìm sản giản, xuất phẩm : cửa sổ đối thoại trang PriceGrabber.c Kiểm lỗi chính URLs các (58) om, Tìm tranh ảnh : Picsearch.com Tìm tin tức : Moreover.com AskJeeves for Trả lời tốt các Hỏi ngôn Click vào No Dẫn đến các Kids trang phục vụ câu hỏi đơn ngữ tự nhiên frames để thấy www.ajkids.co giản Không sử dụng URL trang kết học tập : tự điển, vật lý, Games cho trẻ các toán tử khoa học, em, Boolean m đồ, lịch sử,… Tin tức theo nhóm tuổi Bảng 5.6 : Sơ lược các đặc trưng số search engine thông dụng trên internet Meta-search Cơ sở liệu Toán tử engine Vivisimo Lực chọn tìm Linh tinh kiếm Netscape, http://vivisim MSN, AND(mặc Tìm trên chủ đề : Gom nhóm kết định), OR, - tin tức, thương (59) o.com Lycos,LookS mại, kỹ thuật, thể Tốt chủ mart, thao đề các kiện & nhiều khía … cạnh khác Dopgpile Google, http://dopgpil Yahoo, AltaVista, e.com Tìm nâng cao : Sắp xếp theo kết Kiểm lỗi chính tả AND, OR, Highlight từ cần ANDNOT Xoá các kết tìm kết trùng Gom nhóm kết Teoma/AskJe eves, About.com, FAST, Tốt chủ FindWhat, đề các kiện LookSmart & nhiều khía cạnh khác Bảng 5.7 : Các meta-search engine thông dụng trên internet Thư mục chủ Cơ sở đề liệu Yahoo Toán tử Lực chọn tìm kiếm Xem xét các AND(mặc định) Cụm từ : “” http://dir.yaho trang web (khoảng o.com 13K) Linh tinh Nhiều dịch vụ OR Rút gọn : * Yahoo: - Fields t: title, Tin tức : u:URL Thể thao :tỉ số, (60) Bản đồ, thời tiết, mua sắm Academic info Mức độ cao AND, OR(mặc Dẫn đến các http://academi đẳng nghiên cứu cinfo.net định), NOT, dấu chương trình () lồng mức độ cao (cũng hữu đẳng các ích cho trung site, các nguồn học) tài nguyên khác Được chọn hữu ích cho sinh và chú thích viên thủ thư Michael Madin (khoảng 25K) Bảng 5.8 : Các hệ thống thư mục theo chủ đề thông dụng trên internet 1.1 Thư mục Yahoo, Google Về chất là các danh mục chủ đề Sắp xếp các trang theo mức độ quan trọng chúng Tìm theo đề tài chủ đề (61) Google là công cụ tìm kiếm nhanh chóng ưa chuộng nhờ khả tìm nhanh và chính xác Ý tưởng chính công cụ này là đo lường độ quan trọng trang dựa vào số liên kết đến trang đó Nói cách khác nhiều webmaster cùng quan tâm đến website thì website đó xứng đáng đánh giá cao Yahoo đã dùng Google chức mình thới gian dài Kỹ thuật tìm kiếm Microsoft và MSN.com dựa trên kỹ thuật inktomi (inktomi đã áp dụng cho search engine tiếng năm 90 là Hobot) Microsoft đã nỗ lực việc tìm kỹ thuật cho riêng mình chưa thành công 1.2 Alltheweb Alltheweb là công cụ tìm kiếm mới, cho là công cụ dò tìm nhanh và hiệu các search engine khác nhờ lượng mục lớn Alltheweb đã sử dụng Yahoo 1.3 AltaVista Đã là công cụ tìm kiếm ưa chuộng bị đánh bại Google Mặc dù nó là search engine cho kết chính xác và Yahoo sử dụng 1.4 Lycos Được mô tả là cổng truy cập web (web portal) hay trung tâm truy cập, là nơi mà người dùng vào để lấy thông tin cho lĩnh vực, kể tán gẫu, gởi thư điện tử,… (62) 1.5 HotBot Đã đề cập trên, HotBot dựa trên kỹ thuật inktomi, là công cụ tìm kiếm chuyên biệt, cung cấp nhiều thông tin chính xác, nhanh chóng cho lĩnh vực thương mại và các mục đích chuyên môn, hứa hẹn thay cho các công cụ thường dùng khác khá tốt Một số search engine thông dụng Việt Nam 2.1 Netnam [IV.12] Là đơn vị thuộc viện hàn lâm - Viện Công nghệ Thông tin, Netnam đặc biệt chú trọng đến việc thiết kế hệ thống phù hợp với điều kiện sở vật chất - hạ tầng còn khiêm tốn Việt Nam Vì vậy, ưu tiên quan trọng các yêu cầu xây dựng hệ thống là khả tiết kiệm chi phí đầu tư sở hạ tầng kỹ thuật, đồng thời phải đáp ứng nhu cầu mở rộng cao Do đó Netnam SE thiết kế theo kiến trúc sử lý song song.với các khối chức hình đây Kiến trúc này cho phép hệ thống có thể phân tán trên từ đến hàng trăm máy tính, cho phép sử dụng các máy tính PC cỡ nhỏ thay cho các hệ máy tính chủ cao cấp Từ đó hệ thống cho phép tiết giảm chi phí tối đa việc xây dựng hạ tầng ban đầu, đồng thời nhu cầu tính toán yêu cầu phục vụ liên tục tăng, cần thêm các máy tính vào hệ thống để tăng cường khả xử lý và khả phục vụ liên tục mà không cần bổ sung thành phần nào khác Phần kiến trúc này giới thiệu mô hình chia sẻ tính toán song song hệ thống (63) Về mặt vật lý, các máy tính có thể kết nối với đơn giản hệ thống mạng Ethernet 10/100/1000Mbps Hệ thống cho phép thay đổi nóng (hotswap) một vài đơn vị vật lý (máy tính) mà không làm ảnh hưởng đến hoạt động toàn hệ thống, cho phép thực thay tự động một vài đơn vị vật lý hệ thống chúng gặp cố bất ngờ (64) Hình 5.2 Sơ đồ hệ thống Search Engine Netnam (65) Hệ thống chia thành ba tầng chính, gồm tầng Thu thập thông tin, Nhận dạng và chuyển đổi thông tin thành dạng text, Lập sở liệu cho các thông tin text Mỗi tầng chia thành nhiều đơn vị độc lập hoạt động theo kiểu chia sẻ tính toán và/hoặc dự trữ (redundant), từ đó tính tin cậy và hiệu hệ thống cho phép cao các hệ thống đòi hỏi tính tin cậy và hiệu cao.Đơn vị khai thác liệu tích hợp cùng với phần lập mục sở liệu, cho phép khai thác qua các clients sử dụng giao thức TCP/iP trên hệ thống nào (Windows, Unix ) Bằng việc chia hệ thống thành các khối chức phối hợp với thông qua các Bộ điều phối, hệ thống có thể phân tán để xử lý trên nhiều máy tính nhỏ thay vì tập trung toàn hệ thống trên máy tính lớn Vì vậy, mặt hệ thống cho phép sử dụng các máy tính cỡ nhỏ (PC PC server) cùng phối hợp tính toán xử lý, đó làm giảm nhiều chi phí đầu tư so với các hệ máy cỡ mini hay mainframe, và có thể đầu tư theo gia tăng nhu cầu thay vì đầu tư toàn lần ban đầu Mặt khác, nó cho phép, mặt nguyên tắc, lực tính toán, phục vụ thông tin hệ thống là không hạn chế ? nhu cầu tăng lên cần thêm máy tính vào hệ thống mà không phải thay đổi lại hệ thống Vì vậy, lượng liệu mà hệ thống có thể phục vụ, mặt nguyên tắc thiết kế hệ thống, cho phép lên đến hàng trăm triệu tài liệu 2.1.1 Phương pháp Netnam SE lập mục liệu Thông thường, NetNam lấy tất các từ tài liệu để lập mục, và trả kết tìm kiếm, NetNam Search Engine tìm tất các từ trang tài liệu đó, và hiển thị số từ đầu tiên bảng tóm tắt ngắn Với Netnam ta thể dùng thẻ META trang web để : Cung cấp thêm các từ khoá có ảnh hưởng đến kết tìm kiếm NetNam Search Engine (tác dụng tìm trang mà ta cần tìm) Đưa các miêu tả để hiển thị kết tìm kiếm (66) <META name="keywords" content="xe máy, ô tô, 100%"> Ví dụ, giả sử ta có trang web quảng cáo bán ô tô, xe máy 100%, trang search NetNam tự động các từ trang Tuy nhiên, có số từ cụm từ miêu tả dịch vụ lại không xuất trang Sử dụng thẻ META và ghi rõ tên="từ khoá" để thêm các cụm từ vào mục và làm tăng hội tìm kiếm cho người sử dụng muốn tìm trang web Miêu tả thẻ META cho phép ta tìm cái mà ta muốn tìm tóm tắt kết tìm kiếm Với trang bán xe mình, ta có thể muốn cụm từ quảng cáo ngắn sau: <META name="description" content="Bán xe máy và ô tô với chất lượng cao, bảo hành chu đáo, giá phù hợp."> NetNam Search Engine các từ thẻ miêu tả cùng với thẻ từ khoá Do đó ví dụ này, người sử dụng có thể tìm trang web ta cách tìm từ "chất lượng cao" "giá phù hợp", "bảo hành chu đáo" Thay vì hiển thị số dòng đầu trang web, kết tìm kiếm hiển thị văn thẻ miêu tả: Car Leasing Corp Bán xe máy và ô tô với chất lượng cao, bảo hành chu đáo, giá phù hợp http://www.vnmotors.com.vn/ - 3K ? 01/11/2001 Chú ý: các thẻ miêu tả và các thẻ từ khoá có thể dài tối đa là 1024 ký tự 2.1.2 Cú pháp tìm kiếm Cả hai chức tìm kiếm đơn giản và nâng cao sử dụng quy tắc cú pháp giống các cụm từ, phân biệt dạng chữ, và tìm từ liên quan (67) Từ và cụm từ NetNam Search Engine định nghĩa từ chuỗi chữ cái và số tách rời : Ký tự trắng, dấu cách, dấu tab, chấm xuống dòng, chỗ bắt đầu kết thúc tài liệu Các ký tự đặc biệt và hệ thống chấm câu, ví dụ %, $, /, #, và _ Ví dụ, hệ thống tìm kiếm NetNam giải thích và rõ từ Proliant, 60258, www, http, và XeMayCu từ riêng lẻ, vì chúng là chuỗi ký tự liên tiếp, bao quanh các ký tự không phải là chữ không phải là số Phần mềm tìm kiếm tất các từ mà nó tìm trang tài liệu web không quan tâm liệu từ đó có từ điển hay đánh vần sai hay không Tìm kiếm cụm từ Ta có thể tìm thấy các cụm từ, nhóm từ liên quan xuất cạnh Để tìm cụm từ, ta đóng mở ngoặc kép đầu và cuối cụm từ đó để tạo thành cụm từ Cụm từ đảm bảo NetNam Search Engine tìm các từ đúng (vị trí, thứ tự, không có từ chen ), không phải là tìm riêng từ Hệ thống chấm câu NetNam Search Engine bỏ qua hệ thống chấm câu trừ trườn g hợp phải thể hệ thống chấm câu đó là dấu chia cách các từ Đặt hệ thống chấm câu các ký tự đặc biệt các từ, và chúng không có dấu cách, là cách để tìm cụm từ Một ví dụ cho thấy hệ thống chấm câu hữu dụng việc tìm cụm từ đó là trường hợp tìm số điện thoại Ví dụ để tìm số điện thoại (68) 0903401357 ta gõ 09-0340-1357 thì dễ tìm là gõ theo kiểu "09 0340 1357", mặc dù đây là cú pháp có thể chấp nhận ít phổ biến Các từ có dấu nối CD-ROM, tự động làm thành cụm từ có dấu gạch nối Tuy nhiên, thông thường, sử dụng dấu ngoặc kép để tìm cụm từ là cách khuyến khích dùng là sử dụng hệ thống chấm câu, vì số ký tự đặc biệt còn có nghĩa phụ: Dấu + và - là toán tử giúp lọc kết tìm kiếm đơn giản &, |, ~ và ! là toán tử giúp lọc kết tìm kiếm nâng cao Phân biệt chữ thường/hoa Phân biệt dạng chữ là loại tìm kiếm dựa vào loại chữ mà ta gõ yêu cầu tìm kiếm mình vào Một yêu cầu chữ thường có kết tìm kiếm không theo dạng chữ ta gõ vào Ví dụ, ta gõ chữ yết kiêu vào ô yêu cầu, NetNam Search Engine tìm tất các biến thể từ yết kiêu, gồm có yết kiêu, Yết Kiêu, YếT KiÊU, v.v Nếu yêu cầu có chữ hoa, thì kết tìm kiếm là tìm kiếm theo dạng chữ Ví dụ, ta điền Yết Kiêu vào ô yêu cầu, NetNam Search Engine tìm tất các biến thể Yết Kiêu với chữ đầu tiên là chữ hoa Nó không trả các văn có chữ YếT KiÊU hay yết kiêu 2.1.3 Sử dụng từ khoá để lọc các tìm kiếm Cả giao diện công cụ tìm kiếm đơn giản và nâng cao hỗ trợ việc sử dụng các từ khoá để hạn chế các tìm kiếm tới các trang đáp ứng tiêu chuẩn định (69) rõ nội dung và cấu trúc trang web Sử dụng từ khoá, ta có thể tìm kiếm dựa vào URL phần URL, dựa vào các liên kết, hình ảnh, văn bản, mã hoá trang web Các từ khoá có ích trường hợp: Tìm các trang trên máy chủ nào đó tên miền định Tìm các trang có chứa các liên kết trỏ tới trang web ta Tìm các trang có chứa lớp Java applets Tìm kiếm dựa vào từ khoá, gõ yêu cầu từ khoá:lệnh tìm kiếm Gõ từ khoá chữ thường, sau đó là dấu hai chấm Quy ước để tìm cụm từ lệnh tìm kiếm giống với quy ước để tìm cụm từ yêu cầu bình thường: phương pháp thường sử dụng là cho cụm từ vào ngoặc kép title:"thời trang" Từ khoá applet:class Chức Tìm các trang có chứa ứng dụng nhỏ (applet) Java Java class Domain:domainname Tìm các trang có từ cụm từ tên miền máy chủ web nơi có trang cần tìm (Phần tên máy chủ internet là tên miền) host:name Tìm các trang có từ cụm từ tên máy chủ web, nơi có các trang cần tìm image:filename Tìm các trang có chứa ảnh filename Bảng 5.9 : Bảng miêu tả các từ khoá sử dụng việc tìm kiếm (70) Các từ khoá url, host, domain, có mục đích là tìm kiếm các URL dựa vào phần URL, dựa vào tên máy chủ tên miền nơi có các trang web cần tìm Các từ khoá link và anchor tương tự chúng tìm kiếm thông tin liên kết Từ khóa link tìm các văn URL là đích liên kết (ví dụ, http://www.abc.org.vn/help.htm), từ khoá anchor lại tìm các văn siêu liên kết người dùng nhìn thấy nó trên trang web (ví dụ, click here) Thẻ title tìm kiếm nội dung tiêu đề tài liệu Từ khoá tiêu đề giới hạnviệc tìm kiếm tới văn mà tác giả tài liệu đã mã hoá phần thẻ <title> Tiêu đề là cụm từ xuất đầu đề cửa sổ trình duyệt web Từ khoá tiêu đề có thể là cách tốt để giới hạn tìm kiếm tới các trang chủ đề, gồm các trang đặt tiêu đề cách thông minh Tuy nhiên với các trang mà người lập nên không quan tâm đến tiêu đề trang web đặt tên kém thì cách tìm này không dùng Hơn nữa, hệ thống tìm kiếm NetNam có thể cấu hình để nhận biết các thuộc tính phụ khác tài liệu có các thẻ HTML META người dùng quy định (71) Điều kiện url:http://www.un.org.vn/about Định nghĩa Tìm tất các trang có các từ http://www.un.org.vn/about URL host:netnam.vn Thoả mãn tất các trang có host:netnam.vn tên máy chủ web domain:org.vn Thoả mãn tất các trang có tên miền org.vn tên máy chủ máy chủ web image:about.jpg Thoả mãn tất các trang có thẻ hình ảnh liên quan tới image:about.jpg anchor:"click here" Thoả mãn tất các trang với cụm từ click here đoạn văn liên kết thẻ anchor (<A>) khác link:http://www.abc.org.vn/mypage.ht Thoả mãn tất các trang có ít ml liên kết tới trang có URL http://www.abc.org.vn/mypage.html link:http://myhost.abc.org/mypage.htm Chỉ tìm các trang có các liên kết tới URL l định title:"NetNam Lifestyle" Thoả mãn các trang có cụm từ NetNam Lifestyle tiêu đề applet:flower Thoả mãn các trang chứa Java applet có tên gọi flower (72) Bảng 5.10 : Ví dụ tìm kiếm thông tin Netnam 2.2 Vinaseek ([IV.11]) Vinaseek phát triển từ năm 1997 theo mô hình các search engine Google, AltaVista, bổ sung khả tìm kiếm chính xác theo từ khoá cho Tiếng Việt, theo bảng mã (TCVN3, VNi, TVCN-6909, ViQR ), theo định dạng tài liệu văn (html, xml, rtf, word, pdf, PostScript ), theo cách bỏ dấu khác (“hoà” hay “hòa”), tìm kiếm hình ảnh và âm thanh, tìm kiếm gần đúng, tìm kiếm mờ (fuzzy search), tìm kiếm đồng âm và đồng nghĩa, lưu trữ mục và toàn văn tất các trang Web Tiếng Việt trên internet (ước chừng 10 triệu văn bản), và nhận hàng trăm ngàn lượt truy cập ngày Cú pháp tìm kiếm Vinaseek tương tự Netnam tìm kiếm từ, cụm từ, cách phân biệt hoa thường khác : Hệ thống chấm câu bao gồm : +, -, khoảng trắng, Toán tử : AND, OR, NOT Field : link:, site:, url:, title: Điểm qua vài tính bật Vinaseek ta có thể liệt kê sau : Tốc độ tìm kiếm nhanh và chính xác và hiển thị kết đầy đủ Hỗ trợ toàn các bảng mã Tiếng Việt nước và ngoài nước Số lượng đánh index khoảng 10 triệu trang và liên tục cập nhật Cung cấp đầy đủ các tính tìm kiếm nâng cao với khả hiểu chính xác tiếng Việt (73) Cho phép thực các yêu cầu tìm kiếm phức tạp dạng tổ hợp cách thông minh, hiệu Có thể đặt ô tìm kiếm Vinaseek các website và ngoài nước cách dễ dàng Ô tìm kiếm Vinaseek đặt trên 40 trang web tiếng Việt hàng đầu và ngoài nước Dịch vụ Vinaseek có thể tối ưu cho các trang web và mạng intranet khách hàng làm công cụ tìm kiếm nội (74) PHẦN : THIẾT KẾ VÀ CÀI ĐẶT Ngôn ngữ lập trình : Java, HTML Công cụ lập trình : JBuilder X, Microsoft Fontpage Web Server : Resin Hệ quản trị CSDL : Mircrosoft SQL Server 2000 Chương 1: THIẾT KẾ DỮ LIỆU Khi thiết kế hệ thống tìm kiếm thông tin vấn đề khó khăn phải đối mặt là tổ chức cấu trúc liệu Vì khối lượng liệu phải lưu trữ hệ thống tìm kiếm thông tin là lớn, và khối lượng yêu cầu tìm kiếm phải xử lý lớn (trên môi trường Web) nên cấu trúc liệu phải tổ chức tối ưu cho việc đáp ứng (về thời gian) yêu cầu tìm kiếm người sử dụng Dữ liệu hệ thống xây dựng dựa trên mô hình vector, sử dụng phương pháp tập tin nghịch đảo Cơ sở liệu SQL CSDL SQL server phục vụ cho toàn hệ thống gồm bảng Url : chứa các thông tin cần thiết cho ứng dụng URL Bảng Tên thuộc tính Ý nghĩa Kiểu liệu Miền giá trị Ghi chú (75) UrlSTT Depth LastModified Độ sâu Integer : đây là FromURL StartURL Ngày cập Bigint nhật nội dung URL gần ContentLength Kích thước Bigint trang web mà URL tới Status Trạng thái Integer UNDOWNLOAD URL chưa URL download GOOD URL đã download BROKEN URL bị hỏng kết nối với server (76) GOOD- URL đã INDEXING download và lập mục BROKEN- URL INDEXING lập mục bị hỏng liên kết Title Tiêu đề Varchar(255) trang web mà URL tới ContentType Cho biết Varchar(50) nội dung URL thuộc dạng nào UrlId Định danh URL Bigint Khóa chính (77) UrlName Địa Varchar(255) Duy URL OutputPath Tên file Varchar(255) download 10 RootId Định danh Bigint StartURL Bảng 6.11 : Bảng URL Hệ thống tập tin Do hệ thống dùng Webserver là Resin nên toàn sở liệu lưu thư mục làm việc Resin “\doc\se\working” Ngoài liệu lưu trữ Hệ quản trị Cơ sở liệu SQL Server 2000, ứng dụng còn có hệ thống file sau: “Index.txt”: chính là từ điển mục, chứa thông tin mục từ trọng số, số tài liệu có chứa mục từ này, là từ tiếng Anh hay tiếng Việt, trang bắt đầu và trang kết thúc tập tin nghịch đảo, và trình bày cụ thể phần “Inverse.dat”: tập tin nghịch đảo, chứa các thông tin các tài liệu và trọng số các mục từ tài liệu đó, xem cụ thể phần tập tin nghịch đảo phần “UnicodetoUTF8.txt”: font chữ Unicode (78) Chương 2: THU THẬP THÔNG TIN Cấu trúc liệu Với mong muốn không đảm bảo các nhiệm vụ web robot mà còn giúp cho quản trị chủ động công việc mình, module web robot hỗ trợ chức sau : URL bắt đầu (StartURL) Định độ sâu liên kết Các tuỳ chọn phân tích URL : cùng site, cùng thư mục gốc, khác site Project Mỗi project có thể có nhiều StartURL Các project khác có thể có cùng / nhiều StartURL Chỉ phân tích URL để tạo CSDL download file Download vớI tuỳ chọn Quy định các dạng và kích thước file cần download Không quy định các dạng và kích thước file cần download Tạm dừng StartURL để xử lý project khác StartURL khác cùng project (79) Hệ thống Định số spider hoạt động đồng thờI, thờI gian đợI lần truy xuất server liên tiếp Định số connection ban đầu, thờI gian đợI cấp tài nguyên, số lần truy xuất CSDL hệ thống bận Định chu kỳ lưu thông tin project Nhằm đáp ứng chức đã nêu ra, hệ thống thu thập thông tin bổ sung thêm các cấu trúc liệu : 1.1 Cấu trúc UrlInfo UrlInfo là ánh xạ bảng URL CSDL Ngoài thuộc tính kể trên, UrlInfo còn có các thuộc tính : STT Tên thuộc tính Ý nghĩa Kiểu Miền giá liệu trị Depth Độ sâu URL Integer ErrorCode Mã lỗI truy xuất integer CSDL RootId Định danh URL liên kết tới nó Long Ghi chú Không có lỗI SQLException (80) Bảng 7.12 : Cấu trúc URLInfo 1.2 Cấu trúc StartUrlInfo STT Tên thuộc tính Alias Ý nghĩa Tên khác Kiểu Miền giá liệu trị Ghi chú String URL Account Tên để truy cập String URL MaxDepth Độ sâu lớn Integer StartURL ProcessStatus Trạng thái xử lý Integer NONE StartURL Password Password truy Chưa xử lý BEING Đang xử lý DONE Đã xử lý String cập StartURL Bảng 7.13 : Cấu trúc StartURLInfo 1.3 Cấu trúc FileRetrieval STT Tên thuộc tính Ý nghĩa Kiểu Miền giá Ghi chú (81) liệu Description trị Miêu tả dạng file String cần lấy Extensions Danh sách các String đuôi file cần lấy MaxSize Kích thước file Integer lớn MinSize Kích thước file nhỏ Bảng 7.14 : Cấu trúc FileRetrieval 1.4 Cấu trúc ProjectInfo STT Tên thuộc tính Ý nghĩa Kiểu liệu Miền giá Ghi chú trị ConnDBTimes Số lần truy Integer xuất CSDL cho mỗI thao tác thêm, xoá, sửa LastUpdate Ngày cập nhật project gần Long (82) HasRun Project đã Boolean thực thi lần nào chưa NumSpiders Số spider Integer dùng cho project NumResource Số kết nối Integer ban đầu project PrjName Tên project String SpiderTimeout Thời gian Long delay lần truy xuất liên tiếp vào server StartUrl Danh sách StartUrlVector các StartURL ResourceTimeout Thời gian Long delay để cấp phát tài nguyên 10 RetrievableExt Những đuôi FileRetrievalVector file cần xử lý Duy (83) 11 Outputpath Tên file chứa String thông tin project lưu trên đĩa 12 UpdatingMode Kiểu cập nhật Integer 21 giá trị các StartURL project Bảng 7.15 : Cấu trúc ProjectInfo StartUrlVector là vector mà phần tử là biến cấu trúc kiểu StartUrlInfo Tương tự FileRetrievalVector là vector mà phần tử là biến cấu trúc kiểu FileRetrieval Xử lý web robot Thiết kế module phải thoả các yêu cầu sau : Đảm bảo vai trò web robot hệ thống : tìm kiếm liên kết, thu thập thông tin, tạo và trì sở liệu Không ảnh hưởng đến hoạt động các module khác Nhìn trình hoạt động web robot giống Tuy nhiên, các ứng dụng hỗ trợ tính khác có thay đổi quy trình hoạt động Các bước xử lý : (1) Khởi tạo (84) (2) Nếu còn URL chưa xử lý và user không chọn chức tạm dừng (pause) Qua (3) ngược lại qua (14) (3) Lấy URL đầu tiên Nếu lấy qua (4) ngược lại quay lại (2) (4) Lưu thông tin cũ (5) Kết nối vớI server Nếu kết nối qua (6) ngược lại Thêm URL vào danh sách hỏng Cập nhật trạng thái URL CSDL = BROKEN Đánh dấu URL đã xử lý CSDL Nếu truy xuất CSDL không Đưa URL này trở lại hàng đợi Quay lại (2) (6) Huỷ URL khỏi danh sách hỏng URL nằm danh sách đó (7) So sánh với thông tin cũ Nếu giống qua (8) ngược lại Cập nhật thông tin (85) (8) Đánh dấu URL tốt ( trạng thái = GOOD ) (9) Thêm URL vào danh sách đã xử lý (10) Đây là file HTML ? Nếu cần phân tích lại thì tiến hành phân tích (11) Thoả yêu cầu download quản trị ? Nếu thoả Download Trả kết để thị thông tin đã xử lý Qua (12) ngược lại Quay lại (2) (12) Ghi nhận thông tin xuống CSDL gồm : Cập nhật thông tin cho URL Đánh dấu URL đã xử lý Nếu truy xuất CSDL không Gán lại thông tin cũ cho URL Xóa URL khỏi danh sách đã xử lý Thêm URL vào lại hàng đợi Quay lại (2) (13) Đủ số spider chưa ? Nếu chưa (86) Tạo thêm Tạm dừng Quay lại (2) (14) Đã hết URL chưa ? Nếu chưa (ứng dụng dừng user chọn pause) Qua (15) ngược lại Đánh dấu StartURL đã thực hiên xong (processStatus = DONE) (15) Kết thúc Giải thích thêm thuật toán : Khi phân tích file HTML, ta dò tìm các liên kết và thông tin cần thiết để cập nhật bảng URL CSDL Những liên kết tìm muốn vào hàng đợi trước tiên nó phải là URL chưa xử lý lần nào và không có danh sách đợi xử lý, sau đó phải qua tiền xử lý Thuật toán xem xét danh sách đợi và danh sách đã thực không xét danh sách bị hỏng nhằm tạo điều kiện để sửa chữa URL hỏng có URL khác liên kết tới nó Trong trường hợp không có URL nào liên kết tới nó, quản trị biết nó bị hỏng trạng thái này đã ghi nhận trước đó Số spider tạo thêm = ( số liên kết có, số spider theo yêu cầu ) Ta luôn có lượng spider vừa đủ dùng, nhờ mà tránh lãng phí tài (87) nguyên hệ thống spider cần khá nhiều tài nguyên cho hoạt động mình Các bước tiền xử lý URL tìm : (1) Tuỳ theo yêu cầu quản trị mà ta kiểm tra URL mới, ví dụ : cùng thư mục gốc, cùng site,… Nếu thoả yêu cầu Qua (2) ngược lại Trả thông tin cho biết không tiếp tục xét URL này (2) Kiểm tra độ sâu liên kết Nếu chưa vượt quá giới hạn Qua (3) ngược lại Trả thông tin cho biết không tiếp tục xét URL này (3) Kiểm tra dạng file (content type)của URL có nằm danh sách các dạng file cần download hay không ? Nếu có Trả thông tin cho biết tiếp tục xét URL này ngược lại Trả thông tin cho biết không tiếp tục xét URL này (88) Giải các vấn đề web robot 3.1 Tránh lặp lại Trong qúa trình hoạt động robot ứng dụng dùng danh sách : Hàng đợi URL : chứa các URL chưa xử lý theo nguyên tắc FIFO Danh sách các URL kết nốI với server Danh sách các URL không kết nối với server Nhờ lưu lại dấu vết spider nên ứng dụng không xử lý liên kết nhiều lần chưa khắc phục các liên kết tồn nhiều tên khác (DSN, IP, …) 3.2 Tránh làm qúa tải server Các spider hoạt động đồng hành địa khác Kết hợp đồng spider và trì thời gian đợi lần truy xuất liên tiếp đến server nên server tránh bị áp lực quá mức Tuy nhiên biện pháp này không thể khắc phục triệt để vấn đề các URL cùng site thường đặt cạnh hàng đợi Áp dụng chiến lươc duyệt ngẫu nhiên cho kết tốt 3.3 Tránh truy xuất đến các dạng tài nguyên không thích hợp Ứng dụng lập mục trên file có thể đánh mục, cụ thể là dạng file text, download tài liệu cần Trong quá trình download lấy các file thoả yêu cầu đó tránh lãng phí tài nguyên cho tài liệu không dùng đến (89) 3.4 Tránh các lỗ đen(black holes) Ứng dụng theo dấu các URL còn giớI hạn độ sâu cho phép nên luôn đảm bảo có điểm dừng 3.5 Tránh nơi cấm robot Như đã trình bày phần trước, các chuẩn loạI trừ robot không hiệu bị lạm dụng thiếu tính chặt chẽ nên hầu hết các site trên giới không hỗ trợ chuẩn này vì vấn đề xem thông qua Các thuật toán phân tích cấu trúc file HTML 4.1 Thuật toán lấy liên kết Để tạo liên kết file HTML người ta thường dùng các dạng sau : Tên thẻ Thuộc tính kết hợp A Href AREA Href BASE Href BODY Background IMG Src INPUT TYPE Src (90) FRAME Src FORM ACTION LINK Href TD Bacground SCRIPT Src Bảng 7.16 : Danh sách các thẻ thường dùng tạo tạo liên kết 4.1.1 Thuật toán ứng dụng cũ đã cài đặt Thuật toán cờ trạng thái Ý tưởng : duyệt qua ký tự, bật cờ tương ứng gặp ký tự đặc biệt các thẻ chứa liên kết Lưu đồ thuật toán : (91) KhởI tạo Đọc ký tự c C = -1 Kết thúc C = ‘<’ C = ‘>’ Xử lý c tuỳ cờ Tách thẻ lấy liên Thêm ký tự vào bật kết biến lưu trữ Hình 7.3 Lưu đồ thuật toán cờ trạng thái Ưu điểm : lấy chính xác các liên kết theo đúng chuẩn HTML Khuyết điểm : không lấy liên kết nhúng các đoạn script Thuật toán dựa vào đuôi file Ý tưởng : các thẻ file HTML bắt đầu ký tự ‘<’, kết thúc ký tự ‘>’ nên ứng dụng lấy nộI dung cặp dấu này Duyệt qua phần tử danh dách đuôi file ban đầu, nhận liên kết nó có mặt danh sách đã cho (92) Lưu đồ thuật toán : (93) KhởI tạo Đọc ký tự c C = -1 Kết thúc C = ‘<’ C = ‘>’ Bật cờ và bắt Tắt cờ và phân Thêm ký tự vào đầu nhận ký tự tích chuỗI nhận biến lưu trữ vào biến lưu trữ Hình 7.4 Lưu đồ thuật toán dựa vào đuôi file Các bước phân tích sau : VớI đuôi file (1) Tìm vị trí đuôi file (2) Xác định biên phải, trái dựa vào các ký tự giớI hạn ‘ ‘, #, =, \n, \t, \r, … (3) Lấy liên kết biên, có Ưu điểm : khắc phục nhược điểm cách (94) Khuyết điểm : phải có danh sách đuôi file ban đầu 4.1.2 Chọn lựa ứng dụng Ứng dụng cũ đã chọn thuật toán nên mắc phải nhược điểm nêu trên Ứng dụng không có cải tiến gì thuật toán phân tích lấy liên kết, khắc phục nhược điểm này cách : Kết hợp thuật toán : không có danh sách đuôi file ban đầu ứng dụng thi hành thuật toán Hỗ trợ thêm chức user defined : phát các dạng file mới, ta có thể bổ sung thông qua chức này Sau đó có thể thi hành thuật toán để giới hạn phạm vi thu thập thông tin robot 4.2 Thuật toán lấy tiêu đề Áp dụng thuật toán cờ trạng thái Xét ví dụ : <html> <title = “Trang chủ”> </title> <body> Chào mừng bạn đến với trang web chúng tôi </body> </html> Ta bật các cờ sau : ST_GROUND (cờ bắt đầu) ST_LT (95) ST_T ST_TI ST_TIT ST_TITL ST_TITLE ST_TITLE_EQUALS lấy tiêu đề 4.3 Thuật toán lấy nội dung Từ ví dụ trên ta nhận thấy phạm vi ảnh hưởng thẻ nằm cặp dấu ‘< >‘ đó để lấy nội dung ta rút trích phần nằm cặp dấu ‘><‘ Sau lấy nội dung ta tiến hành loại bỏ các ký tự đặc biệt lưu xuống CSDL Các bước thực (1) Khởi tạo (2) Biên trái = vị trí ký tự ‘>’ Nếu biên trái > -1 (chưa hết file) thì qua bước (3) ngược lại qua (5) (3) Biên phải = vị trí ký tự ‘<’ Nếu biên phải > -1 qua (4) ngược lại qua (5) (4) Trích chuỗi biên Quay lại (2) (96) (5) Lọc ký tự đặc biệt Lưu vào CSDL Duy trì thông tin cho CSDL Mục đích việc trì thông tin cho CSDL Đảm bảo thông tin CSDL là thông tin Phát các URL hỏng để có biện pháp xử lý Sửa chữa các URL hỏng Thuật toán trì thông tin cho CSDL là phần các bước xử lý web robot, xin xem phần trước Resume project Mục đích : Tối thiểu hoá lượng công việc mà robot phải thực lại Linh động quá trình xử lý project, ví dụ : ưu tiên xử lý project quan trọng hơn, tạm dừng project vì lý nào đó,… Project bị dừng lại nguyên nhân chính : Sự cố hệ thống Người quản trị chủ động dừng (97) 6.1 Nguyên tắc resume ứng dụng cũ11 Khi project kích hoạt lại, project trước & sau kích hoạt giống thì tài nguyên đã cấp cho nó còn đó ứng dụng cần tạo lại các spider để tiếp tục công việc Nhưng là project khác thì lúc khởi động lại cần phục hồi trạng thái project trước điểm dừng Ứng dụng sử dụng danh sách dự phòng với số phần tử số spider Khi lấy URL khỏi hàng đợi, đầu tiên nó đưa vào danh sách dự phòng sau đó tiến hành xử lý Nếu danh sách đầy, phần tử đầu bị loại bỏ đó luôn đảm bảo lưu lại URL Mỗi chu kỳ t giây, thông tin lưu xuống đĩa để cần có thể dùng nó phục hồi hàng đợi Ưu điểm : đảm bảo mục đích resume Khuyết điểm : Bỏ sót URL Xử lý cùng URL nhiều lần Sau đây là ví dụ minh hoạ nhược điểm thuật toán phân tích liên kết dựa vào đuôi file Xét ví dụ : giả sử ta có cây liên kết sau Ứng dụng cũ là luận văn tốt nghiệp năm 2003” Xây dựng công cụ hỗ trợ quá trình tiền xử lý cho hệ thống Search Engine” – SVTH: Đoàn Hữu Quang Vinh (98) A D B C F E Hình 7.5 Cây liên kết Dùng thuật toán duyệt theo chiều sâu & số spider = G Hàng đợi : E, G Đã xử lý : A, B Đang xử lý : C, F, D Sự cố xảy ra……… Khi hệ thống khởi động lại, hàng đợi có : C, F, D trang E, G xử lý lại A, B Project càng có nhiều URL, khuyết điểm này càng phải khắc phục (99) 6.2 Cải tiến ứng dụng Ứng dụng cho phép project có nhiều URL ban đầu (StartURL) đó resume là bắt đầu lại StartURL không phải project Các bước phục hồi sau : (1) Phục hồi danh sách hàng đợi, danh sách đã xử lý, danh sách liên kết đã xử lý bị hỏng (kết nối với server bị thất bại) (2) Lấy URL cần xử lý Đánh dấu nó CSDL (3) Tiến hành xử lý Nếu quá trình xử lý trọn vẹn xoá đánh dấu Quay lại (2) Ưu điểm : tránh nhược điểm ứng dụng cũ Khuyết điểm : phải tốn thêm field để đánh dấu CSDL Tuy nhiên môi trường mạng dạng liên kết ví dụ trên nhiều cho nên sử dụng thêm field này là cần thiết Tóm tắt so sánh chức chính ứng dụng cũ và Chức Ứng dụng cũ Ứng dụng Thuật toán lấy liên - Dùng thuật toán dựa vào đuôi - Dùng thuật toán cờ trạng kết file HTML file thái (100) - Lấy các liên kết cùng thư mục - Dùng thuật toán dựa vào vớI liên kết ban đầu (internal đuôi file link) - Lấy các liên kết cùng thư mục, cùng site & khác site vớI URL ban đầu - Hỗ trợ thêm chức user defined Số StartURL mỗI MỗI project có StartURL MỗI project có nhiều project Download StartURL Giới hạn kích thước cho mọI Các kiểu file khác có kiểu file giống thể có kích thước khác Cập nhật project Cập nhật lại toàn các liên kết Hỗ trợ nhiều tuỳ chọn file HTML URL ban đầu Resume Lập lịch - Bỏ xót URL - Không sót - Xử lý trùng lặp - Không trùng lắp Hỗ trợ lập lịch tự động Không hỗ trợ lập lịch Bảng 7.17: Bảng tóm tắt so sánh chức chính ứng dụng cũ và (101) Chương 3: LẬP CHỈ MỤC Tính trọng số từ: Sau tách từ là giai đoạn tính trọng số các từ để xác định mục từ có nghĩa đại diện cho nội dung tài liệu Như đã trình bày phần I, có nhiều cách tính trọng số mục từ Ở đây, ta chọn công thức: W=nik/nk Trong đó: nik: số lần xuất mục từ k tài liệu i nk : số lần xuất mục từ k tất các tài liệu lập mục Ngưỡng sử dụng để loại bỏ các mục có trọng số thấp là ½ giá trị trọng số trung bình các mục từ xuất toàn tài liệu Tính title Do nội dung bên title có ý nghĩa quan trọng , nên cách tính trọng số mục từ xuất title đặc biệt nội dung văn Có các cách giải sau : Lấy trọng số mục từ có title = trọng số lớn các từ nội dung lập mục Trọng số gấp lần trọng số bình thường (102) Lập mục thẳng cho từ có title Tập tin nghịch đảo : Giả sử câu truy vấn người sử dụng sau lập mục là tập các mục từ { t1, t2, ,tn } Ví dụ : truy vấn "công nghệ phần mêm " lập mục gồm hai từ "công nghệ" và "phần mềm") với giá trị n thường không lớn ( 2,3,4 ) Yêu cầu người sử dụng là mong muốn tìm kiếm các tài liệu có chứa tất các mục từ t1, t2, , tn Như ta không cần khảo sát tất các vector mục mà cần tìm các vector nào có chứa t1, t2, , tn.Điều này có thể thực dễ dàng cách lưu các nhóm vector (tài liệu) theo mục từ t1 : 1, 3, t2 : 1, 2, 4, t3 : 2, 4, Nghĩa là mục từ t1 có các tài liệu 1, 3, t2 có các tài liệu 1,2,4,5 t3 có các tài liệu 2, 4, Khi đó quá trình tìm kiếm ( t1, t3 ) thực theo các bước sau: Tìm tập các tài liệu có chứa t1 , gọi là T1={1,3,4} Tìm tập tài liệu có chứa t3, gọi là T2={2,4,5} Tập các tài liệu có chứa t1 và t3 là T=T1∩ T2={4} Tính toán độ tương tự câu truy vấn và các tài liệu có tập T (103) Sử dụng công thức tính độ tương tự : Sim(D, Q) = vi*wi , i=1 n với ti là mục từ có Q ( w i=0 vói mục từ ti không có Q và w i =1 ti có Q ) Rõ ràng việc tính độ tương tự cần tới trọng lượng các mục từ có Q nên để có thể tăng thêm hiệu ta lưu thêm giá trị trọng lượng mục từ tập tin nghịch đảo t1 : (1, 0.5) (3,0.7) (4,0.2) t2 : (1,0.4) (2,0.8) (4,0.9) (5, 0.1) t3 : (2,0.3) (4,0.2) (5,0.5) Nghĩa là mục từ t1 có tài liệu với trọng lượng là 0.5, tài liệu với trọng lượng là 0.7 v v Khi đó để tìm kiếm cho câu truy vấn (t1, t3) cần đọc khối liệu t1 và t3 là đủ (giảm truy xuất đĩa và giảm thời gian xử lý) Mô hình tập tin nghịch đảo sử dụng rộng rãi các hệ thống tìm kiếm thông tin vì với cách tổ chức này vì các liệu cần đọc lưu trữ liên tục nên giảm việc di chuyển đầu đọc đĩa cứng, ta lưu lại vị trí bắt đầu các mục từ thì có thể truy xuất trực tiếp đến vị trí đó để đọc liệu Khó khăn: việc sử dụng tập tin nghịch đảo là cần thêm tài liệu vào mục từ, giả sử cần thêm tài liệu vào mục từ t1 t1 : 1,3,4,6 (104) t2 : 1,2,4,5 t3 : 2,4,5 Với chú ý các khối liệu t1, t2, t3 lưu trữ liên tiếp trên đĩa cứng và dung lượng tập tin nghịch đảo này lớn (chứa hàng trăm ngàn mục từ với hàng triệu tài liệu), việc thêm tài liệu này thường xuyên (lập mục cho các Web site , cập nhật lại các Web site có thay đổi) cho nên không thẻ sử dụng phương pháp chèn cách dời liệu sau để tạo khoảng trống chèn tài liệu vào Cách giải quyết: cấp phát không gian cho các mục từ theo trang, mục từ đã chứa hết trang này thì cấp phát thêm vào cuối tập tin và có link đến trang cuối này t1 134 t2 124 t3 125 Phương pháp này mặc dù lãng phí không gian cho các trang chưa dùng đến, giả sử có 100.000 mục từ, trang dung lượng là 1K, dung lượng đĩa lãng phí lớn là 100.000 K (100 M) và phải di chuyển đầu đọc nhiều giải vấn đề thêm tài liệu dễ dàng đọc liệu cần thiết cho mục từ nào đó (đọc theo các link) Có thể điều chỉnh dung lượng lãng phí và việc phải di chuyển đầu đọc (tính số trang cấp phát cho mục từ) cách tăng giảm dung (105) lượng cấp phát cho trang Nếu tăng dung lượng cấp phát cho trang thì giảm việc di chuyển đầu đọc và ngược lại Hệ thống đã sử dụng mô hình tập tin nghịch đảo với việc cấp phát theo trang đã trình bày trên , dung lượng trang chọn là 1K Tập tin nghịch đảo lưu trữ danh sách các tài liệu ứng với mục từ phép hệ thống nhanh chóng có danh sách các tài liệu có chứa mục từ nào đó có dạng sau: Mục từ Tài liệu, trọng lượng t1 (2,w1), (3,w2),( 4,w3) t2 (3,w4),(4,w5),(5,w6) t3 (2,w7),(4,w8) t4 (1,w9) Bảng trên có nghĩa là mục từ t1 có các tài liệu 2,3,4 với trọng lượng tương ứng là w1,w2,w3 (106) Tập tin nghịch đảo Pagesize = 1K startpage * pagesize Trích dẫn page trích trang Next page Next pos T1 w2 … … … Tn Next page Next pos Tn+1 Wn+1 … … … wn Hình 8.6 Tập tin nghịch đảo Một mục từ có thể có nhiều trang Do kích thước page là cố định pagesize = 1024B ~ 1K & chưá tối đa 1024/8 - = 127 tài liệu trên trang, = 4byte luu docID , byte luu trọng số cho nên tạo chuỗi các trang chứa mục từ, byte đầu trang lưu vị trí trang tiếp theo(nếu có) và vị trí trống trang Vị trí Chiều dài Tên trường ý nghĩa NextPage Vị trí trống chưa sử dụng trang này, có ý nghĩa đây là trang cuối 4 NextPos Trang (nếu có) mục từ (107) sở hữu trang này DocID1 DocIDi : định danh tài liệu có chứa 12 Weight1 mục từ sở hữu trang này 16 DocID2 20 Weight2 24 DocID3 28 Weight3 ………… ………… Weighti : trọng số mục từ tài liệu tương ứng DocIDi ……… 1016 DocID127 1020 Weight127 Bảng 8.18: Cấu trúc trang cấp cho mục từ tập tin nghịch đảo Như vậy, có thể đọc toàn danh sách các tài liệu có chứa mục từ cách đọc toàn các trang liên kết theo trỏ NextPage Vị trí đầu tiên chứa trang thuộc quyền sở hữu mục từ đó xác định sau: Vị trí đầu tiên = startpage*kích thước page (ở đây là 1024 byte) Các thao tác chính tập tin nghịch đảo gồm : Thêm tài liệu vào mục từ: tài liệu lập mục, tài liệu này có chứa mục từ t nào đó thì tài liệu này thêm vào danh sách các tài liệu ứng với mục từ t tập tin nghịch đảo Tài liệu thêm vào vị trí trống đầu tiên trang cuối mục từ t Đọc danh sách các tài liệu mục từ: kết thao tác này trả theo luồng (stream) dạng (docID 1, weight1, docID2, weight2, , (108) docIDn, weightn ) nghĩa là có thể đọc kết trả theo tài liệu , xử lý xong tài liệu này đọc tài liệu Sau lấy luồng danh sách các tài liệu mục từ , nó lựa xem các danh sách đạt yêu cầu (chưá tất các mục từ yêu cầu) Việc xử lý liệu theo luồng là ưu điểm lớn hệ thống này vì giải vấn đề nhớ hạn chế phải xử lý trên khối lượng liệu lớn Điều này cho thấy hệ thống này có thể đáp ứng tăng khối lượng tài liệu phải xử lý tăng số yêu cầu phải xử lý đồng thời File nghịch đảo truy cập thường xuyên xử lý yêu cầu tìm kiếm và lập mục Do đó, thao tác đọc và cập nhật file nghịch đảo chiếm nhiều thời gian tổng số thời gian cần thiết để hoàn tất yêu cầu tìm kiếm Vì dung lượng file nghịch đảo thay đổi và có thể trở nên quá lớn số tài liệu lập mục tăng lên nên không thể lưu toàn file nghịch đảo vào nhớ đó để tăng tốc độ tìm kiếm chúng tôi cấp phát vùng nhớ đóng vai trò đệm cho file này Bộ đệm chia thành các trang với dung lượng dung lượng trang cấp phát cho mục từ (1K) Khi có yêu cầu truy xuất trang file nghịch đảo , trang cần nạp lên đệm chưa có đệm và tồn đó để có thể sử dụng cho lần truy xuất sau (không phải đọc lại từ đĩa) Từ điển mục Từ điển mục chứa danh sách các mục từ Từ điển mục xây dựng sẵn gồm 1100.000 từ gồm tiếng Anh và tiếng Việt Trong quá trình lập mục , từ nào chưa có thêm vào tự điển Do đó số lượng từ từ điển đã lên 150.000 từ , từ tăng thêm chủ yếu là từ tiếng Anh (109) Số lượng mục từ từ điển mục lớn và thao tác tìm kiếm thực thường xuyên nên từ điển phải tổ chức cho việc tìm kiếm mục từ thực nhanh chóng Chúng ta có thể tổ chức từ điển theo danh sách tuyến tính xếp các mục từ và thực giải thuật tìm kiếm nhị phân nhiên gặp phải trở ngại là thêm mục từ vào đòi hỏi phải xếp lại từ điển, điều này gây khó khăn cho việc quản lí từ điển Hệ thống tổ chức từ điển dạng cây n-phân biến thể thành cây nhị phân để dễ dàng cho việc cài đặt Dưới đây là mô hình cây từ điển n-phân chứa các mục từ "bạn", "bà con", "bà nội": Hình 8.7 Cây từ điển n-phân (110) ROOT Thêm từ “ bạn ” Data Data a b y a n Data Data Data Data (111) ROOT Thêm từ “ bà “ Data Data a b a n y Data Data Mã ascci n >2 Data Data c o n Data Data (112) ROOT Thêm từ “ bà nội “ Data Data a b a n Data Data c o n n o i Mã ascii n<c Data Data Data Data Data y Mỗi mục từ từ điển có cấu trúc liệu Info kèm theo, gắn vào ký tự cuối cùng mục từ Cấu trúc Info gồm các trường sau: Struct Info{ int n; //số lần xuất mục từ này danh sách các trang Web mà hệ thống đã lập mục int nDoc; //số tài liệu chứa mục từ này (113) int signal; //xác định thuộc tính mục từ này 0:tiếng Anh; 1: tiếng Việt; 2: stop-word int startPage; //trang bắt đầu danh sách các trang file mục thuộc mục từ này int endPage; //trang kết thúc danh sách các trang file mục thuộc mục từ này } Thuộc tính endPage đưa vào nhằm làm tăng tốc độ lập mục Với endPage, ta có thể truy xuất đến trang cuối cùng nhanh cần thêm tài liệu vào file nghịch đảo, không cần phải duyệt từ đầu danh sách các trang thuộc mục từ đó Biến cờ signal có các giá trị sau: Stopword : signal =1 Từ : signal =2 Tiếng Anh : signal = Tiếng Việt : signal = Trong cấu trúc cây từ điển, dấu chuyển cuối để tiện cho việc tìm kiếm không dấu bỏ dấu không đúng kiểu, đồng thời giải tình trạng bỏ dấu khác biệt vị trí tiếng Việt Ví dụ : Đối với từ Cộng Sản => Cong65 san3 Các thao tác chính trên tự điển mục gồm có: Thêm mục từ Xoá mục từ (114) Cập nhật thông tin mục từ Xem thông tin mục từ Quá trình stemming Trong quá trình lập mục Tiếng Anh , Stemming là quá trình lượt bỏ các suffix (phần hậu tố / tiếp vĩ ngữ) các từ Việc nằm làm tăng giá trị recall chương trình, làm cấu trúc cây từ điển chính xác và gọn nhẹ , đương nhiên hiệu truy vấn cao Ví dụ : studies , studying , studied là các biến thể khác từ gốc study , không có giai đọan stemming này thì tất các từ này lập mục và bổ sung vào cây từ điển nó chưa có Rõ ràng điều này là khuyết điểm lớn chương trình Có nhiều thuật tóan phổ biến cho việc lọai bỏ phần đuôi từ tiếng Anh , thông thường dựa vào danh sách các hậu tố để đối chiếu Chương trình chúng em lược bỏ các hậu tố sau : _s , _ing, _ed (115) Dòng liệu (text/html) Đọc vào byte Có là kí tự khoảng trắng hay khoảng cách hay có mã > 256 ? Không Có Được từ Đủ 30 từ ? Không Đủ Đặt bảng mã cần tìm (TCVN, VNI, PCW …) Chuyển đổi các từ trên từ bảng mã đó bảng mã qui định Tra cứu vào từ điển tiếng Việt đã xây dựng sẵn (theo bảng mã qui định ) Nếu tìm từ trở lên (thỏa mãn là từ có từ điển) Tài liệu sử dụng bảng mã này Hình 8.8 Lưu đồ nhận dạng bảng mã (116) Hệ thống ngoài xử lý các bảng mã thông thường TCVN3 , VNI , PCW , VIRQ còn xử lý văn dùng bảng mã Unicode Như chúng ta đã biết bảng mã unicode ngày trở thành chuẩn chung dạng bảng mã và sử dụng hầu hết các trang web Do đó xử lý bảng mã Unicode là vấn đề quan trọng , là giá trị chương trình Unicode là loại bảng mã đặc biệt , ta tìm hiểu sơ lược loại mã này : Font Unicode có dạng : UTF8 ( tổ hợp ) : 1byte , byte , byte UCS2 ( dựng sẵn ) : byte , byte – thông thường sử dụng byte Do cấu trúc dạng trên khác nên cách xử lý khác (117) Chương 4: TÌM KIẾM THÔNG TIN Hầu hết các Search engine hỗ trợ tuỳ chọn là tìm và nâng cao Quy trình tìm kiếm gần giống hệ thống Đó là tiếp nhận câu hỏi, xử lý toán tử và trả kết mô tả qua lưu đồ đây Nhằm mục đích minh hoạ, ứng dụng hỗ trợ : Các toán tử : AND (mặc định) , OR Hệ thống dấu chấm câu : “ “(tìm cụm từ) Câu truy vấn Dựa vào từ điển tách thành các mục từ có nghĩa Dựa vào file nghịch đảo , lấy danh sách các tài liệu tương ứng với mục từ Kết hợp danh sách theo tuỳ theo phép toán chọn Sắp xếp kết theo thư tự giảm d6àn độ ưu tiên Kết (118) Hình 9.9 Lưu đồ xử lý câu truy vấn Khi muốn tìm thông tin, người dùng tương tác với hệ thống thông qua giao diện web Bộ tìm kiếm thông tin sau tiếp nhận câu truy vấn dựa vào từ điển để tách câu hỏi thành các mục từ có nghĩa Thuật toán tách mục từ là thuật toán dùng lập mục nhằm đảm bảo tương thích tập mục từ câu truy vấn và sở liệu mục Ứng dụng dựa vào file nghịch đảo lấy danh sách tài liệu tương ứng với mục từ Một lần lọc lại danh sách này tuỳ theo phép toán chọn Sắp xếp kết thu và trả cho người dùng (119) Chương 5: CÁC MODULE ,PACKAGE, LỚP CHÍNH CỦA CHƯƠNG TRÌNH Các module, package chương trình STT Module Ý nghĩa DBController Xử lý việc kết nối ODBC database Oracle & Java ProcessDoc Xử lý các trang web đã download , lập mục , đưa vào file nghịch đảo Sau xử lý xong , lưu vào database các thông số cần thiết , xóa các file đó Query Đối tượng trung gian module ProcessDoc và module SE Nhận câu truy vấn từ SE, yêu cầu ProcessDoc phân tích câu này thành các từ có nghĩa Khi ProcessDoc trả tập các tài liệu có chứa từ khoá cần tìm, Query hợp các tài liệu này lại tuỳ theo toán tử sử dụng để trả danh sách các URL có tổng trọng số các từ khoá giảm dần SE Giao diện người dùng : tiếp nhận câu hỏi từ user, nhờ Query xử lý và hiển thị kết tìm Webcopy Xử lý việc lấy thông tin /download các trang web (text/html , asp , php ) từ internet URL input, (120) dò tìm các liên kết mới, xử lý thông tin thu để tạo CSDL mục WebcopyGUI Giao diện người quản trị : hỗ trợ người quản trị việc quản lý hoạt động webrobot Các lớp đối tượng chính module 2.1 Module DBController STT File Ý nghĩa ConnectionPool.java Hoạt động dựa trên lớp ResourcePool.java, phụ trách việc đóng, mở, trì kết nối ứng dụng và CSDL DatabaseObject.java Lớp ảo tương tác với CSDL để thực các thao tác lấy thông tin, thêm, xoá, sửa,… DriverUtilities.java Cung cấp thông tin cần thiết các driver khác để kết nối CSDL ResourcePool.java Duy trì, phân phát và giải phóng tài nguyên hệ thống 2.2 Module ProcessDoc STT File DicTree.java Ý nghĩa Quản lý cây từ điển (121) DocInfo.java Khởi tạo thông tin ban đầu tài liệu n , signal , trọng lượng DocObject.java Đối tượng điều khiển việc lấy thông tin và đánh dấu các URL đã lập mục CSDL DocTree.java Xây dựng cây từ điển các mục từ cho tài liệu văn HtmlInformation.java Thông tin file html :url , trích dẫn , tiêu đề , ngày cập nhật HtmlStreamFilter.java Info.java Bộ lọc các tag đặc biệt file html Interface cây từ điển từ và cây từ điển tài liệu InverseFile.java Manager.java Tập tin nghịch đảo Trình quản lý chung cho chương trình các tham số , các file input , trạng thái , từ điển mục 10 Node.java 11 NodeInfo.java Các thao tác trên node cay từ điển Khởi tạo ban đầu thông tin vế node (n , nDoc , signal , startPage, endPage) 12 Paicedemo.java 13 ProcessDicTree.java 14 15 Hỗ trợ cho việc xử lý hậu tố Xử lý thao tác theo cấu trúc cây từ điển ProcessFileDownloaded.java Xứ lý các file download (lập mục) ProcessWord.java Các thao tác xử lý trên từ tính trọng (122) số 16 SpecialChar.java Xử lý các ký tự đặc biệt (dùng bảng băm) quá trình này bao gộp xử lý sơ khới cho phone Unicode UCS2 17 Stemmer.java 18 Sentence.java 19 Utils.java Lọc bỏ hậu tố từ tíêng Anh Nhận dạng bảng mã 2.3 Module Query STT File Ý nghĩa JoinStream.java Hợp các tập tài liêu tuỳ theo toán tử chọn Query.java Sử dụng từ điển phân tích câu truy vấn thành các từ có nghĩa, xử lý từ này tuỳ theo chúng thuộc loại từ nào (tiếng Việt, tiếng Anh, stop word) StreamInverseFile.java Tập các tài liệu lấy dựa vào file nghịch 2.4 Module SE STT File Ý nghĩa SearchGUI.java Tương tác với người dùng thông qua giao diện web với xử lý : kiểm tra các ràng buộc nhập liệu câu truy vấn, hiển thị kết tìm được,… Search.java Đối tượng trung gian module Query và lớp (123) SearchGUI.java 2.5 Module Webcopy STT File Ý nghĩa FlexVector.java Giống đối tượng Vector Java có số thay đổi nhằm giúp cho việc điều khiển các phần tử tốt ProjectObj Đối tượng trung gian điều khiển xử lý cấu trúc ProjectInfo và các module, package, đối tượng, cấu trúc khác Queue.java Dựa trên đối tượng FlexVector để truy xuất các phần tử đầu hàng đợi StartUrlObject ĐốI tượng trung gian điều khiển xử lý cấu trúc StartUrlInfo và các module, package, đối tượng cấu trúc khác Spider.java Nhận URL cần xử lý từ đối tượng WebRobot.java Các xử lý bao gồm : yêu cầu thông tin từ WebServer, cung cấp các liên kết cho WebRobot, phân tích tài liệu để tạo CSDL mục SysProjects.java Đối tượng điều khiển danh sách project ứng dụng Timer.java Đối tượng điều khiển việc lưu thông tin project hành cách định kỳ WebRobot.java Điều khiển hoạt động các Spider (124) UrlObject.java Đối tượng trung gian điều khiển xử lý cấu trúc UrlInfo và các module, package, đối tượng cấu trúc khác 10 Utils.java Cung cấp số tiện ích cho module Webcopy 2.6 Module WebcopyGUI STT File Ý nghĩa MainClass.java Xử lý các chức có MainFrame.java MainFrame.java Giao diện người quản trị PropertyProjectDlg.java Thông qua PropertyProjectDlg, quản trị cung cấp số thông tin cần thiết project : tên project là gì, chu kỳ tự động lưu project, bao nhiêu spider hoạt động đồng thời, bao nhiêu kết nối CSDL dành sẵn cho project,… StartingUrlDlg.java Thông qua StartingUrlDlg, quản trị cung cấp số thông tin cần thiết URL ban đầu : địa chỉ, account, password trang web truy xuất, lần theo URL này đến cấp,… TreeInfo.java Cây project mà nút là URL ban đầu TableInfo.java Danh sách liên có từ việc phân tích các URL ban đầu (125) PHẦN : KẾT QUẢ, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN Kết thử nghiệm Hệ thống search engine thử nghiệm cài đặt trên server có cấu hình máy Pentium IV, CPU 1.5 GHz, nhớ RAM 256MB, đĩa cứng 120 GB Từ điển xử lý khoảng 150000 từ bao gồm từ tiếng Việt và tiếng Anh Hỗ trợ quản trị quản lý webrobot và lập mục thông qua ứng dụng (application) Jbuilder, phục vụ nhu cầu tìm kiếm thông tin người dùng thông qua giao diện web Dữ liệu đươc thu thập chủ yếu trên mạng cục (localhost) Dữ liệu mẫu gồm 8272 tài liệu, khoảng 145MB, (290MB trên đĩa) Các website đưa vào thử nghiệm: Azit Nexin Codeguru Covan Tự học tiếng Anh Su tích Tam quốc bình giảng Thơ Việt Nam Thuyền trưởng Blad Truyện cười (126) Truyện ngắn Truyện Nguyễn Nhật Ánh Tuitor Java Tự Lực Văn Đoàn Unix Operating System Kết lập mục: tạo tập tin nghịch đảo: file inverse.dat 4475KB (127) Hoạt động chương trình 2.1 Giao diện quản trị 2.1.1 Giao diện chính quản trị Delete StartUrl Project Property New Project StartUrl Property Add StartUrl Stop Pause Thread Bar Start Hình 10.10 Giao diện chính quản trị (128) 2.1.2 Tạo project Chọn File/New nhấn nút New trên công cụ Hình 10.11Màn hình thể số thông tin chung project Nhập tên project textbox Project Name (129) Hình 10.12Các tuỳ chọn thu thập liệu project Xác định các tuỳ chọn thu thập liệu : Lấy file [không | có] giới hạn kích thước Chỉ lấy các file có đuôi file và [không | có] giới hạn kích thước liệt kê Sửa chữa dạng file có định nghĩa thêm dạng file dialog EditFileType (130) Hình 10.13Màn hình sửa chữa thông tin thêm dạng file Xác định số spider, thời gian đợi các spider, số kết nối tạo sẵn đến CSDL, thời gian đợi nhận kết nối hệ thống bận khung Tenacity Chọn các dạng file cần xử lý lại cập nhật thông tin cho StartUrl khung Updating (131) 2.1.3 Tạo StartUrl : Nhập địa URL vào textbox URL Nhập chuỗi mô tả URL này textbox Title Giới hạn phạm vi thu thập thông tin StartUrl cách định độ sâu liên kết và chọn kiểu ràng buộc StartUrl Depth link Boundaries Hình 10.14Màn hình chứa thông tin StartUrl (132) Hình 10.15Màn hình sau thêm số StartUrl (133) Hình 10.16Màn hình thể trạng thái xử lý StartUrl thứ (134) 2.1.4 Xem từ điển mục Các loại từ điển Nhảy đến vị trí từ từ điển có Goi dialog ManageItem và hiển thị từ chọn textbox Item Về trang trước Về trang đầu Đến trang cuối Đến trang sau Gọi dialog ManageItem Đến trang số Hình 10.17 Màn hình xem từ điển mục (135) 2.1.5 Quản lý mục từ 2.1.5.a xem mục từ Từ Từ loại Hình 10.18Màn hình xem thông tin từ từ điển mục 2.1.5.b Thêm mục từ … Hình 10.19Màn hình thêm từ vào từ điển mục (136) 2.1.5.c Xoá mục từ Hình 10.20Màn hình xóa từ khỏi từ điển mục 2.1.5.d Cập nhật mục từ Hình 10.21 Màn hình cập nhật mục từ từ điển mục (137) 2.2 Giao diện tìm kiếm Hình 10.22Giao diện tìm kiếm thông tin người dùng (138) Hình 10.23Màn hình kết (139) Đánh giá 3.1 Ưu điểm Về luận văn đã thực tốt các nội dung đề và đạt số kết định : Luận văn đã trình bày sở lý thuyết nguyên lý vận hành hệ thống search engine Tìm hiểu các phương thức và chiến lược việc thiết kế module cụ thể cho hệ thống Tìm hiểu các vấn đề đặc trưng hệ thống thu thập thông tin hoạt động trên môi trường mạng Đề xuất vài giải pháp xử lý khó khăn webrobot Tìm hiểu các vấn đề đặc trưng hệ thống search engine tiếng Việt Đề xuất vài giải pháp đơn giản để xử lý vấn đề khó khăn tiếng Việt Tìm hiểu hoạt động, thống kê số đặc trưng và cách sử dụng số search engine thông dụng trên giới và Việt Nam Tìm hiểu Semantic Search Engine Xây dựng ứng dụng thử nghiệm cho hệ thống search engine tiếng Việt với kết đạt sau: Xây dựng công cụ đảm nhận việc thu thập các trang web cách tự động với nhiều tiến trình đồng hành và nhiều tuỳ chọn tuỳ chọn qúa trình xử lý (140) Xây dựng công cụ lập tự động cho các từ tiếng Anh, tiếng Việt có dấu và không dấu Hỗ trợ việc cập nhật, thêm, xoá, sửa từ vào từ điển Xử lý hậu tố quá trình lập mục tiếng Anh Xử lý bỏ dấu không đồng và Tiếng Việt không dấu Thời gian xử lý yêu cầu tìm kiếm khá nhanh và kết tương đối phù hợp Giao diện đẹp, thân thiện, dễ sử dụng 3.2 Khuyết điểm Tuy nhiên ứng dụng mang tính chất minh hoạ nên còn số hạn chế cần phải cải tiến : Chưa có thời gian thử nghiệm ứng dụng môi trường mạng Chưa tóm tắt nội dung Website trả Hướng phát triển 4.1 Đối với module : Bộ thu thập thông tin Hỗ trợ nhiều hệ quản trị CSDL khác Lập lịch download các project cách tự động (141) Xác định các font file css mà trang HTML tham chiếu tới Phân tích trang HTML không dạng text để lấy thông tin cho lập mục Bộ lập mục Hoàn chỉnh phần xử lý font chữ Xử lý thêm nhiều hậu tố khác Sử dụng các cách tổ chức, lưu trữ và xử lý liệu khác: bảng băm… Lập lịch cho việc lập mục các file download cách tự động Bộ tìm kiếm thông tin Hỗ trợ thêm nhiều toán tử và các tuỳ chọn tìm kiếm Cải tiến kết tìm kiếm dựa vào kỹ thuật gom nhóm trên nhật ký người sử dụng (user log) dùng các thư mục web 4.2 Đối với toàn luận văn: Cho phép ứng dụng chạy trên môi trường Web Tăng tính hiệu quả, tăng tốc độ tìm kiếm, tăng tính ổn định và tính bảo mật chương trình Tóm tắt nội dung các Website trả Hỗ trợ nhiều việc tìm kiếm nâng cao: theo tiêu đề, theo ngày cập nhật, theo kiểu file… (142) (143) DANH SÁCH CÁC BẢNG Bảng 2.1 :Ví dụ chuẩn loại trừ robot dùng file robot.txt 14 Bảng 2.2 : Bảng thông tin META tag chuẩn loại trừ robot 14 Bảng 2.3 : Bảng giá trị các cờ thuộc tính Content META tag 15 Bảng 4.1 : Các từ khóa giúp tối ưu câu truy vấn 44 Bảng 5.1 : Bảng hướng dẫn nhanh cách sử dụng các search engine phổ biến trên giới 48 Bảng 5.2 : Sơ lược các đặc trưng số search engine thông dụng trên internet .52 Bảng 5.3 : Các meta-search engine thông dụng trên internet 53 Bảng 5.4 : Các hệ thống thư mục theo chủ đề thông dụng trên internet 54 Bảng 5.5 : Bảng miêu tả các từ khoá sử dụng việc tìm kiếm 63 Bảng 5.6 : Ví dụ tìm kiếm thông tin Netnam 65 Bảng 6.1 : Bảng URL 70 Bảng 7.1 : Cấu trúc URLInfo 74 Bảng 7.2 : Cấu trúc StartURLInfo 74 Bảng 7.3 : Cấu trúc FileRetrieval 75 Bảng 7.4 : Cấu trúc ProjectInfo .78 Bảng 7.5 : Danh sách các thẻ thường dùng tạo tạo liên kết .85 Bảng 7.6: Bảng tóm tắt so sánh chức chính ứng dụng cũ và 96 Bảng 8.1: Cấu trúc trang cấp cho mục từ tập tin nghịch đảo 103 (144) DANH SÁCH CÁC HÌNH VẼ Hình 3.1 Lưu đồ xử lý cho hệ thống lập mục 19 Hình 5.1 Sơ đồ hệ thống Search Engine Netnam 57 Hình 7.1 Lưu đồ thuật toán cờ trạng thái 86 Hình 7.2 Lưu đồ thuật toán dựa vào đuôi file 88 Hình 7.3 Cây liên kết .93 Hình 8.1 Tập tin nghịch đảo 102 Hình 8.2 Cây từ điển n-phân 106 Hình 8.3 Lưu đồ nhận dạng bảng mã 111 Hình 9.1 Lưu đồ xử lý câu truy vấn .114 Hình 10.1 Giao diện chính quản trị 124 Hình 10.2Màn hình thể số thông tin chung project 125 Hình 10.3Các tuỳ chọn thu thập liệu project .126 Hình 10.4Màn hình sửa chữa thông tin thêm dạng file 127 Hình 10.5Màn hình chứa thông tin StartUrl 128 Hình 10.6Màn hình sau thêm số StartUrl 129 Hình 10.7Màn hình thể trạng thái xử lý StartUrl thứ 130 Hình 10.8 Màn hình xem từ điển mục .131 Hình 10.9Màn hình xem thông tin từ từ điển mục 132 Hình 10.10Màn hình thêm từ vào từ điển mục 132 Hình 10.11Màn hình xóa từ khỏi từ điển mục 133 Hình 10.12 Màn hình cập nhật mục từ từ điển mục .133 Hình 10.13Giao diện tìm kiếm thông tin người dùng .134 Hình 10.14Màn hình kết 135 (145) TÀI LIỆU THAM KHẢO I Sách, ebook: [I.1] Gerard Salton, Michael J.McGill, Introduction to Modern Information Retrieval [I.2] C.J van Rijsbergen , Department of Computing Science University of Glasgow, Information Retrieval II Luận văn, luận án [II.1] Huỳnh Thụy Bảo Trân Luận án thạc sĩ khoa học Nghiên cứu số mô hình và xây dựng thử nghiệm search engine Tiếng Việt Người hướng dẫn khoa học : GS.TS.Hoàng Văn Kiếm [II.2] Đoàn Hữu Quang Vinh Luận văn cử nhân tin học Xây dựng công cụ hỗ trợ quá trình tiền xử lý cho hệ thống search engine GVHD : Huỳnh Thụy Bảo Trân [II.3] Bùi Ngọc Tuấn Anh, Trần Nguyễn Hoàng Phương Luận văn cử nhân tin học Nghiên cứu số thuật toán tra cứu thông tin trên Internet và cài đặt thử nghiệm GVHD: Hồ Bảo Quốc [II.4] Nguyễn Hải Quyền, Lương Thị Hoàng Thuý Luận văn cử nhân tin học Tạo từ khoá cho văn tiếng Việt GVHD: Chu Tất Bích San (146) III Bài báo [III.1] Dong Thi Bich Thuy, Ho Bao Quoc, Marie-France Bruandet, Jean-Pierre Chevallet, An approach to Vietnamese Information Retrival IV Website [IV.1] http://citeseer.nj.nec.com [IV.2] Conceptual Graph Home Page http://www.cs.uah.edu/~delugach/CG [IV.3] CYC ontology http://www.cyc.com [IV.4] Search Engine Glossary http://www.cadenza.org/search_engine_terms [IV.5] W3C SemanticWeb Activity http://www.w3.org/2001/sw [IV.6] WordNet ftp://clarity.princeton.edu/pub/wordnet/ Princeton University [IV.7] http://www.robotstxt.org/wc/thread-or-treat.html [IV.8] http://infopeople.org/search/chart.html [IV.9] http://infopeople.org/search/guide.html [IV.10] http://www.vinaseek.com [IV.11] http://www.panvietnam.com [IV.12] http://www.netnam.vn [IV.13 http://monash.com (147)