Thông tin tài liệu
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ĐỖ TẤT HƯNG MỘT SỐ KỸ THUẬT TÌM KIẾM VĂN BẢN THEO NỘI DUNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2015 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ĐỖ TẤT HƯNG MỘT SỐ KỸ THUẬT TÌM KIẾM VĂN BẢN THEO NỘI DUNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC CHỦ TỊCH HỘI ĐỒNG TS TRƯƠNG HÀ HẢI PGS TS NGÔ QUỐC TẠO Thái Nguyên - 2015 iii LỜI CAM ĐOAN Em xin cam đoan: Luận văn thạc sĩ Khoa học máy tính “Một số kỹ thuật tìm kiếm văn theo nội dung” này là công trình nghiên cứu thực sự của cá nhân em, được thực hiện trên cơ sở nghiên cứu lý thuyết và dưới sự hướng dẫn khoa học của Tiến sĩ Trương Hà Hải, Trường Đại học Công nghệ Thông tin và Truyền thông. Em xin chịu trách nhiệm về lời cam đoan này. Thái Nguyên, ngày tháng năm 2015 Tác giả Đỗ Tất Hưng iv LỜI CẢM ƠN Để hoàn thành luận văn, em xin chân thành cảm ơn Trường Đại học Công nghệ Thông tin và Truyền thông, Phòng Đào tạo, các thầy, cô giáo giảng dạy lớp cao học Khoa học máy tính K12E đã quan tâm, tạo điều kiện thuận lợi, tận tình giảng dạy và giúp đỡ em trong thời gian theo học tại trường. Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến TS Trương Hà Hải, người đã dành nhiều thời gian, tâm huyết hướng dẫn em trong suốt quá trình nghiên cứu và hoàn thành luận văn. Em cũng xin cảm ơn các cán bộ, giảng viên đồng nghiệp ở Trường Đại học Hùng Vương đã tạo điều kiện về thời gian để em có thể học tập và hoàn thành luận văn. Mặc dù đã cố gắng hết sức hoàn thiện luận văn, tuy nhiên luận văn vẫn còn nhiều thiếu sót, rất mong sự góp ý quý báu của quí thầy cô và các bạn đồng nghiệp! Xin trân trọng cảm ơn! Thái Nguyên, ngày tháng năm 2015 Tác giả Đỗ Tất Hưng v MỤC LỤC Trang LỜI CAM ĐOAN . iii LỜI CẢM ƠN . iv MỤC LỤC v DANH MỤC BẢNG viii DANH MỤC HÌNH VẼ ix MỞ ĐẦU . 1 CHƯƠNG I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ĐA PHƯƠNG TIỆN 4 1.1 Cơ sở dữ liệu (CSDL) đa phương tiện 4 1.1.1 Giới thiệu 4 1.1.2 Mục tiêu chính . 5 1.1.3 Mô hình dữ liệu đa phương tiện 5 1.1.4 Trích chọn đặc trưng, chỉ mục và đo tính tương tự 7 1.1.5 Hệ thống tìm kiếm thông tin (IR) . 13 1.1.6 Xếp hạng tài liệu (Ranking) . 19 1.2 Bài toán tìm kiếm văn bản 23 CHƯƠNG II. MỘT SỐ VẤN ĐỀ VỀ TÌM KIẾM VĂN BẢN THEO NỘI DUNG 26 2.1 Mô hình Boolean 26 2.2 Mô hình tìm kiếm không gian vector 27 2.3 Mô hình tìm kiếm theo xác suất 30 2.4 Mô hình tìm kiếm dựa trên cơ sở cụm 30 2.5.1 Ý tưởng cơ bản của LSI . 33 2.5.2 Một số khái niệm cơ bản 39 2.5.3 Kỹ thuật phân tích SVD . 41 CHƯƠNG III. ỨNG DỤNG THỬ NGHIỆM . 55 3.1 Bài toán 55 vi 3.2 Chức năng của chương trình thử nghiệm 57 3.3 Hoạt động cơ bản trong chương trình 65 3.4 So sánh các mô hình tìm kiếm 67 KẾT LUẬN 69 1. Kết luận 69 2. Hướng phát triển 69 TÀI LIỆU THAM KHẢO 71 vii DANH MỤC TỪ VIẾT TẮT CSDL Cơ sở dữ liệu IDF Inverse Document Frequency IR Information Retrieval LSI Latent Semantic Indexing MDMS MultiMedia DataBase Manager System MIRS Multimedia Information Retrieval System SVD Singular value decomposition TF Term Frequency viii DANH MỤC BẢNG Bảng 1.1 Ma trận tài liệu - thuật ngữ 21 Bảng 1.2 Ma trận kết quả tài liệu - thuật ngữ TF-IDF 22 Bảng 1.3 Kết quả khoảng cách từ truy vấn Q với các tài liệu 23 Bảng 2.1 Số lần xuất hiện của thuật ngữ trong mỗi tài liệu 43 ix DANH MỤC HÌNH VẼ Hình 1.1 Mô hình dữ liệu đa phương tiện . 6 Hình 1.2 Mô hình xử lý cho hệ thống lập chỉ mục 11 Hình 1.3 Mô hình tổng quát tìm kiêm thông tin 15 Hình 1.4 Tiến trình truy vấn tài liệu 17 Hình 1.5 Hệ thống IR tiêu biểu 25 Hình 2.1 Sử dụng các khái niệm cho truy vấn 34 Hình 2.2 Các vector văn bản theo mô hình LSI 39 Hình 2.3 Biểu diễn ma trận xấp xỉ Ak có hạng là k 42 Hình 2.4 Biểu đồ 2-D của 16 thuật ngữ và 17 tài liệu từ tập mẫu. 44 Hình 2.5 Sơ đồ SVD của một ma trận hình chữ nhật thuật ngữ- tài liệu. 45 Hình 2.6 Sơ đồ của SVD được giảm lược của một ma trận thuật ngữ-tài liệu . 46 Hình 2.7 Đồ thị Recall – Precision của thuật toán LSI 54 Hình 3.1 Kiến trúc mô hình tìm kiếm LSI 65 Hình 3.2 Giao diện cấu hình . 66 Hình 3.3 Giao diện tìm kiếm . 66 Hình 3.4 Giao diện kết quả tìm kiếm 67 MỞ ĐẦU Việc tìm kiếm và lưu trữ thông tin từ xa xưa đã được con người chú trọng và quan tâm. Ngày nay, với sự phát triển nhanh chóng của lĩnh vực thông tin và Internet đã tạo ra một khối lượng thông tin vô cùng lớn với sự phong phú, đa dạng và phức tạp của các loại hình như: văn bản, hình ảnh, video, siêu văn bản, đa phương tiện…Vấn đề tìm kiếm thông tin đa phương tiện hiện vẫn được các chuyên gia nghiên cứu trong việc truy tìm thông tin phù hợp với yêu cầu của người sử dụng. Văn bản là một trong số các dạng của dữ liệu đa phương tiện. Nó đã được quan tâm từ hàng nghìn năm trước trong việc tổ chức, sắp xếp và lưu trữ các loại hình tài liệu. Cho đến nay, tài liệu dưới dạng văn bản vẫn chiếm đa số trong mọi cơ quan, tổ chức, đặc biệt là trong thư viện. Đồng thời, văn bản còn được sử dụng để mô tả các dạng khác của dữ liệu đa phương tiện như video, audio, hình ảnh. Xuất phát từ nhu cầu thực tế sử dụng, số lượng tài liệu văn bản dạng số hóa hiện nay ngày càng lớn và được sử dụng rất phổ biến. Vì vậy việc lưu trữ, xử lý và truy tìm thủ công trước đây đã gặp rất nhiều khó khăn, không thể hoặc khó có thể thực hiện và tìm kiếm được, hoặc có thể tìm kiếm được nhưng hiệu quả không cao. Chính vì vậy, việc tìm kiếm văn bản theo nội dung có vai trò hết sức quan trọng. Cùng với sự ra đời và phát triển của máy tính, các công cụ xử lý cũng ngày càng hoàn thiện dựa trên những kỹ thuật hiện đại để phục vụ cho nhu cầu đó. Các mô hình truy tìm thường được sử dụng trong phạm vi này, đó là: Đối sánh chính xác, không gian vector, xác suất và trên cơ sở cụm. Song, nhược điểm cơ bản của các mô hình truy tìm thông tin hiện nay là những từ mà người tìm kiếm sử dụng, thường không giống với những từ đã được đánh chỉ mục trong thông tin tìm kiếm. Vấn đề này liên quan nhiều đến hai khía cạnh thực tế: Thứ nhất là tính đồng nghĩa (synonymy)- cùng một thông tin 57 3.2 Chức chương trình thử nghiệm Chương trình được xây dựng với hai chức năng chính như sau: Tạo mục - Lấy nội dung từ tài liệu có trong thư mục: Với mỗi tài liệu: Đọc những từ có trong tài liệu (Sử dụng thư viện miễn phí EPocalipse.IFilter.dll để hỗ trợ đọc tệp doc, docx) Lọc các từ vô nghĩa bằng cách so sánh với Stopword Với mỗi từ: Sử dụng thuật toán Poster Stemmer để đưa ra các từ gốc (với văn bản tiếng Anh) - Tạo ma trận Term - Document - Tạo ma trận trọng số Term - Document - Tính SVD - Lưu các tính toán vào index.bin để sử dụng trong quá trình tìm kiếm Đưa các từ được lọc vào wordlist. A = USVT - Hiển thị kết quả tìm kiếm cho người dùng sau khi đã được xếp hạng mức độ liên quan giữa câu truy vấn và các tài liệu. Code : private void IndexThings() { string progressLabel = @"Đánh mục nội dung "; lsiReader oReader = new lsiReader(); oReader.UpdateStatus += new lsiReader.LsiEventHandler(IndexThingsUpdateStatus); oReader.IndexDirectory(LSICommon.Instance.LSIConfig.document_directory); m_oWorker.ReportProgress(2, progressLabel); 58 DotNetMatrix.GeneralMatrix oLocalWeights = new DotNetMatrix.GeneralMatrix(oReader.WordList.Count, oReader.DocList.Count); DocWordRelation oDocWord; foreach (DictionaryEntry oRow in oReader.WordList) { foreach (DictionaryEntry oCol in oReader.DocList) { oDocWord.DocID = (int)oCol.Key; oDocWord.WordID = (int)oRow.Value; if (oReader.DocWordRelation.ContainsKey(oDocWord)) { oLocalWeights.Array[(int)oRow.Value][(int)oCol.Key] = (int)oReader.DocWordRelation[oDocWord]; } else { oLocalWeights.Array[(int)oRow.Value][(int)oCol.Key] = 0; } } } m_oWorker.ReportProgress(30, progressLabel); double[] oGlobalTermWeights = new double[oReader.WordList.Count]; double[] oDocNormFactors = new double[oReader.DocList.Count]; for (int i = 0; i < oLocalWeights.Array.Length; i++) { int sum = 0; double Fi = 0; for (int j = 0; j < oLocalWeights.Array[i].Length; j++) { if (oLocalWeights.Array[i][j] > 0) { sum+=1; Fi += oLocalWeights.Array[i][j]; } 59 } if (sum > 0) oGlobalTermWeights[i] = Math.Log(oReader.DocList.Count/ (double)sum); else oGlobalTermWeights[i] = 0; } m_oWorker.ReportProgress(40, progressLabel); for (int j = 0; j < oLocalWeights.Array[0].Length; j++) { double sum = 0; for (int i = 0; i < oLocalWeights.Array.Length; i++) { sum += (oGlobalTermWeights[i] * oLocalWeights.Array[i][j]) * (oGlobalTermWeights[i] * oLocalWeights.Array[i][j]); } oDocNormFactors[j] = / Math.Sqrt(sum); } m_oWorker.ReportProgress(50, progressLabel); DotNetMatrix.GeneralMatrix oWTDM = new DotNetMatrix.GeneralMatrix(oReader.WordList.Count, oReader.DocList.Count); for (int i = 0; i < oWTDM.Array.Length; i++) { for (int j = 0; j < oWTDM.Array[i].Length; j++) { oWTDM.Array[i][j] = oLocalWeights.Array[i][j] * oGlobalTermWeights[i] * oDocNormFactors[j]; } } m_oWorker.ReportProgress(60, progressLabel); DotNetMatrix.SingularValueDecomposition svd = new DotNetMatrix.SingularValueDecomposition(oWTDM); 60 int svd_rank = (int)(oReader.DocList.Count * ((double)LSICommon.Instance.LSIConfig.k_percent_for_rank_approx)); if (svd_rank == || svd_rank > oReader.DocList.Count) svd_rank = oReader.DocList.Count; DotNetMatrix.GeneralMatrix sk = new DotNetMatrix.GeneralMatrix(svd_rank, svd_rank); for (int i = 0; i < svd_rank; i++) { for (int j = 0; j < svd_rank; j++) { sk.Array[i][j] = svd.S.Array[i][j]; } } m_oWorker.ReportProgress(70, progressLabel); DotNetMatrix.GeneralMatrix skinv = sk.Inverse(); DotNetMatrix.GeneralMatrix u = svd.GetU(); // U DotNetMatrix.GeneralMatrix uk = new DotNetMatrix.GeneralMatrix(u.Array.Length, svd_rank); for (int i = 0; i < u.Array.Length; i++) { for (int j = 0; j < svd_rank; j++) { uk.Array[i][j] = u.Array[i][j]; } } m_oWorker.ReportProgress(80, progressLabel); Tìm kiếm - Lấy dữ liệu từ file index.bin để phục vụ cho quá trình tìm kiếm - Lấy nội dung câu truy vấn, lọc từ dừng - Tạo vector qT làm danh sách từ - Tính vector truy vấn q = qT × Uk × Sk (vector đơn vị) - Tạo vector của các văn bản: Với mỗi văn bản Tạo vector dT 61 Tính vector d = dT × Uk × Sk (vector đơn vị) - Tính toán độ tương đồng giữa câu truy vấn và tài liệu Với mỗi tài liệu Lấy vector “d” Tính cosin (q,d) - Hiển thị danh sách kết quả theo chiều giảm dần của mức độ liên quan. Code: private void FindThings() { Hashtable WordList = new Hashtable(); Hashtable DocList = new Hashtable(); DotNetMatrix.GeneralMatrix uk=null; DotNetMatrix.GeneralMatrix skinv = null; DotNetMatrix.GeneralMatrix oWTDM = null; DocIndex oDocIndex; oDocIndex.DocList = null; oDocIndex.WordList= null; oDocIndex.uk = null; oDocIndex.WTDM = null; oDocIndex.skinv = null; string index_path = LSICommon.Instance.LSIAppPath + @"\index.bin"; bool bRead=false; BinaryFormatter bf = new BinaryFormatter(); if (File.Exists(index_path)) { try { FileStream f = File.Open(LSICommon.Instance.LSIAppPath + @"\index.bin", FileMode.Open); oDocIndex = (DocIndex)bf.Deserialize(f); f.Close(); bRead = true; } catch { bRead = false; } } else 62 { bRead = false; } if (!bRead) { MessageBox.Show("Chưa tạo mục! Hãy bấm nút Chỉ mục!"); return; } for (int i = 0; i < oDocIndex.WordList.Length; i++) { WordList.Add(oDocIndex.WordList[i].key, oDocIndex.WordList[i].value); } for (int i = 0; i < oDocIndex.DocList.Length; i++) { DocList.Add(oDocIndex.DocList[i].key, oDocIndex.DocList[i].value); } uk = new DotNetMatrix.GeneralMatrix( oDocIndex.uk); skinv = new DotNetMatrix.GeneralMatrix(oDocIndex.skinv); oWTDM = new DotNetMatrix.GeneralMatrix(oDocIndex.WTDM); string newquery = txtQuery.Text; string[] newqwords = LSICommon.Instance.GetWords(newquery); DotNetMatrix.GeneralMatrix qt = new DotNetMatrix.GeneralMatrix(1, WordList.Count); for (int i = 0; i < WordList.Count; i++) qt.Array[0][i] = 0; PorterStemmer oStemmer = new PorterStemmer(); for (int i = 0; i < newqwords.Lenagth; i++) { newqwords[i] = oStemmer.stemTerm(newqwords[i]); if (WordList.ContainsKey(newqwords[i])) { qt.Array[0][(int)WordList[newqwords[i]]] += 1; } } double qtmax = 0; for (int i = 0; i < qt.Array[0].Length; i++) if (qt.Array[0][i] > qtmax) qtmax = qt.Array[0][i]; 63 double[] simarray = new double[DocList.Count]; if (qtmax != 0) { for (int i = 0; i < qt.Array[0].Length; i++) { qt.Array[0][i] = (qt.Array[0][i] / qtmax); } DotNetMatrix.GeneralMatrix qt_uk = qt.Multiply(uk); // DotNetMatrix.GeneralMatrix q = qt_uk.Multiply(skinv); for (int l = 0; l < DocList.Count; l++) { DotNetMatrix.GeneralMatrix d_v = new DotNetMatrix.GeneralMatrix(WordList.Count, 1); for (int k = 0; k < WordList.Count; k++) { d_v.Array[k][0] = oWTDM.Array[k][l]; } DotNetMatrix.GeneralMatrix dt = d_v.Transpose(); DotNetMatrix.GeneralMatrix dt_uk = dt.Multiply(uk); DotNetMatrix.GeneralMatrix d = dt_uk.Multiply(skinv); simarray[l] = 0; simarray[l] = calculate_cosine_sim(q.Array[0], d.Array[0]); } } else { MessageBox.Show("Không tìm thấy!"); } DataTable oResTable = new DataTable(); DataRow oResDR = null; oResTable.Columns.Add("filename", typeof(string)); oResTable.Columns.Add("val", typeof(double)); for (int i = 0; i < simarray.Length; i++) { oResDR = oResTable.NewRow(); oResDR["val"] = (Math.Round(simarray[i],6)); 64 oResDR["filename"] = DocList[i].ToString(); oResTable.Rows.Add(oResDR); } dataGridView1.DataSource = oResTable; dataGridView1.Sort(dataGridView1.Columns["val"], ListSortDirection.Descending); dataGridView1.Columns["val"].HeaderText = "Đánh giá"; dataGridView1.Columns["filename"].HeaderText = "Đường dẫn"; dataGridView1.Columns["val"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dataGridView1.Columns["filename"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dataGridView1.RowHeadersVisible = false; DataGridViewCellStyle oCellStyle = new DataGridViewCellStyle(); oCellStyle.BackColor = Color.AliceBlue; dataGridView1.AlternatingRowsDefaultCellStyle = oCellStyle; try { foreach (DataGridViewRow oRow in dataGridView1.Rows) { double rank = 0; double.TryParse(oRow.Cells["val"].Value.ToString(),out rank); if (rank > 0) { string filePath = oRow.Cells["filename"].Value.ToString().Trim(); oRow.Cells["filename"].ToolTipText = ReadShortTextContent(filePath); oRow.DefaultCellStyle.BackColor = System.Drawing.ColorTranslator.FromHtml("#fbfb37"); } } } catch { } } Dưới đây là kiến trúc mô hình tìm kiếm theo mô hình LSI sử dụng kỹ thuật SVD: 65 Tập văn bản Câu truy vấn Tạo listwords Tạo Term – Document Matrix A Vector hoá Tính SVD(A) Chọn hệ số k T Tính A A = UkSk Vk Xử lý truy vấn Index.bin Xếp hạng kết quả Danh sách các tập tin Hình 3.1 Kiến trúc mô hình tìm kiếm LSI Với: - listword: Danh sách từ sau loại bỏ từ dừng 3.3 Hoạt động chương trình Giao diện tìm của chương trình gồm có các chức năng chính: Cấu hình, chỉ mục, tìm kiếm. 66 Hình 3.2 Giao diện cấu hình Trước khi tìm kiếm, người dùng chọn chức năng cấu hình để lựa chọn thư mục tìm kiếm và nhập hệ số k (đã phân tích chương II). Hình 3.3 Giao diện tìm kiếm Sau khi lựa chọn thư mục tìm kiếm và hệ số k, người dùng kích chọn nút Chỉ mục để chỉ mục các tài liệu. 67 Hình 3.4 Giao diện kết tìm kiếm Ở giao diện hiển thị kết quả, các văn bản sẽ được hiển thị theo chiều tăng dần của mức độ liên quan đến câu truy vấn và được “tô vàng” với những văn bản có rank >0. 3.4 So sánh mô hình tìm kiếm Do tính hiệu quả thấp của mô hình Boolean, mô hình tìm kiếm theo xác suất nên hiện nay mô hình tìm kiếm theo không gian vector và mô hình LSI đang được nghiên cứu phục vụ cho việc xây dựng các hệ thống IR hiện đại. Mô hình LSI được đưa ra để khắc phục những hạn chế của mô hình không gian vector là vấn đề đồng nghĩa và đa nghĩa của từ. Hiệu quả của mô hình LSI được đánh giá là cao hơn mô hình không gian vector. - Về không gian lưu trữ dữ liệu chỉ mục: Giả sử, ta phải lưu trữ ma trận A(M N) với M = 1.000.000, N = 1.000.000, trong mô hình không gian vector ta phải sử dụng: M N = 10GB (mỗi giá trị là 1byte). Trên cơ sở SVD, chúng ta lưu trữ các ma trận U, S, V 68 thay cho A, với k = 500, ta có không gian lưu trữ cần dùng là 1000.000 500 + 500 500 + 1.000.000 500 = 505.25 MB. Giá trị này rất nhỏ so với 10GB. - Về thời gian thực thi thủ tục truy vấn: Trong mô hình LSI, lượng dữ liệu lưu trữ chỉ mục ít hơn nhiều so với mô hình không gian vector nên việc tính toán cho thủ tục truy vấn này cũng sẽ nhanh hơn rất nhiều. 69 KẾT LUẬN Kết luận Kỹ thuật tìm kiếm thông tin trong hệ thống cơ sở dữ liệu đa phương tiện đã và đang là một vấn đề mang tính thời sự của Công nghệ thông tin. Bản luận văn này đã đề cập được một số vấn đề mang tính chất cơ sở của CSDL đa phương tiện và một số kỹ thuật tìm kiếm văn bản theo nội dung trong CSDL đa phương tiện như mô hình Bool cơ sở, mô hình không gian vector, và một số kỹ thuật nâng cao tìm kiếm như: kỹ thuật tìm kiếm theo xác suất, kỹ thuật phân cụm và đặc biệt đi sâu vào tìm hiểu kỹ thuật chỉ mục ngữ nghĩa tiềm ẩn (LSI - Latent Semantic Indexing). Bản luận văn cũng đã xây dựng chương trình thử nghiệm, demo chức năng lập chỉ mục và một số kỹ thuật tìm kiếm văn bản đơn giản. Đây cũng là cơ sở cho việc tiếp tục xây dựng và đánh giá tính hiệu quả của các kỹ thuật nâng cao tìm kiếm sau này. Bên cạnh đó, luận văn còn một số nhược điểm như: Chương trình mới chỉ mô tả được thuật toán tìm kiếm, chưa mô tả được hoàn thiện một chương trình tìm kiếm. Chưa so sánh được chi tiết các phương pháp tìm kiếm nêu ra; chưa đánh giá được hiệu năng tìm kiếm của từng phương pháp trên một tập dữ liệu cụ thể. Do sự eo hẹp về thời gian cũng như hạn chế về tài liệu và trình độ lập trình còn yếu kém nên bản luận văn chưa thể đi sâu vào việc xây dựng và cài đặt một chương trình thử nghiệm áp dụng kỹ thuật nâng cao trong tìm kiếm văn bản theo nội dung như mong muốn. Hướng phát triển Đây là một đề tài có tính thực tế cao. Với nhiệm vụ là nghiên cứu, luận văn đã đáp ứng được một số yêu cầu cơ bản đặt ra.Tuy nhiên để áp dụng kỹ thuật nâng cao tìm kiếm vào một chương trình ứng dụng cụ thể cho người sử dụng thì đòi hỏi phải có thêm thời gian nghiên cứu không chỉ với các kỹ thuật 70 tìm kiếm mà còn một số kỹ thuật khác liên quan đến việc truy tìm sao cho đạt hiệu quả tốt nhất. Do đó hướng phát triển của luận văn như sau: + Thêm chức năng tự thu thập tài liệu định kì và tự động cập nhập chỉ mục; + Cài đặt chương trình tìm kiếm văn bản sử dụng kỹ thuật nâng cao; + Phát triển ứng dụng có áp dụng kỹ thuật nâng cao tìm kiếm để cung cấp một bộ máy tìm kiếm hiệu quả cho người sử dụng (cụ thể là áp dụng vào hệ thống thư viện số của Trường Đại học Hùng Vương). 71 TÀI LIỆU THAM KHẢO Tiếng Việt [1] PGS.TS. Đặng Văn Đức (2004-2008), Bài giảng Cơ sở liệu đa phương tiện. Tiếng Anh [2] Cherukuri Aswani Kumar, Suripeddi Srinivas (2006) , “Latent Semantic Indexing Using Eigenvalue Analysis for Efficient Information Retrieval”, Int. J. Appl. Math. Comput. Sci., 2006, Vol. 16, No. 4, pp. 551–558 [3] Edel Garcia (2006), Latent Semantic Indexing (LSI) A Fast Track Tutorial [4] Guojun Lu, Multimedia Database Management Systems, Artech House Boston – London [5] Grossman and Frieder (2004), Information Retrieval, Springer Science & Business Media [6] Jamie Callan (2008), Information Retrieval, Carnegie Mellon University. [7] Karl Aberer (2003), Data Mining, Laboratoire de systèmeses d’informations répartis. [8] Marcel Worring, Multimedia Information Systems, Lecture Notes, University of Amsterdam [9] Ricardo Baeza, Berthier Ribeiro (1999), Modern Information Retrieval, ACM Press New York. Website [10] http://www.anupshinde.com [11] http://www.miislita.com [12] http://vi.wikipedia.org. [...]... (không phải trên các thuật ngữ đơn). Luận văn này tập trung nghiên cứu về lớp bài toán tìm kiếm nội dung văn bản, một số kỹ thuật tìm kiếm văn bản, cài đặt chương trình mô phỏng mô hình tìm kiếm văn bản theo nội dung dựa trên phân tích SVD và ứng dụng vào công việc xử lý, tìm kiếm văn bản tại Trường Đại học Hùng Vương. Bố cục của luận văn bao gồm các chương sau: Luận văn được trình bày thành 3 phần bao gồm: phần mở đầu, phần nội ... truy tìm thông tin (IR) tiêu biểu và cụ thể là truy tìm tài liệu văn bản Chương 2. Một số vấn đề về tìm kiếm văn bản theo nội dung: Đề cập đến vấn đề chỉ mục tài liệu và thước đo hiệu năng Nghiên cứu một số mô hình tìm kiếm như: Boolean, không gian vector, mô hình truy tìm theo xác suất, phương pháp LSI, kỹ thuật phân tích ma trận SVD Chương 3. Ứng dụng thử nghiệm: Cài đặt thử nghiệm một số mô... như tên tác giả, ngày tạo lập, tiêu đề đối tượng. Không mô tả hay diễn giải nội dung của đối tượng. Các thuộc tính này được quản lý bằng kỹ thuật DBMS. Mô tả bằng văn bản: Mô tả nội dung đối tượng bằng văn bản. Mô tả dưới hình thức nhiều từ khóa hay văn bản thông thường. Chỉ mục và tìm kiếm trên cơ sở mô tả bằng văn bản được quản lý bằng kỹ thuật IR. Mặc dù mô tả bằng văn bản có hạn chế là còn tính chủ quan và chưa đầy đủ, nhưng đây vẫn ... Ta có thể thấy các dạng khác nhau của chuỗi như ở các file dữ liệu, hay chính văn bản chúng ta đang đọc. Kỹ thuật truy vấn tài liệu văn bản được gọi chung là kỹ thuật truy tìm thông tin (IR). Các hệ thống IR cổ điển chủ yếu là làm việc trên văn bản (text) và kỹ thuật IR trong hệ thống đa phương tiện rất quan trọng vì hai lý do chính sau đây: - Đang tồn tại số lượng lớn tài liệu văn bản trong các thư viện. Văn bản là tài nguyên rất quan trọng đối với các cơ quan tổ chức. Cần có IR đủ tốt để ... gồm các bản ghi không có cấu trúc. Chúng không chứa các thuộc tính cố định. Nó chỉ đơn thuần là tài liệu văn bản. Các tài liệu này có thể chỉ mục bằng các từ khóa, bộ mô tả tài liệu, hay các thuật ngữ (term) chỉ mục. Mỗi thuật ngữ chỉ mục được sử dụng để mô tả nội dung văn bản chỉ theo một khía cạnh nào đó, không đầy đủ và không rõ ràng cho toàn bộ nội dung văn bản. Nhiều thuật ngữ chỉ mục được gắn theo tài liệu hay văn bản cụ ... là điển hình tìm kiếm văn bản theo mô hình boolean khá tốt hiện nay. Hệ tìm kiếm văn bản Lucene: Hệ tìm kiếm văn bản Lucene là hệ tìm kiếm mã nguồn mở . Hệ thống được phát triển cả trên nền .Net và cả trên ngôn ngữ Java. Hệ thống hiện cũng được khá nhiều lập trình viên phát triển. 1.1.6 Xếp hạng tài liệu (Ranking) [1][4] Một truy vấn Boolean cho một máy tìm kiếm có thể đáp ứng tới hàng vài nghìn tài liệu phù hợp, nhưng một người sử dụng thông thường sẽ chỉ có ... DTSearch là một hệ tìm kiếm thực hiện theo mô hình boolean. Nó lập chỉ mục khá nhanh và có nhiều lựa chọn thích hợp cho người sử dụng. Ngoài việc cung cấp giao diện tìm kiếm trực tiếp và lập chỉ mục thì DTSearch còn cung cấp thư viện dll dùng cho lập trình viên. Thư viện dll này có khả năng lập chỉ mục, thực hiện tìm kiếm theo mô hình boolean. Có thể nói DTSearch là điển hình tìm kiếm văn bản theo mô hình boolean khá tốt hiện nay. ... thực hiện lặp vài lần. Chú ý rằng, không phải tất cả các hệ thống IR đều có tiến trình phản hồi thích hợp. Các hệ thống tìm kiếm thường được sử dụng hiện nay: Google Desktop: Google desktop search giúp cho chúng ta có thể tìm kiếm một cách dễ dàng trong máy tính của mình giống như việc tìm kiếm trên web của google. Google Desktop là một ứng dụng cung cấp cho chúng ta tìm kiếm một văn bản với từ khóa đầy đủ trong mail, các file, âm nhạc, ảnh, chat, Gmail, và các ... thống tìm kiếm thông tin là một hệ thống có khả năng lưu trữ, tìm kiếm và duy trì thông tin. Thông tin trong những trường hợp này có thể bao gồm văn bản, hình ảnh, âm thanh, video và những đối tượng đa phương tiện khác.” Tìm kiếm thông tin là lĩnh vực nghiên cứu nhằm tìm ra các giải pháp giúp người sử dụng có thể tìm thấy các thông tin mình cần trong một khối ... các thuật ngữ xuất hiện trong truy vấn (do tính đồng nghĩa). Một ý tưởng thú vị xét xem liệu việc truy tìm có thể dựa vào các khái niệm có hiệu quả hơn là trên các thuật ngữ, đó là mô hình LSI (Latent Semantic Indexing) dựa trên kỹ thuật phân tích ma trận SVD (singular value decomposition), là các giải pháp hữu hiệu cho vấn đề truy tìm thông tin dựa trên cơ sở nội dung tài liệu văn bản, tìm kiếm trên cơ sở những khái
Ngày đăng: 23/08/2016, 15:03
Xem thêm: Một số kỹ thuật tìm kiếm văn bản theo nội dung , Một số kỹ thuật tìm kiếm văn bản theo nội dung