Bai tap lon xlnntn

995 views

Published on

PPT

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
995
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
90
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Bai tap lon xlnntn

  1. 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 20080070Trần Anh Thơ 20082569Nguyễn Vương Quyền 20082142Nguyễn Văn Hưng 20081293Nhóm sinh viên:1
  2. 2. N i dungộNguyên lý và mô hình SE (Search engine)LuceneNutch2
  3. 3. Nguyên lý và mô hình SE3
  4. 4. 1. Giới thiệu4
  5. 5. 1. Giới thiệuSE là phần mềm nhằm tìm ra các trang trên mạngInternet có nội dung theo yêu cầu người dùng.Crawler-Based Search Engines: lần tìm các trangtrê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 Internethoàn toàn phụ thuộc vào sự quản lý của con người.5
  6. 6. 2. Phân loại2.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ạivà 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ânlớ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. 7. 2. Phân loại2.2. Máy siêu tìm kiếm7
  8. 8. 2. Phân loại2.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ồntạ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ácSearch Engine khác phân tích và phân hạng lại cáckết quả tìm được.8
  9. 9. 3. Nguyên lý9
  10. 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. 11. 4. Mô hình4.1. Bộ tìm duyệt CrawlerPage selectionInterest Driven: dựa vào mức độ quan tâm củangười sử dụng với các trang đó. Popularity Driven: dựa vào mức độ phổ biến củatrang.Location Driven: xác định mức độ quan trong củatrang P dựa vào địa chỉ của nó.11
  12. 12. 4. Mô hình4.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 đíchquan trọng G đã được cho sẵn, và bất cứ trangnào có độ quan trọng lớn hơn G thì đều được coilà trang hot.12
  13. 13. 4. Mô hình4.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ùngmộ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. 14. 4. Mô hình4.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. 15. 4. Mô hình4.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 trangtuỳ 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 địnhdanh của trang.15
  16. 16. 4. Mô hình4.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), truycậ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ỗinút chính là việc xem xét xem mức độ hỗ trợ mỗithao tác trên của nút đó.16
  17. 17. 4. Mô hình4.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épduyệ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 choRepository.17
  18. 18. 4. Mô hình4.3. Bộ lập chỉ mục Indexer18
  19. 19. 4. Mô hình4.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ặctiê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ầnsố 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 (TotalFrequency) cho mỗi từ bằng cách cộng những tầnsố của mỗi mục từ duy nhất trên tất cả n tài liệu.19
  20. 20. 4. Mô hình4.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ủamụ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. 21. 4. Mô hình4.4. Bộ tìm kiếm thông tinSearch engine tương tác với user thông qua giaodiện web, có nhiệm vụ tiếp nhận & trả về những tàiliệ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ácsearch engine còn cố gắng “hiểu” ý nghĩa thực sựcủa câu hỏi21
  22. 22. 4. Mô hình4.5. Phân hạng trang22
  23. 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ớDemo23
  24. 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. 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. 26. Lucene trong ng d ng tìm ki mứ ụ ế26UsersSearch user interfaceBuild QueryBuild Query Render resultRender resultRun queryRun queryIndexIndex DocumentIndex DocumentAnalyze DocumentAnalyze DocumentBuild DocumentBuild DocumentAcquire contentAcquire contentRaw contentCác ch c năng Lucene h trứ ỗ ợ
  27. 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. 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. 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. 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. 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. 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 model32
  33. 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. 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TopDocs34
  35. 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. 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
  37. 37. Demo Lucene37
  38. 38. Nutch38
  39. 39. Đ nh nghĩaịNutch là một search engine mã nguồn mở cài đặttrê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ộtsearch 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ánphân tán, do vậy Nutch có thể được mở rộng để hoạt độngtrên các tập dữ li uệ lớn.12.05.13 Q&A39
  40. 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. 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. 42. Ki n trúc Nutchế12.05.13 42 Q&A
  43. 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. 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. 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. 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. 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. 48. chu kỳ generate/fetch/update12.05.13 48 Q&AThu th p thông tin là m t chu trình x lí (cyclicalậ ộ ửprocess):
  49. 49. chu kỳgenerate/fetch/update12.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 danhsá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 URLmới có được từ quá trình parse đều sẽ được trộn vào phiên bản trước củacrawldb để tạo ra một phiên bản mới
  50. 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/introduction-to-nutch-1.htmlhttp://today.java.net/pub/a/today/2006/02/16/introduction-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

×