SlideShare une entreprise Scribd logo
1  sur  50
Đ 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:
1
N i dungộ
Nguyên lý và mô hình SE (Search engine)
Lucene
Nutch
2
Nguyên lý và mô hình SE
3
1. Giới thiệu
4
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.
5
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ủ đề.
6
2. Phân loại
2.2. Máy siêu tìm kiếm
7
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.
8
3. Nguyên lý
9
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.
10
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 P dựa vào địa chỉ của nó.
11
4. Mô hình
4.1. Bộ tìm duyệt Crawler
Mô hình crawler
Crawl & stop:Trong số k trang được Crawler ghé
thăm chỉ có m trang (m<=k) sẽ được sắp thứ
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.
12
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.
13
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.
14
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.
15
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 đó.
16
4. Mô hình
4.2. Kho dữ liệu repository
Chiến lược cập nhật
Batch-mode:
 Được xử lý định kỳ mỗi tháng một lần, và cho phép
duyệt một số lần nhất định.
Steady Crawler:
 Nó liên tục cập nhật và bổ xung các trang mới cho
Repository.
17
4. Mô hình
4.3. Bộ lập chỉ mục Indexer
18
4. Mô hình
4.3. Bộ lập chỉ mục Indexer
Xác định mục từ quan trọng
Dựa vào chính nội dung của văn bản đó, hoặc
tiêu đề hay tóm tắt nội dung của văn bản đó.
Các bước:
 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.
19
4. Mô hình
4.3. Bộ lập chỉ mục Indexer
Tính trọng số của mục từ
 Trọng số của mục từ: là tần số xuất hiện của
mục từ trong toàn bộ tài liệu.
 Lập chỉ mục tự động cho tài liệu là xác định tự
động mục từ chỉ mục cho các tài liệu.
 Bước tiếp theo là chuẩn hoá mục từ.
20
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
21
4. Mô hình
4.5. Phân hạng trang
22
Lucene
Gi i thi uớ ệ
Lucene trong các thành ph n c a ng d ng tìm ki mầ ủ ứ ụ ế
Các l p chính trong Luceneớ
Demo
23
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…ư
24
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ỉ ụ
25
Lucene trong ng d ng tìm ki mứ ụ ế
26
Users
Search user interface
Build QueryBuild Query Render resultRender result
Run queryRun query
Index
Index DocumentIndex Document
Analyze DocumentAnalyze Document
Build DocumentBuild Document
Acquire contentAcquire content
Raw content
Các ch c năng Lucene h trứ ỗ ợ
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ậ ữ ệ ừ
Grub, Heritrix, Droids, Aperture…
27
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ể ử ụ
28
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ẵ
29
Index document
D a trên các tokens tách đ c Lucene s th c hi nự ượ ẽ ự ệ
đánh ch m cỉ ụ
Các ch m c c a Lucene s đ c l u trong các file chỉ ụ ủ ẽ ượ ư ỉ
m cụ
Ví dụ
30
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()
31
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
32
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ế ả ượ ạ ứ ộ ợ
33
M t s l p chính trong Luceneộ ố ớ
Các l p đánh ch m cớ ỉ ụ
IndexWriter
Directory
Analyzer
Document
Field
Các l p tìm ki mớ ế
IndexSearcher
Term
Query
TopDocs
34
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ặ ư ộ ệ
Field: Các thu c tính c a m t tài li uộ ủ ộ ệ
35
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ứ ộ ợ
36
Demo Lucene
37
Nutch
38
Đ 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.
12.05.13 Q&A39
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ạ ỉ ụ .
12.05.13 Q&A40
Tính năng c a Nutchủ
H tr nhi u protocol khác nhau nh http, ftp, file.ỗ ợ ề ư
H tr các lo i tài li u khác nhau nh Plain text,ỗ ợ ạ ệ ư
HTML, XML, JavaScript,...
Ch y trên h th ng phân tán: do d a trên n n t ngạ ệ ố ự ề ả
Hadoop nên Nutch có kh năng m r ng.ả ở ộ
Linh ho t v i các plugin: phát tri n hay m r ng tínhạ ớ ể ở ộ
năng c a Nutch.ủ
12.05.13 Q&A41
Ki n trúc Nutchế
12.05.13 42 Q&A
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.ấ
12.05.13 Q&A43
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ụ ậ
12.05.13 Q&A44
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ậ ế ừ ộ ế ộ
Trong đ th webDB, nodes là các trang pages và c nhồ ị ạ
là các liên k t links.ế
12.05.13 45 Q&A
Segments
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.ộ ậ ể
12.05.13 46 Q&A
Index
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ỉ ố ủ
12.05.13 47 Q&A
chu kỳ generate/fetch/update
12.05.13 48 Q&A
Thu th p thông tin là m t chu trình x lí (cyclicalậ ộ ử
process):
chu kỳ
generate/fetch/update
12.05.13 49 Q&A
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
crawldb để tạo ra một phiên bản mới
Tài li u tham kh oệ ả
Bài gi ng x lý ngôn ng t nhiênả ử ữ ự – Ths Hoàng Anh Vi tệ
Lucene in Action Second Edition Michael Mccandless,
Erick Hatcher, Otis Gospodnetic
http://en.wikipedia.org/wiki/Web_search_engine
http://today.java.net/pub/a/today/2006/01/10/introductio
n-to-nutch-1.html
http://today.java.net/pub/a/today/2006/02/16/introductio
n-to-nutch-2.html
http://en.wikipedia.org/wiki/Search_engine_indexing
http://en.wikipedia.org/wiki/PageRank
Và m t s tài li u khácộ ố ệ
50

