Qua luận văn này, chúng tôi đã trình bày những tìm hiểu nghiên cứu về các thành phần của một hệ thống tìm kiếm Web và bước đầu chúng tôi trình bày quá trình tự xây dựng một công cụ tìm kiếm cho MP3. Một hệ thống tìm kiếm là bao gồm nhiều thành phần và mỗi thành phần đều khá phức tạp. Để làm nên một hệ thống tìm kiếm tốt, cần phải có nhiều người và có nhiều nghiên cứu về tất cả các thành phần của một hệ tìm kiếm vì ở mỗi thành phần ấy đều có rất nhiều bài toán đặt ra để giải quyết. Chúng tôi cho rằng muốn nâng cao chất lượng của kết quả tìm kiếm ta chỉ có cách làm tốt và liên tục cải tiến từng thành phần của cả hệ thống, cần phải đưa ra những giải pháp nhanh hơn, chính xác hơn với từng thành phần của hệ thống mà thôị
Chúng tôi đã áp dụng những kiến thức ấy với dữ liệu Mp3 và chúng tôi thấy nó dễ dàng hơn là dữ liệu Web rất nhiềụ Có hiện tượng như vậy bởi vì tuy rằng tìm kiếm Mp3 là một bài toán tìm kiếm đầy đủ nhưng do dữ liệu Mp3 là rất nhỏ so với dữ liệu Web nên chúng tôi không phải giải quyết các bài toán rất khó của Web về tổ chức dữ liệu, tìm kiếm…Từ đó chúng tôi đưa ra kết luận là bài toán tìm kiếm với từng loại loại dữ liệu khác nhau sẽ có những cách giải quyết khác nhaụ Những đánh giá về chương trình chúng tôi đã trình bày ở mục 3.2.5 nằm ngay trước phần kết luận.
Sau khi tự mình xây dựng một Search Engine nhỏ, đề tài này đã giúp tôi thu được những kiến thức vô cùng quý báu về một lĩnh vực khá hấp dẫn là tổ chức và khai phá dữ liệụ Chúng tôi tin tưởng rằng, việc tập hợp đầy đủ về lý thuyết tìm kiếm và chỉ ra những khó khăn của công việc tìm kiếm được trình bày ở chương 1 sẽ là tài liệu tham khảo cho nhiều người khi muốn tìm hiểu, nghiên cứu về bài toán tìm kiếm.
2. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
Với sản phẩm này, chúng tôi thấy là hoàn toàn có thể cải tiến thêm cho chương trình theo hướng hiểu ngôn ngữ Việt hơn nữa, hiểu truy vấn người Việt để có thể trả lời chính xác truy vấn người dùng.
Chẳng hạn, trong trường hợp người dùng muốn tìm “Trịnh Công Sơn” thì chương trình phải hiểu đó là tên của nhạc sỹ chứ không phải là một bài hát có từ “Trịnh Công Sơn” trong đó.
Nâng cao hơn nữa, khi người sử dụng muốn truy vấn là “nhạc Trịnh” thì ý của người dùng là muốn có kết quả là nhạc do “Trịnh Công Sơn” sáng tác hoặc là những bài hát nổi tiếng của Trịnh Công Sơn. Nếu chúng ta đã có một WordNet tiếng Việt mà trong đó sự liên quan giữa 2 từ khóa này là rất cao thì ta có thể suy ra từ khóa này từ từ khóa kiạ
Trong trường hợp người sử dụng gõ truy vấn là “Trịnh Côn Sơn” thì chương trình cũng phải hiểu đó là người dùng gõ sai, kết quả chương trình vẫn phải truy vấn tên là “Trịnh Công Sơn”.
Muốn có những kết quả tốt hơn như vậy, chúng tôi cho rằng cần phải đầu tư nhiều thời gian hơn nữa vào việc nghiên cứu những Module tiếng Việt và phần Ranking kết quả.
TÀI LIỆU THAM KHẢO
Tiếng Việt
1. Nguyễn Tài Cẩn (1998), Ngữ pháp tiếng Việt (Tiếng - Từ ghép - Đoản
Ngữ), NXB Đại học Quốc gia Hà Nộị
2.Nguyễn Thiện Giáp, Phân loại các ngôn ngữ theo quan hệ loại hình,
http://ngonngụnet/index.php?p=234
3.NgonNgụNet, Cụm từ cố định, http://ngonngụnet/index.php?p=187
4. Tcxdvn.xaydung.gov.vn, Tiêu chuẩn xây dựng Việt nam
http://tcxdvn.xaydung.gov.vn/TCXDVN/TCXDVN.NSF/da73105996deacc047 2570d5005b7a6a/5873b41ce9e8fb63472570c4004da72ẻOpenDocument
5. WikipediạOrg, Loại hình ngôn ngữ,
http://vịwikipediạorg/wiki/Lo%E1%BA%A1i_h%C3%ACnh_ng %C3%B4n_ng%E1%BB%AF
6. WikipediạOrg, Lucene, http://vịwikipediạorg/wiki/ Lucene
7. WikipediạOrg, Unicode, http://vịwikipediạorg/wiki/Unicode
Tiếng Anh
8. Anthony Scime, Web mining: applications and techniques
http://books.googlẹcom.vn/books? id=TDhPMs3adw0C&pg=PA53&lpg=PA53&dq=%22Forward+link+count %22&source=bl&ots=r0_utue0fg&sig=PNBIsNl-K- qlGM2wLfDaGAc4ytI&hl=vi&ei=jiUxS_apKZy- swOwypS7BA&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAgQ6AEwAA #v=onepage&q=%22Forward%20link%20count%22&f=false
9. Junghoo Cho, Garcia-Molina, H. and Page, L. (1998), Efficient Crawling
Through URL Ordering, http://ilpubs.stanford.edu:8090/347/
10. Junghoo Cho, Hector Garcia-Molina (2002), Parallel Crawlers,
http://rosẹcs.uclạedu/~cho/papers/cho-parallel.pdf
11. www.focuseek.com, Chapter 4. Notes for Search Engine beginners,
http://www.focuseek.com/manuals/User/beginners.html
12. Marc Najork, Janet L. Wiener(2001), Breadth-first Search crawling
yields high-quality pages, http://www10.org/cdrom/papers/208/
http://docs.googlẹcom/viewer?
a=v&q=cache:ww20te0h39sJ:www.eng.auburn.edu/~gilbert/Comp7120/Concept- 50/IR-Building-Inverted-
Index.pdf+building+an+invert+index&hl=vi&gl=vn&pid=bl&srcid=ADGEESi_uMD xtrhmQJCylHryuRCoTFL3fFP7Ngf2dvBVEhpr3bVS53Z6dNUg628zf
14. Prasad Pingali, Jagadeesh Jagarlamudi, Vasudeva Varma, WebKhoj: Indian language IR from Multiple Character Encodings,
http://www2006.org/programme/files/xhtml/5503/fp5503-pingali/fp5503- pingali-xhtml.html
14. Red-gatẹcom, .NET Reflector,
http://www.red-gatẹcom/products/reflector/index.htm
15. Sahilthaker (2008), Information Retrieval & Search - Basic IR Models, http://blogs.msdn.com/spt/archive/2008/03/05/information-retrieval-Search- basic-ir-models.aspx
16. WikipediạOrg, BackLink, http:// en .wikipediạorg/wiki/ BackLink
17. WikipediạOrg, Distributed web crawling,
http://en.wikipediạorg/wiki/ Distributed web crawling
18. WikipediạOrg, HITS algorithm, http:// en .wikipediạorg/wiki/ HITS
algorithm
19. WikipediạOrg, Hubs and Authorities,
http://en.wikipediạorg/wiki/ Hubs and Authorities
20. WikipediạOrg, Information retrieval,
http://en.wikipediạorg/wiki/ Information retrieval
22. WikipediạOrg, Lucene, http://en.wikipediạorg/wiki/ Lucene 23. WikipediạOrg, PageRank, http:// en .wikipediạorg/wiki/ PageRank
24. WikipediạOrg, Stemming, http:// en .wikipediạorg/wiki/ Stemming
25. WikipediạOrg, Search engine indexing,
http:// en .wikipediạorg/wiki/ Search engine indexing
26. WikipediạOrg, Tf–idf, http:// en .wikipediạorg/wiki/ Tf–idf
27. WikipediạOrg, Web Crawler, http://en.wikipediạorg/wiki/Web Crawler http://en.wikipediạorg/wiki/Search engine indexing
28. WikipediạOrg, Web Search query, http://en.wikipediạorg/wiki/web Search query
PHỤ LỤC
PHỤ LỤC Ạ KIẾN TRÚC GOOGLE
Nguồn: http://seogurudelhịblogspot.com/
Hình vẽ sau đây cho ta một hình dung về kiến trúc mức cao của Googlẹ
Hình 24. Kiến trúc Googlẹ
Quá trình tải các trang Web về và đánh chỉ mục được thực hiện bởi nhiều crawlers phân tán. Có một vài URLserver thực hiện nhiệm vụ chuyển các danh sách URLs cho các crawlers. Các trang Web sau khi được tải về, chúng được chuyển cho storeserver (thực hiện chức năng lưu trữ). Storeserver nén các trang Web lại và lưu trữ chúng tại kho lưu trữ. Mỗi trang Web có một mã hiệu gọi là docID, được gán mỗi khi có một URL mới được phân tích từ trang Web tải về.
Chức năng đánh chỉ mục được thực hiện bởi bộ Indexer và Sorter. Indexer thực hiện việc đọc kho dữ liệu, giải nén tài liệu và phân tích chúng. Các từ được phân tách và được lưu trữ vào các barrels. Ngoài ra, indexer còn thực hiện việc phân tích các thông tin liên quan đến một hyperlink trên trang Web rồi lưu lại các thông tin này (gọi là anchor information) vào anchors filẹ File này lưu trữ đầy đủ thông tin cho biết liên kết tương ứng chỉ tới đâu và dòng chữ xuất hiện trên trang Web tương ứng với liên kết đó.
URL_Resolver đọc các thông tin trong anchors file và chuyển đổi thành các URL thực sự và căn cứ trên các URL đã có để kết gắn với các docID, đồng thời cũng
tạo nên cơ sở dữ liệu về liên kết (có tác dụng trong việc tính toán độ nổi tiếng của một trang Web).
Sorter thực hiện việc sắp xếp lại barrels theo wordID thay vì theo docID để tạo ra chỉ mục ngược. Chương trình có tên DumpLexicon thu nhận danh sách các từ và tiến hành cập nhật Lexicon (từ điển).
Để trả lời một truy vấn của người dùng, Google sử dụng Lexicon, chỉ mục ngược và PageRanks.
PHỤ LỤC B. CÁC KHÁI NIỆM VỀ SEARCH ENGINE
Nguồn: http://www.cadenzạorg/Search_engine_terms/srchad.htm
Adjacency
A property of the relationship between words in a Search Engine (or directory) querỵ Search engines often allow users to specify that words should be next to one another or somewhere near one another in the Web pages Searched
ArchitextSpider
The name of the Excite Search enginés spider.
Cloaking
The hiding of page content. Normally carried out to stop page thieves stealing optimized pages.
Clustering
The listing of only one page from each Web site in a Search Engine or directorýs list of Search results. This avoids occupation of all the top results by a small number of Web sites and makes the list of results clearer and more useful to the user.
Crawler
See Spider.
Dead Link
An Internet link which doesn't lead to a page or site, probably because the server is down or the page has moved or no longer exists. Most Search engines have techniques for removing such pages from their listings automatically, but as the Internet continues to increase in size, it becomes more and more difficult for a Search Engine to check all the pages in the index regularlỵ Reporting of dead links helps to keep the indexes clean and accurate, and this can usually be done by submitting the dead link to the Search enginẹ
Directory
A server or a collection of servers dedicated to indexing Internet Web pages and returning lists of pages which match particular queries. Directories (also known as
Indexes) are normally compiled manually, by user submission (such as at
whatsnew.com), and often involve an editorial selection and/or categorization process (such as at LookSmart and Yahoo).
Domain
A sub-set of Internet ađresses. Domains are hierarchical, and lower-level domains often refer to particular Web sites within a top-level domain. The most significant part of the ađress comes at the end - typical top-level domains are .com, .edu, .gov, .org (which sub-divide ađresses into areas of use). There are also various geographic top-level domains (ẹg. .ar, .ca, .fr, .ro etc.) referring to particular countries.
Heading
Many Search engines give extra weight and importance to the text found inside HTML heading sections. It is generally considered good advice to use headings when designing Web pages and to place keywords inside headings.
Hiđen Text
Text on a Web page which is visible to Search Engine spiders but not visible to human visitors. This is sometimes because the text has been set the same colour as the background, because multiple TITLE tags have been used or because the text is an
HTML comment. Hiđen text is often used for spamdexing. Many Search engines can
now detect the use of hiđen text, and often remove offending pages from their database or lower such pages' positioning.
Hit
In the context of visitors to Web pages, a hit (or site hit) is a single access request made to the server for either a text file or a graphic. If, for example, a Web page contains ten buttons constructed from separate images, a single visit from someone using a Web browser with graphics switched on (a "page view") will involve eleven hits on the server. (Often the accesses will not get as far as your server because the page will have been cached by a local Internet service provider).
In the context of a Search Engine query, a hit is a measure of the number of Web pages matching a query returned by a Search Engine or directorỵ
HTML
HyperText Markup Language - the (main) language used to write Web pages.
HTTP
HyperText Transfer Protocol - the (main) protocol used to communicate between Web servers and Web browsers (clients).
Inbound Link
A hypertext link to a particular page from elsewhere, bringing traffic to that pagẹ Inbound links are counted to produce a measure of the page popularity.
Index
See Directory. Also refers to the database of Web pages maintained by a Search Engine or directorỵ
Keyword
A word which forms (part of) a Search Engine query.
Keyword Density
A property of the text in a Web page which indicates how close together the
keywords appear. Some Search engines use this property for Positioning. Analysers are
available which allow comparisons between pages. Pages can then be produced with the similar keyword densities to those found in high ranking pages.
Keyword Domain Name
The use of keywords as part of the URL to a Websitẹ Positioning is improved on
some Search engines when keywords are reinforced in the URL. Keyword Phrase
A phrase which forms (part of) a Search Engine querỵ Keyword Purchasing
The buying of Search keywords from Search engines, usually to control banner
ad. placement. All the major Search engines (except EuroSeek and GoTo) insist that
keyword purchasing is only used for banner ad. placement, and doesn't influence Search results. The display of banner ads. for bought keywords can be studied using a service called Bannerstake from Thomson and Thomson at http://www.namestakẹcom. which returns the banner ads. displayed when particular queries are used.
Keyword Stuffing
The repeating of keywords and keyword phrases in META tags or elsewherẹ Meta Search
A Search of Searches. A query is submitted to more than one Search Engine or directory, and results are reported from all the engines, possibly after removal of duplicates and sorting. Also the meta Search engine of the same name, found at
http://www.metaSearch.com.
Meta Search Engine
A server which passes queries on to many Search engines and/or directories and then summarises all the results. Ask Jeeves, Dogpile, Infind, Metacrawler, Metafind and
MetaSearch are examples of meta Search engines.
A construct placed in the HTML header of a Web page, providing information which is not visible to browsers. The most common meta tags (and those most relevant to Search engines) are KEYWORDS and DESCRIPTION.
Page Popularity
A measure of the number and quality of links to a particular page (inbound links).
Portal
See Gateway page. Can also mean Portal Site.
Portal Page
See Gateway page.
Portal Site
A generic term for any site which provides an entry point to the Internet for a significant number of users.
Positioning
The process of ordering Web sites or Web pages by a Search Engine or a directory so that the most relevant sites appear first in the Search results for a particular querỵ Software such as PositionAgent, Rank This and Webposition can be used to determine how a URL is positioned for a particular Search Engine when using a particular Search phrasẹ The GoHip Search site allows you to see positioning information from many of the big Search engines, displayed all on one pagẹ
Positioning Technique
A method of modifying a Web page so that Search engines (or a particular Search engine) treat the page as more relevant to a particular query (or a set of queries).
Query
A word, a phrase or a group of words, possibly combined with other syntax used to pass instructions to a Search Engine or a directory in order to locate Web pages.
Ranking
Robot
Any browser program which follows hypertext links and accesses Web pages
but is not directly under human control. Examples are the Search Engine spiders, the
"harvesting" programs which extract e-mail ađresses and other data from Web pages
and various intelligent Web Searching programs. A database of Web robots is maintained
by Webcrawler. robots.txt
A text file stored in the top level directory of a Web site to deny access by robots
to certain pages or sub-directories of the sitẹ Only robots which comply with the
Robots Exclusion Standard will read and obey the commands in this filẹ Robots will read this file on each visit, so that pages or areas of sites can be made public or private at any time by changing the content of robots.txt before re-submitting to the Search engines. The simple example below attempts to prevent all robots from visiting the /secret directory:
PHỤ LỤC C. THUẬT TOÁN VUN ĐỐNG HEAPSORT CHO TÌM KIẾM
Nguồn: http://vịwikipediạorg/wiki/S%E1%BA%AFp_x%E1%BA%BFp_vun_ %C4%91%E1%BB%91ng
Đống (Heap)
Mỗi mảng a[1..n] có thể xem như một cây nhị phân gần đầy (có trọng số là các
giá trị của mảng), với gốc ở phần tử thứ nhất, con bên trái của đỉnh a[i] là a[2*i] con
bên phải là a[2*i+1] (nếu mảng bắt đầu từ 1 còn nếu mảng bắt đầu từ 0 thì 2 con là
a[2*i+1] và a[2*i+2] ) (nếu 2*i<=n hoặc 2*i+1<=n, khi đó các phần tử có chỉ số lớn
hơn không có con, do đó là lá).
Ví dụ mảng (45, 23, 35, 13, 15, 12, 15, 7, 9) là một đống
Môt cây nhị phân, được gọi là đống cực đại nếu khóa của mọi nút không nhỏ
hơn khóa các con của nó. Khi biểu diễn một mảng a[] bởi một cây nhi phân theo thứ
tự tự nhiên điều đó nghĩa là a[i]>=a[2*i] và a[i]>=a[2*i+1] với mọi i =1..int(n/2). Ta
cúng sẽ gọi mảng như vậy là đống. Như vậy trong đống a[1] (ứng với gốc của cây) là
phần tử lớn nhất. Mảng bất kỳ chỉ có một phần tử luôn luôn là một đống.
Một đống cực tiểu được định nghĩa theo các bất đẳng thức ngược lại:
a[i]<=a[2*i] và a[i]<=a[2*i+1]. Phần tử đứng ở gốc cây cực tiểu là phần tử nhỏ nhất.
Vun đống
Việc sắp xếp lại các phần tử của một mảng ban đầu sao cho nó trở thành đống được gọi là vun đống.
Nếu hai cây con gốc 2 * i và 2 * i + 1 đã là đống thì để cây con gốc i trở thành đống chỉ việc so sánh giá trị a[i] với giá trị lớn hơn trong hai giá trị a[2 * i] và
a[2 * i + 1], nếu a[i] nhỏ hơn thì đổi chỗ chúng cho nhaụ Nếu đổi chỗ cho a[2 *
i], tiếp tục so sánh với con lớn hơn trong hai con của nó cho đên khi hoặc gặp đỉnh lá. (Thủ tục DownHeap trong giả mã dưới đây)
Vun một mảng thành đống
Để vun mảng a[1..n] thành đống ta vun từ dưới lên, bắt đầu từ phần tử a[j]với j
=Int(n/2) ngược lên tới a[1]. (Thủ tục MakeHeap trong giả mã dưới đây)
Sắp xếp bằng vun đống
Đổi chỗ (Swap): Sau khi mảng a[1..n] đã là đống, lấy phần tử a[1] trên đỉnh