1. Trang chủ
  2. » Tài Chính - Ngân Hàng

đề tài tìm hiểu nguyên lý se framework lucene và ứng dụng nutch

50 998 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu nguyên lý SE framework Lucene & ứng dụng Nutch
Tác giả Nguyễn Thế Anh, Trần Anh Thơ, Nguyễn Vương Quyền, Nguyễn Văn Hưng
Người hướng dẫn Ths Hoàng Anh Việt
Trường học Trường Đại Học Công Nghệ Thông Tin – Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Đề tài nghiên cứu
Năm xuất bản 2008
Thành phố Hà Nội
Định dạng
Số trang 50
Dung lượng 1,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Crawler-Based Search Engines: lần tìm các trang trên mạng, rồi tự động phân tích các trang lấy về và đưa vào cơ sở dữ liệu của nó.. Giới thiệuLucene là một thư viện mã nguồn mở viết bằ

Trang 1

Đề tài: Tìm hiểu nguyên lý SE

framework Lucene & ứng dụng Nutch

GVHD: Ths Hoàng Anh Việt

Nguyễn Thế Anh 20080070 Trần Anh Thơ 20082569 Nguyễn Vương Quyền 20082142 Nguyễn Văn Hưng 20081293

Nhóm sinh viên:

Trang 2

Nội dung

Nguyên lý và mô hình SE (Search engine)

Lucene

Nutch

Trang 3

Nguyên lý và mô hình SE

Trang 4

1 Giới thiệu

Trang 5

1 Giới thiệu

SE là phần mềm nhằm tìm ra các trang trên mạng Internet có nội dung theo yêu cầu người dùng

Crawler-Based Search Engines: lần tìm các trang trên mạng, rồi tự động phân tích các trang lấy về và đưa vào cơ sở dữ liệu của nó

Human-Powered Directories: các thư mục Internet

hoàn toàn phụ thuộc vào sự quản lý của con người

Trang 6

2 Phân loại

2.1 Máy tìm kiếm thông thường

Tìm kiếm theo qui trình thu thập tài liệu, phân loại

và tạo chỉ mục

Gồm hai loại, Search Engine sử dụng thư mục chủ

đề và Search Engine tạo chỉ mục tự động

Các Search Engine sử dụng thư mục chủ đề phân lớp sẵn các trang trên Internet vào các thư mục chủ

đề và theo các cấp chi tiết hơn của chủ đề

Trang 7

2 Phân loại

2.2 Máy siêu tìm kiếm

Trang 8

2 Phân loại

2.2 Máy siêu tìm kiếm

Là loại máy truy tìm ảo, hoạt động dựa trên sự tồn tại của các Search Engine sẵn có

Không có cơsở dữ liệu của riêng mình

Khi có yêu cầu tìm kiếm gửi từ khóa đến các Search Engine khác phân tích và phân hạng lại các kết quả tìm được

Trang 9

3 Nguyên lý

Trang 10

3 Nguyên lý

Robot đi thu thập thông tin trên mạng

Robots phải liên tục cập nhật các site cũ

Tiến hành phân tích, tìm trong cơ sở dữ liệu chỉ mục & trả về những tài liệu thoả yêu cầu

Trang 11

4 Mô hình

4.1 Bộ tìm duyệt Crawler

Page selection

Interest Driven: dựa vào mức độ quan tâm của

người sử dụng với các trang đó

Popularity Driven: dựa vào mức độ phổ biến của

trang

Location Driven: xác định mức độ quan trong của

Trang 12

hạng cao hơn hoặc bằng trang Rk.

 Crawl & Stop with Threshold: vẫn giả sử rằng bộ Crawler ghé thăm k trang Tuy nhiên lúc này đích quan trọng G đã được cho sẵn, và bất cứ trang nào có độ quan trọng lớn hơn G thì đều được coi

là trang hot

Trang 13

4 Mô hình

4.1 Bộ tìm duyệt Crawler

Page refresh

Uniform refresh policy: cập nhật đồng loạt

Crawler ghé thăm lại tất cả các trang theo cùng một tần suất f

Proportional refresh policy: Cập nhật theo tỷ lệ, một trang thường xuyên thay đổi thì Crawler ghé thăm thường xuyên hơn

Trang 14

4 Mô hình

4.2 Kho dữ liệu repository

Yêu cầu với repository

Có khả năng mở rộng

Có cách truy cập kéo

Có thể cập nhật khối lượng lớn

Loại bỏ trang không tồn tại

Kho dữ liệu được thiết kế phân tán

Trang 15

4 Mô hình

4.2 Kho dữ liệu repository

Nguyên tắc phân tán trang

Phân tán đồng bộ

 Tất cả các nút được xử lý đồng nhất Một trang có thể được gán cho một nút bất kỳ trong hệ thống Các nút sẽ chứa các phần của tập hợp các trang tuỳ theo khả năng lưu trữ của nút

Phân tán băm

 Việc định vị các trang vào các nút dựa trên định danh của trang.

