Một số kỹ thuật tìm kiếm văn bản theo nội dung

80 446 0
Một số kỹ thuật tìm kiếm văn bản theo nội dung

Đ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

ĐẠ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

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan