Một số vấn đề liên quan đến search engine ứng dụng trong text

92 7 0
Một số vấn đề liên quan đến search engine ứng dụng trong text

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

2 MỤC LỤC MỤC LỤC BẢNG KÝ HIỆU VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ MỞĐẦU Chươ ng 1: TỔNG QUAN VỀSEARCH ENGINE Đị nh nghĩ a 1.1 Search engine gì? 1.2 Phân loạ i máy tìm kiế m .9 Các bộphậ n cấ u thành hệthống SE 11 2.1 Bộphậ n thu thậ p thông tin – Robot 11 2.2 Bộphậ n lậ p chỉmục – Index 12 2.3 Bộphậ n tìm kiế m thơng tin – SE 12 Bộphậ n thu thập thông tin – ROBOT 13 3.1 Ứng dụng củ a Robot 13 3.2 Robot chỉmục – Robot Indexing .14 Bộphậ n lập chỉmục – INDEX 15 Bộphậ n tìm kiế m thơng tin – SEARCH ENGINE 17 5.1 Các phương thức tìm kiế m .17 5.2 Các chiế n lược tìm kiế m 18 Nguyên lý hoạ t độ ng 20 Chư ơng 2: MỘT SỐSEARCH ENGINE THÔNG DỤNG TRÊN THẾGIỚI VÀ CỦA VIỆT NAM 21 Các SE thông dụng thếgiới 21 Các SE Việ t Nam 22 2.1 Netnam .22 2.2 Vinaseek 29 Xu thếphát triể n SE .30 Mộ t sốSE text 31 4.1 SE toàn vă n SQL server 31 4.2 SE toàn vă n Oracle (Oracle Text) .33 Chươ ng 3: CÁC PHƯƠNG PHÁP LẬP CHỈMỤC, CHỈMỤC 42 Tổng quan vềphương pháp lập chỉmục 42 1.1 Xác đị nh mụ c từquan trọ ng cầ n lậ p chỉmục 42 1.2 Mộ t sốhàm tính trọng sốthuậ t ngữ .43 1.3 Lậ p chỉmụ c tựđộ ng cho tài liệ u 47 Các phương pháp mục 48 2.1 Phương pháp chỉmụ c mả ng tiế p tố(Suffix array) 48 2.2 Phương pháp chỉmụ c tệ pđ ả o (Inverted File) 49 2.3 Phương pháp chỉmụ c tệ p ký sốSFID .54 2.4 So sánh phương pháp chỉmụ c 57 Chươ ng 4: TRIỂN KHAI SE TIẾNG VIỆT TRONG ORACLE TEXT 61 Khó khăn cho việ c lậ p chỉmục tiế ng Việ t 61 Đặc điể m vềtừtrong tiế ng Việ t việ c tách từ 62 2.1 Đặ c điể m vềtừtrong tiế ng Việ t: 62 2.2 Tiế ng: .62 2.3 Từ: 62 2.4 Tách từ 63 2.5 Giả i quyế t vấ nđ ềchính tả .64 2.6 Giả i quyế t vấ nđ ềvềtừcủa tiế ng Việ t 66 2.7 Xửlý vấ n đềsắ p xế p tiế ng Việ t .67 2.8 Xây dựng từđ iể n tiế ng Việ t .68 Triể n khai thửnghiệ m .69 3.1 Đặ t vấ n đề 69 3.2 Xây dựng chương trình 70 3.3 Thiế t kếchi tiế t 75 3.4 Chương trình 83 3.5 Kế t quảthửnghiệ m 88 KẾT LUẬN 90 TÀI LIỆU THAM KHẢO 92 Tiế ng Việ t 92 Tiế ng Anh 92 Website .92 BẢNG KÝ HIỆU VIẾT TẮT Ký hiệ u viế t tắt Tiếng Anh Tiếng Việt SE Search Engine Máy tìm kiế m IF Inverted File Tệ pđ ả o ID Index Chỉmụ c SFID Signature file index Chỉmụ c tệ p ký số IFID Inverted File Index Chỉmụ c tệ p đả o IL Inverted list Danh sách đả o SA Suffix Array Mả ng tiế p tố MSFT Microsoft Full Text Toàn vă n Microsoft SF Signature File Tệ p ký số CSDL Database Cơsởdữliệ u DANH MỤC CÁC BẢNG Bả ng 1.1: Các từkhóa giúp tối ưu câu truy vấ n 19 Bả ng 2.1: Bả ng tóm tắ t tính nă ng củ a SE thông dụ ng thếgiới 22 Bả ng 2.2: Bả ng miêu tảcác từkhoá sửdụ ng việ c tìm kiế m 27 Bả ng 2.3: Ví dụtìm kiế m thơng tin Netnam 29 Bả ng 2.4: Các thành phầ n MSFTESQL .32 Bả ng 2.5: Các thuộ c tính dùng đ ểranking 33 Bả ng 2.6: Các toán tửdùng Oracle Text 38 Bả ng 3.1: Bả ng minh họ a trình xây dựng mả ng tiế p tố 49 Bả ng 3.2: Bả ng danh sách đ iể m truy cậ p mả ng tiế p tố 49 Bả ng 3.3: Vă n bả n mẫ u; mỗ i dòng tài liệ u 50 Bả ng 3.4: IF đố i vớivă n bả n bả ng 3.3 .51 Bả ng 3.5: IF mức từđố i vớivă n bả n bả ng 3.3 52 Bả ng 3.6: Mã hoá chồng lên củ a tài liệ u bả ng 3.3 đố i vớiSF .55 Bả ng 3.7: Bả ng so sánh SA IF .57 Bả ng 4.1: Bả ng mơ tảcác chức nă ng 75 Bả ng 4.2: Bả ng cấ u trúc dữliệ u 76 Bả ng 4.3: Mô tảthủtụ c Myctxhx .77 Bả ng 4.4: Mô tảthủtụ c Cvtr 81 Bả ng 4.5: Mô tảthủtụ c VnNormalize 81 DANH MỤC CÁC HÌNH VẼ Hình 1.1: Giao diệ n máy metacrawler 10 Hình 1.2: Mơ hình xửlý cho hệthố ng lậ p chỉmụ c Hình 1.3: Kiế n trúc chung củ a SE 20 Hình 2.1: Sơđồhệthống SE Netnam 23 Hình 2.2: Kiế n trúc củ a MSFT 31 Hình 2.3: Kiế n trúc củ a Oracle Text 34 Hình 4.1: Cấ u trúc chương trình Thưviệ n số 71 Hình 4.2: Kiế n trúc xây dựng chỉmục Oracle Text đ ối với tiế ng Việ t .73 Hình 4.3: Kiế n trúc hoạ tđ ộng củ a việ c sắ p xế p tiế ng Việ t Hình 4.4: Kiế n trúc hoạ tđ ộng củ a thủtụ c Myctxhx .77 Hình 4.5: Giao diệ n hình n lý dữliệ u Text 85 Hình 4.6: Giao diệ n hình nhậ p dữliệ u Text 85 Hình 4.7: Giao diệ n hình tìm kiế m dữliệ u .86 Hình 4.8: Giao diệ n hình tìm kiế m hình theo nă m .86 Hình 4.9: Giao diệ n hình tìm kiế m hình theo chủđề .87 Hình 4.10: Giao diệ n hình tìm kiế m bỏdấ u 88 Hình 4.11: Giao diệ n hình n lý danh mục từkhóa (Thesaurus) 88 MỞ ĐẦU Mỗ i giây trôi qua thếgiới lạ i xuấ t hiệ n hàng ngàn trang web, hàng triệ u tài liệ u khác Thếgiới Internet ngày khổng lồ, kho tri thức củ a nhân loạ i ngày phát triể n với nhiề u loạ i hình thơng tin khác nhau, dữliệ u hình ả nh, âm hay dữliệ u Text Khi thông tin bùng nổthì nhu cầ u tìm kiế m càng tă ng cao, vậ y ngày có rấ t nhiề u cơng cụhỗtrợcho việ c tìm kiế m xác hiệ u Mộ t sốlượng lớn thông tin ngày ng Text, đ ược lưu ởvă n bả n, trang web, fax, email…Những thông tin quan trọng thườ ng rấ t khó truy cậ p n lý gặ p nhiề u trởngạ i Có rấ t nhiề u loạ i dữliệ u Text khai thác không đ úng mức, thông tin cầ n thiế t khơng tìm thấ y cầ n thiế t hoặ c phả i mấ t rấ t nhiề u công sức Hiệ n hệquả n trịcơsởdữliệ uđ ã hỗtrợrấ t tố t tính nă ng tìm kiế m dữliệ u toàn vă n (full-text) nhưOracle, Microsoft, MySQL, Những tính nă ng hầ u đáp ứng việ c tìm kiế m cho nhiề u nguồn tài liệ u khác nhau, cấ u trúc khác nhau, nhiên công cụnày không thực sựthỏa mãn cho tìm kiế m tiế ng Việ t, cụthểlà vấ nđ ềbả ng mã, ngữpháp đ ặ c trưng riêng củ a tiế ng Việ t Luậ n vă n tậ p trung tìm hiể u hoạ t đ ộng mơ hình máy tìm kiế m (Search engine), mộ t sốtrang tìm kiế m thếgiới Việ t Nam, kỹthuậ t chỉmụ c, đặ c thù việ c tìm kiế m tiế ng Việ t triể n khai thửnghiệ m chức nă ng tìm kiế m toàn vă n Oracle Luậ n vă n gồ m chương: Chương 1: Giới thiệ u tổ ng quan vềSE, thành phầ n cấ u thành củ a mộ t SE Các nguyên lý hoạ tđ ộng, chiế n lược tìm kiế m đ ưa chương hỗ trợcác khái nhiệ m cơbả n cho việ c phát triể n SE Chương 2: Phân tích hiệ n trạ ng sốSE thếgiớ i, SE củ a Việ t Nam xu hướng phát triể n SE thếgiới Tìm hiể u SE Text hệquả n trị cơsởdữliệ u nhưOracle, Microsoft cũ ng đ ược đưa chương Chương 3: Tậ p trung tìm hiể u phương pháp chỉmụ c thông dụ ng Chương đưa tổ ng quan vềcách lậ p chỉmục, chỉmục tựđ ộng Ngồi chương cịn phân tích kỹcác kỹthuậ t chỉmục: mả ng tiế p tố(suffix array), chỉmục tệ p đ ả o (inverted file), chỉmục tệ p ký số(SFID) so sánh phương pháp vớ i Chương 4: Triể n khai thửnghiệ m SE Text CSDL Oracle Chương chỉra khó khă n, đặ c thù việ c chỉmục ngôn ngữtiế ng Việ t Tuy nhiên, đ ể việ c xửlý ngôn ngữtiế ng Việ t thực sựhiệ u quảcầ nđ òi hỏi sựđ ầ u tư, đ óng góp rấ t nhiề u củ a chuyên gia vềngôn ngữhọ c Việ c cài đặ t thửnghiệ m chỉđưa đ ược cách thức giả i quyế t áp dụng sốthửnghiệ m Em xin gửi lời m ơn PGS TS VũĐức Thi, thầ y cô giáo trườ ng Đạ i học Công nghệ , anh chịđồ ng nghiệ p bạ n lớp trang bịkiế n thức có nhiề uđ óng góp q báu giúp em hồn thành luậ n vă n Chương 1: TỔNG QUAN VỀSEARCH ENGINE Đị nh nghĩ a 1.1 Search engine gì? Máy truy tìm hay máy tìm kiế m (search engine), hay gọi với nghĩ a rộng cơng cụtìm kiế m (search tool), ngun thuỷlà phầ n mề m nhằ m tìm trang mạ ng Internet có nội dung theo yêu cầ u ngườ i dùng dựa vào thông tin hiệ n có Trữlượng thơng tin cơng cụtìm kiế m thực chấ t mộ t sởdữliệ u rấ t lớn Việ c tìm tài liệ u sẽdựa từkhóa người dùng gõ vào trảvềmộ t danh mụ c trang Web có chứa từkhóa Từkhóa đượ c hiể u nhưlà tổhợp từcủ a ngôn ngữnhấ t đ ị nh đ ược sắ p xế p hay quan hệvới thông qua biể u thức logic mà cơng cụtìm kiế m hỗtrợ Trong trường hợp mộ t từkhoá bao gồ m nhiề u chữ(hay từ) có thểgọ i tậ p họ p tấ t cảcác chữđó bộtừkhố Cơsởdữliệ u mà máy truy tìm sửdụng thường đượ c bổsung cậ p nhậ t đị nh kì bằ ng cách quét, đ iề u nh, thêm bớt nộ i dung chỉsốhoá lạ i tấ t cảcác trang tìm gặ p Internet Ngày nay, với sốlượng trang Web lên đ ế n hàng tỉ , nên việ c tìm sốtrang có chứa nội dụ ng đ ịi hỏi từkhố có thểlên đ ế n hàng triệ u trang Do đ ó, việ c hiể n thịkế t quảtìm thấ y theo đ úng thứtựquan trọng củ a trang theo mong muốn củ a người dùng mộ t trởngạ i lớn địi hỏi sựchắ t lọc từmáy truy tìm khéo léo vềcách thức đặ t từkhoá từngười dùng máy 1.2 Phân loại máy tìm kiếm Ngày máy truy tìm phát triể n rấ t xa so với ng nguyên thuỷ Có hai cách phân loạ i máy truy tìm 1.2.1 Theo phương thức hoạt động  Kiể u máy nhệ n (spider): Cơsởdữliệ u củ a máy truy tìm đ ược cậ p nhậ t phầ n mề m đặ c biệ t thườ ng gọi "robot", "spider" hay "Webcrawler" Các phầ n mề m sẽtựđộ ng dị tìm phân tích từnhững trang có sẵ n cơsởdữliệ u đểtìm liên kế t (link) từcác trang 10 trởlạ i bổsung dữliệ u cho sau phân tích Phầ n mề m báo cáo vềcác liên kế tđ ã bịđào thả i Từkhố đượ c trích chọ n đểcho SE tìm kiế m bả ng chỉsố.Kế t quảtố t nhấ t sau phân hạ ng sẽđ ược xế pở thứ tự đầ u tiên Trang thông dụ ng nhấ t dùng nguyên tắ c http://www.google.com Hình 1.1: Giao diệ n máy metacrawler  Kiể u máy truy tìm ảo (meta-search engine): Ngày nay, người ta có thểlợ i dụng máy truy tìm sẵ n có đểthiế t kếthành mộ t loạ i máy truy tìm mớigọ i máy truy tìm ả o Nguyên tắ c loạ i máy truy tìm ả o đ ơn giả n Kiể u máy truy tìm ả o khơng có cơsởdữliệ u Khi hoạ t độ ng máy sẽgởi từ khố đế n máy truy tìm khác mộ t cách đ ồng loạ t nhậ n vềtấ t cảcác kế t quảtìm đ ược Nhiệ m vụtiế p theo chỉlà phân tích phân hạ ng lạ i tài liệ u tìm đượ c cho người dùng Ưu điể m củ a loạ i máy truy tìm lợi dụ ng cơsởdữliệ u máy truy tìm khác đ ểtìm nhiề u kế t quảhơn nhanh Nhưng loạ i chỉtồ n tạ i nế u có máy truy tìm ngun thuỷnên gọ i meta Điể n hình loạ i MetaCrawler  Kiể u thưmục đố i tượng (subject directory): Cịn gọi máy truy tìm theo phân lớp (hierarchical search engine) - máy truy tìm phân lớp sẵ n đ ối tượng vào thưmục ngườ i dùng sẽlựa theo kiể u rẽnhánh từtừcho đ ế n tìm trang Web mà muố n Phương thức tìm kiế m phân lớp dễcho người truy cậ p có điể m yế u khơng thểbao gồm hế t mọ i chủđềmà họmuốn kiế m Hơn nữa, sựphân loạ iđ ôi khơng đ ược đ ầ yđ ủvà xác Điể n hình củ a loạ i http://www.yahoo.com  Kiể u cơsởdữliệ u đặ c biệ t (invisible Web): Đặ c điể m củ a loạ i kiể u máy tìm kiể m dữliệ u kiế m khơng thực sựcó từđị a chỉtrang Web cụthểqua máy truy tìm; dữliệ u tồ n tạ i cơsởdữliệ u máy 11 tính hay mạ ng ởđâu đ ó Internet mà trang Web phép sửdụng Đặ c biệ t, trang Web nghiên cứu củ a đ i học hay học việ n http://lii.org, http://www.academicinfo.net http://infomine.ucr.edu đ iể n hình củ a kiể u tìm kiế m CSDL Càng ngày có nhiề u máy truy tìm hỗtrợngườ i dùng qua nhiề u cách  thức khác nên ranh giới phân chia củ a máy truy tìm khơng đ kểmà thay vào hệthố ng máy truy tìm lạ i bao gồ m nhiề u kiể u chức nă ng khác Chẳ ng hạ n nhưhttp://www.yahoo.com khơng cịn đơn thuầ n mộ t máy truy tìm theo kiể u thưmụ c đố i tượng mà bên cạ nh đ ó cũ ng cung cấ p ln cảkiể u máy nhệ n cho người dùng 1.2.2 Theo chức Theo cách phân loạ i tùy theo đ ối tượng tìm kiế m mà có:  Mày tìm kiế mđ ị a chỉtrang Web  Kiế mđ ị a chỉthưđiệ n tử  Kiế m thông tin riêng vềmột ngườ i  Kiế m thông tin vềmột tổchức  Kiế m việ c làm  Kiế m bả nđ [11] Các bộphận cấu thành hệthống SE 2.1 Bộphận thu thập thông tin – Robot Robot mộ t chương trình tựđ ộng duyệ t qua cấ u trúc siêu liên kế t đểthu thậ p tài liệ u mộ t cách đệquy nhậ n vềtấ t cảtài liệ u có liên kế t với tài liệ u Robot biế t đế n nhiề u tên gọ i khác : spider, web wanderer hoặ c web worm,… Những tên gọi đ ôi gây nhầ m lẫ n, nhưtừ‘ spider’ ,‘ wanderer’ làm người ta nghĩrằ ng robot tựnó di chuyể n từ‘ worm’làm người ta liên tưởng đ ế n virus Vềbả n chấ t robot chỉlà mộ t chương trình duyệ t thu thậ p thông tin từ site theo đ úng giao thức web Những trình duyệ t thơng thường khơng xem robot thiế u tính chủđộ ng, chúng chỉduyệ t web có sựtác độ ng người 79 unsigned char *tcvnStr2PreCompoundStr(unsi gned char *tcvn_str, long *res_len, int need_normalize); unsigned char *tcvnStr2CompoundStr(unsigne d char *tcvn_str, long *res_len, int need_normalize); unsigned char *tcvnStr2CanonicalStr(unsigned char *tcvn_str, long *res_len, int need_normalize); int normalize_vni_pair(struct vni_accented_pair *vni_pair); MODE_CANONICAL) , yêu cầ u có chuẩ n hố hay khơng Chuyể n xâu ký tựtừ trảvềxâu ký tựđ ược tcvn sang utf8 chuyể nđ ổi Sốký tự PreCompound chuyể n đổ i Chuyể n xâu ký tựtừ tcvn sang utf8 Compound trảvềxâu ký tựđ ược chuyể nđ ổi Sốký tự chuyể n đổ i Chuyể n xâu ký tựtừ trảvềxâu ký tựđ ược tcvn sang utf8 Canonica chuyể nđ ổi Sốký tự chuyể n đổ i Kiể m tra xem ký tự mã hố Vni có chuẩ n hố hay khơng unsigned char Chuyể n mộtxâu ký tự *vniStr2utf8str(unsigned char Vni sang UTF8 *vni_str, int mode); Mode: MODE_PRECOMPOU ND, MODE_COMPOUND MODE_CANONICAL unsigned char Chuyể n mộtxâu VNI *vniStr2NormalizedUtf8str(unsi sang UTF8 đ ồng thời gned char *vni_str, int mode); chuẩ n hoá unsigned char Chuyể nđ ổi mộ t xâu *dummyStr2utf8str(unsigned chưa đ ị nh ng đ ược char *dummy_str, int mode, int sang UTF8 Tựtìm need_normalize); kiế mđ ị nh ng Có thể chuẩ n hóa xâu kế t void Convert file chưa rõ dummy_txt_file2utf8File(unsign đị nh ng sang UTF8, ed char *s_f_name, unsigned có thểchuẩ n hố char *d_f_name, int mode, int need_normalize); unsigned char Chuyể n mộtxâu chưa *dummyStr2UniStr(unsigned rõ đị nh ng sang char *dummy_str, int mode, int Unicode need_normalize, long *uni_len); void Chuyể n mộtfile chưa dummy_txt_file2UniFile(unsign rõ đị nh ng sang ed char *s_f_name, unsigned Unicode char *d_f_name, int mode, int need_normalize); 80 void txt_file2utf8File(unsigned Chuyể n mộtfile sang char *s_f_name, unsigned char Utf8 *d_f_name, int f_type, int mode, int need_normalize) unsigned char *str2UniStr(unsigned char *input_str, long *res_len, int s_encode, int d_encode, int need_normalize) Chuyể n mộtxâu ký tự sang Unicode void txt_file2uniFile(unsigned Chuyể n mộtfile sang char *s_f_name, unsigned char Unicode *d_f_name, int f_type, int mode, int need_normalize); void n_tcvnFile2utf8File(unsigned char *s_f_name, unsigned char *d_f_name, int mode); void n_tcvnFile2precompoundFile(un signed char *s_f_name, unsigned char *d_f_name); void n_tcvnFile2compoundFile(unsig ned char *s_f_name, unsigned char *d_f_name); void txtFile2BadUtf8File(unsigned char *s_f_name, unsigned char *d_f_name); int is_bad_utf8_file(unsigned char *s_file) int is_bad_utf8_pair(struct Chuyể n mộtfile tcvn sang Unicode s_f_name: file nguồ n d_f_name: file đ ích f_typ: Kiể u mã hóa file nguồn mode: Kiể u mã hố file đ ích need_normalize: có chuẩ n hố hay khơng input_str: xâu vào res_len: Độdài chuyể nđ ượ c s_encode: Kiể u mã hoá xâu vào d_encode: Kiể u mã hoá xâu trảvề need_normalize: có chuẩ n hố hay khơng s_f_name: file nguồ n d_f_name: file đ ích f_type: Kiể u mã hố file nguồn mode: Kiể u mã hố file đ ích need_normalize: có chuẩ n hố hay khơng Mode: kiể u mã hố file đ ích Chuyể n mộtfile sang kiể u mã hoá preCompound Chuyể n mộtfile sang kiể u mã hố Compound Kiể m tra xem mộtfile có đ úng khuân ng Utf8 hay không Nế u không tạ o thêm file Unicode từfile cũcó tên s_file.good Kiể m tra xem mộtcấ u 1: nế u có 81 bad_utf8_pair *utf8_val); void txtFile2BadUtf8File(unsigned char *s_f_name, unsigned char *d_f_name) trúc bad_utf8_pair có 0: Nế u khơng nằ m bả ng cấ u trúc bad_utf8_table hay không Chuyể nđ ổi mộ t file không vớicấ u trúc Utf8 sang Utf8 Bả ng 4.4: Mô tảthủtục Cvtr 3.3.4 Thủtục VnNomalize Thủtụ c thực hiệ n chuẩ n hóa việ c bỏdấ u chuyể n sang unicode UTF8 Normalize2 Normalize Chuẩ n hoá mộ t xâu chuyể n sang UTF8 Sẽcố gắ ng trảvềsốký tự chuẩ n hoá đ ược Chuẩ n hoá mộ t xâu chuyể n sang UTF8 Nế u không đ ượ c trảvềnull Bả ng 4.5: Mô tảthủtục VnNormalize 3.3.1 Hàm xửlý xếp tiếng Việt FUNCTION nls_sort_pre(pin in varchar2) RETURN varchar2 IS Purpose : Sap xep vietnamese sort wih precompound tmp varchar2(32000); c varchar2(3); i number; dau varchar2(10); pa varchar2(10); str varchar2(32000):=ltrim(rtrim(LOWER(pin))); len number:=length(str); BEGIN if str is null then return null; end if; for i in len loop c:=substr(str,i,1); if c not in (',','!',':',';','.','/','\',')','}',']','|','=','-','?') then look for end of word tinh phu am if c in ('à','ả','ã','á','ạ') then pa:='az'; elsif c in ('ă','ằ ','ẳ','ẵ ','ắ ','ặ') then pa:='azz'; elsif c in ('â','ầ ','ẩ','ẫ ','ấ ','ậ') then pa:='azzz'; elsif c in ('è','ẻ ','ẽ','é','ẹ ') then 82 pa:='ez'; elsif c in ('ê','ề ','ể','ễ ','ế ','ệ') then pa:='ee'; pa:='ezz'; elsif c in ('đ') then pa:='dz'; elsif c in ('ì','ỉ ','ĩ ','í','ị ') then pa:='i'; elsif c in ('ị','ỏ','õ','ó','ọ') then pa:='oz'; elsif c in ('ơ','ờ','ở','ỡ','ớ','ợ') then pa:='oo'; pa:='ozz'; elsif c in ('ô','ồ','ổ','ử','ố','ộ') then pa:='ooo'; pa:='ozzz'; elsif c in ('ù','ủ','ũ','ú','ụ') then pa:='uz'; elsif c in ('ư','ừ','ử','ữ','ứ','ự') then pa:='uu'; pa:='uzz'; elsif c in ('ỳ','ỷ ','ỹ','ý','ỵ ') then pa:='y'; elsif c in (' ') then pa:=dau||'aa'; else pa:=c; end if; tmp:=tmp||pa; pa:=''; tinh dau if c in ('à','ằ','ầ','è','ề','ì','ị','ờ','ồ','ù','ừ','ỳ') then dau:='z'; elsif c in ('á','ắ ','ấ','é','ế ','í','ó','ớ','ố','ú','ứ','ý') then dau:='zz'; elsif c in ('ả','ẳ ','ẩ','ẻ ','ể ','ỉ ','ỏ','ở','ổ','ủ','ử','ỷ') then dau:='zzz'; elsif c in ('ã','ẵ ','ẫ','ẽ ','ễ ','ĩ ','õ','ỡ','ử','ũ','ữ','ỹ') then dau:='zzzz'; elsif c in ('ạ','ặ ','ậ','ẹ ','ệ ','ị ','ọ','ợ','ộ','ụ','ự','ỵ') then dau:='zzzzz'; end if; else end of word tmp := tmp||dau||c; dau :=''; end if; end loop; tmp := tmp || dau; return tmp; END; end of pre_sort 83 3.3.2 Tạo mục Oracle 3.3.2.a Tạ o bộlọ c riêng Toàn bộcác chức nă ng củ a Oracle Text đ ược tổchức cấ u trúc (scheme) CTXSYS Trong chương trình thửnghiệ m sẽphả i tạ o bộlọc riêng, cách tạ o: chạ y SQLPLUS kêt nối bằ ng user CTXSYS thực hiệ n exec ctx_ddl.create_preference('CTXSYS.myctxhx_index', 'USER_FILTER'); exec ctx_ddl.set_attribute('CTXSYS.myctxhx_index', 'COMMAND', 'myctxhx.exe'); Hai lệ nh sẽtạ o bộlọc riêng tên myctxhx_index, bộlọc gọi đế n thủtục myctxhx.exe (3.2.6) 3.3.2.b Tạ o chỉmục Sau tạ ođ ược bộlọ c riêng, việ c tạ o chỉmụ c Toàn vă nđ ược thực hiệ n: kế t nối bằ ng user củ a chương trình thực hiệ n câu lệ nh: CREATE INDEX THESIS_DOC_INDEX ON I_DOC(IFILE.SOURCE.LOCALDATA) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS (' FILTER CTXSYS.MYCTXHX_INDEX STOPLIST CTXSYS.EMPTY_STOPLIST'); Trong câu lệ nh trên, tính nă ng Oracle Text đ ã đượ c sửdụng là:  Kiể u chỉmụ c: CTXSYS.CONTENT – loạ i chỉmục củ a Oracle Text (trình bày ởphầ n 4.2.7)  Tham sốtạ o chỉmuc: o Bộlọ c: myctxhx o Stoplist: khơng dùng 3.4 Chương trình 3.4.1 Chuẩn bịmơi trường  Mơi trườ ng: o Cấ u hình máy cài đặ t: - CPU: Pentium 4: 1500MHZ - RAM: 512 MB 84 - HDD: 40GB  Hệđiề u hành: Windows 2000  Database: Oracle 8i  Cài đ ặ t, thiế t lậ p quyề nđ ểsửdụng chức nă ng Oracle Text: o Cài đ ặ t IIS: Web server o Cài đặ t Oracle interMedia Web Agent dùng lưu trữ, tìm kiế m, n lý dữliệ u audio, video, image Oracle 8i bằ ng Web o Tạ o thưmụ c máy chủđểchứa file upload, ví dục:\temp\ o Tạ o thưmụ o liên kế tđ ế n thưmục oracle gán quyề n đ ọc:   create directory I_DOC_DIR as 'c:\temp' grant read on directory I_DOC_DIR to public User chương trình phả i có quyề n: o CTXAPP o DBA Công cụ phát triể n: Oracle Form developer 6i, C, FontPage, Oracle InterMedia  Dữliệ u: o 11000 tệ p dữliệ u luậ t phủVN ban hành từnă m 1945 Bả ng mã: TCVN o 135 báo vềquả n lý nhân sự, n lý công ty Bả ng mã: Unicode Precompound 85 3.4.2 Giao diện chương trình  Quả n lý dữliệ u: thêm, sửa, xóa dữliệ u (thesis_doc.fmb) Hình 4.5: Giao diệ n hình quản lý dữliệ u Text  Chức nă ng nhậ p dữliệ u vào chương trình (upload.asp) Hình 4.6: Giao diệ n hình nhập dữliệ u Text 86  Màn hình tìm kiế m (search.asp) Hình 4.7: Giao diệ n hình tìm kiế m dữliệ u  Màn hình tìm kiế m theo hình (BrowseSearch.asp) Hình 4.8: Giao diệ n hình tìm kiế m hình theo nă m 87 Hình 4.9: Giao diệ n hình tìm kiế m hình theo chủđề  Màn hình tìm kiế m bỏdấ u 88 Hình 4.10: Giao diệ n hình tìm kiế m bỏdấ u Màn hình quản lý Thesaurus (thesaurus.fmb)Hình 4.11: Giao diệ n hình n lý danh mục từkhóa (Thesaurus) 3.5 Kết quảthửnghiệm 3.5.1 Kết  Thời gian đ ánh chỉmục: 30 phút 89  Thời gian đồ ng bộchỉmục: tùy thuộ c vào sốlượ ng dữliệ uđ ược thêm vào, trung bình phút   Thời gian tìm kiế m: o Một từkhóa: giây o Kế t hợp đ iề u kiệ n: giây Một sốkế t quảcụthể o Từkhóa Kinh tếcó 4653 biể u ghi tìm thấ y, 4640 biể u ghi bãng mã TCVN 13 biể u ghi bả ng mã Unicode PreCompound o Từkhóa Kinh tếAND 2000 có 661 biể u ghi đ ượ c tìm thấ y, 658 biể u ghi mả ng mã TCVN biể u ghi bả ng mã Unicode PreCompound 3.5.2 Đánh giá Chương trình thửnghiệ m đ ược xây dựng đ áp ứng yêu că n bả n mộ t chương trình Thưviệ n số,đó là:  Quả n lý dữliệ u: cậ p nhậ t, sửa, xóa, thêm  Chức nă ng khai thác: tra cứu cơbả n, nâng cao tra cứu theo hình  Đáp ứng mộ t sốtính nă ng că n bả n yêu cầ u chức nă ng tra cứu đ ối vớ i Tiế ng Việ t: o Phầ n thửnghiệ mđ ã đáp ứng việ c tìm kiế m nhiề u bả ng mã: Unicode, TCVN o Hỗtrợtìm kiế m bỏdấ u o Tìm kiế m chủđềliên quan: danh mục từkhóa (thesaurus) o Sắ p xế p tiế ng Việ t theo chuẩ n o Khơng phân biệ t chữhoa/thường o Hỗtrợcác tốn tửđ iề u kiệ n: AND, OR, NOT Chương trình đ ược thiế t kếmở,các chức nă ng xây dựng thành thành phầ n (component) đ ả m bả o dễdàng cho việ c nâng cấ p, tích hợp sửdụng lạ i Chương trình đ ược phát triể n nề n tả ng mạ nh dễtriể n khai vào thực tế 90 KẾT LUẬN Trong khn khổcủ a luậ n vă n tìm hiể u cấ u trúc, mơ hình hoạ t độ ng củ a SE, kỹthuậ t chỉmục, phương pháp chỉmục Kiế n trúc hoạ tđ ộng SE Text củ a hệquả n trịCSDL Microsoft SQL Server, Oracle Enterprise cũ ng đ ược mô tảtrong luậ n vă n Luậ n vă nđ ã thực hiệ nđ ược thửnghiệ m Oracle Text ứng dụng đ ược mộ t phầ n tính nă ng Oracle Text Việ c triể n khai thửnghiệ m SE đ ối với dữliệ u Text tiế ng Việ t đ tđ ược mộ t sốkế t quảcó thểđưa vào triể n khai thực tế Tuy nhiên nhiề u việ c chưa thử nghiệ m nhưvấ n đềtừkhóa, xế p hạ ng (ranking)… Nguyên nhân việ c xửlý tiế ng Việ t, trích chọn từkhóa, vấ n đềngôn ngữcầ n nhiề u sựhỗtrợcủa chuyên gia Tính áp dụ ng thực tếcủa luậ n vă n rấ t cao, phầ n đáp ứng nhu cầ u tìm kiế m, khai thác thơng tin Text nhiề u loạ i hình tài liệ u tiế ng Việ t CSDL toàn vă n Kế t quảđạ t được:  Tìm hiể u tổ ng quan vềSE, mơ hình hoạ t độ ng  Tìm hiể u sốSE tiêu biể u thếgiới Việ t Nam  Tìm hiể u SE Text hai CSDL Oracle Microsoft SQL  Đánh giá, phân tích phương pháp chỉmục, kỹthuậ t chỉmụ c  Xây dựng thửnghiệ m SE dựa Oracle Text đ ốivới dữliệ u tiế ng Việ t, đáp ứng nhu cầ u că n bả n mộ t chương trình Thưviệ n số : o Cho phép tìm kiế m nhiề u bả ng mã: Unicode, TCVN o Hỗtrợtìm kiế m bỏdấ u o Tìm kiế m chủđềliên quan: danh mục từkhóa (thesaurus) o Sắ p xế p tiế ng Việ t theo chuẩ n 91 Đị nh hướng tiế p theo:  Tìm hiể u, nghiên cứu khai thác rộ ng sâu vềcác phương pháp kỹ thuậ t chỉmục  Tìm hiể u thêm mơ hình SE, xu hướng phát triể n củ a SE  Kế t hợp với chuyên gia vềngôn ngữtiế ng Việ t, đưa phương pháp mụ c xế p hạ ng phù hợp vớitiế ng Việ t  Xây dựng tích hợp thêm chương trình xửlý tiế ng Việ tđ ểứng dụ ng vào Oracle Text: xế p hạ ng (Ranking), trích chọ n từkhóa (Lexer) 92 TÀI LIỆU THAM KHẢO Tiếng Việt [1] ĐỗQuang Vinh (2005), Nghiên cứu phương pháp chỉsốhóa tìm kiế m thông tin thưviệ n số, Luậ n án tiế n sỹToán họ c Người hướng dẫ n khoa học : TS Quách Tuấ n Ngọc, PGS Phương Xuân Nhàn [2] Đồ ng thịBích Thủy, HồQuố c Bả o, Ứng dụ ng xửlý ngơn ngữtựnhiên hệtìm kiế m thông tin văn bả n Tiế ng Việ t Khoa Công NghệThông Tin – Đạ i học Khoa họ c TựNhiên Tiếng Anh [3] Gerard Salton, Michael J.McGill (1983), Introduction to Modern Information Retrieval [4] C.J van Rijsbergen, Information Retrieval, Department of Computing Science University of Glasgow [5] Oracle Corp (White paper - 2002), Oracle Text [6] Justin zobel – RMIT, Alistair Moffat , Kotagiri Ramamohanarao, Inverted File Versus Signature Files for Text Indexing - The university of Melbourne [7] Sergey Brin and Lawrence Page (1998), The Anatomy of a Large-Scale Hypertextual Web Search Engine, Computer Science Department, Stanford University, Stanford, CA 94305, USA [8] Arvind Arasu, Junghoo Cho, Hector Garcia-Molina, Andreas Paepcke, and Sriram Raghavan, Searching the Web, Stanford University [9] Oralce Corp (2002), Oracle 9i Data Cartridge Developer’s Guide [10] Dinh Dien, Hoang Kiem, Nguyen Van Toan (2001), Vietnamese words segmentation, Faculty of Information Technology National University of HCM City Website [11] Wikimedia http://en.wikipedia.org/wiki/Searchengine, http://vi.wikipedia.org/wiki/ [12] Google http://www.google.com/technology 93 [13] Yahoo http://www.yahoo.com [14] Search Engine Glossary http://www.cadenza.org/search_engine_terms [15] The library-University of California, Berkeley http://www.lib.berkeley.edu/TeachingLib/Guides/Internet/SearchEngines.html [16] Trang tìm kiế m Ask Http://www.ask.com [17] Trang tìm kiế m Vinaseek http://www.vinaseek.com [18] Trang tìm kiế m Netnam http://www.panvietnam.com [19] Kiế n trúc tìm kiế m tồn vă n củ a Microsoft SQL Server http://msdn2.microsoft.com/en-US/library/ms142541.aspx ... tài liệ u  Trong đềmụ c  Được in đậ m (inktomi)  Trong URL  Trong tiêu đề( quan trọ ng)  Trong phầ n miêu tảtrang web (description)  Trong thẻdành cho hình ả nh (ALT graphisc)  Trong thẻchứa... graphisc)  Trong thẻchứa từkhóa  Trong text liên kế t 15 Mộ t sốrobot lậ p chỉmục tiêu đề , hoặ c mộ t số? ?oạ n vă n bả nđ ầ u tiên hoặ c toàn bộtài liệ u (full text) Một sốkhác lạ i lậ p chỉmục thẻMETA(META... vă n 9 Chương 1: TỔNG QUAN V? ?SEARCH ENGINE Đị nh nghĩ a 1.1 Search engine gì? Máy truy tìm hay máy tìm kiế m (search engine) , hay gọi với nghĩ a rộng cơng cụtìm kiế m (search tool), ngun thuỷlà

Ngày đăng: 16/03/2021, 11:10

Mục lục

  • MỤC LỤC

  • BẢNG KÝ HIỆU VIẾT TẮ T

  • DANH MỤC CÁC BẢNG

  • DANH MỤC CÁC HÌNH VẼ

  • MỞ ĐẦ U

  • Chương 1: TỔNG QUAN VỀ SEARCH ENGINE

  • 1. Định nghĩa

  • 1.1 Search engine là gì?

  • 1.2 Phân loại máy tìm kiếm

  • 1.2.1 Theo phương thức hoạt động

  • 1.2.2 Theo chức năng

  • 2. Các bộ phận cấu thành hệ thống SE

  • 2.1 Bộ phận thu thập thông tin – Robot

  • 2.2 Bộ phận lập chỉ mục – Index

  • 2.3 Bộ phận tìm kiếm thông tin – SE

  • 3. Bộ phận thu thập thông tin – ROBOT

  • 3.1 Ứng dụng củ a Robot

  • 3.1.1 Phân tích, thống kê – Statistical Analysis

  • 3.1.2 Duy trì siêu liên kết - Maintenance

  • 3.1.3 Ánh xạ địa chỉ web - Mirroring

Tài liệu cùng người dùng

Tài liệu liên quan