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
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
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
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
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
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
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
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