Gi i thi u v tìm ki m thông tin
Khái ni m v công c tìm ki m
Công cụ tìm kiếm là hệ thống thu thập thông tin được thiết kế để hỗ trợ việc tìm kiếm thông tin lưu trữ trên máy tính Nó tối ưu hóa thời gian cần thiết để tìm kiếm thông tin bằng cách lưu trữ và xử lý dữ liệu theo nhiều cách khác nhau.
_ D ng ph bi n nh t c a công c tìm ki m đó là công c tìm ki m Web (Web Search Engine)
_ vd: Google Search, Yahoo Search, …
Công cụ tìm kiếm cung cấp một giao diện giúp người dùng dễ dàng chọn lựa thông tin cần tìm và có cách xử lý để tìm được thông tin tương ứng Thông tin cần tìm sẽ được sắp xếp ngẫu nhiên với một câu truy vấn.
M t s v n đ trong vi c tìm ki m thông tin
Khi bước vào năm 2023, việc lưu trữ và tìm kiếm thông tin đã trở thành vấn đề thu hút sự chú ý lớn Với khối lượng thông tin khổng lồ, việc tìm kiếm chính xác và nhanh chóng càng trở nên cần thiết và khó khăn hơn Sự ra đời của máy tính đã tạo ra nhiều yếu tố mới, giúp cung cấp một hệ thống tìm kiếm thông tin thông minh và chính xác Tuy nhiên, vấn đề tìm kiếm hiệu quả vẫn chưa được giải quyết triệt để.
Việc lưu trữ thông tin trong kho dữ liệu là rất quan trọng Người dùng cần có khả năng tìm kiếm các tài liệu liên quan đến yêu cầu của mình Họ có thể truy cập tất cả các tài liệu trong kho, xác định tài liệu có liên quan và loại bỏ những tài liệu không cần thiết Tuy nhiên, phương pháp này không hiệu quả vì tốn quá nhiều thời gian.
Với sự phát triển của máy vi tính, máy tính có khả năng thay thế con người trong việc trích xuất tài liệu liên quan từ toàn bộ tập dữ liệu Tuy nhiên, thách thức hiện tại là xác định chính xác tài liệu nào là liên quan đến câu hỏi Mục đích của các hệ thống tìm kiếm thông tin hiện đại là truy lục được tất cả các tài liệu có liên quan đến yêu cầu.
H tìm ki m thông tin-Information Retrieval Search
Sau đây là đnh ngh a v h th ng tìm ki m thông tin c a m t s tác gi :
Salton (1989) định nghĩa rằng việc tìm kiếm thông tin liên quan đến các tập tin lưu trữ và các yêu cầu thông tin, xác định và tìm kiếm các tập tin chứa thông tin phù hợp với những yêu cầu đó Quá trình truy tìm thông tin phụ thuộc vào sự tương tác giữa các giá trị của các thuộc tính đối với thông tin được lưu trữ và các yêu cầu thông tin cụ thể.
Kowalski (1997) định nghĩa hệ thống truy tìm thông tin là một cấu trúc có khả năng lưu trữ, truy xuất và duy trì thông tin Thông tin trong các hệ thống này có thể bao gồm văn bản, âm thanh, video và nhiều định dạng đa phương tiện khác.
Hệ thống tìm kiếm thông tin là công cụ hỗ trợ người dùng trong việc tìm kiếm thông tin một cách nhanh chóng và dễ dàng Người dùng có thể đưa ra các câu hỏi và yêu cầu bằng ngôn ngữ tự nhiên, và hệ thống sẽ tìm kiếm trong tập hợp các tài liệu đã được lưu trữ để xác định các tài liệu liên quan Sau đó, hệ thống sẽ sắp xếp các tài liệu theo mức độ liên quan, từ cao đến thấp, và trả về kết quả cho người dùng.
T ng quan v c a m t h th ng tìm ki m thông tin
B ph n thu th p thông tin (Spyder/Robot/Web Crawler…)
Robot là m t ch ng trình t đ ng duy t qua các c u trúc siêu liên k t đ thu th p tài li u và t đ ng nh n v t t c các siêu liên k t có trong tài li u đ ti p t c duy t
Robot được biết đến dưới nhiều tên gọi khác nhau như Web crawler, Spider, Web wanderer hay Web worm Những tên gọi này đôi khi gây nhầm lẫn, đặc biệt là “Spider” và “Wanderer” khiến người ta liên tưởng rằng robot di chuyển tự do, trong khi “Worm” lại gợi nhớ đến virus Thực chất, robot là một chương trình tự động thu thập thông tin từ các website theo đúng giao thức web Các chương trình duyệt thông thường không được xem là robot do thiếu tính chất tự động, chúng chỉ duyệt web khi có sự tác động của con người.
B phân l p ch m c (Indexing)
Hệ thống lập chỉ mục, hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện việc phân tích và trích xuất những thông tin cần thiết từ dữ liệu mà robot thu thập được Hệ thống này tổ chức dữ liệu thành các cơ sở dữ liệu riêng, giúp người dùng tìm kiếm một cách nhanh chóng và hiệu quả Hệ thống lập chỉ mục cũng là danh sách các từ khóa, chỉ rõ các từ khóa nào xuất hiện trên trang nào và tần suất của chúng.
B ph n giao ti p, so kh p và s p x p các tài li u tr v
Các công cụ tìm kiếm tương tác với người dùng thông qua giao diện web, thực hiện nhiệm vụ tiếp nhận và phân tích các câu truy vấn Sau đó, chúng so sánh và tìm kiếm tài liệu liên quan, nhằm cung cấp những thông tin phù hợp nhất với yêu cầu của người dùng.
Các tác giả sẽ trích xuất các câu truy vấn và các từ khóa liên quan để so sánh với nhau nhằm tìm ra các tài liệu liên quan đến câu truy vấn Mỗi tài liệu sẽ có một độ tương quan nhất định với câu hỏi Các tài liệu này sẽ được sắp xếp theo độ tương quan giảm dần và trả về cho người dùng.
Công việc của SEO là tìm kiếm các trang web có chứa từ khóa trong câu truy vấn (query) xuất hiện nhiều nhất, loại trừ các từ dừng (stopword) như "một", "a", "an", "the", Nếu một từ khóa xuất hiện nhiều lần trên một trang, trang đó sẽ được coi là có giá trị cao hơn cho người dùng.
Trang chủ chứa tất cả các từ trong câu truy vấn, là một trang không chứa mật học mà chỉ có một số từ Ngày nay, hầu hết các search engine đều hỗ trợ chức năng tìm kiếm bậc và nâng cao, tìm từ đồng nghĩa, cụm từ, danh từ riêng, hay giới hạn phạm vi tìm kiếm nhằm giúp người dùng dễ dàng tìm kiếm thông tin trên web, từ đó cải thiện hiệu quả giới thiệu về trang web.
Ngoài việc tìm kiếm chính xác theo từ khóa, các công cụ tìm kiếm còn có khả năng "hiểu" ý nghĩa thực sự của câu hỏi thông qua những câu hỏi do người dùng cung cấp Điều này được thể hiện qua việc các search engine sử dụng các thuật toán tinh vi để nhận diện những hình thức biến đổi khác nhau của mặt từ.
Ví d : search engine s tìm nh ng t nh speaker, speaking, spoke khi ng i dùng nh p vào t speak.
Nguyên lý ho t đ ng
Công cụ tìm kiếm sử dụng robot để thu thập thông tin trên mạng thông qua các siêu liên kết (hyperlink) Khi robot phát hiện một trang web mới, nó sẽ gửi dữ liệu về máy chủ chính để xử lý và lưu trữ, nhằm phục vụ cho nhu cầu tìm kiếm thông tin của người dùng.
Thông tin trên mạng luôn thay đổi, vì vậy robot cần liên tục cập nhật các trang web Việc cập nhật này phụ thuộc vào từng hệ thống công cụ tìm kiếm Khi nhận được truy vấn từ người dùng, công cụ tìm kiếm sẽ tiến hành phân tích và tìm kiếm trong cơ sở dữ liệu để trả về những tài liệu phù hợp với yêu cầu.
Hình 2: Nguyên lý ho t đ ng c a search engine
CH NG 2: NH NG V N C A B THU
Tóm t t l c s c a WebCrawler
Chu k thu th p d li u c a m t web crawler
_ The crawler b t đ u t i n i dung c a các trang h t gi ng, t nh ng trang h t gi ng này The Crawler s phân tích và quét đ tìm ra các liên k t m i
_ Các liên k t ch a đ c ghé th m s đ c thêm vào m t hàng đ i và đ c t i v sau
_ Ti p theo đó, the Crawler s ch n m t trang m i đ t i v và quá trình đ c l p đi l p l i cho đ n khi g p m t đi u ki n ch n đ d ng quá trình.
Web Crawler đ u tiên
Web Crawler đầu tiên được một sinh viên tại MIT, Matthew Gray, tạo ra vào năm 1993 Vào tháng 6 năm đó, Gray đã gửi tin nhắn đến www-talk mailing list, chia sẻ rằng anh đã viết một script Perl để thu thập URL qua WWW và theo dõi máy chủ mà nó đã truy cập để tìm ra những máy chủ mới Dự án thu thập thông tin này được gọi là WWWW (World Wide Web Wanderer) và chủ yếu được sử dụng để nghiên cứu các đặc tính của web.
Vào tháng 6 năm 1994, Brian Pinkerton, một sinh viên tại Đại học Washington, đã thông báo rằng WebCrawler đã sẵn sàng để tìm kiếm thông tin Công cụ này thu thập dữ liệu từ nhiều máy chủ khác nhau và cho phép người dùng tìm kiếm thông tin trên một máy chủ ban đầu WebCrawler nhanh chóng trở thành một công cụ tìm kiếm thành công, dẫn đến sự xuất hiện của các công cụ khác như Lycos (1994), Excite (1995), Altavista (1995) và Hotbot (1996), khi đó các công cụ tìm kiếm này cũng bắt đầu sử dụng crawler để thu thập thông tin.
Các ng d ng c a WebCrawler
General Web Search (T o ch m c bao g m các ch đ r ng)
Để tối ưu hóa công cụ tìm kiếm, việc thu thập thông tin cho một tìm kiếm web tổng quát cần đảm bảo tính bảo mật và chất lượng Điều này đòi hỏi công cụ phải quét toàn bộ các trang web có khả năng đáp ứng cho nhiều truy vấn khác nhau, đồng thời các trang đó cũng cần phải có giá trị cao để đảm bảo chất lượng thông tin.
Vertical Web Search (T o ch m c cho các ch đ c th )
Tìm kiếm theo chiều dọc (Vertical Crawler) là công cụ chuyên thu thập thông tin từ các trang web có chủ đề cụ thể, tập trung vào một quốc gia hoặc một ngôn ngữ nhất định Vertical Crawler giúp xác định và phân loại các trang web dựa trên nhiều tiêu chí như lĩnh vực, ngôn ngữ và nội dung Ví dụ, nó có thể tìm kiếm các trang web chỉ liên quan đến du lịch, giáo dục hoặc sức khỏe, mang lại kết quả chính xác và phù hợp với nhu cầu của người dùng.
• Shopbot: đ c thi t k đ t i thông tin t các danh m c mua s m tr c tuy n và cung c p giao di n so sánh giá theo cách t p trung
• News crawler: t p h p các m c tin t c t m t ngu n đã đ c xác đ nh tr c
• Spambot: vi c thu th p nh m vào các đa ch email đ đ c chèn vào trang web
Vertical Search là một hình thức tìm kiếm chuyên biệt, phân loại dữ liệu theo các định dạng cụ thể như hình ảnh, âm thanh và video Trong trường hợp này, The Crawler được điều chỉnh để thu thập và xử lý các loại dữ liệu này Ví dụ, Feed Crawler có nhiệm vụ kiểm tra và cập nhật thông tin từ các tệp RSS/RDF trên trang web.
Trình thu thập dữ liệu (Crawler) là một công cụ quan trọng trong việc thu thập thông tin từ các trang web, giúp cung cấp các chiến lược thu thập dữ liệu hiệu quả và tránh tình trạng quá tải Crawler hoạt động dựa trên một mô hình đầu vào, thường được xác định bởi một câu truy vấn chính hoặc một tập hợp các tài liệu mẫu Có hai chế độ hoạt động của Crawler: chế độ hàng loạt (Batch mode), nơi thu thập các trang theo một lịch trình định kỳ, và chế độ theo yêu cầu (On Demand), cho phép thu thập các trang dựa trên câu truy vấn của người dùng.
Thu th p đ c tính c a Web (Web Characterization)
Thu thập dữ liệu tính web bao gồm các yếu tố đặc trưng và thống kê của các trang web Một thách thức lớn là xác định đặc tính của một trang web Những yếu tố nào cần được xem xét khi đánh giá một trang web? Hay những yếu tố nào ảnh hưởng đến một trang web của một quốc gia? Việc thu thập thông tin một cách có hệ thống sẽ dẫn đến kết quả chính xác hơn Các URL cần được lựa chọn một cách cẩn thận để đảm bảo tính hiệu quả.
4 Ánh x trang web (Mirroring-Gi l i b n sao ho c tái t o trang web): _ Mirroring là hành đ ng gi l i m t ph n hay toàn b n i dung gi ng nh b n sao c a trang web M t Crawler dùng đ ánh x th ng khá đ n gi n Chính sách ánh x bao g m: th i gian làm m i (c p nh t l i b n sao) đi n hình là hàng ngày hay hàng tu n và th i gian trong ngày đ th c hi n Mirroring.
Web archival (L u tr n i dung)
Web archiving là một phương pháp lưu trữ các trang web mà không cần lo ngại về việc thay đổi nội dung Dự án lưu trữ trang web lớn nhất là Internet Archive, có địa chỉ URL http://www.archive.org Dự án này tập trung vào việc bảo tồn trạng thái của các trang web trong suốt thời gian Tính đến tháng 3/2006, kho lưu trữ này đã ghi lại khoảng 55 tỷ trang.
Web Site Anaylysis (Phân tích trang web)
_ Web crawler có th đ c dùng đ phân tích m t trang web và th m chí nó th thay đ i nó theo m t tiêu chu n đ nh d ng s n Ví d :
• Xác th c liên k t (Link Validation): Quét các trang web c a m t website đ xác đnh các liên k t h ng
• Xác th c mã (Code Validation): đ m b o r ng t t c các trang c a m t website đúng d ng (well-formed)
• Phân thích cây c a web (Web directories analysis): tìm nh ng trang không còn s n sàng (available) n a
_ M t công c phân tích website còn đ c dùng đ tìm ra các l h ng c a m t website bao g m vi c tìm ra nh ng phiên b n c ho c ch a đ c vá c a nh ng k ch b n thông d ng (popular script).
Ki n trúc c a Web Crawler
_ Trình thu th p thông tin g m 3 module chính là : Downloader, Storege, và Scheduler
Scheduler là công cụ quản lý luồng truy cập các URL, chia thành hai phần: Lập lịch dài hạn (Long-term Scheduling) xác định các trang cần truy cập tiếp theo, và Lập lịch ngắn hạn (Short-term Scheduling) sắp xếp các trang dựa trên tình trạng hiện tại của máy chủ Quá trình này yêu cầu duy trì nhiều hàng đợi, mỗi hàng đợi phục vụ cho một website cụ thể, cùng với danh sách các trang cần truy cập trong từng hàng đợi.
Lưu trữ là một phần quan trọng cho các trang web, cung cấp khả năng quản lý và truy cập dữ liệu hiệu quả Nó có thể được chia thành ba phần chính: văn bản phong phú (rich text), siêu dữ liệu (metadata) và liên kết (link).
Nh ng th c m c liên quan đ n ho t đ ng c a WebCrawler
Trong môi tr ng m ng, robot l y thông tin t các site V y robot s
Bắt đầu với việc xác định trang web nào, điều này hoàn toàn phụ thuộc vào các robot Mỗi robot có những chiến lược khác nhau, thường thì chúng sẽ ưu tiên các trang web phổ biến hoặc những trang có nhiều liên kết dẫn đến chúng.
Ai s cung c p đ a ch c a các site này cho robot ?
• Robot nh n các URL ban đ u t user
• Robot phân tích các trang web đ l y các URL m i, đ n l t các URL này tr thành đ a ch đ u vào cho robot Quá trình này đ c l p l i liên t c.
Ch n d li u nào trong tài li u đ l p ch m c ?
Quy t đnh ch n d li u nào trong tài li u c ng hoàn toàn ph thu c vào robot, th ng thì nh ng t đ c li t kê nh sau đ c xem là quan tr ng :
• Trong tiêu đ (quan tr ng)
• Trong ph n miêu t trang web (description)
• Trong các th dành cho hình nh (ALT graphisc)
• Trong các th ch a t khóa
Robot lập chỉ mục trên tiêu đề và nội dung của tài liệu (full text) để thu thập thông tin Một số khác là lập chỉ mục trên các thẻ META (META tags) hoặc các thẻ, nhằm xác định quyền sở hữu của trang web đối với nội dung của mình Tuy nhiên, việc này trở nên phổ biến quá mức, dẫn đến các thẻ META không còn giá trị như trước đây.
Các thu t toán thu thâp d li u
Tìm ki m theo chi u sâu
N u có, thêm vào đ u danh sách
Danh sách đ a ch các trang đ u tiên
L y trang đ u tiên trong danh sách
Trang này đ ã xét t i ch a? ánh d u đã t i và xác đ nh xem có liên k t nào trong trang đó không?
Tìm ki m theo ng u nhiên
N u có, thêm vào cu i danh sách
Danh sách đ a ch các trang đ u tiên
L y trang đ u tiên trong danh sách
Trang này đã xét t i ch a? ánh d u đã t i và xác đ nh xem có liên k t nào trong trang đó không?
N u có, thêm vào cu i danh sách
Danh sách đ a ch các trang đ u tiên
L y trang ng u nhiên trong danh sách
Trang này đ ã xét t i ánh d u đã t i và xác đ nh xem có liên k t nào trong trang đó không?
Nh ng v n đ c n l u ý v web crawler
Có th nói web crawler là con dao 2 l i, s d ng đúng s gi i quy t đ c nhi u v n đ , s d ng sai s đ l i nh ng h u qu khó đoán Sau đây là tóm t t cho nh ng v n đ c n l u ý c a web crawler:
_ Tránh lãng phí tài nguyên
• Ch t i v nh ng tài li u c n thi t
• N u h th ng ch quan tâm đ n các file text (.html, htm, xml,
…), web crawler nên b qua các liên k t d n đ n nh ng file th c thi (.exe, …), file nh (.gif, bmp, …)
• B qua các tr ng d li u h th ng không dùng đ n
• ng l y v các trang gi ng nhau nhi u h n m t l n
_ Tránh c p nh t l i các site c quá th ng xuyên b ng cách :
• Ghi nh nh ng đa ch web crawler đã duy t qua
• D a vào tr ng LastModified, tr ng head N u các tr ng này khác v i d li u ta đã có thì đó là nh ng thông tin c n ghi nh n
• Không nên duy t h t m t site, ch c n duy t đ n m t đ sâu (deep link) c n thi t
• Duy trì m t kho ng th i gian đ i gi a các l n truy xu t liên ti p
• K t n i v i server vào nh ng th i đi m thích h p Tham kh o ý ki n c a admin đ bi t thông tin này
• Ki m tra web crawler trên máy c c b , s a l i tr c khi ch y trên server th c s
_ Tuân theo các lu t lo i tr robot: Sau đây là b n quy t c tìm ki m c a b n c máy tìm ki m thông tin l n:
• Ask search: ĩ http://about.ask.com/en/docs/about/webmasters.shtml
• Google (Googlebot) ĩ http://www.google.com/webmasters/bot.html
• MSN Search ĩ http://www.msnsearch.com/msnbot.htm
• Yahoo! Search (Slurp!) ĩ http://help.yahoo.com/help/us/ysearch/slurp/
CH NG 3: NH NG V N C A B PH N
Khái quát v h th ng l p ch m c
M t cách đ t ng t c đ tìm ki m thông tin là t o ch m c cho tài liệu Tuy nhiên, việc l p ch m c có nh c đi m l n, đó là khi thêm tài liệu mới, phải c p nh t l i t p tin ch m c Đối với h th ng tìm ki m thông tin, ch c n c p nh t l i ch m c vào kho ng th i gian đnh k Do đó, ch m c là m t công c r t có giá tr.
_ L p ch m c bao g m các công vi c sau:
• Xác đnh các t có kh n ng đ i di n cho n i dung c a tài li u (bao g m c vi c tách t , lo i b stop-word, x l ý h u t …)
• ánh tr ng s cho các t này, tr ng s ph n ánh t m quan tr ng c a t trong m t tài li u.
V n đ tách t t đ ng đ l p ch m c
Tách t trong ti ng Anh
_ Do đ c đi m ng pháp c a ti ng anh, tách t đ n gi n ch d a vào kho ng tr ng đ phân bi t t
Tách t trong ti ng vi t
M t s đ c đi m chính v ti ng Vi t
• V m t ng âm, ti ng là âm ti t Âm ti t bao g m nh ng đ n v b c th p h n g i là âm v M i âm v đ c ghi b ng m t ký t g i là ch
• V m t ng ngh a, ti ng là đ n v nh nh t có ngh a, nh ng c ng có m t s ti ng không có ngh a
Trong ngữ pháp tiếng Việt, danh từ là một trong những từ loại cơ bản Có hai trường hợp sử dụng danh từ: Thứ nhất, danh từ đơn, nghĩa là chỉ có một danh từ duy nhất, ví dụ như "tôi", "bạn", "cha", "mẹ" Thứ hai, danh từ phức, có thể bao gồm hai hoặc nhiều danh từ kết hợp với nhau, ví dụ như "giao lưu", "văn hóa".
Trong tiếng Việt, có nhiều quan niệm khác nhau về từ, trong đó từ được xem là đơn vị ngữ nghĩa cơ bản, mang tính hoàn chỉnh và độc lập Từ không chỉ là một phần của câu mà còn đóng vai trò quan trọng trong việc truyền đạt nội dung và ý nghĩa.
• Ng i ta dùng "t " k t h p thành câu ch không ph i dùng
"ti ng" do đó quá trình l p ch m c b ng cách tách câu thành các
"t " cho k t qua t t h n là tách câu b ng “ti ng”.
Tách t t đ ng ti ng vi t
Hi n nay có r t nhi u ph ng pháp đ c s d ng đ tách t
Tiếng Việt có nhiều phương pháp giảng dạy khác nhau, nhưng chưa có phương pháp nào đảm bảo độ chính xác 100% Việc lựa chọn phương pháp nào là tốt nhất vẫn đang là một vấn đề gây tranh cãi.
Phương pháp tách từ động tiếng Việt fnTBL dựa trên ý tưởng chính là áp dụng các phép biến đổi để giải quyết một vấn đề cụ thể Khi thực hiện, chúng ta sẽ lựa chọn các phép biến đổi phù hợp nhằm đạt được kết quả tối ưu cho từng trường hợp đã được xác định Thuật toán sẽ dừng lại khi không còn phép biến đổi nào có thể áp dụng Hệ thống fnTBL (Fast Transformation-based Learning) bao gồm hai tập tin chính.
- T p tin d li u h c (Training): T p tin d li u h c đ c làm th công, đòi h i đ chính xác M i m u (template) đ c đ t trên m t dòng riêng bi t Ví d : t p d li u h c cho vi c xác đnh t lo i c a m t v n b n có th đ c đnh d ng nh sau:
Công ty danhtu ISA danhturieng b dongtu ki m tra dongtu Trong ví d này m i m u g m hai ph n: ph n đ u tiên là t , ph n th hai là t lo i t ng ng
- T p tin ch a các m u lu t (rule template): M i lu t đ c đ t trên m t dòng, h th ng fnTBL s d a vào các m u lu t đ áp d ng vào t p d li u h c
Khi xác định loại từ trong câu, nếu hai từ trước đó là động từ và trạng từ, thì chuyển loại từ hiện hành thành danh từ.
Phương pháp này tốn khá nhiều chi phí và khó sử dụng, nên không được áp dụng chi tiết vào tác giả tiểu luận trong dự án này Nếu muốn tìm hiểu rõ hơn, xin tham khảo luận văn cao học của Nguyễn Thị Thu Hằng, Trường Đại học Công Nghệ - 2007, trong chương 2, mục 2.6.3, trang 39.
Ph ng pháp Longest Matching:
Vi c xác đ nh t trong ti ng Vi t là r t khó và t n nhi u chi phí
Cách đơn giản nhất để sử dụng từ điển là tách từ tiếng Việt thành các phần Phương pháp này cho phép tách từ trái sang phải và chọn những từ có nhiều âm tiết, từ đó tiếp tục cho tới hết câu Việc tách tài liệu thành các từ, loại bỏ các từ láy, từ nối, từ đệm và những từ không quan trọng trong tài liệu là cần thiết Một câu có thể chứa nhiều từ ghép, tuy nhiên trong một câu có thể có nhiều cách phân tích từ khác nhau.
Ví d : xét câu "T c đ truy n thông tin s t ng cao" có th phân tích t theo các cách sau:
T c đ / truy n/ thông tin / s / t ng cao
T c đ / truy n thông / tin / s / t ng cao
Hiện nay, có nhiều giải pháp cho vấn đề này với kết quả thu được rất cao Tuy nhiên, thời gian và chi phí tính toán, xử lý lại không phù hợp cho việc lập chấm cho hệ thống tìm kiếm thông tin do số lượng tài liệu phải xử lý rất lớn.
Cách gi i quy t: l p ch m c cho các t có th có trong m t tài li u Ví d câu trên ta nên l p xem xét các t : t c đ , truy n , truy n thông ,thông tin, tin , s , t ng cao
Sau khi xem xét, việc sử dụng cụm từ "truyền thông" trong tài liệu không phải là một thuật ngữ xuất hiện thực sự, mà chỉ đơn thuần là sự kết hợp ngẫu nhiên giữa hai từ "truyền" và "thông tin" Do đó, xác suất xuất hiện của cụm này trong tài liệu là rất thấp Khi tính toán trong hai hoặc nhiều tiếng, phương pháp xác định một thuật ngữ cụ thể thông qua nhiều tiếng cần xem xét đánh giá ngữ cảnh (DGK) giữa chúng.
• Trong đó: ĩ DGK(n ij ): đ g n k t t ghộp c a ti ng i và j ĩ KTTCM: kớch th c t p ch m c ĩ TSTij : t n s xu t hi n t ĩ ni , nj : t n s xu t hi n ti ng i, j
Hai ti ng có kh n ng t o thành m t t cao khi chúng th ng xu t hi n chung v i nhau, ngh a là cohension c a chúng cao
Phương pháp này không hoàn toàn tách chính xác nhưng có thể áp dụng trong hệ thống tìm kiếm thông tin Trong quá trình lập chấp nhận, cần xác định đúng các từ có trọng lượng cao Trong trường hợp tách từ không chính xác, từ sai chỉ được chấp nhận khi nó có trọng lượng lớn, vì việc lập chấp nhận một từ sai sẽ làm tăng chi phí lưu trữ và có thể ảnh hưởng đến tính chính xác kết quả tìm kiếm, mặc dù từ này vẫn có trọng lượng lớn.
Còn trong tr ng h p m t t ghép đ c tách thành nhi u t đ n ví d t "thông tin" khi đ c l p ch m c s luôn có 3 t "thông", "tin",
Việc lập chứng minh cho cụm từ "thông tin" gặp khó khăn do sự không nhất quán trong việc xuất hiện của các thành phần "thông" và "tin" Để giải quyết vấn đề này, nếu "thông tin" được lập chứng minh, thì số lần xuất hiện của "thông" và "tin" sẽ được tính toán dựa trên các trường hợp đã xuất hiện trong cụm từ đó Nếu "tin" chỉ xuất hiện trong "thông tin", thì số lần xuất hiện của "tin" và "thông tin" sẽ bằng nhau, dẫn đến việc lập chứng minh cho "thông tin" sẽ khiến số lần xuất hiện riêng của "tin" bằng 0, điều này không thể chấp nhận được.
V n đ xác đ nh t ch m c
V n đ l p ch m c t đ ng trong ti ng anh
Việc xác định từ khóa chính trong một đoạn văn là rất quan trọng cho các tài liệu Trong các ngôn ngữ Ấn – Âu, từ khóa có thể được coi là đơn giản vì không có dấu phân biệt Điều cần quan tâm là xác định những từ này là từ khóa, có thể đại diện cho toàn bộ nội dung của tài liệu Các từ stop-word thường xuất hiện với tần suất cao, nhưng những từ này chỉ chiếm 40-50% trong số các từ của một văn bản Những từ này có phân biệt kém và không thể sử dụng để xác định nội dung của tài liệu.
250 t S l ng t này không nhi u l m nên gi i pháp đ n gi n nh t là l u các t này vào trong m t t đi n, và sau đó ch c n th c hi n so sánh t c n phân tích v i t đi n đ lo i b
B c ti p theo là nh n ra các ch m c t t, gi m b t dung l ng l u tr Các m c t c n đ c bi n đ i v nguyên g c trong ti ng Anh Ph i lo i b đi các ti n t, h u t, và các bi n th s nhi u Gi i pháp là s d ng m t danh sách các hâu t Trong khi lo i b h u t, nh ng h u t dài đ c u tiên lo i b tr c, r i sau đó m i lo i b nh ng h u t ng n h n Một số v n đ khi lo i b trong ti ng Anh bao gồm việc tối ưu hóa từ khóa và cấu trúc câu.
• Ch rõ chi u dài t i thi u c a m t t g c sau khi lo i b h u t
Ví d : vi c lo i b h u t “ability” ra kh i “computability” hay lo i b “ing” ra kh i “singing” là h p lý Tuy nhiên, nh ng h u t đó không c n ph i lo i b trong các t “ability” và “sing”
• N u nhi u h u t đ c k t h p vào m t g c thì ta s áp d ng đ quy cho quá trình lo i b h u t vài l n ho c l p t đi n h u t r i lo i b nh ng h u t dài h n tr c r i đ n các h u t ng n sau Vớ d : “effectiveness” ồ “effective” ồ “effect”
Trong tiếng Anh, từ có thể bị biến đổi sau khi đã loại bỏ phụ âm đầu Do đó, chúng ta cần có những luật nhất định để xác định cách biến đổi từ Chúng thường liên quan đến việc loại bỏ một trong hai ký tự trùng nhau của những từ có xuất hiện b, d, g, l, m, n, p, r, s, t ở cuối các từ gốc sau khi loại bỏ phụ âm đầu Ví dụ như từ “beginning” có thể trở thành “beginn” khi áp dụng quy tắc này.
Mật khẩu luôn phải được chú ý đặc biệt, sử dụng các quy tắc cấm ngặt Ví dụ: một quy tắc cho chữ "allic" yêu cầu chiều dài của mật khẩu là ba ký tự và không được chứa chữ "met" hoặc "ryst" ở cuối, hoặc quy tắc cấm chứa "yl" sau "n" hoặc "r".
Tóm l i, gi i quy t v n đ h u t không quá khó n u chúng ta có s n m t danh sách ch a các h u t , m t danh sách ch a các lu t thêm các h u t và ph c h i t g c sau khi thêm h u t
V n đ l p ch m c t đ ng trong ti ng vi t
_ L p ch m c cho ti ng vi t c ng t ng t nh cho ti ng anh Tuy nhiên có vài đi m khác bi t sau:
Giai đoạn tách từ trong tiếng Anh diễn ra một cách rõ ràng và không có khoảng trống, trong khi tiếng Việt là ngôn ngữ đơn lập, với khả năng có nhiều từ Điều này đã được phân tích chi tiết trong Mục Tách Từ.
• i v i ti ng Vi t không ph i qua giai đo n lo i b h u t
Để bớt chậm chạp trong việc tối ưu hóa nội dung tiếng Việt, cần xác định các từ ngữ không cần thiết trong tài liệu Trước tiên, loại bỏ các từ có tần suất cao như "và", "với", "gì", "sao", "nào", tương tự như danh sách stop list trong tiếng Anh Tiếp theo, cần loại bỏ những từ có tần suất thấp, giúp cải thiện khả năng đọc hiểu và tính mạch lạc của văn bản Cuối cùng, các từ thu được cần được sắp xếp một cách hợp lý để tối ưu hóa nội dung.
V n đ tính tr ng s cho t ch m c
Cách tính trong s cho vector ch m c
_ Ngh ch đ o tr ng s t n s tài li u (The Inverse Document Frequency Weight)
• wk : là tr ng l ng c a m c t k
• nDock : t ng s tài li u mà m c t k xu t hi n
• nki : s l n xu t hi n m c t k trong tài li u i
• nk : s l n xu t hi n m c t k trong toàn t p tài li u
• idfk : giá tr ngh ch đ o t n s tài li u (Inverse Document Frequency)
_ Nh v y, tr ng s c a m c t k s t ng lên khi t n s xu t hi n c a m c t k trong các tài li u i t ng lên nh ng gi m xu ng khi t n s xu t hi n c a m c t k trong t p tài li u (nDock) t ng lên
_ Hàm này gán đ quan tr ng cao cho nh ng m c t ch xu t hi n trong m t s ít tài li u c a m t t p h p tài li u (đ cao đ phân bi t).
nhi u tín hi u (Signal Noise)
Trạng thái của các từ khóa đo lường bằng cách tập trung hay phân tán có ảnh hưởng lớn đến hiệu quả tìm kiếm Ví dụ, từ "hardware" xuất hiện 1000 lần trong 200 tài liệu (tập trung) có trọng lượng cao hơn từ "computer" xuất hiện 1000 lần trong 800 tài liệu Sự phân bố này cho thấy tầm quan trọng của việc tối ưu hóa nội dung theo cách phù hợp để nâng cao thứ hạng tìm kiếm.
( ki ).log ( 2 ki ) 1, k k k n n noise i nDoc n n
Hàm s ngh ch đ o c a đ nhi u đ c g i là đ signal có th đ c dùng đ tính tr ng l ng c a m c t k : log ( 2 ) k k k k w = signal = n − noise
Giá tr phân bi t t
Phân biệt từ là giá trị phân biệt mạnh mẽ giữa các tài liệu Nếu một từ có trong nhiều tài liệu mà làm cho độ phân biệt của các tài liệu cao thì nó có phân biệt kém, nghĩa là từ này thường xuyên xuất hiện trong các tài liệu Do đó, các từ có độ phân biệt cao nên được chọn để làm nổi bật Việc sử dụng độ phân biệt này càng giúp tăng cường kết quả nổi bật và tạo độ tin cậy cao hơn.
G i SIMILAR(Di, Dj) là đ t ng quan gi a c p tài li u Di và
Dj Khi đó, đ t ng quan trung bình c a t p tài li u này là:
Giá trị trung bình của tập tài liệu khi bị tách ra sẽ giảm nếu tần suất xuất hiện của từ khóa trong tập tài liệu cao Ngược lại, nếu từ khóa chỉ xuất hiện một cách ngẫu nhiên trong một số tài liệu, giá trị trung bình sẽ tăng lên khi bị tách ra.
Giá tr phân bi t DifValuek c a t k đ c tính nh sau: k k
Tr ng s c a t k trong tài li u i đ c tính b ng cách k t h p gi a T ng s c a k trong tài li u I FREQik và DifValuek: k k * k
T p tin ngh ch đ o tài li u
T p tin l u tr c ti p(direct file) là t p tin mà chính các m c thông tin đã cung c p th t chính c a t p tin
Ng c l i t p tin ngh ch đ o (inverted file) đ c x p theo ch đ , m i ch đ l i bao g m m t t p các m c thông tin
Ví dụ tài liệu chứa tập hợp các tài liệu, mỗi tài liệu đều có danh sách các từ Nếu một từ xuất hiện trong một tài liệu, ghi 1; nếu không, ghi 0 Khi đó, tập tin trước tiếp và tập tin nghịch đảo sẽ được ghi nhận như sau:
Tài li u 1 Tài li u 2 Tài li u 3
T i sao ph i s d ng t p tin ngh ch đ o?
Trong một thế giới đầy thông tin, việc tìm kiếm dữ liệu có ý nghĩa rất quan trọng, giúp người dùng truy cập nhanh chóng vào thông tin cần thiết từ các trang web khác nhau Ví dụ, khi người dùng nhập câu truy vấn, hệ thống sẽ trả về kết quả phù hợp với yêu cầu của họ.
Trong quá trình xử lý thông tin, dữ liệu được chia thành hai loại "t1" và "t2" Dựa vào tập tin nghịch đảo, chúng ta có thể dễ dàng xác định các tài liệu chứa hai loại này để phục vụ người tìm kiếm Tuy nhiên, một thách thức lớn của tập tin nghịch đảo là khi có thêm một tài liệu mới, tất cả các từ khóa liên quan đến tài liệu này đều phải được cập nhật lại.
Rõ ràng, việc này tốn một chi phí lớn cho việc thu thập thông tin Trong thực tế, tập tin nghịch đảo tài liệu có thể chứa hàng trăm ngàn t Tuy nhiên, trong hệ thống tìm kiếm thông tin, người ta chỉ cần cập nhật lại tập tin tại thời điểm đánh k Vì vậy, tập tin nghịch đảo vẫn được sử dụng để phục vụ cho mục đích này.
CH NG 4: NH NG V N C A B PH N GIAO TI P, SO KH P VÀ S P X P K T QU
V n đ giao ti p v i ng i dùng
Tìm kiếm trên công cụ yêu cầu người dùng nhập câu hỏi một cách rõ ràng và đơn giản Câu hỏi được xử lý bằng cách tách từ khóa để xác định nội dung cần tìm Phương pháp tách từ khóa này giúp thu thập tài liệu chính xác và phù hợp nhất Sau đó, hệ thống sẽ tìm kiếm trong cơ sở dữ liệu để xác định các tài liệu liên quan đến câu hỏi của người dùng.
V n đ so kh p câu truy v n và tài li u
Thu t toán không gian vector
Tính toán độ tương quan giữa câu hỏi và tài liệu được thực hiện thông qua việc định nghĩa một vector biểu diễn cho mỗi tài liệu và một vector cho câu truy vấn Mô hình này dựa trên ý nghĩa của một tài liệu, phụ thuộc vào các từ khóa sử dụng bên trong nó Sau đó, vector tài liệu và vector câu hỏi sẽ được tính toán để xác định độ tương quan giữa chúng Độ tương quan càng lớn thì tài liệu đó càng liên quan đến câu truy vấn.
Tài liệu có hai thành phần chính là “t1” và “t2” Vector được xây dựng dựa trên hai yếu tố: yếu tố đầu tiên biểu diễn giá trị xuất hiện của “t1” và yếu tố thứ hai biểu diễn giá trị xuất hiện của “t2”.
“t2” Cách đ n gi n là đánh 1 vào thành ph n t ng ng n u t đó xu t hi n, và đánh không n u t đó không xu t hi n Vector nh sau :
Trong bài viết này, chúng ta sẽ khám phá cách mà các tài liệu có thể biểu hiện sự tương đồng trong nội dung Đặc biệt, thay vì chỉ so sánh các từ trong tài liệu với các từ trong câu truy vấn, chúng ta nên chú ý đến tần suất xuất hiện của các từ khóa Ý tưởng chính là một tài liệu có thể xuất hiện tần suất cao hơn so với việc phân bố của nhiều tài liệu khác Tần suất này được tính toán dựa trên số lượng tài liệu liên quan đến các từ khóa cụ thể.
• N : s t phân bi t trong t p tài li u
• Tfij : s l n xu t hi n c a t tj trong t p tài li u Di
• Dfj: s tài li u có ch a t tj
• Idfj =log10(d/dfj) trong đó d là t ng s tài li u
Vector được xây dựng cho mỗi tài liệu gồm có các thành phần, mỗi thành phần là giá trị trọng số đã được tính toán cho mỗi từ trong tập tài liệu Các từ trong tập tài liệu được gán trọng số tương ứng với tần suất xuất hiện của chúng trong tập tài liệu và sự xuất hiện của mỗi từ trong một tài liệu riêng biệt Trọng số của một từ thường xuyên xuất hiện trong một tài liệu và hiếm khi xuất hiện trong nhiều tài liệu khác Tính trọng số của từ trong tài liệu được dựa vào công thức: \( tf \cdot idf \).
Dij là trọng số của tài liệu Di trong hệ thống tìm kiếm theo thuật toán vector Mỗi tài liệu được biểu diễn dưới dạng một vector có dạng: (Di(di1, di2, di3, , din) Tổng quát, câu truy vấn được sử dụng để tìm kiếm thông tin trong hệ thống này.
Q c ng là m t vector có d ng Q(w1, w2, w3, , wn) t ng quan SIM gi a câu truy v n Q và tài li u Di đ c tính nh sau :
Tìm ki m Boolean
Thu t toán tìm ki m Boolean khá đ n gi n Câu truy v n đ a ph i ph i d ng bi u th c Boolean Ngh a là ph i tho :
Do các t ho c xu t hi n ho c không xu t hi n, nên tr ng s wij thu c {0, 1}
Khi sử dụng truy vấn Boolean với phép toán "and" giữa t1 và t2, chúng ta xác định được các tài liệu liên quan đến t1 là {d1, d3, d5} và các tài liệu liên quan đến t2 là {d3, d5, d7} Kết quả cuối cùng cho phép toán "and" sẽ là {d3, d5}, tức là những tài liệu đáp ứng yêu cầu của người dùng Tuy nhiên, phương pháp này cũng có một số hạn chế nhất định.
• Các tài li u tr v không đ c s p x p
• Câu truy v n đòi h i ph i đúng đnh d ng c a bi u th c Boolean gây khó kh n cho ng i dùng
• K t qu tr v có th là quà ít ho c quá nhi u tài li u.
Thu t toán Boolean m r ng
Mô hình Boolean không thể hoạt động hiệu quả với các tài liệu học thuật, vì các tài liệu này không đáp ứng yêu cầu của Boolean Tất cả các tài liệu thỏa mãn đều được trả về, nhưng không có sự liên quan nào được tính toán cho sự kết nối giữa chúng và câu truy vấn.
Thuật toán Boolean mở rộng ra định nghĩa hỗ trợ việc xếp hạng (ranking) kết quả truy vấn dựa trên ý tưởng cặp đánh trọng số cho mỗi tài liệu trong câu hỏi và trong tài liệu Ví dụ, trong câu truy vấn (t1 or t2) và một tài liệu D chứa t1 với trọng số w1 và t2 với trọng số w2 Nếu w1 và w2 đều bằng 1, thì tài liệu nào chứa cả hai từ này sẽ có thể được xếp hạng thích hợp Ý tưởng đơn giản là tính khoảng cách Euclid từ điểm (w1, w2) tới gốc.
SC W D = + • SC cao nh t khi w 1 và w 2 đ u b ng 1 Khi đó:
SC W D = + • đ a SC vào kho ng [0,1], Sc đ c tính nh sau:
Công thức này áp dụng cho toán tử “or”, trong khi với toán tử “and”, thay vì tính khoảng cách tối thiểu, ta tính khoảng cách đơn đần (1, 1) Tài liệu càng gần điểm (1, 1) thì càng đáp ứng yêu cầu của toán tử “and” nhiều hơn.
_ M r ng thêm vào tr ng s c a câu truy v n
• N u câu truy v n có trong s là q1 và q2 thì đ t ng quan s đ c tính nh sau:
• tính kho ng cách Eclide trong không gian đa chi u, tham s p đ c s d ng tham s p ch s bi n đ i t m quan tr ng c a tr ng s trong vi c đánh giá đ thích h p
• t ng quan SC t ng quát nh sau:
• N u p ồ ∞ : chuy n v h th ng boolean thụng th ng (khụng có tr ng s )
• N u p = 1: chuy n v h th ng không gian vector
Các thuật toán so sánh không yêu cầu người dùng nhận biết các toán tử phức tạp Trong đó, có thể được gán tự động và tài liệu được sắp xếp bằng cách chèn toán tử OR vào giữa các từ Bất kỳ tài liệu nào chứa ít nhất một từ trong câu truy vấn sẽ được sắp xếp theo một số điểm lớn hơn 0.
Thu t toán xác su t
Thuật toán xác suất được sử dụng để tính độ ngẫu nhiên giữa câu truy vấn và tài liệu dựa vào xác suất mà tài liệu đó liên quan đến câu truy vấn Các lý thuyết về xác suất được áp dụng để tính toán mối quan hệ giữa câu hỏi và tài liệu Từ trong câu truy vấn được xem là đầu mối xác định tài liệu liên quan Ý tưởng chính là tính xác suất của mỗi từ trong câu truy vấn và sau đó sử dụng chúng để tính xác suất mà tài liệu liên quan đến câu truy vấn.
Thu t toán PageRank c a Google
PageRank là m t thu t toán đ c s d ng trong công c tìm ki m Google, đ c phát tri n t i i h c Stanford b i Larry Page và Sergey Brin trong nghiên c u c a h “The Anatomy of a Large-Scale Hypertextual Web Search Engine”
Hình 3: Minh h a liên k t gi a các site s d ng trong PageRank
Thuật toán PageRank, được phát triển bởi Brin và Page, đánh giá tầm quan trọng của một trang web dựa trên số lượng và chất lượng các liên kết trích dẫn từ các trang khác Điều này tương tự như cách mà các bài báo học thuật được đánh giá dựa trên số lượng trích dẫn từ các nghiên cứu khác Hệ thống này giúp xác định vị trí của một trang trong kết quả tìm kiếm, từ đó cải thiện khả năng hiển thị và độ tin cậy của thông tin trên internet.
Web đ c quy t đnh b i s l ng các hyperlink tr đ n nó t các trang Web khác”
PageRank là một thuật toán đánh giá độ tin cậy của các trang web dựa trên liên kết từ các trang khác trên toàn thế giới Mỗi liên kết được coi như một phiếu bầu, và giá trị của phiếu bầu này phụ thuộc vào chất lượng và tầm quan trọng của trang web mà nó liên kết đến.
M t trang đ c liên k t đ n b i các trang có PageRank cao s nh n đ c PageRank cao N u 1 trang web không có liên k t nào đ n thì s không có phi u b u nào
Google đánh giá các trang web trên thang điểm từ 0-10 thông qua chỉ số PageRank Chỉ số này cho biết mức độ quan trọng của một trang web theo cái nhìn của Google Các website có PageRank cao thường có chất lượng và độ tin cậy cao hơn Do đó, khi người dùng tìm kiếm, Google sẽ ưu tiên hiển thị các trang có PageRank cao hơn.
Khi tìm kiếm thông tin, không chỉ cần chú ý đến việc website có PageRank cao mà còn phải xem xét nội dung bạn muốn tìm kiếm và nhiều yếu tố khác Google kết hợp PageRank với nhiều heuristics khác để đưa ra kết quả tìm kiếm phù hợp nhất.
Trích t Google, PageRank đ c đnh ngh a nh sau:
Trang A có các trang liên kết T1, T2, , Tn và tham số d có thể điều chỉnh giá trị trong khoảng từ 0 đến 1, thường được đặt là d = 0.85 C(A) được định nghĩa là số liên kết mà trang A nhận được PageRank của trang A được tính theo công thức cụ thể.
Chú ý r ng t ng t t c PageRank c a t t c các trang web là m t s c đnh
PageRank PR(A) có th đ c tính toán b ng cách s d ng 1 thu t toán l p đ n gi n
PR(Tn) - PageRank c a trang Tn C(Tn) - S các link đi ra c a trang Tn
(1-d) - Th hi n r ng t ng PageRank t t c các trang web là m t s c đ nh Ngoài ra còn có ý ngh a là n u 1 trang web mà không có trang nào tr t i nó thì nó s có PR < 0.15
Ta th y PageRank c a m t trang web đ c tính b ng t ng c a PageRank c a t t c các trang tr t i nó (incoming links), chia cho s các link đi ra c a trang đó ( outgoing links) Ý ngh a thu t toán
Trên quan đi m c a Search Engine, đ nh ngh a thu t toán PageRank cho ta th y có 2 y u t nh h ng đ n v trí c a trang web c a b n trên Google ó là:
Các liên kết đến (incoming links) đóng vai trò quan trọng trong SEO, với nguyên tắc rằng càng nhiều liên kết đến một trang, trang đó càng có giá trị Tuy nhiên, một điểm đáng lưu ý là nếu một trang không có liên kết trỏ đến, điều này có thể ảnh hưởng tiêu cực đến PageRank của trang web đó, dẫn đến giá trị C(T) bằng 0.
Số lượng liên kết ra ngoài (outgoing links) từ các trang web có thể ảnh hưởng đến PageRank; ít liên kết ra ngoài thường tốt hơn Nếu một trang có 5 liên kết ra ngoài và một trang khác chỉ có 2 liên kết, trang có ít liên kết sẽ giữ được giá trị PageRank cao hơn.
10 link đi ra thì PageRank đ c tính t trang có 5 link đi ra s g p đôi trang có 10 link đi ra
Có th th y thu t toán PageRank không liên quan gì đ n các câu truy v n tìm ki m Nó ch đ n thu n là m t ph n c a thu t toán x p h ng c a Google
Có l cách t t nh t đ xem xét PageRank là coi nó nh là 1 y u t b sung, đ c x lý trên các k t qu tìm ki m c a Google sau khi t t c các tính toán khác đã hoàn t t
Thuật toán tìm kiếm của Google hoạt động bằng cách quét các trang đã được đánh chỉ mục, sau đó tính toán PageRank để xác định thứ hạng của các trang trong kết quả tìm kiếm Các trang có PageRank cao hơn sẽ được xếp hạng cao hơn trong danh sách kết quả tìm kiếm cuối cùng.
PageRank được tính toán dựa trên sự phụ thuộc của các trang web vào PageRank của các trang liên kết với chúng Quá trình này khá phức tạp và không thể biết được PageRank của các trang liên kết cho đến khi tính toán PageRank của các trang mà chúng liên kết đến Điều này dẫn đến một thuật toán có thể tạo thành một vòng lặp vô tận, khiến cho việc tính toán trở nên khó khăn.
Chúng ta không cần biết giá trị cuối cùng của PageRank để tính toán nó cho một trang Dù điều này có vẻ không hợp lý, nhưng thực tế là mọi lần chạy thuật toán, chúng ta sẽ dần gần hơn với giá trị cuối cùng Vì vậy, tất cả công việc cần làm là ghi nhận giá trị mới sau mỗi lần tính toán và lặp lại phép toán cho đến khi kết quả thay đổi trong một mức giá trị nhất định cho phép.
Hãy xem xét m t ví d đ n gi n nh t: có 2 trang web, m i trang l i tr đ n trang kia
M i trang có 1 link đi ra ( outgoing links) C(A) = C(B) = 1
Ban đ u chúng ta ch a bi t đ c PageRank c a t ng trang, vì th ta s đ t b ng 1, sau đó th c hi n phép tính: d = 0.85
Theo ví d trên ta tính đ c:
Nh n th y k t qu không thay đ i so v i PageRank đã c l ng, cho th y PageRank d đoán ban đ u là chính xác
Chú ý: Ta tính đ c giá tr t t h n cho PR(A) sau phép tính th nh t, vì th ta s s d ng k t qu này trong phép tính th 2
Giá trị PageRank của một trang web liên tục thay đổi sau mỗi lần tính toán Vậy liệu PageRank của một trang có thể đạt đến 1.0? Có khả năng nào cho PageRank của một trang vượt quá 1.0 hay không? Chúng ta có thể kiểm tra kết quả bài toán này thông qua phân tích chi tiết Sau các bước lặp, PageRank của trang A sẽ được xác định.
B đ u ti n t i n đ nh và PageRank trung bình b ng 1
Chúng ta s th l i v i 1 giá tr c l ng ban đ u l n h n cho PageRank c a m i trang Gi s c l ng PageRank c a m i trang ban đ u là 40
Quá trình tính toán qua m i vòng l p:
Th y r ng các giá tr này đ u gi m d n và s ti n t i 1.0
Không ph thu c vào giá tr c l ng ban đ u, khi thu t toán PageRank n đnh thì giá tr trung bình c a PageRank c a t t c các trang b ng 1.0
Mặc dù không thể thay đổi tổng PageRank của tất cả các trang web, chúng ta có thể tác động đến PageRank riêng biệt của từng trang Ví dụ, khi muốn thu hút lượt truy cập vào trang của mình, cần đảm bảo rằng trang chính có PageRank cao hơn so với các trang khác trong cùng một website Tất cả PageRank của các trang sẽ được tổng hợp và chia đều cho các liên kết ra ngoài Do đó, nếu một trang có nhiều liên kết ngoài, PageRank của nó sẽ thấp hơn so với các trang khác trong site, nhằm giảm thiểu việc "thất thoát" PageRank ra ngoài các website khác.
Để tăng PageRank của một trang web, bạn có thể tạo thêm các trang mới Ví dụ, một trang web với 10 trang sẽ có PageRank tổng cộng là 10, và PageRank này sẽ được phân phối qua các hyperlink giữa các trang Tương tự, một trang web với 12 trang sẽ có PageRank tổng cộng là 12 Do đó, việc gia tăng số lượng trang là một chiến lược hiệu quả để nâng cao PageRank của trang web, đồng thời cần chú ý đến việc phân bố PageRank qua các liên kết nội bộ giữa các trang.
Thu t toán PageRank trên th c t r t đ n gi n Nh ng khi m t phép tính đ n gi n đ c th c hi n hàng nghìn ( ho c hàng t ) l n thì thu t toán tr lên r t ph c t p
PageRank ch là 1 ph n trong chi n l c s p x p th t k t qu tìm ki m c a Google Nh ng nó là m t tiêu chí không th thi u trong vi c s p x p th t d li u.
S p x p các tài li u tr v
Các tài liệu đã được xác định liên quan đến câu truy vấn của người dùng sẽ được sắp xếp theo thứ tự giảm dần của độ tương quan Hệ thống sử dụng một trong những phương pháp trên để xác định tài liệu nào có liên quan nhiều nhất.
CH NG 5: GI I THI U M T S SEARCH
ENGINE THÔNG D NG HI N NAY
Gi i thi u chung
Trong những ngày đầu của Internet, người dùng rất ít và lượng thông tin cũng hạn chế Vì vậy, việc tìm kiếm thông tin trên Internet không thực sự cần thiết như bây giờ.
Truy cập site directory là một trong những phương pháp đơn giản để tiếp cận nguồn thông tin trên mạng Những liên kết này dẫn đến các nguồn tài nguyên trên mạng được phân loại theo từng chủ đề Yahoo là một trong những dự án directory đầu tiên được ra mắt vào tháng.
Vào năm 1994, Yahoo Directory nhanh chóng trở thành một trong những trang web phổ biến, và nhóm phát triển Yahoo đã tạo ra một công cụ tìm kiếm cho thư mục này Tuy nhiên, công cụ tìm kiếm này không phải là một công cụ tìm kiếm độc lập, vì nó chỉ cho phép tìm kiếm trong các trang đã được chỉ định trong Yahoo Directory, mà không thể tự động tìm kiếm các trang mới Khái niệm SEO thời điểm đó vẫn chưa xuất hiện.
Ngày nay, các directory không còn phổ biến như trước đây, chủ yếu vì chúng cung cấp một lượng thông tin hạn chế trên Internet Ví dụ, DMOZ là một trong những directory lớn nhất hiện nay, nhưng chỉ tập hợp thông tin từ khoảng 5 triệu website So với dữ liệu từ Google, nơi có hơn 8 tỷ nguồn tài nguyên, sự chênh lệch là rất lớn.
D án crawl web đ c b t đ u trong n m 1994 và đó là d ng đ u tiên c a search engine Lycos và AltaVista search engine xu t hi n n m
1995 và nhi u n m sau Alta Vista tr thành ng i d n đ u trong th tr ng này
Vào năm 1997, Sergey Brin và Larry Page đã sáng lập Google tại Đại học Stanford Ngày nay, Google được biết đến là công cụ tìm kiếm lớn nhất thế giới và thu hút rất nhiều nhà quảng cáo.
Có ba công cụ tìm kiếm hàng đầu trên thế giới là Google, Yahoo và MSN, mỗi công cụ đều có cơ sở dữ liệu và thuật toán riêng Nhiều công cụ tìm kiếm khác sử dụng dữ liệu từ ba công cụ này; ví dụ, AOL sử dụng cơ sở dữ liệu của Google, trong khi AltaVista, Lycos và AllTheWeb dựa vào dữ liệu của Yahoo.
Google là một trong những công cụ tìm kiếm hàng đầu hiện nay Để đạt được kết quả tìm kiếm chính xác cao, cần phải chú trọng đến hai yếu tố quan trọng của Google: đầu tiên là việc sử dụng cấu trúc của các siêu liên kết (PageRank) cho mỗi trang web; thứ hai là tên miền liên quan đến các siêu liên kết được chỉ định để tối ưu hóa kết quả tìm kiếm.
Google được cài đặt bằng C hay C++, hoạt động trên hệ điều hành Solaris và Linux Việc dò tìm các trang web được thực hiện bởi các bọ dò tìm (web crawler) phân tán Một máy chủ sẽ gửi danh sách các URL cần tìm đến các bọ dò tìm Các trang web tìm kiếm sẽ được lưu trữ trong kho của các server với dữ liệu nén Khi phân tích một URL mới, mỗi trang web sẽ được gán một mã nhận diện, gọi là DocID Việc lập chỉ mục được thực hiện bởi bộ lập chỉ mục (Indexer) và bộ sắp xếp (Sorter) Bộ lập chỉ mục sẽ xử lý các chỉ số được lưu trữ, nén và phân tích các tài liệu Mỗi tài liệu được chuyển đổi thành tập tin xuất hiện của các từ, gọi là các hit.
Các hit được ghi nhận, vị trí trong tài liệu, kích thước font chữ, và chữ hoa hay chữ thường Bước này có phân phối các hit vào trong một tập các barrels (thùng), tạo thành một tập hợp đã sắp xếp theo từng phần Ngoài ra, bước này còn phân tích tất cả liên kết trong môi trường website và lưu thông tin quan trọng về chúng trong một file anchor Tập tin này chứa đựng thông tin xác định liên kết này từ đâu, chỉ đến đâu và chứa đựng nội dung liên kết Trình phân giải URL được tập tin các neo tạm thời (anchor) và chuyển các URL tương đương thành các URL tuyệt đối và trả về các docID Từ đó, các bản neo vào tập hợp có liên quan đến docID mà neo chỉ đến và tạo thành cơ sở dữ liệu tương ứng của các liên kết với các docID.
C s d li u này đ c dùng đ tính các PageRank cho t t c các tài li u
Bài viết mô tả quy trình xử lý dữ liệu của các barrel, trong đó các barrel được sắp xếp theo docID để tạo ra một chỉ mục ngữ nghĩa Công việc này được thực hiện ngay tại chỗ, do đó không cần nhiều băng thông Các barrel này sau đó sinh ra một danh sách WordID và bù đắp cho chỉ mục ngữ nghĩa Chương trình DumpLexicon sẽ lấy danh sách này và tạo ra một từ vựng (lexicon) được sinh ra từ các chỉ mục ngữ nghĩa, phục vụ cho việc tìm kiếm Hệ thống tìm kiếm chạy trên một web server và sử dụng từ vựng đã được DumpLexicon xây dựng, kết hợp với chỉ mục ngữ nghĩa và các PageRank để xử lý các truy vấn.
T c đ tìm ki m c a Google ph thu c và hai y u t : hi u qu c a thu t toán tìm ki m và s liên k t x lý c a hàng ngàn hàng ngàn máy tính c p th p đ t o nên m t S.E siêu t c
Google sử dụng thuật toán PageRank để đánh giá hơn 100 tỷ trang web, do Larry Page và Sergey Brin phát triển tại Đại học Stanford PageRank dựa trên cấu trúc liên kết giữa các trang web, coi mỗi liên kết từ trang A đến trang B như một lá phiếu ủng hộ cho trang B Hệ thống này không chỉ xem xét số lượng lá phiếu mà còn phân tích chất lượng và độ tin cậy của các trang liên kết Các trang có chất lượng cao thường nhận được đánh giá PageRank cao hơn, ảnh hưởng đến vị trí của chúng trong kết quả tìm kiếm Google kết hợp PageRank với các thuật toán tìm kiếm tinh vi để xác định các trang phù hợp với nội dung tìm kiếm, không chỉ dựa vào số lượng kết quả mà còn chú trọng đến nội dung của trang và các trang liên kết.
Hằng tháng, Google cập nhật thứ hạng của các trang web, dẫn đến sự thay đổi trong việc phân hạng các trang Sự phân hạng ban đầu của một trang có thể thay đổi theo cách mà các trang khác ảnh hưởng đến nó Kết quả phân hạng không thể bị can thiệp, mà hoàn toàn tự động Mặc dù Yahoo hỗ trợ tìm kiếm bằng Google, nhưng cách xử lý truy vấn của hai công cụ này không hoàn toàn giống nhau, dẫn đến kết quả khác nhau Tính năng "cache" của Google, được giới thiệu từ năm 1997, cho phép người dùng truy cập bản sao của bất kỳ trang web nào, nhưng không giống như các dự án lưu trữ web khác, nó không tạo ra bản sao lưu trữ cố định Thời gian truy cập vào cache có thể thay đổi từ vài phút đến vài tháng, tùy thuộc vào lần cuối Google lập chỉ mục Tính năng này cũng có thể khiến Google gặp rắc rối về quyền riêng tư khi người dùng có thể xem thông tin chỉ dành cho thuê bao Hiện nay, Google đã xử lý hơn 8 tỷ trang tài liệu và đang thử nghiệm một phiên bản mới tại http://www.scholar.google.com/.
LYCOS
Lycos là một công cụ tìm kiếm thuộc gia đình nhện Lycosidae, chuyên cung cấp thông tin từ các trang web Kết quả tìm kiếm được tổ chức theo chu kỳ hàng tuần trong một catalog Lycos hỗ trợ người dùng tìm kiếm tài liệu Web dựa trên các từ khóa do người dùng cung cấp Công cụ này nhanh chóng trở nên phổ biến đối với những người dùng có nhu cầu tìm kiếm toàn bộ nội dung trong không gian tài liệu.
Lycos là một công cụ tìm kiếm trên không gian Web, cho phép người dùng truy cập tài liệu từ các không gian HTTP, FTP và Gopher Nó sử dụng văn bản trong tài liệu để tạo ra các liên kết khám phá (anchor text), giúp tìm kiếm hiệu quả hơn Tuy nhiên, Lycos không thể tìm kiếm và lập chỉ mục các không gian vô hạn hoặc biến đổi, vì vậy nó không hỗ trợ các không gian như CSDL WAIS, Usenet news, không gian Mailto, dịch vụ Telnet và không gian tập tin cục bộ.
Những thông tin cần lưu trữ bao gồm tiêu đề, heading và sub-heading, 100 từ quan trọng nhất, 20 dòng đầu tiên, kích thước tính theo bytes và số lượng Lựa chọn 100 từ quan trọng được thực hiện theo thuật toán đánh giá, dựa trên việc xem xét vị trí và tần suất của từ Các từ được đánh giá sẽ được nhúng sâu vào tài liệu, vì vậy các từ xuất hiện trong tiêu đề và đoạn đầu tiên sẽ được tính điểm cao hơn.
Lycos sử dụng phương pháp thống kê độc lập qua các server trong không gian Web, nhằm tránh quá tải máy chủ với hàng loạt yêu cầu Điều này cho phép Lycos tiếp cận và xử lý các URL có nhiều thông tin hơn Các bước cận của thuật toán bao gồm:
1 Khi m t tìm th y m t Url, Lycos quét qua n i dung c a nó, tìm các tham chi u đ n các Url m i và đ a vào m t hàng đ i n i b
2 ch n Url k ti p, Lycos l a ng u nhiên m t tham chi u trong hàng đ i trên theo đ u tiên
Lycos là một công cụ tìm kiếm chuyên cung cấp các tài liệu phức tạp, bao gồm nhiều kết nối khác nhau Nó cũng là một trong những dịch vụ đầu tiên hỗ trợ các URL ngắn gọn, tập trung vào các thư mục cấp cao nhất (top-level) và các tài liệu liên quan chặt chẽ.
Bùng n c máy tìm ki m ti ng Vi t
Các website tìm ki m VN đang đe d a Google và Yahoo!
Google hi n đang là c máy tìm ki m s m t trên th gi i, nh ng các n c nh Trung Qu c, Nh t, Hàn Qu c, Philippines h luôn đ ng sau các website tìm ki m n i đ a
Từ năm 2007, Công ty Cổ phần Mạng trực tuyến Việt Nam (VON) đã khởi động cuộc đua với website tìm kiếm Timnhanh.com, nhận được đầu tư 2 triệu USD từ VinaCapital Website này tích hợp thông tin theo kiểu Yahoo! và cho phép người dùng tương tác qua công nghệ web 2.0 Ông Phan Ngọc Dũng, giám đốc VON, cho biết Timnhanh sẽ phát triển thành khu "đô thị" với nhiều dịch vụ phong phú Cùng thời điểm, IDG Ventures VN cũng đầu tư vào các website tìm kiếm như baamboo.com và diadiem.com Tháng 11-2007, VinaGame ra mắt Zing MP3, trong khi monava.vn tuyên bố có 2 triệu người dùng Việt Nam trong hai năm Nhiều website tìm kiếm khác như 7sac.com và socbay.com đang trong giai đoạn thử nghiệm Vinaseek.com, một cái tên nổi bật, cũng đang được Công ty Tinh Vân đầu tư mạnh mẽ Cuộc chiến giành thị phần tìm kiếm tại Việt Nam đang diễn ra sôi động, với Google và Yahoo! vẫn giữ vị trí cao Ông Lê Trần Trung An, tổng giám đốc Công ty Vietbooks, nhận định rằng sự sáng tạo và nội dung phong phú đang giúp nhiều website tìm kiếm Việt Nam nổi bật và cạnh tranh với Google.
Khi so sánh các công cụ tìm kiếm với từ khóa "Trình Công Sở", kết quả cho thấy Google dẫn đầu với 1.270.000 trang thông tin, theo sau là Yahoo với 799.000, Monava 715.000, MSN 382.000 và Vinaseek 114.300 Đối với các trang nhạc trực tuyến, ZingMp3 đứng đầu với 1.467 kết quả, tiếp theo là Baamboo với 1.250, Socbay 624, Monava 498 và 7sac 170.
Theo nhu cầu người sử dụng, Google vẫn là lựa chọn hàng đầu để tìm kiếm thông tin, trong khi Monava cũng đang dần khẳng định vị thế, mặc dù không thể so sánh với Yahoo! Tuy nhiên, khi tìm kiếm các bản nhạc độc quyền hay tài liệu, các công cụ tìm kiếm của Việt Nam lại thể hiện ưu thế vượt trội hơn cả Google và Yahoo!.
Ông Hoàng Quốc Việt, Tổng Giám đốc Công ty Nguyễn Hoàng, đã đầu tư 500.000 USD vào Monava và cho biết rằng hiện tại chưa có website nào của Việt Nam có thể cạnh tranh với Google Google đã phát triển hơn 10 năm với số lượng server khổng lồ, đảm bảo tốc độ truy cập nhanh và nguồn kinh phí dồi dào.
Mặc dù thị trường Việt Nam còn nhỏ so với Google, nhưng điều này tạo cơ hội cho các công cụ tìm kiếm nội địa phát triển Các công cụ này cần chú trọng vào nhu cầu và thói quen tìm kiếm của người Việt, đồng thời phát triển những tính năng phù hợp với người dùng trong nước Nếu tập trung vào việc đáp ứng nhu cầu của người dùng Việt, các công cụ tìm kiếm nội địa hoàn toàn có khả năng cạnh tranh với Google trên "sân nhà".
Các công cụ tìm kiếm của Việt Nam đang phát triển mạnh mẽ, nổi bật với ba yếu tố: các công cụ tìm kiếm tập trung phát triển những tính năng mà Google hay Yahoo! chưa có; khả năng tìm kiếm hỗ trợ tiếng Việt; và sự tối ưu hóa cho nhu cầu người dùng địa phương.
Việc tối ưu hóa tìm kiếm theo chiều dọc (như blog, video, hình ảnh ) đang ngày càng đáp ứng nhu cầu tìm kiếm đa dạng của người dùng Việt Nam Trong bối cảnh số lượng người sử dụng Internet gia tăng, sự phát triển của tìm kiếm theo chiều dọc cũng trở nên mạnh mẽ hơn Mặc dù Google vẫn là ông lớn trong lĩnh vực tìm kiếm chung, nhưng các công cụ tìm kiếm nội địa của Việt Nam hoàn toàn có khả năng cạnh tranh.
M t s trang web “cây nhà lá v n” n i b t
http://socbay.vn/
M t trong s ít nh ng trang tìm ki m c a Vi t Nam xây d ng đ c b máy tìm ki m riêng So v i Yahoo! hay Google, kh n ng "hi u" ti ng
Sóc Bay (http://socbay.vn/) là một nền tảng tìm kiếm độc đáo, được phát triển bởi Naiscorp từ năm 2002, với mục tiêu cung cấp dịch vụ tìm kiếm chuyên biệt và liên kết, đáp ứng nhu cầu đa dạng của người sử dụng Hiện tại, trang web cung cấp nhiều dịch vụ tìm kiếm như tin tức, MP3, video, rao vặt, từ điển và hình ảnh Sóc Bay đã đạt được thành tựu đáng kể nhờ vào nghiên cứu lâu dài và sự đóng góp của các chuyên gia Việt Nam Trang web này có khả năng xử lý tới 80 triệu lượt truy cập mỗi ngày và cho kết quả tìm kiếm chỉ trong 1 giây.
http://xalo.vn/
Phát tri n b i công ty Tinh Vân, http://xalo.vn/ đ c phát tri n theo hai h ng ch đ o
Thời gian gần đây, Xa L đã tập trung vào việc đáp ứng nhu cầu quen thuộc của người dùng như tìm kiếm web, tin tức, blog, MP3, video, và nhiều nội dung khác Công cụ tìm kiếm này có khả năng cung cấp cho người xem thông tin chuyên sâu về nhiều lĩnh vực như bất động sản, tài chính, thể thao, và du lịch Đây thực sự là một lợi thế của Xa L khi công ty Tinh Vân đã khéo léo rút ra kinh nghiệm từ nhiều năm cung cấp Vinaseek, một công cụ tìm kiếm khác trước đây.
Trang web cung cấp thông tin "Việt hóa" cho người dùng, với tên gọi Sóc bay, đã phát triển công cụ tìm kiếm riêng, ưu tiên hiển thị kết quả từ trang web Tiếng Việt Với hơn 600.000 địa danh nổi tiếng của Việt Nam, trang web cung cấp thông tin đầy đủ và hơn 26.000 trò chơi mới, cùng với kho dữ liệu phong phú, người dùng khó có thể phàn nàn về công cụ này.
http://baamboo.com/
M i đ u, Baamboo là m t s n ph m c a Công ty CP Truy n thông
Việt Nam hoạt động đa dạng trên sân khấu hợp tác của nhiều dự án khác nhau như Trạng, Địa m, Địa m thi,… Tuy nhiên, Baamboo chủ yếu cung cấp sản phẩm “nội nhạc cần” khi cung cấp Baamboo MP3 và Video, hai loại hình giải trí thu hút đông đảo người dùng Internet đến với trang web Như các bạn thấy, tất cả các video được xem trên Gamek đều “Powered by Baamboo”.
Baamboo là một công cụ hữu ích giúp học sinh tìm kiếm thông tin về điểm thi đại học một cách nhanh chóng và chính xác Nó kết hợp với các trang web như http://tratu.vn/ và http://timdiemthi.com/ để cung cấp dữ liệu đầy đủ về điểm chuẩn của các trường Đây là giải pháp lý tưởng cho nhu cầu tra cứu thông tin thi cử của học sinh.
Baamboo đã chính thức ra mắt trang web http://muagioi.vn/, chuyên cung cấp thông tin về các mặt hàng điển hình trong thời trang di động Trang web này mang đến những cập nhật mới nhất về thị trường cho người dùng Hiện tại, Baamboo đang nhận trung bình khoảng 500.000 lượt truy cập mỗi ngày, và con số này dự kiến sẽ tiếp tục tăng trong thời gian tới.
Để tìm kiếm thông tin hiệu quả, bạn có thể truy cập các trang web như http://diadiem.com/ để tìm kiếm địa điểm, hoặc các trang chuyên về rao vặt như http://timnhanh.com/, http://www.7sac.com/, và http://www.123go.vn/.
Trong những năm gần đây, với sự bùng nổ của Internet tại Việt Nam, các doanh nghiệp đã nhận ra lợi ích của việc quảng cáo trên các công cụ tìm kiếm, trở thành nguồn thu chính cho các trang web Việt Nam hiện là một trong những quốc gia có tốc độ tăng trưởng công nghệ thông tin nhanh nhất thế giới, và hy vọng rằng tương lai của các công cụ tìm kiếm “made in Việt Nam” sẽ ngày càng phát triển mạnh mẽ.
PH N B: CH NG TRÌNH DEMO
Gi i thi u ch ng trình
_ Ch ng trình s tìm ki m t trong trang web offline (đã t i v t ngu n Internet)
_ Qui trình th c thi c a ch ng trình:
• Quét file, th m c trong th m c root (do ng i l p trình đnh s n)
• Tìm t p tin HTML N u có s x lý t p tin HTML (đánh ch m c, …) Ng c l i quét ti p th m c con đ l y t p tin HTML cho đ n khi nào h t
_ Scan all folders and files.
Are there HTML or HTM files ?
_ Open this file _ Scan all words to index _ Save results in cache
Mô hình ch ng trình
Ý NGH A
_ CATALOG qu n lý danh sách các WORD
_ WORD qu n lý danh sách các FILE.
L p FILE
_ Ch a thông tin c a t p tin mà ch ng trình quét đ c
• FileDate: th i gian mà t p tin đ c quét
• Description: chú thích t p tin HTML
• Kh i t o: File(url, title, filedate, size, desc).
L p WORD
_ Ch a danh sách các FILE mà ch ng trình quét đ c
Word text: string fileCollection: Hashtable
File url: string title: string fileDate: Date size: long int Desc: string File(url, title, filedate, size, desc)
• fileCollection (Hashtable): ch a danh sách các FILE
• Text (String) : t _ Ph ng th c:
• L y danh sách t p tin: Hashtable InFiles()
L p CATALOG
_ Ch a danh sách các WORD
• Index (Hashtable) _ Ph ng th c:
• Thêm: Add (word, file) _ Tìm ki m: Hashtable Search (word)
T p tin Crawler.aspx
_ Xây d ng CATALOG và l u k t qu vào cache.
T p tin Home.aspx
_ Truy v n CATALOG t cache và cho phép tìm ki m t mà ng i dùng nh p vào.
Chi ti t ch ng trình
L p FILE
{ public string Url; public string Title; public string Description; public DateTime CrawledDate; public long Size;
{ return "\tFILE :: " + Url + " " + Title + " - " + Size + " bytes + \n\t" + Description + "\n";
L p WORD
using System.Collections; public class Word
//chua tu da co trong danh muc (co trong Catalog) public string Text;
// Danh sach cac file co tu xuat hien trong do private Hashtable fileCollection = new Hashtable();
// Thiet lap voi file duoc tham chieu dau tien public Word(string text, File inFile, int position)
Text = text; fileCollection.Add(inFile, 1);
// Them file dang tham chieu tu dang xet public void Add(File inFile, int position)
// If da co file trong ds thi cong gia tri them 1 if (fileCollection.ContainsKey(inFile))
/*int nWordCount = (int)fileCollection[inFile]; fileCollection[inFile] = nWordCount + 1;*/ fileCollection[inFile] =
// Tra ve ds file chua tu (gia tri la wordCount) public Hashtable InFiles()
{ string temp = ""; foreach (object tempFile in fileCollection.Values) temp += ((File)tempFile).ToString(); return "\tWORD :: " + Text + "\n\t\t" + temp + "\n"; }
L p CATALOG
using System.Collections; using System.IO; using System.Text.RegularExpressions; public class Catalog
// Ds doi tuong Word private Hashtable index; public Catalog()
// Them cap Word/File vao Catalog (dua no vao index) public bool Add(string word, File inFile, int position) {
// xet dieu kien de tu muon them chi duoc index 1 lan
// if tu muon them da dc index thi add file tham chieu do vao doi tuong Word
// Nguoc lai thi them word vao index if (index.ContainsKey(word))
Word theWord = (Word)index[word]; theWord.Add(inFile, position);
Word theWord = new Word(word, inFile, position); index.Add(word, theWord);
// Tra ve tat ca files co chua tu duoc search (Dau ra la Hashtable) public Hashtable Search(string searchWord)
/// If tu do co trong index
/// thi dung phuong thuc InFiles cua Word obj tra ve ds file chua tu do
/// Nguoc lai thi tra ve null
Hashtable retVal = null; if (index.ContainsKey(searchWord))
Word theWordMatch = (Word)index[searchWord]; retVal = theWordMatch.InFiles();
{ string wordlist = ""; return "\nCATALOG :: " + index.Values.Count.ToString() + " words.\n" + wordlist;
Crawler.aspx
_ Nhi m v đ u tiên là xây d ng các t p tin HTML mà chúng ta mu n tìm ki m
• Spidering – b t/theo các đ ng d n (link) trong toàn b website (ho c các trang web)
• Crawling – vi c thu th p d li u s thông qua các t p tin, th m c và l p ch m c t t c các t p tin trong th m c đó b ng cách s d ng t p tin h th ng
_ ch ng trình này chúng em hi n th c ch ng trình theo cách th
2 private void CrawlCatalog(string sRoot, string sPath)
DirectoryInfo m_dir = new DirectoryInfo(sPath);
// Tao vong lap lay files foreach (FileInfo fInfo in m_dir.GetFiles(m_filter)) {
Response.Write(DateTime.Now.ToString("t") + " " + m_url + sPath.Substring(m_path.Length) + "\\" + fInfo.Name);
//
} // foreach xu ly (danh dau/phan tich) noi dung file
// Goi de qui de qua thu muc khac foreach(DirectoryInfo d in m_dir.GetDirectories()) {
Hình 4: Thu th p các t p tin – đã t i v t trang http://www.java2s.com/
_ Quá trình th c hi n craw:
• L y danh sách t p tin và th m c trong th m c g c (đã hoàn thành)
• M t p tin đ u tiên và đ c n i dung c a nó
• Tìm tiêu đ (Title), mô t (Description) và tính kích th c t p tin HTML
• T o đ ng d n URL c a t p tin đó (khi craw ch ng trình s l y đ ng d n h th ng Vì v y ph i t o đ ng d n URL đ ng i dùng click vào k t qu đ d n đ n trang web đó)
• Chu n hóa các t (bi n các t HOA thành t th ng)
• Thêm m i WORD vào CATALOG và đ ng d n URL t p tin ch a t
• óng t p tin đang xét và m t p tin ti p theo N u đã quét h t t p tin trong th m c đó thì quét th m c ti p theo
• Quét cho đ n khi không còn t p tin
_ Có 3 công vi c chính ph i làm:
• M t t c các t p tin tìm th y - s d ng không gian tên System.IO
DirectoryInfo m_dir = new DirectoryInfo(sPath);
// Tao vong lap lay files foreach (FileInfo fInfo in m_dir.GetFiles(m_filter))
Response.Write(DateTime.Now.ToString("t") + " " + m_url + sPath.Substring(m_path.Length) + "\\" + fInfo.Name);
Response.Flush(); sFileUrl = m_url + sPath.Substring(m_path.Length).Replace("\\", "/") + "/" + fInfo.Name;
StreamReader reader = System.IO.File.OpenText(sPath
// Do noi dung trang web vao sFileContents sFileContents = reader.ReadToEnd(); reader.Close();
• Tìm ki m nh ng ch đ c bi t trong t p tin (title, description,…) – s d ng không gian tên System.String ho c System.RegularExpressions
Match TitleMatch = Regex.Match(sFileContents,
RegexOptions.Multiline); sFileTitle = TitleMatch.Groups[1].Value;
// - Xu ly the META data -
Match DescriptionMatch = Regex.Match(sFileContents,
RegexOptions.IgnoreCase | RegexOptions.Multiline); sFileDesc = DescriptionMatch.Groups[1].Value;
// - Lay kich thuoc - nFileSize = sFileContents.Length;
// - Lay noi dung tap tin (Loai bo cac the
HTML) - string sWordsOnly = stripHtml(sFileContents);
// - Thu thap META DESC - if (sFileDesc == null || sFileDesc == String.Empty)
{ if (sWordsOnly.Length > 350) sFileDesc = sWordsOnly.Substring(0, 350); else if (sWordsOnly.Length > 100) sFileDesc = sWordsOnly.Substring(0, 100); else sFileDesc = sWordsOnly;
• Phân tích thành nh ng t riêng l - s d ng không gian tên System.RegularExpressions protected string stripHtml(string sHTML)
// Thay cac the bang khoang trang string sOutPut = objRegExp.Replace(sHTML, " ");
// Doi thanh < and > sOutPut = sOutPut.Replace(">", "<"); sOutPut = sOutPut.Replace("