Archive for May, 2010

Indexing

Giả dụ có một số lượng lớn các file, và yêu cầu đặt ra là liệt kê những file nào có chứa từ hay cụm từ được cho trước. Làm thế nào viết chương trình để thực hiện yêu cầu này? Một cách dễ dàng nhất mà ai cũng có thể nghĩ ra là lần lượt duyệt qua tất cả các file và so khớp nội dung với từ khóa. Hướng giải quyết này là hoàn toàn chính xác, tuy nhiên nó chỉ phù hợp khi dung lượng các file là nhỏ, vì tốc độ xử lý của nó phụ thuộc vào độ lớn của các file. Đây là lý do có khái niệm indexing. Giải pháp để tìm kiếm một số lượng lớn văn bản nhanh chóng là đánh chỉ mục cho văn bản và chuyển nó thành định dạng cho phép việc tìm kiếm diễn ra rất mau lẹ, hạn chế sự chậm trễ trong việc duyệt file tuần tự. Quá trình chuyển đổi như trên được gọi là indexing, và kết quả mà nó trả lại được gọi là index.

Read more

Build Document

Sau khi đã lấy được nội dung từ dữ liệu thô, tiếp theo là xây dựng các đơn vị “document” sử dụng cho việc tìm kiếm. Mỗi document là một record bao gồm nhiều field (title, body, abstract, author, url). Document phải được thiết kế cẩn thận, như làm thế nào chia nội dung thành các record và các field, làm thế nào để tính toán giá trị cho từng field? Thông thường, cách phân chia khá rành mạch, như mỗi email, PDF file hay trang web là một document. Đôi khi tình hình trở nên rối hơn: làm thế nào xử lý attachment trong email? Cách giải quyết là xem phần văn bản trong attachment là một field của email, hay xem attachment là một document riêng và liên kết ngược lại với email?

Read more

Acquire Content

Đây là bước đầu tiên trong quá trình hoạt động của search engine. Ở bước này, một chương trình tự động (gọi là search bot, crawler hay spider) được sử dụng để download dữ liệu thô từ nguồn dữ liệu, rồi phân tích để lấy ra nội dung. Công việc này đơn giản nếu dữ liệu thô là các file theo định dạng XML, còn nguồn dữ liệu là các directory hoặc database có cấu trúc. Nó sẽ phức tạp hơn rất nhiều nếu dữ liệu thô là phi cấu trúc và nguồn dữ liệu bị phân tán khắp mọi nơi (Lotus Domino, Microsoft Exchange, Word document, Excel spreadsheet).

Read more

Search engine

image

Các quá trình hoạt động của một search engine

Search engine là một hệ thống truy vấn thông tin trên máy tính. Các thông tin này có thể tồn tại ở nhiều dạng, như hình ảnh, âm thanh, nhưng đa số là văn bản (email, tài liệu, ebook, trang web).

Text search engine sử dụng kỹ thuật full text search, cho phép người dùng nhập vào một vài từ khóa và tìm những văn bản nào có chứa những từ khóa này. Về cơ bản, những engine như vậy đều hoạt động dựa trên 3 quá trình:

- Crawling (Raw Content à Acquire Content à Build Document): Thu thập văn bản từ các dữ liệu dạng thô.

- Indexing (Analyze Document à Index Document): Tìm các từ khóa đặc trưng cho văn bản.

- Searching (User Interface à Build Query à Run Query à Render Results): So khớp từ khóa do người dùng nhập vào với từ khóa đặc trưng để chọn lọc văn bản phù hợp.

Read more

ĐH == CH ?

Tiếp theo trò đố vui ĐH == ĐH lần trước, đây là level 2. Mọi người xem hình đính kèm và thử giải thích xem tại sao có kết quả này ???

botay2

ĐH == ĐH ?

Đố mọi người biết chuyện gì đã xảy ra? Hình chụp bằng Visual Studio 2010 Ultimate :x

 botay