Contenu connexe

Similaire à Bai tap lon xlnntn

Bai giang tin_hoc_ql_2_046
Bai giang tin_hoc_ql_2_046Bai giang tin_hoc_ql_2_046
Bai giang tin_hoc_ql_2_046
Heo Mọi
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
caolanphuong
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
caolanphuong
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
caolanphuong
 
Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tier
Nguyen Tran
 

Similaire à Bai tap lon xlnntn (20)

Module 2: Tim kiem, luu tru va chia se tu lieu DHHH
Module 2: Tim kiem, luu tru va chia se tu lieu DHHHModule 2: Tim kiem, luu tru va chia se tu lieu DHHH
Module 2: Tim kiem, luu tru va chia se tu lieu DHHH
 
Xây Dựng Và Đánh Giá Hệ Thống Tìm Kiếm Thông Tin.doc
Xây Dựng Và Đánh Giá Hệ Thống Tìm Kiếm Thông Tin.docXây Dựng Và Đánh Giá Hệ Thống Tìm Kiếm Thông Tin.doc
Xây Dựng Và Đánh Giá Hệ Thống Tìm Kiếm Thông Tin.doc
 
Bai giang tin_hoc_ql_2_046
Bai giang tin_hoc_ql_2_046Bai giang tin_hoc_ql_2_046
Bai giang tin_hoc_ql_2_046
 
Cc license-to-oer.2016
Cc license-to-oer.2016Cc license-to-oer.2016
Cc license-to-oer.2016
 
Luận văn: Các kỹ thuật phân tích và lấy tin tự động từ Website
Luận văn: Các kỹ thuật phân tích và lấy tin tự động từ WebsiteLuận văn: Các kỹ thuật phân tích và lấy tin tự động từ Website
Luận văn: Các kỹ thuật phân tích và lấy tin tự động từ Website
 
Bai giang he qtdl
Bai giang he qtdlBai giang he qtdl
Bai giang he qtdl
 
Gioi_thieu_mon_hoc CSDLNC.pptx
Gioi_thieu_mon_hoc CSDLNC.pptxGioi_thieu_mon_hoc CSDLNC.pptx
Gioi_thieu_mon_hoc CSDLNC.pptx
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
[Báo cáo] Bài tập lớn Ngôn ngữ lập trình: Quản lý thư viện
 
Agent mang bayes
Agent mang bayesAgent mang bayes
Agent mang bayes
 
