Hình 3-2: Tính năng lọc theo vùng trên BingHình 3-3: Công cụ tìm kiếm Yahoo search Hình 3 -4: Tính năng tìm kiếm Iphone 5 - Yahoo search Direct Hình 3- 5: Minh họa tìm kiếm thông tin về
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT 4
DANH MỤC CÁC BẢNG 5
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 6
LỜI MỞ ĐẦU 7
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 9
I.1 Tổng quan về máy tìm kiếm: 9
I.1.1 Khái niệm Search Engine: 9
I.1.2 Sự ra đời của Search Engine: 9
I.1.3 Bên trong việc tìm kiếm: 10
I.2 Nguyên lý hoạt động của một máy tìm kiếm -SE: 11
I.2.1 Module Thu thập thông tin (Crawler): 11
I.2.2 Module Lập chỉ mục (Index): 11
I.2.3 Module tìm kiếm: 11
I.3 PageRank : 13
I.3.1 PageRank (PR)là gì: 13
I.3.2 Tầm quan trọng của PageRank: 13
I.4 Textlink: 14
I.4.1 Textlink là gì: 14
I.4.2 Textlink có tác dụng gì với các công cụ tìm kiếm như Google, Yahoo, Bing: 14
CHƯƠNG II: CÁC THUẬT TOÁN ĐỐI SÁNH - PHÂN CỤM DỮ LIỆU DỰA VÀO TÌM KIẾM THÔNG TIN 16
II.1 Giới thiệu: 16
Trang 3II.1.1 Thuật toán Brute Force: 16
II.1.1.1 Tư tưởng: 16
II.1.1.2 Thuật toán: 16
II.1.2 Thuật toán Knuth Morris Pratt : 17
II.1.2.1 Tư tưởng: 17
II.1.2.2 Giải thuật: 17
II.1.3 Thuật toán Boyer-Moore : 18
II.1.3.1 Tư tưởng: 18
II.1.3.2 Giải thuật: 18
II.2 Nhận định các thuật toán đối sánh mẫu: 19
II.3 Thuật toán phân cụm dữ liệu dựa vào tìm kiếm: 19
II.3.1 Thuật toán K-Means : 20
II.3.1.1 Tư tưởng: 20
II.3.1.2 Giải thuật: 21
CHƯƠNG III: CÁC CÔNG CỤ HỖ TRỢ TÌM KIẾM THÔNG TIN 23
III.1 Giới thiệu các công cụ tìm kiếm phổ biến hiện nay: 23
III.1.1 Bing: 23
III.1.1.1 Giới thiệu: 23
III.1.1.2 Ví dụ về một số tính năng điển hình Bing: 23
III.1.2 Yahoo: 25
III.1.2.1 Giới thiệu: 25
III.1.2.2 Ví dụ về một số tính năng điển hình Yahoo: 26
III.1.3 Google: 29
III.1.3.1 Giới thiệu: 29
III.2 Đánh giá các công cụ tìm kiếm phổ biến hiện nay: 30
Trang 4CHƯƠNG IV: TRÌNH BÀY CÁC KỸ NĂNG TÌM KIẾM VÀ CÁC TÍNH NĂNG
CỦA GOOGLE: 33
IV.1 Tính năng và kỹ năng cơ bản: 33
IV.1.1 Tính năng cơ bản: 33
IV.1.2 Kỹ năng cơ bản: 33
IV.2 Tính năng và kỹ năng nâng cao: 33
IV.2.1 Tính năng nâng cao: 33
IV.2.2 Kỹ năng nâng cao: 33
IV.3 Tính năng nổi bật trên Google search: 34
IV.3.1 Tính năng 1 – Google Panda: 34
IV.3.2 Tính năng 2 - Google Instant: 36
IV.3.3 Tính năng 3 –Hỗ trợ xem trước kết quả: 37
IV.3.4 Tính năng 4 - AdSense cho tìm kiếm (AFS): 38
IV.3.5 Tính năng 5 - Google Image Search- Google Video Search: 38
IV.3.6 Tính năng 6 – Bàn phím ảo và kiểm tra lỗi chính tả: 39
IV.3.7 Tính năng 7 – Google Maps: 40
IV.3.7 Tính năng 8 – Android Device Manager: 41
IV.3.8 Tính năng 9 – Google Voice (Vietnam) : 42
IV.3.9 Tính năng 10 –Thuật toán Caffeine hướng đến tốc độ hiển thị kết quả: 43
IV.3.10 Tính năng 11 – Tích hợp với Google Chrome với công cụ duyệt tin: 44
KẾT LUẬN & ĐỀ XUẤT 45
TÀI LIỆU THAM KHẢO 49
Trang 5DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
1 SE Search Engine
2 PR PageRank
3 CSE Custom Search Engine
4 KMP Knuth Morris Pratt
5 RDF Resource Description Framework
Trang 6DANH MỤC CÁC BẢNG
Bảng 1-1: Ví dụ về code textlink hiểnthị dưới dạng HTML
Bảng 3-1: So sánh chức năng Search Engine
Bảng 3-2: Bảng so sánh xếp hạng của ComScore từ 03/2012 đến 04/2012
Bảng 3-3: Bảng so sánh xếp hạng của ComScore từ 03/2013 đến 04/2013
Bảng 3-4: Danh sách 10 website được truy cập nhiều nhất vào tháng 7 vừa qua.
Trang 7Hình 3-2: Tính năng lọc theo vùng trên Bing
Hình 3-3: Công cụ tìm kiếm Yahoo search
Hình 3 -4: Tính năng tìm kiếm Iphone 5 - Yahoo search Direct
Hình 3- 5: Minh họa tìm kiếm thông tin về Yahoo trên Wikipedia
Hình 3-6: Minh họa tìm kiếm theo thứ tự thông tin “điện tử tiêu dùng”
Hình 3-7: tìm kiếm thông tin trên Yahoo.Mail
Hình 3 -8: Kiểm tra số kết nối đến web “linkdomain:yahoo.com site:wikipedia.org“ Hình 3-9: Minh họa Google là hệ thống tìm kiếm nổi bật và thành công nhất
Hình 4-1: Minh họa chức năng Google Instant; dự đoán “trường đại học công nghệ” Hình 4-2: Cách thực hiện Google Instant
Hình 4-3: Minh họa chức năng xem trước kết quả
Hình 4 - 4: Minh họa chức năng tìm kiếm bằng hình ảnh
Hình 4-5: Minh họa chức năng đa dạng của Google
Hình 4-6: Minh họa chức năng bàn phím ảo của Google
Hình 4-7: Minh họa chức năng kiểm tra lỗi chính tả khi tìmkiếm bằng Google
Hình 4-8: Minh họa chức năng tìmkiếm bằng Google Maps trên Ipad
Hình 4-9: Minh họa giao diện làm việc của Android Device Manager
Hình 4-10: Minh họa chức năng tìmkiếm bằng Google Voice trên Chrome
Hình 4-11: Minh họa sự phát triển của google từ năm 1997 đến nay
Hình 4-12: Minh họa Onefeed khả năng tích hợp Google Chrome
Trang 8LỜI MỞ ĐẦU
Ngày nay, cùng với sự phát triển nhanh chóng của khoa học kỹ thuật là sự bùng nổthông tin với các phương tiện lưu trữ đã tạo ra một lượng thông tin khổng lồ Nhu cầu vềtìm kiếm và xử lý thông tin, cùng với yêu cầu về khả năng kịp thời khai thác chúng đểmang lại những năng suất và chất lượng cho công tác quản lý, hoạt động kinh doanh đãtrở nên cấp thiết trong xã hội hiện đại
Để đáp ứng phần nào yêu cầu này, người ta đã xây dựng các công cụ tìm kiếm và
xử lý thông tin nhằm giúp cho người dùng tìm kiếm được các thông tin cần thiết riêngcho mình, cùng với sự rộng lớn và đồ sộ của nguồn dữ liệu trên Internet là các công tycung cấp các giải pháp xây dựng hệ thống tìm kiếm thông minh như: Google, Yahoo,Bing
Trong chuyên đề này, tập trung đi tìm hiểu cơ sở lý thuyết cơ bản về tổng quan vềmáy tìm kiếm thông tin, kỹ thuật khai phá dữ liệu trong môi trường Web, tổng hợp vàphân tích các công cụ tìm kiếm thông tin của các công ty tìm kiếm thông tin hiện nay,
mà đặc biệt là giải pháp tìm kiếm thông tin của Google
Từ đó đề xuất các hướng phát triển về xử lý thông tin mang tính chính xác vànhanh chóng, kết quả sẽ xuất hiện ngay trên trang đầu tiên, phân loại riêng cho mục đíchcủa việc tìm kiếm thông tin
Tôi chân thành cảm ơn Thầy GS.TSKH Hoàng Văn Kiếm đã truyền đạt nhữngkiến thức quý báu có ý nghĩa khoa học và mang tính thực tiễn cao trong ứng dụng củachuyên đề Cơ sở tri thức, mở ra nhiều hướng nghiên cứu chuyên sâu vào từng lĩnh vựcứng dụng đặc thù với những đặc trưng riêng./
Trang 9Bố cục trình bày:
Chương 1: Cơ sở lý thuyết.
Chương này trình bày tổng quan, khái quát về sự ra đời cổ máy tìm kiếm thông tin, cấutrúc, nguyên lý và các module tìm kiếm thông tin
Chương 2: Các thuật toán đối sánh mẫu trong hệ thống tìm kiếm
Trình bày các ý tưởng, thuật toán đối sánh mẫu: Brute Force, Knuth Morris Pratt, BoyerMoore và thuật toán phân cụm dữ liệu K-Means
Chương 3: Phân tích, đánh giá các công cụ tìm kiếm thông tin phổ biến hiện nay.
Chương này giới thiệu các công cụ tìm kiếm thông tin phổ biến nhất hiện nay như:Google, Yahoo, Bing và thống kê, so sánh của các hãng tìm kiếm thông tin do
ComScore thực hiện
Chương 4: Trình bày các kỹ tính và tính năng tìm kiếm thông tin của Google.
Đây là chương chính của chuyên đề, trình bày các tính năng cơ bản cũng như kỹ năngcho người dùng, đặc biệt là công cụ của công ty Google Qua đây, cho ta thấy được conngười đã biết áp dụng cơ sở tri thức, các thuật toán áp dụng cho giải pháp tìm kiếmthông tin, dữ liệu
Các tính năng được trình bày trong công cụ tìm kiếm thông tin của Google được xem lànổi bật và có tính năng mạnh mẽ so với các công cụ tìm kiếm khác, do Google luôn luôntìm kiếm các giải pháp sáng tạo và đổi mới các tính năng phù hợp với nhu cầu
Kết luận & Đề xuất:
Chương kết thúc chuyên đề, tóm lại các tính năng nổi bật của công cụ tìm kiếm thôngtin và đề xuất các giải pháp tìm kiếm thông tin, cải tiến các thuật toán áp dụng cho việctìm kiếm thông tin nhanh chóng và chính xác như: thuật toán phân cụm K-means haythuật toán di truyền Mở rộng phục vụ cho nhu cầu tương lai, giúp chúng ta tới gần hơnvới kho kiến thức khổng lồ, nắm vững tri thức của tương lai qua con đường Internet;
Trang 10CHƯƠNG I: CƠ SỞ LÝ THUYẾT
I.1 Tổng quan về máy tìm kiếm:
I.1.1 Khái niệm Search Engine:
Search Engine là phần mềm cung cấp các địa chỉ Web có chứa một hay nhiều
thông tin, từ khoá (keywords) mà người dùng cần tìm kiếm, sau đó phân tích yêu cầu
này và tìm kiếm thông tin trong cơ sở dữ liệu được tải xuống từ Web để đưa ra kết quả là
các trang Web có liên quan cho người dùng Hay nói một cách dễ hiểu Search Engine là
các công cụ tìm kiếm như Google.com, Yahoo.com hay Bing.com… Đây là những công
cụ tìm kiếm phổ biến và chiếm thị phần lớn nhất
Search Engine là một thư viện thông tin khổng lồ về các Website, cho phép
người sử dụng có thể tìm kiếm các Website cần quan tâm theo một chủ đề nào đó căn cứvào các từ khóa (keywords) mà người đó yêu cầu Search Engine tìm kiếm
I.1.2 Sự ra đời của Search Engine:
Sẽ rất khó khăn cho người dùng truy cập vào Internet để tìm kiếm 1 Website haymột thông tin có chủ đề phục vụ cho mục đích của mình vì hàng ngày có khoảng hơn100.000 Website mới được đưa lên mạng Số lượng Website trên mạng Internet hiện nay
đã lên tới hơn 5 tỷ Vì vậy, để phục vụ việc tìm kiếm nhanh chóng Website của người sử
dụng Internet, Search Engine ra đời
Search Engine ra đời giúp cho việc tìm kiếm thông tin trên Internet dễ dàng và
nhanh chóng Tại Việt Nam, Search Engine phổ biến nhất là www.google.com.vn và
chiếm thị phần lớn nhất với hơn 90%
Web crawler còn được gọi là spider (con nhện) là một phần của search engine,chuyên “chu du” khắp Website, sao chép từng trang nó tìm được và lập chỉ mục các từkhóa, tên trang
Hãy thử tưởng tượng một cuộc sống hoàn toàn không có niên giám điện thoại haymột trợ giúp nào khác Sử dụng điện thoại lúc đó sẽ trở nên rất khó khăn Điều này cũngtương tự như dùng Web mà không có công cụ tìm kiếm Với search engine, bạn chỉ cầnbiết một vài thông tin hay từ khoá là có thể tìm được nơi cần đến
Trang 11Rõ ràng rất tiện lợi khi người dùng muốn tìm một sản phẩm hay dịch vụ … chỉcần vào một trong 3 công cụ trên và gõ tên sản phẩm hay dịch vụ… và Enter, sẽ ra một
cơ số website để chúng ta lựa chọn
Theo một nghiên cứu do công ty Zona Research (Mỹ) tiến hành năm 1999 thìsearch engine hiện là phương thức tìm kiếm thông tin trên Web được sử dụng nhiềunhất, nó chiếm tới 77% tổng thời gian tìm kiếm Theo kết quả khảo sát người tiêu dùngcủa một công ty khác vào năm 1999 thì 88% người dùng trực tuyến có sử dụng mộtsearch engine và 72% có dùng một search engine để tìm kiếm hàng hoá bán lẻ
Đối với nhiều người dùng, search engine là yếu tố định hình nên bức tranh về khothông tin trên Web Tuy nhiên, một nghiên cứu gần đây của NEC Research Institute vàInktomy cho thấy có tới hơn một tỷ trang Web riêng biệt trên Internet và hầu hết cácsearch engine đã bỏ qua không lập chỉ mục cho 1/4 số trang này Mặt khác, khoảng 7-14% những nội dung đã được lập chỉ mục lại không còn tồn tại trên Net
I.1.3 Bên trong việc tìm kiếm:
Với quy mô của Website (Sitemap), có số lượng quá lớn các trang không được truycập đến trong nhiều năm và trang có chứa những từ quá phổ biến dẫn đến những sitekhông liên quan, việc lập chỉ mục dù chỉ một phần của Web để có thể trả về kết quả phùhợp là một quá trình đòi hỏi rất nhiều công sức to lớn
Tuy nhiên, về căn bản, công việc này rất đơn giản: chương trình phần mềm thôngminh sẽ “chu du” khắp trên Web, tìm kiếm và lưu trữ bất cứ thông tin nào chưa có trongchỉ mục và thường là lưu toàn bộ trang Web Thông tin thu thập được có thể từ nhữngtrang đã được lập chỉ mục trước đó nhưng đã thay đổi, liên kết đến những trang chưađược lập chỉ mục và các địa chỉ Web do các công ty thứ ba đưa lên
Một khi các chỉ mục đã được tập hợp lại, chúng sẽ được kiểm tra để loại bỏ nhữngthông tin trùng lắp, chẳng hạn như các phiên bản khác nhau của cùng một site (site dựphòng); loại bỏ những trang lập lại quá nhiều lần cùng từ khoá Một số search enginecòn có khả năng gán trạng thái đặc biệt cho trang Web có dùng siêu thẻ (metatag) chứacác thành phần mô tả thông tin Một số search engine có khả năng phân tích nội dung
Trang 12trang Web và cho biết tần suất mà những trang khác liên kết đến trang này Như vậy,trang Web càng phổ biến thì nội dung của nó càng dễ tìm kiếm.
Khi người dùng đưa yêu cầu tìm kiếm thông tin cho search engine hay dịch vụ thưmục, các giải thuật tinh vi bên trong sẽ được kích hoạt Mỗi search engine có một cách
xử lý khác nhau đối với thông tin mà nó nhận được từ người dùng, nhưng mục tiêu thìgiống nhau: dự đoán người dùng cần gì và trả về thông tin tương ứng Những vấn tin củangười dùng thường được phân tích rất chi tiết để phát hiện những sai sót chính tả trong
từ khoá hay liệu thông tin này đã được tìm kiếm chưa
I.2 Nguyên lý hoạt động của một máy tìm kiếm -SE:
Một Search Engine hoạt động theo các module sau:
Web crawling - Indexing - Searching I.2.1 Module Thu thập thông tin (Crawler):
Module này có nhiệm vụ thu thập nội dung các trang Web trên Internet một cách tựđộng thông qua các siêu liên kết (Hyperlink) bằng việc sử dụng các robot phần mềm đặcbiệt được gọi là Spider (con nhện hay bọ tìm kiếm), Spider sẽ tải và lưu các trang đã tìmthấy vào kho chứa dữ liệu (Page Repository) rồi tiếp tục đi thăm các trang Web kháctrên Internet
I.2.2 Module Lập chỉ mục (Index):
Module này có nhiệm vụ duyệt nội dung các trang Web đã được tải về, đánh chỉ mụctoàn bộ các từ khoá trong văn bản (số lần xuất hiện, vị trí xuất hiện), tính toán độ quantrọng (Page Rank) cho các trang này, xếp hạng kết quả (Ranking) và lưu trữ chúng trongcác cấu trúc thuận tiện cho quá trình tìm kiếm
I.2.3 Module tìm kiếm:
Module này liên quan tới việc giao tiếp với người dùng, khi nhận yêu cầu của ngườidùng, nó sẽ tiến hành truy xuất, phân tích, tìm kiếm trong cơ sở dữ liệu chỉ mục và hiểnthị cho người dùng danh sách các tài liệu thỏa mãn yêu cầu đó
Trang 13Hình 1-1: Cấu trúc điển hình một Search Engine Như vậy, ta thấy được Search Engine làm việc bằng cách lưu trữ thông tin về nhiều
trang Web trên WWW Những thông tin này sẽ được thu thập bởi các Spider (chính làWeb crawling) và nội dung của mỗi trang sẽ được phân tích để SE quyết định nên chỉmục (index) của cái nào để trả về những thông tin mà người tìm kiếm mong muốn nhất
Dữ liệu về những trang Web sẽ được lưu trữ tại các cơ sở dữ liệu chỉ mục để sử dụngcho những lần truy vấn sau
Ví dụ: Những từ khoá được thu thập từ các titles, heading hay một số trường đặc
biệt gọi là meta tags
Một số Search Engine, như Google chẳng hạn, sẽ lưu trữ toàn bộ hay một phần tranggốc (được xem như một cache) cũng như thông tin về trang Web đó, trái lại với một số
SE khác, như AltaVista, sẽ lữu trữ tất cả các từ của những trang mà nó tìm thấy
Khi người dùng nhập vào các Search Engine một truy vấn (chủ yếu là các keyword),các SE này sẽ kiểm các index của nó và cung cấp danh sách các trang Web phù hợpnhất, thường là các cụm từ ngắn hay một phần của một đoạn văn bản
Trang 14I.3 PageRank :
I.3.1 PageRank (PR)là gì:
Là một hệ thống xếp hạng trang Web của các máy tìm kiếm nhằm sắp xếp thứ tự ưu
tiên đường dẫn URL trong trang kết quả tìm kiếm.
PR là giá trị thể hiện mức độ quan trọng của một trang (page) của một website.
Thông thường khi nói đến PR thì người ta thường nghĩ đến Google PageRank đo giá trị
PR của Google trước tiên Theo như đánh giá của Google thì PR của website được xếp hạng cao khi có nhiều liên kết có PR cao hoặc tương đương từ website khác tới
Giá trị PR được tính từ 0 – 10
PR là cái mà Google nhận biết được mức độ quan trọng khi crawl website Nó cũng
là thước đo để Google xếp hạng thứ tự xuất hiện trong kết quả tìm kiếm Điều này cũng
đồng nghĩa website có PR càng cao (PR>4/10) thì sẽ ưu tiên hơn các trang có PR thấp.
PR là một tiêu chí khá quan trọng khi Google tiến hành xếp hạng các từ khóa trong kết
quả tìm kiếm
I.3.2 Tầm quan trọng của PageRank:
Google PageRank hiện nay được coi là chỉ số đáng tin cậy nhất đánh giá giá trị mỗi
trang web, không chỉ bởi những thuật toán xuất sắc dựa trên hơn 100 chỉ số mà còn vìGoogle đánh giá và xếp hạng các trang web bằng cả hai phương pháp tự động và thủ
công Một trang web có chỉ số Google PageRank cao sẽ đem lại ấn tượng đáng tin cậy
cho khách truy cập, điều này đặc biệt có ý nghĩa với các website kinh doanh thương mạiđiện tử
Google PageRank ảnh hưởng trực tiếp tới vị trí hiển thị của mỗi trang web khi cạnh
tranh thứ hạng hiển thị trong danh sách kết quả tìm kiếm của Google Tất nhiên ngoài
PageRank việc thiết lập các thẻ metadata, tối ưu hóa công cụ tìm kiếm (SEO) của
website cũng giúp cho website có cơ hội đứng thứ hạng đầu trong kết quả tìm kiếm
Google PageRank là một công cụ hỗ trợ các webmaster quản trị website Đồng thời,
một trang web có Google PageRank cao phần nào chứng minh năng lực quản trị tốt của
webmaster website đó.
Trang 15Textlink của bạn sẽ được hiển thị theo dạng text (từ khóa + đường dẫn tới websitecủa bạn) giống như trong hình ảnh dưới đây:
Trang 16Khi người dùng gõ một từ khóa bất kỳ, các công cụ tìm kiếm sẽ dựa vào các chỉ mụctìm kiếm này và so sánh khoảng 200 yếu tố khác để tìm ra trang web có nội dung phùhợp nhất cho người dùng.
Hình 1-3: Mô hình hổ trợ Textlink và Search Engine
Như vậy bạn có thể hiểu Textlink giống như các con đường cao tốc dẫn các con botcủa các SE tìm thấy và lưu trữ các trang web của bạn Ngoài ra, textlink sẽ giúp các SEhiểu nội dung của trang web đang được link tới thông qua các “Anchor Text” hay còngọi là từ khóa
Ví dụ: đường link <a href=”http://traodoitextlink.com/”>Trao đổi Textlink</a>
sẽ giúp các SE hiểu rằng đường dẫn “http://traodoitextlink.com/” có nội dung nói về
“Trao đổi Textlink”
Trang 17CHƯƠNG II: CÁC THUẬT TOÁN ĐỐI SÁNH - PHÂN CỤM DỮ LIỆU DỰA VÀO TÌM KIẾM THÔNG TIN
II.1 Giới thiệu:
Để một máy tìm kiếm họat động hiệu quả, ngoài kỹ thuật thu thập thông tin và tạochỉ mục cho thông tin, chúng ta cũng cần quan tâm đến việc sử dụng các thuật toán đốisánh mẫu để tìm kiếm dữ liệu
Dữ liệu trong máy tính được lưu trữ dưới rất nhiều dạng khác nhau, nhưng phổ biếnnhất vẫn là dạng chuỗi Một phép toán cơ bản trên chuỗi là đối sánh mẫu (patternmatching), bài toán yêu cầu ta tìm ra một hoặc nhiều vị trí xuất hiện của mẫu trên mộtvăn bản Trong đó mẫu có độ dài m và văn bản có độ dài n (m ≤ n), tập các ký tự đượcdùng gọi là bảng chữ cái , có số lượng là
II.1.1 Thuật toán Brute Force:
II.1.1.1 Tư tưởng:
Thuật toán này thử kiểm tra tất cả các vị trí trên văn bản từ 1 cho đến n-m+1 Saumỗi lần thử, mẫu được dịch sang bên phải một ký tự cho đến khi kiểm tra hết văn bản Trường hợp xấu nhất là tìm đến hết chuỗi T mà không thấy Khi đó với n-m+1 vị trítìm kiếm, ta phải so sánh m ký tự của chuỗi P với các ký tự tương ứng của chuỗi T
Số lần so sánh: Cmax=m*(n-m+1) Thông thường m rất nhỏ so với n nên ta có thểcoi Cmax=m*n Như vậy độ phức tạp thuật toán này là O(m*n)
II.1.1.2 Thuật toán:
Function IsMatch (P, m, T, t): boolean;
Trang 18II.1.2 Thuật toán Knuth Morris Pratt :
II.1.2.1 Tư tưởng:
Thuật toán Knuth Morris Pratt dựa trên thuật toán Brute Force với ý tưởng tận dụnglại thông tin của lần thử trước cho lần sau Thuật toán KMP có chi phí về thời gian làO(m+n) với nhiều nhất là 2n-1 lần so sánh ký tự trong quá trình tìm kiếm
II.1.2.2 Giải thuật:
P: chuỗi mẫu
T: chuỗi ban đầu
+ Giải thuật tính mảng next:
Trang 19return -1 { Không tìm thấy mẫu }
II.1.3 Thuật toán Boyer-Moore :
II.1.3.1 Tư tưởng:
Thuật toán Boyer Moore là thuật toán có tìm kiếm chuỗi rất có hiệu quả trong thựctiễn Thuật toán Boyer-Moore kiểm tra các ký tự của mẫu từ phải sang trái và khi pháthiện sự khác nhau đầu tiên thuật toán sẽ tiến hành dịch cửa sổ :
Cách thứ 1: Dịch sao cho những phần đã so sánh trong lần trước khớp với những
phần giống nó trong lần sau
Cách thứ 2: Coi ký tự đầu tiên không khớp trên văn bản là b=T[j+i-1] ta sẽ dịch sao
cho có một ký tự giống b trên xâu mẫu khớp vào vị trí đó (nếu có nhiều vị trí xuất hiện btrên xâu mẫu chọn vị trí phải nhất)
II.1.3.2 Giải thuật:
Procedure Initskipt(P:string;m:integer; skip:array of ineteger);
Trang 20II.2 Nhận định các thuật toán đối sánh mẫu:
Như vậy ngoài thuật toán Brute Force tìm kiếm theo kiểu vét cạn thuật toán KnuthMorris Pratt và thuật toán Boyer-Moore đều có ưu điểm hơn
Tuy nhiên còn tùy thuộc vào đặc điểm của các chuỗi so sánh Nếu chuỗi so sánh làcác chuỗi có số lượng chữ cái lớn (số lần lặp lại các chữ cái trong chuỗi nhỏ) thì thuậttoán Boyer-Moore đặc biệt hiệu quả Ngược lại đối với các chuỗi nhị phân thì thuật toánnày không giúp ích gì nhiều vì chỉ có 2 khả năng để cho các ký tự trở thành không khớp(0 hoặc 1)
II.3 Thuật toán phân cụm dữ liệu dựa vào tìm kiếm:
Các thuật toán gom cụm khác nhau thích hợp với các kiểu khác nhau về tập dữ liệu vàcác mục tiêu khác nhau Vì vậy thuật toán gom cụm “tốt nhất” để sử dụng tùy thuộc vào
Trang 21ứng dụng Thuật toán gom cụm theo phương pháp phân hoạch K-means đã được sửdụng rộng rãi Cho tập các đối tượng, mục tiêu gom cụm hay phân mảnh là chia tập đốitượng này thành nhiều nhóm hay “cụm” sao cho các đối tượng trong một cụm cókhuynh hướng tương tự nhau hơn so với đối tượng khác nhóm, giúp cho giải thuật tìmkiếm thông tin hiệu quả với khối lượng dữ liệu lớn, nhanh chóng và chính xác
II.3.1 Thuật toán K-Means :
II.3.1.1 Tư tưởng:
Thuật toán k-means là thuật toán gom cụm lặp đơn giản Nó phân mảnh tập dữ liệucho trước thành k cụm, giá trị k do người dùng xác định Thuật toán dễ thực hiện, thihành nhanh, dễ thích nghi và phổ biến trong thực tế Đây là một trong những thuật toánkinh điển trong khai thác dữ liệu
Thuật toán k-means áp dụng cho các đối tượng được biểu diễn bởi các điểm trongkhông gian vectơ d chiều U {x | i 1, , N} i = = , với di x ∈ ℜ biểu thị đối tượng (hayđiểm dữ liệu) thứ i
Thuật toán k-means gom cụm toàn bộ các điểm dữ liệu trong U thành k cụm C ={C1,C2, … , Ck }, sao cho mỗi điểm dữ liệu xi nằm trong một cụm duy nhất Để biết điểm
dữ liệu thuộc cụm nào người ta gán cho nó một mã cụm
Các điểm có cùng mã cụm thì ở cùng cụm, trong khi các điểm khác mã cụm thì ởtrong các cụm khác nhau Một cụm có thể biểu thị bằng vec-tơ liên thuộc cụm v có độdài N, với vi là mã cụm của xi
Giá trị k là đầu vào của thuật toán Giá trị k dựa trên tiêu chuẩn tri thức trước đó Sẽ
có bao nhiêu cụm thực sự xuất hiện trong U, bao nhiêu cụm được đề nghị cho ứng dụnghiện hành, hay các kiểu cụm được tìm thấy bằng cách dựa vào thực nghiệm với nhiềugiá trị k khác nhau
Trong các thuật toán gom cụm, các điểm được nhóm theo khái niệm “độ gần” hay
“độ tương tự” Với k-means, phép đo mặc định cho “độ tương tự” là khoảng cáchEuclide
Trang 22Công thức hội tụ hàm mục tiêu
Nói cách khác, k-means cố gắng cực tiểu khoảng cách Euclide tổng bình phươnggiữa mỗi điểm xi và thể hiện cụm gần nhất của nó Cj Biểu thức trên thường được xem
là hàm mục tiêu k-means
II.3.1.2 Giải thuật:
Thuật toán k-means, thay đổi giữa 2 bước:
(1) gán lại mã cụm của tất cả điểm trong U
(2) cập nhật các thể hiện cụm dựa trên các điểm dữ liệu trong mỗi cụm
Thuật toán làm việc như sau: đầu tiên, các thể hiện nhóm được khởi tạo bằng cáchchọn k điểm trong ℜ d Các k thuật để chọn các hạt giống khởi tạo bao gồm lấy mẫungẫu nhiên từ tập dữ liệu, xem chúng như giải pháp gom cụm tập con nhỏ dữ liệu, haylàm thay đổi giá trị trung bình toàn cục của k lần dữ liệu Trongthuật toán ta khởi tạo kđiểm ngẫu nhiên Sau đó thuật toán lặp 2 bước cho đến khi hội tụ
Bước 1 [Gán dữ liệu] Mỗi điểm đƣợc gán vào trọng tâm gần nhất
Bước 2 Tái định vị “độ trung bình” Mỗi thể hiện nhóm được tái định vị vào tâm củatất cả các điểm được gán cho nó Cho trước tập các điểm, thể hiện tốt nhất đối với tậpnày (theo ý nghĩa tối thiểu tổng khoảng cách Euclide giữa mỗi điểm và thể hiện) thìkhông là gì cả ngoài độ trung bình của các điểm dữ liệu Đó là lý do tại sao thể hiệnnhóm (hay còn gọi là tâm của nhóm) thường được tính là trung bình nhóm
Thuật toán hội tụ khi việc gán không còn thay đổi Người ta có thể thấy rằng hàmmục tiêu k-means được định nghĩa trong biểu thức trên sẽ giảm bất cứ khi nào có mộtthayđổi trong bước gán hay bước tái định vị và sự hội tụ được đảm bảo sau hữu hạnbước lặp
Trang 23Đầu vào: Tập dữ liệu D, số cụm k
Đầu ra: Tập thể hiện các cụm C, vectơ liên thuộc cụm m
Chọn ngẫu nhiên k điểm dữ liệu từ D Xem k điểm này là tập khởi tạo các thể cụm C
repeat
Gán lại các điểm trong D cho trung bình cụm gần nhất
Cập nhật m sao cho m i là mã cụm của điểm thứ i trong D
Cập nhật C sao cho c j là trung bình các điểm trong cụm j
Until
Hội tụ hàm mục tiêu
Lưu ý:
Mỗi bước lặp cần N k phép so sánh Đây là độ phức tạp thời gian trong mỗi bước lặp
Số bước lặp cần cho sự hội tụ thay đổi và có thể tùy thuộc vào N, nhưng ở lần cắt đầutiên, k-means có thể được xem là tuyến tính với kích thước tập dữ liệu Hơn nữa, do thaotác so sánh là tuyến tính với d nên thuật toán cũng tuyến tính theo chiều dữ liệu
- Hiệu suất ương đối: do t, k << n (t là số lần lặp, k là số cụm, n là tậpvăn bản) chonên có sự thực thi rất tốt trong hầu hết các ứng dụng
- Scalable tương đối: trong khi xử lý các tập dữ liệu lớn
- Kết thúc ở điểm tối ưu cục bộ, có thể dùng thuật toán di truyền để tìm tối ưu toàncục
- K-means là thuật toán gom cụm được sử dụng rộng rãi trong thực tế vì tính đơngiản, dễ hiểu và có thể chỉnh sửa dễ dàng
- Thuật toán phân cụm dữ liệu K-means [Faber 1994] đã được sử dụng để phân cụmđiểm ảnh trong hình ảnh Landsat [Faber et al 1994]
Trang 24CHƯƠNG III: CÁC CÔNG CỤ HỖ TRỢ TÌM KIẾM THÔNG TIN
III.1 Giới thiệu các công cụ tìm kiếm phổ biến hiện nay:
III.1.1 Bing:
III.1.1.1 Giới thiệu:
Microsoft Bing là bộ máy tìm kiếm Web đại diện cho công nghệ tìm kiếm hiện naycủa Microsoft, được mặc định trong trình duyệt web Internet Explore, điển hình là LiveSearch, Windows Live Search và MSN Search
Ngoài dịch vụ tìm kiếm Web, Bing còn cung cấp nhiều dịch vụ phong phú khác:Bing News (tìm kiếm tin tức), Bing Videos (tìm kiếm Video), Bing Images (tìm kiếmảnh), Bing Maps (tìm kiếm địa điểm),
Hiện nay, Bing đã vượt qua Yahoo để trở thành công cụ tìm kiếm phổ biến thứ 2 trênthế giới Công cụ tìm kiếm vẫn đang trên đà tăng trưởng và ngày càng tạo thêm khoảngcách với Yahoo
III.1.1.2 Ví dụ về một số tính năng điển hình Bing:
Tắt hình nền trên trang tìm kiếm của Bing:
Đặc biệt nổi bật của Bing so với Google đó là luôn xuất hiện một hình nền sinh động
và đẹp mắt ở trang chủ của mình Tuy nhiên không phải ai cũng cảm thấy thoải mái khihình nền này hiển thị Vì 1 lý do nào đó, bạn muốn tắt đi hình nền này, chỉ việc ghé thămđịa chỉ http://bing.com/?rb=0 Từ nay về sau, hình nền trên Bing sẽ biến mất hoàn toàn
Hình 3-1: Ví dụ về tính năng Bing
Trang 25Trong trường hợp muốn trang chủ xuất hiện hình nền lại như cũ, bạn truy cập vàohttp://bing.com/?rb=1
Tìm kiếm trang web có chứa định dạng file nhất định:
Bạn có thể thêm từ khóa ‘contains:<định dạng file>’ vào nội dung tìm kiếm nếumuốn tìm kiếm các website có chứa file với định dạng đã chọn Kết quả sẽ trả về cácwebsite có chứa đường link dẫn tới file định dạng đã chọn
Ví dụ: nếu tìm kiếm với từ khóa ‘kinh tế contains:pdf’, kết quả sẽ trả về các website
có nội dung có chứa đường link của file pdf về kinh tế
Giới hạn kết quả tìm kiếm ở một quốc gia nhất định:
Tiến hành tìm kiếm, kết quả sẽ ưu tiên các website từ quốc gia mà bạn chọn
Với Bing, số quốc gia được hỗ trợ chưa thực sự nhiều (Việt Nam chưa được Bing hỗtrợ) Để làm điều này, bạn phải thêm từ khóa ‘loc:<tên quốc gia>’ vào nội dung tìmkiếm So với Google, Bing còn thua kém vì chưa có phạm vi tìm kiếm rộng rãi ở cácquốc gia trên toàn thế giới
Chẳng hạn, để tìm kiếm các khách sạn tại Việt Nam, bạn sẽ tìm kiếm theo từ khóa
‘Hotel loc:vn’