Trang 16

4 Mô hình

4.2 Kho dữ liệu repository

Phương pháp tổ chức vật lý

Trong một nút đơn, có 3 thao tác có thể thực hiện:

 Thêm trang/ chèn trang (page addition/insertion), truy cập tuần tự tốc độ cao, và truy cập ngẫu nhiên.

 Cách tổ chức các trang theo kiểu vật lý tại mỗi nút chính là việc xem xét xem mức độ hỗ trợ mỗi thao tác trên của nút đó

Trang 18

4 Mô hình

4.3 Bộ lập chỉ mục Indexer

Trang 19

 Cho một tập hợp n tài liệu, thực hiện tính toán tần

số xuất hiện của các mục từ trong tài liệu đó.

 Xác định tổng tần số xuất hiện TFk (Total Frequency) cho mỗi từ bằng cách cộng những tần

số của mỗi mục từ duy nhất trên tất cả n tài liệu.

Trang 21

4 Mô hình

4.4 Bộ tìm kiếm thông tin

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ả về những tài liệu thoả yêu cầu của user

 Tìm kiếm theo từ khóa là tìm kiếm các trang mà những từ trong câu truy vấn (query) xuất hiện

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

Trang 22

4 Mô hình

4.5 Phân hạng trang

Trang 24

Giới thiệu

Lucene là một thư viện mã nguồn mở viết bằng java cho phép dễ dàng tích hợp thêm chức

năng tìm kiếm đến bất cứ ứng dụng nào

Được phát triển bởi Dough Cutting (cũng là tác giả của Hadoop, Nutch…)

Cung cấp các API hỗ trợ cho việc đánh chỉ mục

và tìm kiếm

Hiện tại, Lucene đã được mở rộng ra nhiều

ngôn ngữ khác nhau như C#, PHP, C, C++,

Python, Ruby…

Trang 25

Giới thiệu (tiếp)

Lucene có thể được sử dụng để tích hợp chức năng tìm kiếm vào ứng dụng sẵn có hoặc xây dựng một search engine hoàn chỉnh

Hỗ trợ thực hiện

Phân tích dữ liệu (dạng văn bản) để đánh chỉ

mục: Analyze document

Đánh chỉ mục (Index document & Index)

Thực hiện việc xây dựng câu truy vấn và tìm

kiếm trong chỉ mục: Build query, run query

Trang 26

Lucene trong ứng dụng tìm kiếm

Users

Search user interface

Build Query

Build Query Render result

Run query

Index

Index Document

Analyze Document

Analyze Document

Build Document Acquire content

Raw content

Các chức năng Lucene hỗ

trợ

Trang 27

Acquire content

Sử dụng một crawler (hay spider) để thu thập các thông tin cần đánh chỉ mục

Crawler sẽ cập nhật các cập nhật ở nguồn dữ liệu (raw content)

Lucene không hỗ trợ chức năng này

Một số thư viện mã nguồn mở hỗ trợ

Solr: Một project con của Apache Lucene thu thập dữ liệu trong CSDL quan hệ, XML feeds…

Nutch: Project của Apache, có crawler cho

phép thu thập dữ liệu từ các website

Trang 28

Build document

 Chuyển các thông tin thu thập

được này thành các đơn vị (units)

thường được gọi là các Document

 Một Document có thể ứng với một

webpage, file pdf, file doc, txt…

 Một Document chứa các trường

(Field) là các thuộc tính của

Document đó VD: Title, Content,

Author, Url…

 Cần tách được text từ các thông

tin thô

 Để lấy được text của tài liệu dạng

nhị phân cần Document Filter –

Lucene không hỗ trợ chức năng

này

 Có thể sử dụng Tika

Trang 29

Analyze document

Chia nhỏ text thu được thành các token

Tách từ

Loại bỏ các stop word

Thực hiện biến chữ hoa thành chữ thường

Các thành phần thu được sẽ được đánh chỉ mục

Lucene cung cấp bộ phân tích token được xây dựng sẵn

Trang 31

Build query

Dịch các truy vấn của user thành Query

Truy vấn có thể chứa các toán tử boolean, các

ký tự đại diện…

VD Book AND Pen

Có thể thay đổi truy vấn hoặc rank của các

kết quả đầu ra

VD: query.setBoost()

Trang 32

Run query

Tìm kiếm chỉ mục và lấy ra các kết quả được xếp hạng

Có 3 mô hình tìm kiếm

 Pure boolean model: Các tài liệu chỉ có một trong

2 trạng thái là khớp và không khớp với truy vấn,

không được đánh trọng số

 Vector space model: Truy vấn và tài liệu được mô hình hóa như các vector trong không gian vector Tìm kiếm dựa vào khoảng cách giữa các vector

 Probabilistic model: Tìm kiếm dựa trên xác suất

Lucene kết hợp mô hình Vector space model và Pure boolean model

Trang 33

Render result

Trả lại các kết quả phù hợp với truy vấn

Các kết quả được phân hạng theo mức độ phù hợp