Cc license-to-oer-may.2016
Cc license-to-oer-may.2016Cc license-to-oer-may.2016
Cc license-to-oer-may.2016
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
 
Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tier
 
(383242769) chude03
(383242769) chude03(383242769) chude03
(383242769) chude03
 
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdfVHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
 
2 introduction to oop
2 introduction to oop2 introduction to oop
2 introduction to oop
 
51645016 csdl
51645016 csdl51645016 csdl
51645016 csdl
 
Luan van
Luan vanLuan van
Luan van
 

Plus de Nguyễn Anh

Báo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphicsBáo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphics
Nguyễn Anh
 

Plus de Nguyễn Anh (20)

Báo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphicsBáo cáo đồ họa máy tính - Computer graphics
Báo cáo đồ họa máy tính - Computer graphics
 
Game programming - Hexagon
Game programming - HexagonGame programming - Hexagon
Game programming - Hexagon
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programming
 
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềmNghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
 
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
 
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
 
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMSldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
Sldie TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
 
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
 
Tìm hiểu về kỹ thuật Kiểm thử phần mềm
Tìm hiểu về kỹ thuật Kiểm thử phần mềmTìm hiểu về kỹ thuật Kiểm thử phần mềm
Tìm hiểu về kỹ thuật Kiểm thử phần mềm
 
Bảo trì phần mềm
Bảo trì phần mềmBảo trì phần mềm
Bảo trì phần mềm
 
Embedded beta2 new
Embedded beta2 newEmbedded beta2 new
Embedded beta2 new
 
Embedded linux edited
Embedded linux editedEmbedded linux edited
Embedded linux edited
 
Slide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềmSlide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềm
 
Các kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềmCác kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềm
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
 
Đào tạo ĐH
Đào tạo ĐHĐào tạo ĐH
Đào tạo ĐH
 
Cài đặt windows mà không cần phải kích hoạt
Cài đặt  windows mà không cần phải kích hoạtCài đặt  windows mà không cần phải kích hoạt
Cài đặt windows mà không cần phải kích hoạt
 
System hacking
System hackingSystem hacking
System hacking
 
Hoc internet
Hoc internetHoc internet
Hoc internet
 

Dernier

bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
DungxPeach
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
ltbdieu
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 

Dernier (20)

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 

