Chính vì vậy tìm kiếm tự động các thông tin phù hợp và có giá trị trên Web là một chủ đề quan trọng trong đồ án của em.Các phương pháp lấy tin tự động hay nói ngắn gọn là các máy tìm kiế
Trang 1TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Tìm kiếm tự động các thông tin phù hợp và có giá trị trên Web là một chủ
đề quan trọng trong đồ án của em, nhằm tìm kiếm, phân loại và xử lý các nguồn
dữ liệu Đồ án tập trung vào hướng biểu diễn thông tin trả về bởi các máy tìm kiếm thành từng chuyên đề cụ thể từ nhiều nguồn của các trang web khác nhau
để cho người dùng có thể dễ dàng nắm bắt được thông tin một cách súc tích, nhanh chóng và tiết kiệm thời gian, đồng thời tìm được thông tin mà mình cần
Trang 2
MỤC LỤC
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 1
MỤC LỤC 2
LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined MỞ ĐẦU 5
CHƯƠNG 1 CÁC PHƯƠNG PHÁP TÌM KIẾM THU THẬP THÔNG TIN TRÊN INTERNET 8
1.1 Công cụ tìm kiếm 8
1.1.1 Tổng quan về công cụ tìm kiếm 8
1.1.2 Các bộ phận cấu thành hệ thống máy tìm kiếm search engine 9
1.2 Xem xét Web 10
1.3 Khởi đầu công cụ tìm kiếm 11
1.3.1 Bọ tìm kiếm 12
1.3.2 Tách lọc nội dung 12
1.3.3 Tốc độ tìm kiếm 13
1.3.4 Yếu tố quan trọng 13
1.3.5 Phương pháp đánh chỉ số 13
1.4 Các thẻ Meta 14
1.4.1 Phân tích khai báo thẻ Meta 14
1.4.2 Thẻ Meta loại trừ Robot 14
1.5 Xây dựng chỉ mục 15
1.5.1 Lưu trữ dữ liệu chỉ mục tìm kiếm 15
1.5.2 Phân loại chỉ mục tìm kiếm 15
1.5.3 Xây dựng chỉ mục tìm kiếm 16
1.6 Xây dựng truy vấn tìm kiếm 16
1.7 Tìm kiếm trong tương lai 17
1.8 Hoạt động của cỗ máy tìm kiếm 18
1.8.1 Hệ thống tìm kiếm trên nền tự động 18
1.8.2 Các thư mục do con người quản lý và cập nhật 19
Trang 31.8.3 Các hệ thống tìm kiếm tổng hợp 19
1.8.4 Các thành phần của một cỗ máy tìm kiếm tự động 19
1.8.5 Các cỗ máy tìm kiếm chính – Giống nhau nhưng cũng khác nhau 20
1.9 Tìm hiểu về bộ tìm kiếm robots thu thập thông tin 20
1.9.1 Ứng dụng của Robots 20
1.9.2 Robot chỉ mục 21
1.9.3 Các chiến thuật thu thập dữ liệu 22
1.10 Máy tìm kiếm Cuil 24
CHƯƠNG 2 ỨNG DỤNG THU THẬP LẤY TIN TỰ ĐỘNG TRÊN INTERNET 27
2.1 Định nghĩa 27
2.2 Nhu cầu 27
2.3 Quy trình lấy tin tự động 28
2.4 Những khó khăn khi lấy tin tự động 31
2.5 Các dạng dữ liệu 32
2.5.1 Fulltext 32
2.5.2 Hypertext 32
2.6 Kỹ thuật hỗ trợ xây dựng chương trình - Ngôn ngữ Php 35
2.6.1 Giới thiệu 35
2.6.2.Một số cú pháp cơ bản của PHP 38
2.6.3 Kiểu 40
2.7 Hệ quản trị cơ sở dữ liệu MySQL 44
2.7.1 Giới thiệu về MySQL 44
2.7.2 Các đặc trưng của MySQL 44
2.7.3 Một số thao tác cơ sở dữ liệu trong MySQL 46
2.7.4 Các lệnh thao tác CSDL 47
2.8 Các hàm PHP thao tác với CSDL MySQL 48
2.8.1 Mysql_affected_rows .48
2.8.2 Mysql_change_user 49
2.8.3 Mysql_close 49
Trang 42.8.4 Mysql_connect 49
2.8.5 Mysql_create_db 50
2.8.6 Mysql_data_seek 50
2.8.7 Mysql_db_name 50
2.8.8 mysql_query( ) 51
2.8.9 Mysql_result 51
2.8.10 Mysql_select_db 52
2.8.11 Mysql_tablename 52
CHƯƠNG 3 CHƯƠNG TRÌNH THỰC NGHIỆM 53
3.1 Bài toán 53
3.2 Các khái niệm và tầm quan trọng của bài toán 53
3.3 Phân tích thiêt kế cơ sở dữ liệu 55
3.3.1 Ràng buộc toàn vẹn 55
3.3.2 Phụ thuộc hàm 56
3.3.3 Xác định các loại thực thể và các thuộc tính 56
3.3.4 Xây dựng mô hình thực thể liên kết 57
3.3.5 Xác định khoá 58
3.3.6 Chuẩn hoá lược đồ quan hệ thành dạng chuẩn 59
3.4 Chương trình thực nghiệm 64
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 70
PHỤ LỤC 72
Trang 5Còn trong nước hiện nay, các nhà khoa học, các nhóm nghiên cứu đã và đang tiến hành nghiên cứu về những vấn đề liên quan trực tiếp với xây dựng hệ thống thu thập, xử lý thông tin tự động trên Internet Năm 2001, nhóm tác giả do
Hà Quang Thuỵ chủ trì đã tiến hành nghiên cứu về lĩnh vực khai phá văn bản và khai phá Web
World Wide Web (WWW) là một kho chứa dữ liệu và thông tin lớn nhất
và được biết đến rộng rãi nhất của các siêu văn bản Các tài liệu siêu văn bản chứa đựng văn bản và thường nhúng các liên kết đến các tài liệu khác phân bố trên Web Ngày nay, Web bao gồm hàng tỷ tài liệu của hàng triệu tác giả được tạo ra và phân tán qua hàng triệu máy tính được kết nối qua đường dây điện thoại, cáp quang, sóng radio… Web đang ngày càng được sử dụng phổ biến trong nhiều lĩnh vực như báo trí, phát thanh, truyền hình, hệ thống bưu điện, trường học, các tổ chức thương mại, chính phủ… Chính vì vậy tìm kiếm tự động các thông tin phù hợp và có giá trị trên Web là một chủ đề quan trọng trong đồ án của em.Các phương pháp lấy tin tự động hay nói ngắn gọn là các máy tìm kiếm trên Web thông thường trả lại một danh sách các tài liệu được phân hạng mà người dùng sẽ phải tốn công chọn lọc trong các trang Web khác trên Internet để
có được những tài liệu phù hợp Ngoài ra các thông tin đó thường rất phong phú,
đa dạng và liên quan đến nhiều đối tượng khác nhau Điều này tạo nên một sự nhập nhằng gây khó khăn cho người sử dụng trong việc lấy được thông tin cần
Trang 6thiết Có nhiều hướng tiếp cận khác nhau để giải quyết vấn đề này, các hướng này thường chú ý giảm sự nhập nhằng các phương pháp chọn lọc hay thêm các tùy chọn để cắt bớt thông tin Do đó một vấn đề đặt ra là làm thế nào để có thể tìm kiếm, phân loại và xử lý từ nguồn dữ liệu văn bản Rõ ràng, chúng ta phải hiểu rõ bản chất của dữ liệu văn bản, hiểu rõ các đặc trưng của các dữ liệu loại này để có thể có được những phương pháp luận cần thiết và có được những công
cụ tự động hóa trợ giúp trong việc tìm kiếm, phân loại và xử lý thông tin Đồ án tập trung vào hướng biểu diễn thông tin trả về bởi các máy tìm kiếm thành từng chuyên đề như thông tin chứng khoán, thời tiết, giá vàng và tỷ giá hối đoái, …từ nhiều nguồn của các trang web khác nhau để cho người dùng có thể dễ dàng tìm được thông tin mà mình cần
Mục đích nghiên cứu
Trong báo cáo này, em sẽ trình bày những kiến thức cơ sở về thu thập, tìm kiếm
và lấy tin tự động trên Internet Nội dung chính của báo cáo tập trung nghiên cứu vào việc tìm hiểu lấy tin tự động về một số lĩnh vực phổ biến như lấy tin về chứng khoán, thời tiết, giá vàng và tỷ giá hối đoái…
Nội dung thực hiện
Tìm hiểu về công cụ tìm kiếm, SEO, bọ tìm kiếm spider, thu thập và lấy tin tự động trên Internet
Các kỹ thuật hỗ trợ lấy tin tự động
Một số kết quả thực nghiệm
Đề xuất hướng phát triển
Giới hạn nghiên cứu
Mặc dù đồ án còn khá mới mẻ song trước khi lựa chọn em đã xem xét tính khả thi của bài toán trên thực tế Mặt khác đối với một chương trình làm về lấy tin tự động sẽ không bao giờ có đáp án cuối cùng mà vẫn còn rất nhiều yếu tố cần quan tâm và đánh giá theo thời gian Và đã thu được những kiến thức cơ bản về kỹ thuật và những thử nghiệm về lấy tin tự động về một số lĩnh vực phổ biến như
Trang 7lấy tin về chứng khoán, thời tiết, giá vàng tỷ giá hối đoái …từ các trang web khác nhưng hứa hẹn sự phát triển và ứng dụng của phương pháp lấy tin tự động về nhiều lĩnh vực khác trên Internet trong tương lai
Cấu trúc của đồ án bao gồm 3 chương chính:
Chương 1: Các phương pháp tìm kiếm thu thập thông tin trên mạng Internet Chương 2: Ứng dụng thu thập lấy tin tự động trên Internet
Chương 3: Chương trình thực nghiệm
Trang 8CHƯƠNG 1 CÁC PHƯƠNG PHÁP TÌM KIẾM THU THẬP
THÔNG TIN TRÊN INTERNET
Internet và World Wide Web có đến hàng trăm triệu website có sẵn mang các thông tin về nhiều chủ đề khác nhau Tuy nhiên hầu hết chúng đều được đặt tiêu đề theo ý thích của tác giả, và được đặt trên máy chủ với các tên khó hiểu Khi bạn cần biết về một chủ đề nào thì sẽ phải đọc các trang nào? Phần lớn mọi người khi băn khoăn về vấn đề này họ sẽ sử dụng công cụ tìm kiếm trên Internet (Search Engine)
1.1 Công cụ tìm kiếm
1.1.1 Tổng quan về công cụ tìm kiếm
Search Engine trên Internet hay các công cụ tìm kiếm là các site đặc biệt trên web, được thiết kế để giúp mọi người tìm kiếm thông tin được lưu trên các site khác nhau Có nhiều cách khác nhau trong cách tìm kiếm này, nhưng tất cả chúng đều thực hiện ba nhiệm vụ cơ bản:
Tìm kiếm Internet – hoặc chọn các mẩu thông tin trên Internet – dựa trên các từ quan trọng;
Giữ một chỉ mục cho các từ tìm thấy cùng với địa chỉ tìm thấy chúng;
Cho phép người dùng tìm kiếm các từ hoặc cụm từ được tìm kiếm trong chỉ mục đó
Các công cụ tìm kiếm trước kia đều giữ chỉ mục của hàng trăm ngàn trang web
và tài liệu, chúng thường nhận có thể một hoặc hai nghìn yêu cầu tìm kiếm mỗi ngày Ngày nay, công cụ tìm kiếm hàng đầu đánh chỉ mục hàng trăm triệu trang
và đáp trả đến hàng chục triệu yêu cầu mỗi ngày Trong bài này chúng tôi muốn giới thiệu về các nhiệm vụ chính sẽ được thực hiện như thế nào, và cách các công
Trang 9cụ tìm kiếm này sẽ xử lý như thế nào để cho phép bạn tìm thông tin cần thiết trên web
1.1.2 Các bộ phận cấu thành hệ thống máy tìm kiếm search engine
a Bộ thu thập thông tin – Robot
Robot là một 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 và một cách đệ quy nó nhận về tất cả tài liệu có liên kết với tài liệu này
Robots được biết đến dưới nhiều tên gọi khác nhau : spider, web wanderer hoặc web worm,… Những tên gọi này đôi khi gây nhầm lẫn, như từ ‘spider’,
‘wanderer’ làm người ta nghĩ rằng robot tự nó di chuyển và từ ‘worm’ làm người
ta liên tưởng đến virus Về bản chất robot chỉ là một 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 được xem là robot do thiếu tính chủ động, chúng chỉ duyệt web khi có sự tác động của con người
ở trang nào, địa chỉ nào
c Bộ tìm kiếm thông tin – Search Engine
Search engine là cụm từ dùng chỉ toàn bộ hệ thống bao gồm bộ thu thập thông tin, bộ lập chỉ mục & bộ tìm kiếm thông tin Các bộ 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 nhau về mặt dữ liệu nhưng độc lập với nhau về 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
và trả về những tài liệu thoả yêu cầu của user
Trang 10Nói nôm na, tìm kiếm từ là tìm kiếm các trang mà những từ trong câu truy vấn (query) xuất hiện nhiều nhất, ngoại trừ stopword (các từ quá thông dụng như mạo
từ a, an, the,…) Một từ càng xuất hiện nhiều trong một trang thì trang đó càng được chọn để trả về cho người dùng Và một trang chứa tất cả các từ trong câu truy vấn thì tốt hơn là một trang không chứa một hoặc một số từ Ngày nay, hầu hết các search engine đều hỗ trợ chức năng tìm cơ bản 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 như trên đề mục, tiêu đề, đoạn văn bản giới thiệu về 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 sự của câu hỏi thông qua những câu chữ do người dùng cung cấp Điều này được thể hiện qua chức năng sửa lỗi chính tả, tìm cả những hình thức biến đổi khác nhau của một từ Ví dụ : search engine sẽ tìm những từ như speaker, speaking, spoke khi người dùng nhập vào từ speak
1.2 Xem xét Web
Khi hầu hết mọi người nói về các công cụ máy tìm kiếm Internet, họ đều cho đó là công cụ tìm kiếm World Wide Web Tuy nhiên trước khi Web trở thành phần dễ thấy nhất của Internet thì thực sự đã có các công cụ tìm kiếm để giúp mọi người có thể tìm được các thông tin trên mạng Các chương trình với những cái tên như “Gopher” và “Archie” đã giữ chỉ số của các file được lưu trên máy chủ kết nối với Internet, đã giảm được một cách rõ rệt số lượng thời gian cần thiết để tìm kiếm các chương trình và tài liệu Vào những năm cuối thập kỷ
80, việc có được các giá trị quan trọng từ Internet có nghĩa là biết cách sử dụng Gopher, Archie, Veronica và một số chương trình tương tự khác
Ngày nay, hầu hết người dùng Internet chưa hiểu nhiều về cách tìm kiếm của họ trên Web, chính vì vậy chúng tôi sẽ giới thiệu vấn đề này bằng cách tập trung vào nội dung của các trang web
Trang 111.3 Khởi đầu công cụ tìm kiếm
Hình 1 : Spider lấy nội dung của trang web và tạo các từ khóa tìm kiếm để cho
phép người dùng trực tuyến có thể tìm các trang mong muốn
Trang 121.3.1 Bọ tìm kiếm
Trước khi công cụ tìm kiếm có thể cho bạn biết về nơi một file hoặc tài liệu nào đó được lưu trữ thì nó phải tìm ra được chúng Để tìm các thông tin trên hàng trăm triệu trang web đang tồn tại, mỗi một công cụ tìm kiếm phải sử dụng đến các robot phần mềm đặc biệt, các robot phần mềm này được gọi là spider (con nhện hay bọ tìm kiếm), để thành lập danh sách các từ tìm thấy trong các website Quá trình spider xây dựng danh sách được gọi là đánh chỉ số hoá (Web crawling) Để tạo và duy trì một danh sách hữu dụng cho việc tìm kiếm thì spider của công cụ tìm kiếm phải xem được nội dung của các trang web
1.3.2 Tách lọc nội dung
Vậy cách spider thực hiện công việc của nó trên Web như thế nào? Điểm khởi đầu là danh sách các máy chủ và trang web phổ biến Spider sẽ bắt đầu với một site phổ biến nào đó, đánh chỉ mục các từ trên trang của nó và theo các liên kết tìm thấy bên trong site này Theo cách này, hệ thống Spider sẽ nhanh chóng thực hiện công việc của nó và trải rộng ra toàn bộ các phần được sử dụng rộng rãi nhất của web
Spider lấy nội dung của trang web và tạo các từ khóa tìm kiếm để cho phép người dùng trực tuyến có thể tìm các trang mong muốn
Google.com bắt đầu như một công cụ tìm kiếm của trường đại học Trong bài viết mô tả về cách hệ thống được xây dựng như thế nào, Sergey Brin và Lawrence Page đã lấy một ví dụ về spider của họ có thể làm việc nhanh đến cỡ nào Họ đã xây dựng hệ thống ban đầu để có thể sử dụng nhiều spider, thường là
có đến 3 spiders hoạt động đồng thời Mỗi Spider có thể giữ tới khoảng 300 kết nối với các trang web mỗi thời điểm Với hiệu suất đỉnh của nó, sử dụng đến 4 Spider, hệ thống của họ có thể tìm thêm trên 100 trang mỗi giây, tạo ra khoảng 600KB dữ liệu mỗi giây
Trang 131.3.3 Tốc độ tìm kiếm
Việc giữ được tốc độ tìm kiếm nhanh cũng có nghĩa phải xây dựng hệ thống có thể cung cấp được các thông tin cần thiết cho Spider Hệ thống Google trước kia có một máy chủ chuyên dụng dùng để cung cấp các URL cho Spider Thay cho việc phụ thuộc vào nhà cung cấp dịch vụ về DSN để dịch tên của máy chủ thành địa chỉ, Google đã có DSN của chính họ để độ giữ chậm diễn ra chỉ trong khoảng thời gian tối thiểu
1.3.4 Yếu tố quan trọng
Khi bọ tìm kiếm (Spider) xem các trang HTML, nó lưu ý hai thứ:
Các từ bên trong trang
Nơi tìm thấy các từ
Các từ xuất hiện trong tiêu đề, phụ đề, các thẻ meta và các phần quan trọng khác
có liên quan được lưu ý bằng những xem xét đặc biệt cho những tìm kiếm của người dùng sau đó Spider của Google đã được xây dựng để có thể đánh chỉ mục mọi từ quan trọng trên một trang và chỉ để lại các mạo từ như “a,” “an” và “the” Các Spider khác lại sử dụng các phương pháp khác
1.3.5 Phương pháp đánh chỉ số
Các phương pháp khác mà bọ tìm kiếm (Spider) áp dụng thường là cố gắng làm cho hệ thống của Spider diễn ra nhanh hơn, cho phép người dùng có thể tìm kiếm hiệu quả hơn, hoặc cả hai Ví dụ, một số Spider giữ liên hệ với các
từ trong tiêu đề, các heading nhỏ và liên kết, cùng với 100 từ thường được sử dụng trên trang và các từ trong 20 dòng đầu tiên của văn bản
Các hệ thống khác chẳng hạn như AltaVista lại tiếp cận theo một hướng khác, đánh chỉ mục các từ đơn trên mỗi trang, gồm có cả “a,” “an,” “the” và các từ
“không quan trọng” khác Tính đầy đủ trong phương pháp này được so khớp bởi các hệ thống khác trong phần thẻ meta của Website
Trang 141.4 Các thẻ Meta
1.4.1 Phân tích khai báo thẻ Meta
Thẻ Meta cho phép chủ sở hữu của trang có thể chỉ định các từ khóa và khái niệm sẽ được đánh chỉ mục Đây là một trong các thẻ rất hữu dụng, đặc biệt trong nhiều trường hợp các từ trên trang có thể có đến hai hoặc 3 nghĩa – thẻ Meta có thể hướng dẫn công cụ tìm kiếm trong việc chọn nghĩa nào trong số các nghĩa có thể là đúng đối với một từ nào đó Tuy vậy vẫn có một lo lắng trong việc tin cậy nhiều vào thẻ Meta vì các trang kém chất lượng mà chủ sở hữu của
nó lại đưa vào thẻ này những chủ đề phổ biến nhưng không có nội dung gì về nó
Để khắc phục hiện tượng này, Spider sẽ tương quan các thẻ Meta với nội dung của trang, loại ra các thẻ không thỏa khớp với các từ trong trang
1.4.2 Thẻ Meta loại trừ Robot
Tất cả vấn đề này khởi nguồn từ chủ sở hữu của trang này, họ muốn trang web được hiển thị trong kết quả tìm kiếm của các công cụ tìm kiếm này Nhiều khi, chủ sở hữu không muốn trang của họ xuất hiện trên các trang kết quả của một công cụ tìm kiếm hoặc không muốn Spider truy cập vào trang của họ (Ví
dụ, một game xây dựng các trang active mới mỗi lần các section của trang được hiển thị hoặc theo sau là các liên kết mới Nếu một Spider Web có thể truy cập vào và bắt đầu đi theo tất cả liên kết cho các trang mới thì game có thể mắc lỗi activity cho player tốc độ cao và kéo dài sự kiểm soát) Để tránh tình trạng này, giao thức loại trừ robot đã được phát triển Giao thức này bổ sung vào phần thẻ meta ở bắt đầu mỗi trang, thông báo cho Spider phải rời trang của nó – không đánh chỉ mục các từ trên trang này hoặc cố gắng lần theo các liên kết của nó
Trang 151.5 Xây dựng chỉ mục
1.5.1 Lưu trữ dữ liệu chỉ mục tìm kiếm
Khi Spider đã hoàn tất nhiệm vụ tìm thông tin trên các trang web (chúng tôi lưu ý rằng đây là nhiệm vụ không bao giờ hoàn tất vì luôn có sự thay đổi của các trang nên điều đó có nghĩa là Spider sẽ luôn thực hiện nhiệm vụ của nó), công cụ tìm kiếm phải lưu các thông tin này theo một cách nào đó để có lợi nhất
Có hai thành phần chính liên quan tới việc tạo dữ liệu đã thu thập được để có thể truy cập với người dùng:
.Thông tin được lưu với dữ liệu;
.Phương pháp mà thông tin được đánh chỉ mục
Trong trường hợp đơn giản nhất, một công cụ tìm kiếm có thể chỉ lưu các từ và URL nơi mà nó tìm ra Trong thực tế, điều này sẽ làm hạn chế rất nhiều vì sẽ không có cách nào để nói từ đó đã được sử dụng là quan trọng hay không có giá trị trên trang đó, hoặc từ đã được sử dụng một lần hay nhiều lần, hoặc trang đó có chứa liên kết đến các trang khác có chứa từ hay không Nói theo cách khác là sẽ không có cách nào xây dựng được danh sách thứ hạng để bình chọn các trang hữu ích nhất ở trên đầu mỗi danh sách kết quả tìm kiếm
1.5.2 Phân loại chỉ mục tìm kiếm
Để làm cho các kết quả tìm kiếm được phù hợp nhất, hầu hết các công cụ tìm kiếm đều lưu nhiều từ và URL Một công cụ tìm kiếm có thể lưu số lần từ nào đó xuất hiện trong một trang Nó có thể gán “trọng lượng” cho mỗi một entry nào đó, tăng dần giá trị gán cho các từ khi chúng xuất hiện gần phía trên của tài liệu, trong các heading con, các liên kết và trong thẻ meta hoặc trong tiêu đề của trang Mỗi một công cụ tìm kiếm mang tính thương mại đều có một công thức khác nhau đối với việc gán trọng lượng cho các từ trong chỉ mục của nó Đây chính là một trong những lý do tại sao một tìm kiếm cho những từ giống nhau trên các công cụ tìm kiếm khác nhau lại cho ra danh sách khác nhau, các trang được thể hiện theo thứ tự khác nhau
Trang 161.5.3 Xây dựng chỉ mục tìm kiếm
Không quan tâm đến sự kết hợp nghiêm ngặt các mẩu thông tin bổ sung được lưu bởi mỗi công cụ tìm kiếm, dữ liệu sẽ được mã hóa để lưu trữ trong các điểm lưu trữ riêng
Một chỉ mục chỉ có một mục đích: Nó cho phép thông tin được tìm thấy một cách nhanh chóng Có khá nhiều cách cho việc xây dựng chỉ mục, nhưng cách hiệu quả nhất vẫn là xây dựng một bảng hash Một công thức được sử dụng để gắn giá trị bằng số cho mỗi một từ Công thức này được thiết kế để cung cấp cho các entry trên số lượng được xác định trước các phần chia Phần chia bằng số này khác với phần chia từ trong bảng alphabet và đó chính là hiệu lực chính của bảng hash
Trong tiếng Anh, có một số ký tự được bắt đầu nhiều hơn với các ký tự khác Ví
dụ như bạn sẽ thấy phần “M” của từ điển sẽ dày hơn phần “X” Sự không công bằng này có nghĩa rằng việc tìm một từ bắt đầu với một ký tự “phổ biến” có thể lâu hơn nhiều so với việc tìm một từ bắt đầu với một ký tự kém phổ biến hơn Thuật toán Hash cân bằng sự khác nhau này, và giảm thời gian trung bình để tìm kiếm mỗi entry Nó cũng phân biệt chỉ mục với entry thực tại Bảng hash gồm có các số được đánh hash cùng với một con trỏ dữ liệu, con trỏ này có thể được phân loại theo bất cứ cách nào cho phép lưu trữ hiệu quả nhất Sự kết hợp giữa việc đánh chỉ mục hiệu quả và lưu trữ hiệu quả làm cho người dùng có thể thực hiện các thao tác tìm kiếm một cách nhanh chóng thậm chí khi họ tạo một tìm kiếm phức tạp
1.6 Xây dựng truy vấn tìm kiếm
Việc tìm kiếm thông qua một chỉ mục cần người dùng xây dựng một truy vấn và đệ trình nó thông qua công cụ tìm kiếm Search Engine Truy vấn có thể khá đơn giản như một từ chẳng hạn Việc xây dựng một truy vấn phức tạp hơn cần sử dụng các toán tử Boolean để cho phép bạn lọc và mở rộng dưới dạng tìm kiếm
Các toán tử Boolean thường được sử dụng nhất là:
Trang 17.AND – Tất cả các mục đã được nối bằng toán tử này phải xuất hiện trong trang hoặc các tài liệu Một số công cụ tìm kiếm (Search Engine) thay thế toán tử này bằng dấu “+”;
.OR – Ít nhất một trong các mục đã được nối bằng “OR” phải xuất hiện trong các trang hoặc tài liệu
NOT – Mục hoặc các mục sau toán tử này không xuất hiện trong trang hoặc tài liệu, một số công cụ tìm kiếm thay thế bằng dấu “-”;
.FOLLOWED BY – Một trong số các mục phải được theo sau trực tiếp bởi mục khác;
.NEAR – Một trong các mục phải nằm bên trong một số các từ cụ thể; Dấu ngoặc kép – Các từ giữa các dấu ngoặc kép phải được coi như một cụm từ, và cụm từ đó phải được tìm thấy trong tài liệu hoặc file
1.7 Tìm kiếm trong tương lai
Các tìm kiếm đã được định nghĩa bởi toán tử Boolean trở nên khá bình thường, công cụ tìm kiếm sẽ tìm kiếm các từ hoặc cụm từ chính xác khi chúng được nhập vào Điều này có thể phát sinh một vấn đề khi các từ được nhập có đa nghĩa Nếu bạn chỉ quan tâm đến một trong các nghĩa đó thì có thể không muốn thấy xuất hiện các trang tiêu biểu cho tất cả các nghĩa của nó Tuy bạn có thể tạo một tìm kiếm bằng cách loại trừ ra các nghĩa không mong muốn nhưng nếu công
cụ tìm kiếm giúp được bạn việc này thì tốt biết bao
Một trong những lĩnh vực nghiên cứu tìm kiếm là tìm kiếm dựa trên khái niệm Một số nghiên cứu này liên quan đến việc sử dụng phân tích thống kê về các trang chứa từ hoặc cụm từ mà bạn tìm kiếm, để tìm ra các trang khác có thể bạn quan tâm Rõ ràng các thông tin được lưu trong mỗi trang thực sự rất quan trọng cho tìm kiếm dựa trên khái niệm, và xa hơn nữa là việc xử lý được yêu cầu cho mỗi tìm kiếm Nhiều nhóm nghiên cứu đã và đang làm việc hết mình để cải thiện
cả kết quả và hiệu suất của các công cụ tìm kiếm này Một số nhóm khác đã chuyển sang một lĩnh vực nghiên cứu khác như truy vấn ngôn ngữ tự nhiên
Trang 18Ý tưởng ẩn đằng sau nghiên cứu truy vấn ngôn ngữ tự nhiện là bạn có thể đánh vào đó một câu hỏi giống như cách bạn hỏi đối với người ngồi bên cạnh bạn – khong cần đến các toán tử Boolean hoặc các cấu trúc truy vấn phức tạp Site truy vấn ngôn ngữ tự nhiên nhất hiện nay là AskJeeves.com, nó có khả năng phân tích
cú pháp truy vấn về các từ khóa để áp dụng cho chỉ mục của các site mà nó đã xây dựng Tuy nhiên site này chỉ làm việc với các truy vấn đơn giản vì việc đặt khái niệm cho một truy vấn khá phức tạp
1.8 Hoạt động của cỗ máy tìm kiếm
Thuật ngữ “Cỗ máy tìm kiếm – Search Engine” được dùng chung để chỉ 2
hệ thống tìm kiếm: Một do các chương trình máy tính tự động tạo ra Based Search Engines) và dạng thư mục Internet do con người quản lý (Human- Powered Directories)
(Crawler-Hai hệ thống tìm kiếm này tìm và lập danh mục website theo 2 cách khác nhau
1.8.1 Hệ thống tìm kiếm trên nền tự động
Những cỗ máy tìm kiếm tự động, như Google, tạo ra những danh sách của
họ tự động Chúng sử dụng các chương trình máy tính, được gọi là “robots“,
“spiders”, hay crawlers để lần tìm thông tin trên mạng khi có ai đó tìm kiếm một thông tin, các Search Engine lập tức hiển thị các thông tin lưu trữ tương ứng Nếu bạn thay đổi những trang web của các bạn, những cỗ máy tìm kiếm tự động dần dần tìm thấy những sự thay đổi này, và điều đó có thể ảnh hưởng đến bạn được liệt kê như thế nào Những tiêu đề trang, nội dung văn bản và các phần tử khác đều giữ một vai trò nhất định
Trang 191.8.2 Các thư mục do con người quản lý và cập nhật
Các thư mục Internet – ví dụ như Dự án thư mục mở – Open Directory Project (Dmoz.org) hoàn toàn phụ thuộc vào sự quản lý của con người Bạn đăng
ký website của bạn vào thư mục với một vài dòng mô tả ngắn gọn hoặc các biên tập viên của thư mục viết giúp phần mô tả cho bạn – chúng phù hợp với nội dung
và chủ đề của từng danh mục
Việc thay đổi những trang web của các bạn không có hiệu lực trên danh mục của các bạn Những thứ hữu ích để cải thiện vị trí xếp hạng với một cỗ máy tìm kiếm không có gì để làm với việc cải thiện một vị trí trong một thư mục Ngoại lệ duy nhất là một site tốt, với nội dung tốt, có lẽ thích hợp hơn để được xem xét so với một website nghèo nàn
1.8.3 Các hệ thống tìm kiếm tổng hợp
Ngày trước, mỗi cỗ máy tìm kiếm sử dụng giải thuật riêng để tạo sự khác biệt Đã là hệ thống tìm kiếm tự động thì không kèm theo một thư mục Internet
và ngược lại Nhưng hiện nay, hầu hết hệ thống tìm kiếm đều là sự tổng hợp của
hệ thống tìm kiếm tự động và một thư mục do con người quản lý Ví dụ, Yahoo
có Yahoo Directory, Google có Google directory (dựa trên thư mục Dmoz), MSN và các hệ thống tìm kiếm khác cũng vậy
1.8.4 Các thành phần của một cỗ máy tìm kiếm tự động
Những cỗ máy tìm kiếm tự động có ba phần tử chính Đầu tiên là spider, cũng được gọi là crawlers Spider đến thăm một trang web, đọc nó, và sau đó đi theo sau những mối liên kết tới những trang khác bên trong website Có nghĩa là, khi có ai đó tìm kiếm đến một trang, các spiders sẽ ghi nhớ điều đó Nó sẽ quay lại trang đó và theo chu kỳ 1-2 tháng Như vậy, nếu trang web được tìm thấy càng nhiều, thì các spiders càng năng quay trở lại hơn và như thế, kết quả tìm kiếm của bạn cũng được cải thiện theo
Mọi thứ spider tìm thấy đi vào trong phần thứ hai của cỗ máy tìm kiếm, Chỉ mục (the index) Chỉ mục, đôi khi gọi là tài liệu, là một kho lưu trữ khổng lồ
Trang 20chứa đựng một sự sao chép của mọi trang web mà spider tìm thấy Nếu một trang web thay đổi, thì danh sách này được cập nhật với thông tin mới
Đôi khi, cần phải có thời gian để các spiders lập chỉ mục cho một trang mới hay một trang được thay đổi nội dung Như vậy, sẽ có trường hợp: một trang
đã được các spiders tìm đến, nhưng lại chưa được lập chỉ mục Và trong khỏang thời gian này, trang web sẽ hòan tòan không tồn tại trên Search engine
Phần mềm tìm kiếm chính là phần tử thứ ba của một cỗ máy tìm kiếm Đây là một chương trình máy tính có chức năng sàng lọc thông tin từ hàng triệu trang tương tự nhau để sắp xếp vị trí từng trang sao cho phù hợp nhất
1.8.5 Các cỗ máy tìm kiếm chính – Giống nhau nhưng cũng khác nhau
Tất cả các cỗ máy tìm kiếm tự động có những phần cơ bản được mô tả ở trên, nhưng có những sự khác nhau trong những phần này trong việc nó được điều chỉnh tác động như thế nào Đó là lý do tại sao cùng một từ khóa, khi tìm kiếm trên những cỗ máy tìm kiếm khác nhau thường cho ra những kết quả khác nhau Một ví dụ cụ thể: Nếu bạn đánh một từ khóa, thì Google, Yahoo, MSN, AOL, Ask hay Exactseek đều cho ra các kết quả khác nhau, dù có nhiều website hơi giống nhau
1.9 Tìm hiểu về bộ tìm kiếm robots thu thập thông tin
1.9.1 Ứng dụng của Robots
Phân tích, thống kê – Statistical Analysis
Robot đầu tiên được dùng để đếm số lượng web server, số tài liệu trung bình của một server, tỉ lệ các dạng file khác nhau, kích thước trung bình của một trang web, độ kết dính, …
Duy trì siêu liên kết – Maintenance
Một trong những khó khăn của việc duy trì một siêu liên kết là nó liên kết với những trang bị hỏng (dead links) khi những trang này bị thay đổi hoặc thậm chí bị xóa Thật không may vẫn chưa có cơ chế nào cảnh báo các bộ duy trì về sự thay đổi này Trên thực tế khi các tác giả nhận ra tài liệu của mình chứa những liên kết hỏng,
Trang 21họ sẽ thông báo cho nhau, hoặc thỉnh thoảng độc giả thông báo cho họ bằng email Một số robot, chẳng hạn MOMspider có thể trợ giúp tác giả phát hiện các liên kết hỏng cũng như duy trì các cấu trúc siêu liên kết cùng nội dung của một trang web Chức năng này lặp lại liên tục mỗi khi một tài liệu được cập nhật, nhờ
đó mọi vấn đề xảy ra sẽ được giải quyết nhanh chóng
Ánh xạ địa chỉ web – Mirroring
Mirroring là một kỹ thuật phổ biến trong việc duy trì các kho dữ liệu của FPT Một ánh xạ (mirror) sẽ sao chép toàn bộ cấu trúc cây thư mục và thường xuyên cập nhật những file bị thay đổi Điều này cho phép nhiều người cùng truy xuất một nguồn dữ liệu, giảm số liên kết bị thất bại, nhanh hơn và ít chi phí hơn
so với truy cập trực tiếp vào site thực sự chứa các dữ liệu này
Phát hiện tài nguyên – Resource Discovery
Có lẽ ứng dụng thú vị nhất của robot là dùng nó để phát hiện tài nguyên Con người không thể kiểm soát nổi một khối lượng thông tin khổng lồ trong môi trường mạng Robot sẽ giúp thu thập tài liệu, tạo và duy trì cơ sở dữ liệu, phát hiện và xoá bỏ các liên kết hỏng nếu 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 con người
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 năng Ví dụ RBSE Spider [4] vừa thống kê số lượng tài liệu thu được vừa tạo cơ sở dữ liệu Tuy nhiên những ứng dụng như thế còn khá ít ỏi
Trang 22Hai là : Ai sẽ cung cấp địa chỉ của các site này cho robot ?
Có 2 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 chỉ đầu vào cho robot Quá trình này được lặp lại liên tục
Ba là : Chọn dữ liệu nào trong tài liệu để lập chỉ mục ?
1.9.3 Các chiến thuật thu thập dữ liệu
Trước khi các trang web được đánh chỉ mục, tất cả các trang web phải được lấy về máy của robot Để lấy được tất cả các trang web, robot phải có chiến thuật Từ một số trang web có sẵn, robot lọc ra danh sách các liên kết, rồi từ đó
dò tìm các trang khác
Có 3 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
Chiến thuật tìm kiếm theo chiều sâu
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau :
1 (1) Cho danh sách = {trang đầu tiên}
2 (2) Lấy trang đầu tiên trong danh sách
o Nếu có qua (3)
o Nếu không qua (5)
3 (3) Trang này đã xét tới chưa ?
o Nếu rồi, quay lại (2)
o Nếu chưa, qua (4)
4 (4) Đánh dấu đã tới rồi Phân tích và tìm xem liên kết có trong 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)
Trang 235 (5) Kết thúc
Chiến thuật tìm kiếm theo chiều rộng
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau :
1 (1) Cho danh sách = {trang đầu tiên}
2 (2) Lấy trang đầu tiên trong danh sách
o Nếu có qua (3)
o Nếu không qua (5)
3 (3) Trang này đã xét tới chưa ?
o Nếu rồi, quay lại (2)
o Nếu chưa, qua (4)
4 (4) Đánh dấu đã tới rồi Phân tích và tìm xem liên kết có trong trang đó không?
o (4a) Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4)
o (4b) Nếu không, quay lại (2)
5 (5) Kết thúc
Chiến thuật tìm kiếm theo ngẫu nhiên
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau :
1 (1) Cho danh sách = {trang đầu tiên}
2 (2) Lấy ngẫu nhiên một trang trong danh sách
o Nếu có qua (3)
o Nếu không qua (5)
3 (3) Trang này đã xét tới chưa ?
o Nếu rồi, quay lại (2)
o Nếu chưa, qua (4)
Trang 244 (4) Đánh dấu đã tới rồi Phân tích và tìm xem liên kết có trong trang đó không?
o (4a) Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4)
o (4b) Nếu không, quay lại (2)
5 (5) Kết thúc
1.10 Máy tìm kiếm Cuil
Một máy tìm kiếm thường có 3 thành phần chính:
Thứ nhất là thành phần chuyên thu thập các trang web tồn tại trên Internet (crawling);
Thứ hai là thành phần đánh chỉ mục (indexing) : Thành phần này rút trích các đặc trưng của các các trang web (ví dụ tiêu đề, từ khóa tiêu biểu) và lưu trữ vào cơ sở dữ liệu để phục vụ cho nhu cầu tìm kiếm sau này;
Thứ ba là thành phần tìm các trang web phù hợp/liên quan/thỏa mãn (relevant) nhu cầu của người dùng (searching), thông qua quá trình tương tác với giao diện của máy tìm kiếm, ví dụ như gõ vào các từ khóa trong ô tìm kiếm Để có thể biết máy tìm kiếm nào tốt hơn máy tìm kiếm nào, về phía người dùng, chỉ có một tiêu chí duy nhất, đó là máy tìm kiếm nào cho kết quả phù hợp (relevant) với nhu cầu của họ một cách đầy đủ nhất (comprehensive), nhanh nhất (fastest) sẽ là máy tìm kiếm tốt nhất Chúng
ta hãy cùng so sánh các thành phần này của Cuil với Google
a.Kích thước chỉ mục
Cuil cho rằng hệ thống chỉ mục hiện nay của họ là lớn nhất trên thế giới, với 120
tỉ trang web được đánh chỉ mục Thực ra con số trang web của Cuil thu thập lớn hơn nhiều, đến 186 tỉ trang, nhưng nhiều trang đã bị loại bớt do trùng lắp và spam
Trang 25b Mức độ phù hợp với nhu cầu tìm kiếm của người dùng
Thuật toán xếp hạng của Cuil không dựa vào tính đại chúng như thuật toán PageRank của Google, mà thay vào đó là dựa vào phân tích nội dung (content analysis) để hiểu ngữ nghĩa của từng trang Tuy nhiên, theo như phân tích của chuyên gia Danny Sullivan [2,3], hiện nay, Cuil vẫn sử dụng ý tưởng về tính đại chúng của thuật toán PageRank cho thuật toán xếp hạng trang web của họ Một
ví dụ là khi người dùng gõ vào từ khóa “Harry Potter”, người ta có thể tự hỏi tại sao trang web về bộ phim “Harry Potter and the Order of the Phoenix” lại được Cuil xếp ngay trong kết quả trả về của trang đầu tiên trong khi có hàng vạn trang khác liên quan tới Harry Potter lại xếp phía sau Câu trả lời chỉ có thể là dùng cách phân tích về tính đại chúng của các trang mà thôi Do đó, một trang khi được liên kết đến nhiều như trang web về bộ phim mới nhất về Harry Potter, sẽ được đánh giá cao hơn các trang khác
Mặc dù nhiều máy tìm kiếm mới như Cuil đều cho rằng họ thực hiện phân tích ngữ nghĩa trên các trang để giúp tìm ra các trang web phù hợp với người dùng tốt hơn so với Google, tuy nhiên thực tế cho thấy rằng, từ nói đến làm vẫn còn khoảng cách khá xa
c Giao diện giao tiếp với người dùng
Có lẽ điểm khác nổi bật giữa Cuil và Google là giao diện 3 cột (có thể tùy chỉnh thành 2 cột)
Với cách bố trí này, người dùng được hỗ trợ thêm trong việc tinh chỉnh lại kết quả tìm kiếm, ví dụ tìm sách về Harry Potter, hay trò chơi liên quan đến Harry Potter Những hỗ trợ này thực ra không mới vì trước đó các đối thủ khác như Vivisimo, KartOO và Yahoo cũng đã có
Trang 26Hình 1 : Giao diện người dùng của máy tìm kiếm Cuil
d Cơ sở hạ tầng
Cơ sở hạ tầng (hệ thống máy chủ cho trung tâm dữ liệu) là một trong những yếu
tố quan trọng của các máy tìm kiếm Hai tiêu chí hàng đầu là tính hiệu quả (trả về kết quả nhanh nhất) và tính toàn vẹn và nhất quán của dữ liệu phân tán Google
đã có nhiều năm kinh nghiệm và có số lượng máy chủ khổng lồ đặt khắp nơi trên thế giới để đảm bảo cho việc trả kết quả về rất nhanh dù người dùng ở bất cứ đâu Trong khi đó, Cuil chỉ mới hỗ trợ cho thị trường Mỹ, các thị trường khác như châu Âu và châu Á sẽ được hỗ trợ trong thời gian tới Ngoài ra, ngay trong ngày đầu khai trương, Cuil đã cho thấy sự quá tải khi số lượng người dùng tăng đột biến, vượt qua ước tính của họ
Trang 27CHƯƠNG 2 ỨNG DỤNG THU THẬP LẤY TIN TỰ ĐỘNG
sẻ thông tin một cách tổng quát, nhanh chóng và dễ dàng, để lấy ra được những thông tin cần thiết cho người dùng
Sự phát triển nhanh chóng của mạng Internet và Intranet đã sinh ra một khối lượng khổng lồ các dữ liệu dạng siêu văn bản ( dữ liệu Web) Cùng với sự thay đổi và phát triển hàng ngày hàng giờ về nội dung cũng như số lượng các trang Web trên Internet thì vấn đề tìm kiếm thông tin đối với người sử dụng lại ngày càng khó khăn Có thể nói nhu cầu tìm kiếm thông tin trên một cơ sở dữ liệu phi cấu trúc đã được phát triển chủ yếu cùng với sự phát triển của Internet Thực vậy với Internet con người đã làm quen với các trang Web cùng với vô vàn các thông tin Trong những năm gần đây Internet đã trở thành một trong những kênh về khoa học, thông tin kinh tế, thương mại và quảng cáo Một trong những
lý do cho sự phát triển này là sự thấp về giá cả tiêu tốn khi công khai một trang Web trên Internet So sánh với những chiến dịch khác như mua bán hay quảng cáo trên một tờ báo hay tạp chí thì một trang Web “đòi ” rẻ hơn rất nhiều và cập nhật nhanh chóng hơn tới hàng triệu người dùng khắp mọi nơi trên thế giới Có thể nói trang Web như là cuốn từ điển bách khoa toàn thư Thông tin trên các
Trang 28trang Web đa dạng về mặt nội dung cũng như hình thức, có thể nói Internet như một xã hội ảo, nó bao gồm các thông tin về mọi mặt của đời sống kinh tế, xã hội được trình bày dưới dạng văn bản, hình ảnh , âm thanh,….Tuy nhiên cùng với sự
đa dạng và số lượng lớn thông tin như vậy đã nảy sinh vấn đề quá tải thông tin Người ta không thể tự tìm kiếm địa chỉ trang Web chứa thông tin mà mình cần
do đó yêu cầu đặt ra một vấn đề là làm thế nào để có thể tìm kiếm, phân loại và
xử lý từ nguồn dữ liệu văn bản Rõ ràng, chúng ta phải hiểu rõ bản chất của dữ liệu văn bản, hiểu rõ các đặc trưng của các dữ liệu loại này để có thể có được những phương pháp luận cần thiết và có được những công cụ tự động hóa trợ giúp trong việc tìm kiếm, phân loại và xử lý thông tin Tuy nhiên để tập hợp được các tất cả các thông tin là quá lớn và luôn thay đổi vì vậy việc phân cụm phải được ứng dụng trên các tập tài liệu nhỏ hơn được trả về từ các truy vấn Đồ
án chỉ tập trung vào hướng biểu diễn thông tin trả về bởi các máy tìm kiếm thành từng chuyên đề như thông tin chứng khoán, thời tiết, giá vàng và tỷ giá hối đoái
…để cho người dùng có thể dễ dàng tìm được thông tin liên quan đến những vấn
đề trên mà mình cần
2.3 Quy trình lấy tin tự động
Với các loại dữ liệu khác nhau, quá trình lấy tin tự động thông thường đều được thực hiện qua các bước như sau:
Bước 1: Tìm hiểu về lĩnh vực và xác định các vấn đề có liên quan
Bước 2: Thu thập và tiền xử lý dữ liệu Đây là bước rất quan trọng, chiếm
phần lớn thời gian và sức lực (70 80%) trong cả tiến trình
Bước 3: Lấy tin tự động trích chọn ra các mẫu, các thông tin có ý nghĩa
Bước này gồm các phương thức để tạo ra các thông tin hữu ích từ dữ liệu
Bước 4: Đưa các thông tin ra hiển thị
Ở bước 2: Tiền xử lý dữ liệu chính là quá trình làm sạch dữ liệu và chuyển
dịch các tài liệu thành các dạng biểu diễn thích hợp dữ liệu Giai đoạn này bao
Trang 29gồm các công việc sau: Chuẩn hóa văn bản, xóa bỏ các từ dừng, kết hợp các từ
có cùng nguồn gốc, số hóa và biểu diễn văn bản,…
a.Chuẩn hóa văn bản
Là giai đoạn chuyển văn bản thô về dạng văn bản sao cho việc xử lý sau này được dễ dàng, đơn giản, thuận tiện, chính xác so với việc xử lý trực tiếp trên văn bản thô mà ảnh hưởng ít đến kết quả xử lý Bao gồm:
Xóa các thẻ trong HTML và các loại thẻ khác để trích ra các từ/cụm từ
Chuyển các ký tự hoa thành các ký tự thường
Xóa bỏ các dấu câu, xóa các ký tự trắng dư thừa…
b.Xóa bỏ các từ dừng
Trong văn bản có những từ mang ít thông tin trong quá trình xử lý, những
từ có tần số xuất hiện thấp, những từ có tần số xuất hiện lớn nhưng không quan trọng cho quá trình xử lý Theo một số nghiên cứu gần đây [2] cho thấy việc loại
bỏ các từ dùng có thể giảm bớt được khoảng 20-30% tổng số từ trong văn bản
Có rất nhiều từ xuất hiện với tần số lớn nhưng nó không hữu ích cho quá trình KPDL Ví dụ trong tiếng anh các từ như a, an, the, of, and, to, on, by… trogn tiếng Việt như các từ “thì”, “là”, “và”, “hoặc”,…Những từ xuất hiện với tần số quá lớn cũng sẽ được loại bỏ
Để đơn giản trong ứng dụng thực tế, ta có thể tổ chức thành một danh sách các từ hoặc sử dụng định luật Zipf để xóa bỏ các từ có tần số xuất hiện thấp hoặc quá cao
c Kết hợp các từ có cùng nguồn gốc
Hầu hết các ngôn ngữ đều có cùng chung nguồn gốc với nhau, chúng mang ý nghĩa tương tự nhau, do đó để giảm bởi số chiều trong biểu diễn văn bản , ta sẽ kết hợp các từ có cùng gốc thành một từ Theo một số nghiên cứu việc kết hợp sẽ giảm được khoảng 40-50% kích thước chiều trong biểu diễn văn bản
Trang 30Ví dụ trong tiếng anh: Từ user, users,used,using có cungd từ gốc sẽ quy về use; từ engineering, engineered,engineer có cùng từ gốc sẽ được quy về engineer
Ví dụ xử lý từ gốc trong tiếng Anh”
-Nếu một từ kết thúc bằng “ing” thì xóa “ing”, ngoại trừ trường hợp sau khi xóa còn lại 1 ký tự hoặc còn lại “th”
-Nếu một từ kết thúc bằng ies nhưng không phải eies hoặc aies thì thay thế ies bằng “y”…
-Nếu một từ kết thúc bằngmột phụ âm khác ”s” mà theo sau bởi “s” thì xóa s -Nếu một từ kết thúc bằng “ed” mà trước đó nó là một phụ âm thì xóa “ed” ngoại trừ sau khi xóa từchỉ còn lại một ký tự, nếu đứng trước là nguyên âm”i” thì đổi
“ied” thành “y”
d Xây dựng từ điển
Việc xây dựng từ điển là một công việc rất quan trọng trong quá trình vector hóa văn bản, từ điển sẽ gồm các từ/cụm từ riêng biệt trong toàn bộ tập dữ liệu Từ điển sẽ gồm một bảng các từ , chỉ số của nó trong từ điển và được sắp xếp theo thứ tự
Một số bài báo đề xuất rằng để nâng cao chất lượng phân cụm dữ liệu cần xem xét đến việc xử lý các cụm từ trong các ngữ cảnh khác nhau Theo đề xuất của Zemir [12][19] xây dựng từ điển có 500 phần tử
e Tách từ, số hóa văn bản và biểu diễn tài liệu
Tách từ là công việc hết sức quan trọng trong biểu diễn văn bản, quá trình tách từ và vector hóa tài liệu là quá trình tìm kiếm các từ và thay thế nó bởi chỉ
số của từ đó trong từ điển
Ở đây ta có thể sử dụng một trong các mô hình toán học IDF,… để biểu diễn văn bản
TF,IDF,TF-Ta sử dụng mảng W(trọng số) hai chiều có kích thước m x n, với n là số các tài liệu, m là số các thuật ngữ trong từ điển (số chiều), hàng thứ j là một
Trang 31vector biểu diễn tài liệu thứ j trong cơ sở dữ liệu, cột thứ i là thuật ngữ thứ i trong
từ điển Wij là giá trị trọng số của thuật ngữ i đối với tài liệu j
Giai đoạn này thực hiện thống kê tần số thuật ngữ tj xuất hiện trong tài liệu dj và số các tài liệu chứa ti Từ đó xây dựng bảng trọng số của ma trận W theo công thức sau:
)].
log(
1 [
fij
Trong đó :
Fij là tấn số xuất hiện của ti trong tài liệu dj
Idfij là nghịch đảo tần số xuất hiện của ti trong tài liệu dj
Hi là số các tài liệu mà ti xuất hiện
N là tổng số tài liệu.
2.4 Những khó khăn khi lấy tin tự động
Bởi vì thông tin trên mạng luôn thay đổi nên nội dung trang web phải liên tục cập nhật các thông tin Mức độ cập nhật phụ thuộc vào từng hệ thống Sự cập nhật quá mức khiến cho server quá tải bởi vì sau một khoảng thời gian trong khoảng thời gian quá ngắn do đó cần có băng thông lớn Kết quả là thiếu băng thông cho những ứng dụng khác dẫn đến server bị quá tải Bởi vậy sự cập nhật thông tin rất quan trọng nhưng quá thường xuyên là điều không cần thiết
Một khó khăn nữa của việc lấy tin tự nội dung trang web liên tục được cập nhật một lượng thông tin lớn động đó là việc duy trì một siêu liên kết khi mà nó liên kết với những trang bị hỏng (dead links) khi những trang này bị thay đổi hoặc thậm chí bị xóa thì nó sẽ ảnh hưởng đến ngay trang web của mình khi mà mình muốn cập nhật thông tin từ trang web đó
Nếu t iЄ d j
Nếu ngược lại
Trang 322.5 Các dạng dữ liệu
2.5.1 Fulltext
Dữ liệu dạng Fulltext là một dạng dữ liệu phi cấu trúc với thông tin chỉ gồm các tài liệu dạng text Mỗi tài liệu chứa thông tin về một vấn đề nào đó thể hiện qua nội dung của tất cả các từ cấu thành tài liệu đó Ý nghĩa của mỗi từ trong tài liệu không cố định mà tùy thuộc vào từng ngữ cảnh khác nhau sẽ mang
ý nghĩa khác nhau Các từ trong tài liệu được liên kết với nhau theo một ngôn ngữ nào đó
Trong các dữ liệu hiện nay thì văn bản là một trong những dữ liệu phổ biến nhất, nó có mặt khắp mọi nơi và chúng ta thường xuyên bắt gặp do đó các bài toán về xử lý văn bản đã được đặt ra khá lâu và hiện nay vẫn là một trong những vấn đề trong khai phá dữ liệu Text, trong đó có những bài toán đáng chú ý như tìm kiếm văn bản, phân loại văn bản, phân cụm văn bản hoặc dẫn đường văn bản
Cơ sở dữ liệu Fulltext là một dạng cơ sở dữ liệu phi cấu trúc mà dữ liệu bao gồm các tài liệu và thuộc tính của tài liệu Cơ sở dữ liệu Full_Text thường được tổ chức như một tổ hợp của hai thành phần: Một cơ sở dữ liệu có cấu trúc thông thường ( chứa đặc điểm của các tài liệu) và các tài liệu
2.5.2 Hypertext
Theo từ điển của Đại Học Oxford (Oxford English Dictionary Additions Series) thì Hypertext được định nghĩa như sau: Đó là loại Text không phải đọc theo dạng liên tục đơn, nó có thể được đọc theo các thứ tự khác nhau, đặc biệt là Text và ảnh đồ họa (Graphic) là các dạng có mối liên kết với nhau theo cách mà người đọc có thể không cần đọc một cách liên tục Ví dụ khi đọc một cuốn sách người đọc không phải đọc lần lượt từng trang từ đầu đến cuối mà có thể nhảy cóc đến các đoạn sau để tham khảo về các vấn đề họ quan tậm
Như vậy văn bản Hypertext bao gồm dạng chữ viết không liên tục, chúng được phân nhánh và cho phép người đọc có thể chọn cách đọc theo ý muốn của
Trang 33mình Hiểu theo nghĩa thông thường thì Hypertext là một tập các trang chữ viết được kết nối với nhau bởi các liên kết và cho phép người đọc có thể đọc theo các cách khác nhau Như ta đã làm quen nhiều với các trang định dạng HTML, trong các trang có những liên kết trỏ tới từng phần khác nhau của trang đó hoặc trỏ tới trang khác và người đọc sẽ đọc văn bản dựa vào những liên kết đó
Bên cạnh đó, Hypertext cũng là một dạng văn bản Text đặc biệt nên cũng
có thể bao gồm các chữ viết liên tục ( là dạng phổ biến nhất của chữ viết) Do không bị hạn chế bởi tính liên tục trong Hypertext, chúng ta có thể tạo ra các dạng trình bày mới , do đó tài liệu sẽ phản ánh tốt hơn nội dung muốn diễn đạt Hơn nữa người đọc có thể chọn cho mình một cách đọc phù hợp chẳng hạn như
đi sâu vào một vấn đề mà họ quan tâm Sáng kiến tạo ra một tập các văn bản cùng với các con trỏ tới các văn bản khác để liên kết một tập các văn bản có mối quan hệ với nhau là một cách thực sự hay và hữu ích để tổ chức thông tin Với người viết, cách này cho phép họ có thể thoải mái loại bỏ những băn khoăn về thứ tự trình bày mà có thể tổ chức vấn đề thành những phần nhỏ rồi sử dụng kết nối để chỉ ra mối liên hệ giữa các phần nhỏ đó với nhau
Với người đọc, cách này cho phép họ có thể đi tắt trên mạng thông tin và quyết định phần thông tin nào có liên quan đến vấn đề mà họ quan tâm để tiếp tục tìm hiểu So sánh với cách đọc tuyến tính tức là đọc lần lượt thì Hypertext đã cung cấp cho chúng ta một giao diện để có thể tiếp xúc với nội dung thông tin hiệu quả hơn rất nhiều Theo khía cạnh của các thuật toán học máy thì Hypertex
đã cung cấp cho chúng ta cơ hội nhìn ra ngoài phạm vi một tài liệu để đánh giá
nó, nghĩa là có tính cả đến các tài liệu có liên kết với nó Tất nhiên không phải tất
cả các tài liệu có liên kết đến nó đều có ích cho việc đánh giá, đặc biệt là khi các siêu liên kết có thể chỉ đến nhiều loại các tài liệu khác nhau
Có hai khái niệm về Hypertext cần quan tâm:
Hypertext Document (Tài liệu siêu văn bản): Là một tài liệu văn bản đơn trong hệ thống siêu văn bản Nếu tưởng tượng hệ thống siêu văn bản là một đồ thị thì các tài liệu tương ứng các nút
Trang 34 Hypertext Link(Liên kết siêu văn bản): Là một tham chiếu để nối một tài liệu Hypertext này với một tài liệu Hypertext khác Các siêu liên kết đóng vai trò quan trọng như những đường nối trong đô thị nói trên
Hypertext là loại dữ liệu phổ biến hiện nay và cũng là loại dữ liệu có nhu cầu tìm kiếm rất lớn Nó là dữ liệu phổ biến trên mạng thông tin Internet cơ sở dữ liệu Hypertext với văn bản dạng “ mửa cấu trúc” do xuất hiện thêm các “thẻ ”: Thẻ cấu trúc (tiêu đề, mở đầu, nội dung), thẻ nhấn trình bày chữ (đậm, nghiêng, ) Nhờ các thẻ này mà chúng ta có thêm một tiêu chuẩn ( so với tài liệu Fulltext) để
có thể tìm kiếm và phân loại chúng Dựa vào các thẻ đã quy định trước chúng ta
có thể phân thành các độ ưu tiên khác nhau cho các từ khóa nếu chúng xuất hiện
ở những vị trí khác nhau Ví dụ khi tìm kiếm các tài liệu có nội dung liên quan đến “people ” thì chúng ta đưa từ khóa tìm kiếm là “people ” và các tài liệu có từ khóa “people ” đứng ở tiêu đề thì sẽ gần với yêu cầu tìm kiếm hơn
Trang 352.6 Kỹ thuật hỗ trợ xây dựng chương trình - Ngôn ngữ Php
2.6.1 Giới thiệu
Hiện nay có rất nhiều ngôn ngữ lập trình trên mạng: ASP, FOXWEB, JSP, PHP… cùng với chúng cũng có rất nhiều hệ quản trị CSDL như: MySQL, DB2, SQL Server…Trong hệ thống này em chọn ngôn ngữ lập trình PHP, Localhost là Vertrigo và hệ quản trị cơ sở dữ liệu MySQL
PHP được dùng để thay thế cho Hypertext Preprocessor( Bộ tiền xử lý siêu văn bản) là một ngôn ngữ kịch bản nhúng HTML phía server Phần lớn cú pháp của nó mượn của C, Java, Perl Ngoài ra, nó cũng có thêm một số đặc trưng riêng Ngôn ngữ PHP cho phép người pháp triển web động một cách nhanh chóng Chúng ta hãy xem một ví dụ đơn giản
Trang 36khác như Java script là mã của nó được thực hiện phía server Các đoạn mã PHP
sẽ được thực hiện trên server trước khi truyền kết quả cho máy client, do đó người dùng phía client sẽ không thể biết được đoạn mã thật của PHP Đây cũng
là một giải pháp khá hay cho việc bảo mật mã nguồn của PHP
Empress FrontBase PostgreSQL
Trang 37b Những nét lịch sử chính của PHP
PHP bắt đầu được hình thành vào mùa thu năm 1994 bởi Rasmus Lerdorf Phiên bản đầu tiên non_released được sử dụng trên mạng chủ của ông để lưu giữ dấu vết những người xem trực tuyến lý lịch của ông Phiên bản này được sử dụng rộng rãi vào đầu năm 1995 và được biết đến như là công cụ xây dựng trang chủ
cá nhân( Personal Home Page Tools) Nó có một bộ phận tích cú pháp khá đơn giản tuy nhiên nó chỉ có thể hiểu một số ít macro đặc biệt Sau đó được nâng cấp lên cao hơn và có thể hiểu thêm một số các tiện ích dùng chung trên các trang chủ Bộ phận tích cú pháp được viết lại năm 1995 và được đặt tên là phiên bản 2 PHP/FI Trong phiên bản này các hàm FI( gọi là hàm thông dịch form-Form Interpreter) được Rasmus viết riêng trong một gói khác để thông dịch các form
dữ liệu html Ông đã tổ hợp các thẻ công cụ xây dựng trang chủ với các hàm FI
và thêm một số hỗ trợ mSQL PHP/FI phát triển một cách kinh ngạc và mọi người bắt đầu đóng góp mã nguồn cho nó
Thật khó có thể đưa ra một sự thống kê chính xác nhưng có thể ước lượng được khoảng 15000 website sử dụng PHP/FI vào cuối năm 1996 trên thế giới Đến giữa năm 1997 con số này đã lên tới 50000 website, giữa năm 1997 cũng cho thấy sự thay đổi trong việc phát triển PHP Bộ cú phân tích cú pháp đã được viết lại để trở thành phiên bản PHP3 Phần lớn các mã nguồn của PHP/FI được
sử dụng trong PHP3 tuy nhiên nhiều phần của nó cũng được viết lại hoàn toàn
Phiên bản PHP4 ra đời đáp ứng hầu hết các chức năng của PHP3 ngoài ra chùng còn được hỗ trợ ở mức cao hơn như cho phép tích hợp một dãy các thư viện và các hàm mở rộng… Ngày nay cả PHP3 và PHP4 đều được sử dụng rất nhiều trong các sản phẩm thương mại lớn như web server StrongHold của Red Had Một sự ước lượng dè dặt dựa trên phép ngoại suy từ những con số được cung cấp bởi NetCrafg là trên 5100000 site trên thế giới sử dụng PHP và càng triển vọng hơn khi càng có nhiều site chạy server IIS của Microsoft trên Internet