Trang 35

Các lớp đánh chỉ mục

IndexWriter: Tạo, cập nhật chỉ mục

Directory: Thư mục chứa chỉ mục của Lucene

Analyzer: Xử lý, biến đổi text thành các

tokens trước khi đánh chỉ mục

Document: Đặc trưng cho một tài liệu

Trang 36

Các lớp tìm kiếm

IndexSearcher: Tìm kiếm chỉ mục

Term: Là một đơn vị cơ bản của tìm kiếm

Query: Là lớp trừu tượng mô tả truy vấn

TopDocs: Là lớp chứa danh sách các tham

chiếu đến tài liệu trả về Các tài liệu trả về sẽ theo thứ tự của mức độ phù hợp

Trang 37

Demo Lucene

Trang 38

Nutch

Trang 39

Định nghĩa

Nutch là một search engine mã nguồn mở cài đặt

trên ngôn ngữ lập trình Java Nutch cung cấp tất cả các công cụ cần thiết để cho phép ta tạo ra một

search engine (SE) của riêng mình.

Nutch được xây dựng trên nền tảng lưu trữ và tính toán phân tán, do vậy Nutch có thể được mở rộng để hoạt động trên các tập dữ liệu lớn.

Trang 40

Nền tảng phát triển của Nutch

Lucene: bộ thư viện nguồn mở có chức năng xây dựng chỉ mục và tìm kiếm.

Hadoop: cung cấp một nền tảng tính toán phân tán với một hệ thống tập tin phân tán.

Tika: một bộ công cụ dùng để phát hiện và rút trích các metadata và những nội dung văn bản có cấu trúc từ

những loại tài liệu khác nhau Nutch sử dụng Tika để

phân tách các loại tài liệu khác nhau nhằm sử dụng cho quá trình tạo chỉ mục.

Trang 41

Tính năng của Nutch

Hỗ trợ nhiều protocol khác nhau như http,

Linh hoạt với các plugin: phát triển hay mở

rộng tính năng của Nutch.

Trang 42

Kiến trúc Nutch

Trang 43

Kiến trúc của Nutch

Nutch bao gồm hai thành phần là trình thu

thập thông tin (Crawler) và trình tìm kiếm

thông tin (Searcher).

Crawler: lấy dữ liệu từ các trang và tạo ra bộ chỉ mục ngược (inverted index).

Searcher sử dụng inverted index để trả lời

câu truy vấn query.

Trang 44

The Crawler

Trình thu thập thông tincrawler bao gồm bốn thành phần là

Cơ sở dữ liệu web hay viết tắt là webdb

Các phân đoạn (segments)

Bộ chỉ mục index

Công cụ thu thập thông tin crawl tool

Trang 45

Web Database (WebDB)

 Cấu trúc dữ liệu lưu trữ lâu dài (persistent) để phản ánh cấu trúc và tính chất của đồ thị web mà đã thu thập được.

 Chỉ được sử dụng bởi crawler và không có vai trò gì trong quá trình tìm kiếm searching.

 Lưu trữ hai kiểu thực thể:

 Pages: trang trên web

 Links: tập các liên kết từ một trang đến một

trang khác

Trang 46

Segments: tập các trang được crawler tìm và đánh chỉ mục trong một lần thực thi.

Giới hạn thời gian tồn tại (được đặt tên theo

ngày và thời gian tạo ra)

Fetchlist hay tập các trang tìm thấy cho một segment là một tập các URL để crawler tìm.

Trang 47

Nutch sử dụng Lucene để đánh chỉ mục

Là chỉ số đảo ngược (inverted index) của tất

cả các trang mà  hệ thống đã truy xuất.

Mỗi segment có sáu chỉ mục

Inverted index được tạo ra bằng cách trộn

tất cả các chỉ số của segment

Trang 48

chu kỳ generate/fetch/update

Thu thập thông tin là một chu trình xử lí

(cyclical process):

Trang 49

chu kỳ

generate/fetch/update

 Generate: một danh sách các URL sẽ được phát sinh ra để dùng trong quá trình nạp Các URL được chọn là các URL trong webdb có tình trạng

là “chưa nạp” hoặc “đã lỗi thời” Số lượng URL được phát sinh ra trong

danh sách có thể bị giới hạn lại theo ý muốn

 Fetch:một trình tự động (fetcher) tự động tải các tài liệu từ danh sách

URL được phát sinh ra từ bước generate

 Parse: dữ liệu nhị phân có được từ giai đoạn nạp sẽ được phân tách ra để trích lấy các thông tin như các link, metadata và các thông tin văn bản khác

để dùng cho việc tạo inverted index sau này.

 Update: trạng thái của mỗi URL được nạp cũng như danh sách các URL mới có được từ quá trình parse đều sẽ được trộn vào phiên bản trước của

Trang 50

Tài liệu tham khảo

Việt

Mccandless, Erick Hatcher, Otis Gospodnetic

Ngày đăng: 27/05/2014, 12:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w