Bai tap lon xlnntn

  • 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: 1
  • 2. N i dungộ Nguyên lý và mô hình SE (Search engine) Lucene Nutch 2
  • 3. Nguyên lý và mô hình SE 3
  • 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. 5
  • 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ủ đề. 6
  • 7. 2. Phân loại 2.2. Máy siêu tìm kiếm 7
  • 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. 8
  • 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. 10
  • 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 P dựa vào địa chỉ của nó. 11
  • 12. 4. Mô hình 4.1. Bộ tìm duyệt Crawler Mô hình crawler Crawl & stop:Trong số k trang được Crawler ghé thăm chỉ có m trang (m<=k) sẽ được sắp thứ 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. 12
  • 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. 13
  • 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. 14
  • 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. 15
  • 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 đó. 16
  • 17. 4. Mô hình 4.2. Kho dữ liệu repository Chiến lược cập nhật Batch-mode:  Được xử lý định kỳ mỗi tháng một lần, và cho phép duyệt một số lần nhất định. Steady Crawler:  Nó liên tục cập nhật và bổ xung các trang mới cho Repository. 17
  • 18. 4. Mô hình 4.3. Bộ lập chỉ mục Indexer 18
  • 19. 4. Mô hình 4.3. Bộ lập chỉ mục Indexer Xác định mục từ quan trọng Dựa vào chính nội dung của văn bản đó, hoặc tiêu đề hay tóm tắt nội dung của văn bản đó. Các bước:  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. 19
  • 20. 4. Mô hình 4.3. Bộ lập chỉ mục Indexer Tính trọng số của mục từ  Trọng số của mục từ: là tần số xuất hiện của mục từ trong toàn bộ tài liệu.  Lập chỉ mục tự động cho tài liệu là xác định tự động mục từ chỉ mục cho các tài liệu.  Bước tiếp theo là chuẩn hoá mục từ. 20
  • 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 21
  • 22. 4. Mô hình 4.5. Phân hạng trang 22
  • 23. Lucene Gi i thi uớ ệ Lucene trong các thành ph n c a ng d ng tìm ki mầ ủ ứ ụ ế Các l p chính trong Luceneớ Demo 23
  • 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…ư 24
  • 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ỉ ụ 25
  • 26. Lucene trong ng d ng tìm ki mứ ụ ế 26 Users Search user interface Build QueryBuild Query Render resultRender result Run queryRun query Index Index DocumentIndex Document Analyze DocumentAnalyze Document Build DocumentBuild Document Acquire contentAcquire content Raw content Các ch c năng Lucene h trứ ỗ ợ
  • 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ậ ữ ệ ừ Grub, Heritrix, Droids, Aperture… 27
  • 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ể ử ụ 28
  • 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ẵ 29
  • 30. Index document D a trên các tokens tách đ c Lucene s th c hi nự ượ ẽ ự ệ đánh ch m cỉ ụ Các ch m c c a Lucene s đ c l u trong các file chỉ ụ ủ ẽ ượ ư ỉ m cụ Ví dụ 30
  • 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() 31
  • 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 32
  • 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ế ả ượ ạ ứ ộ ợ 33
  • 34. M t s l p chính trong Luceneộ ố ớ Các l p đánh ch m cớ ỉ ụ IndexWriter Directory Analyzer Document Field Các l p tìm ki mớ ế IndexSearcher Term Query TopDocs 34
  • 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ặ ư ộ ệ Field: Các thu c tính c a m t tài li uộ ủ ộ ệ 35
  • 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ứ ộ ợ 36
  • 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. 12.05.13 Q&A39
  • 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ạ ỉ ụ . 12.05.13 Q&A40
  • 41. Tính năng c a Nutchủ H tr nhi u protocol khác nhau nh http, ftp, file.ỗ ợ ề ư H tr các lo i tài li u khác nhau nh Plain text,ỗ ợ ạ ệ ư HTML, XML, JavaScript,... Ch y trên h th ng phân tán: do d a trên n n t ngạ ệ ố ự ề ả Hadoop nên Nutch có kh năng m r ng.ả ở ộ Linh ho t v i các plugin: phát tri n hay m r ng tínhạ ớ ể ở ộ năng c a Nutch.ủ 12.05.13 Q&A41
  • 42. Ki n trúc Nutchế 12.05.13 42 Q&A
  • 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.ấ 12.05.13 Q&A43
  • 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ụ ậ 12.05.13 Q&A44
  • 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ậ ế ừ ộ ế ộ Trong đ th webDB, nodes là các trang pages và c nhồ ị ạ là các liên k t links.ế 12.05.13 45 Q&A
  • 46. Segments 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.ộ ậ ể 12.05.13 46 Q&A
  • 47. Index 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ỉ ố ủ 12.05.13 47 Q&A
  • 48. chu kỳ generate/fetch/update 12.05.13 48 Q&A Thu th p thông tin là m t chu trình x lí (cyclicalậ ộ ử process):
  • 49. chu kỳ generate/fetch/update 12.05.13 49 Q&A 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 crawldb để tạo ra một phiên bản mới
  • 50. Tài li u tham kh oệ ả Bài gi ng x lý ngôn ng t nhiênả ử ữ ự – Ths Hoàng Anh Vi tệ Lucene in Action Second Edition Michael Mccandless, Erick Hatcher, Otis Gospodnetic http://en.wikipedia.org/wiki/Web_search_engine http://today.java.net/pub/a/today/2006/01/10/introductio n-to-nutch-1.html http://today.java.net/pub/a/today/2006/02/16/introductio n-to-nutch-2.html http://en.wikipedia.org/wiki/Search_engine_indexing http://en.wikipedia.org/wiki/PageRank Và m t s tài li u khácộ ố ệ 50