Hướng dẫn xây dựng hệ thống tìm kiếm thông tin trên kho tài liệu tiếng Việt

MỤC LỤC

XÂY DỰNG MỘT HỆ THỐNG TÌM KIẾM THÔNG TIN

  • Một số mô hình để xây dựng một hệ tìm kiếm thông tin [1.2]
    • Các bước để xây dựng một hệ tìm kiếm thông tin. [2]
      • Những khó khăn trong việc xây dựng một hệ thống tìm kiếm thông tin tiếng Việt

        Mô hình không gian vector tính toán độ tương quan giữa câu hỏi và tài liệu bằng cách định nghĩa một vector biễu diễn cho mỗi tài liệu, và một vector biểu diễn cho câu hỏi [ Salton, 1875]. Mô hình tìm kiếm Boolean mở rộng ra đời nhằm hỗ trợ việc sắp xếp (ranking) kết quả trả về dựa trên ý tưởng cơ bản là đánh trọng số cho mỗi từ trong câu hỏi và trong tài liệu. Các tài liệu sau khi đã xác định là liên quan đến câu hỏi của người dùng sẽ được sắp xếp lại, bởi vì trong các tài liệu đó có những tài liệu liên quan đến câu hỏi nhiều hơn.

        Hình 2-3 Hệ tìm kiếm thông tin tiêu biểu
        Hình 2-3 Hệ tìm kiếm thông tin tiêu biểu

        TÁCH TỪ TỰ ĐỘNG

        Tách từ trong Tiếng Việt

        • Một số đặc điểm chính về từ tiếng Việt [2.2]

          Về mặt ngữ nghĩa, tiếng là đơn vị nhỏ nhất có nghĩa, nhưng cũng có một số tiếng không có nghĩa. Sau đây chúng ta sẽ nghiên cứu một số phương pháp được sử dụng để tách từ cho các văn bản tiếng Việt.

          Các phương pháp tách từ tiếng Việt

          • fnTBL (Fast Transformation-based learning) []

            Ý tưởng chính của phương pháp học dựa trên sự biến đổi (TBL) là để giải quyết một vấn đề nào đó ta sẽ áp dụng các phép biến đổi, tại mỗi bước, phép biến đổi nào cho kết quả tốt nhất sẽ được chọn và được áp dụng lại với vấn đề đã đưa ra. Ở bước (3) so sánh tập dữ liệu học với tập dữ liệu đang xét, dựa vào các mẫu luật đã cho, ta sẽ rút ra được các luật ứng viên, ứng với mỗi luật ứng viên ta lại áp dụng vào tập dữ liệu đang xét và tính điểm cho nó (dựa vào số lỗi phát sinh khi so sánh với tập dữ liệu học là tập dữ liệu chuẩn). Theo phương pháp này, để tách từ tiếng Việt ta đi từ trái sang phải và chọn từ có nhiều âm tiết nhất mà có mặt trong từ điển, rồi cứ tiếp tục cho từ kế tiếp cho đến hết câu.

            Hình 3-4 Quá trình học 3.1.2.2 Xác định từ cho tài liệu mới
            Hình 3-4 Quá trình học 3.1.2.2 Xác định từ cho tài liệu mới

            LẬP CHỈ MỤC

            • Phương pháp lập chỉ mục [1.1]
              • Tập tin nghịch đảo tài liệu

                Điều này sẽ loại bỏ các từ ít xuất hiện trong tập tài liệu, nên sự có mặt của các từ này cũng không ảnh hưởng đến việc thực hiện truy vấn. Ý tưởng chính là một từ xuất hiện thường xuyên trong tất cả các tài liệu thì ít quan trọng hơn là từ chỉ xuất hiện tập trung trong một số tài liệu. Trọng số của từ k trong tài liệu Di tăng nếu tần số xuất hiện của từ k trong tài liệu i tăng và giảm nếu tổng số tài liệu có chứa từ k tăng.

                Nghĩa là, một từ có sự phân phối đều trong tất cả các tài liệu thì độ nhiễu của nó càng lớn, ngược lại một từ chỉ tập trung trong một số tài liệu nào đó thì độ nhiễu của nó càng nhỏ. Những từ này chiếm khoảng 40- 50% các từ, như đã đề cập trước đây, chúng có độ phân biệt kém do đó không thể sử dụng để đại diện cho nội dung của tài liệu. Trước hết cần loại bỏ các hậu tố để đưa về từ gốc, ví dụ các từ như : analysis, analyzing, analyzer, analyzed, analysing có thể chuyển về từ gốc là “analy.” Từ gốc sẽ có tần số xuất hiện cao hơn so với các dạng thông thường của nó.

                Sau khi có được danh sách các từ gốc, sử dụng phương pháp dựa vào tần số (frequency – based) để xác định tầm quan trọng của các từ gốc này. Chúng ta có thể sử dụng một trong các phương pháp đã được đề cập ở trên như : tần số tài liệu nghịch đảo (inverse document frequency), độ tín hiệu (SIGNALk), độ phân biệt từ (DISVALUEk).  Giai đoạn tách từ trong tiếng Anh chỉ đơn giản dựa vào khoảng trắng, còn tiếng Việt là ngôn ngữ đơn lập, một từ có thể có nhiều tiếng.

                Tuy nhiên, khó khăn chính của tập tin nghịch đảo là khi thêm một tài liệu mới, tất cả các từ có liên quan đến tài liệu này đều phải được cập nhật lại.

                Hình 4-6 Các từ được sắp theo thứ tự
                Hình 4-6 Các từ được sắp theo thứ tự

                PHÂN TÍCH VÀ THIẾT KẾ

                • Sơ đồ Lớp
                  • Tách từ
                    • Lập chỉ mục
                      • Tìm kiếm

                        4 Cac tai lieu lien quan cau hoi Các tài liệu trả về khi người sử dụng nhập vào câu hỏi. 5 Tập tin chi muc Tập tin chứa các từ khóa cùng với các tài liệu chứa từ khóa đó. 3 Cap nhat tập tin chi muc Cập nhật thêm các tài liệu mới vào tập tin chỉ mục có sẵn.

                        2. Sơ đồ Lớp
                        2. Sơ đồ Lớp

                        THIẾT KẾ VÀ CÀI ĐẶT

                        Cấu trúc lưu trữ dữ liệu

                        • Tập tin lưu nội dung tài liệu
                          • Tập tin sau khi tách từ tài liệu
                            • Tập tin chứa các từ không thể hiện nội dung của văn bản (stop list)
                              • Tập tin chỉ mục đảo ( Inverted )
                                • Tập tin sau khi tách từ câu hỏi
                                  • Tập tin chứa các từ của câu hỏi sau khi loại bỏ các từ trong danh sách StopList
                                    • Tập tin chứa các từ trong câu hỏi và các tài liệu liên quan
                                      • Tập tin chứa độ tương quan giữa câu hỏi và các tài liệu

                                        <!ELEMENT CONTENT (#PCDATA)>. </ElementType>. </ElementType>. <NEWSPAPERS>. <TITLE>Thanh niên VN: động lực cho những tầm nhìn mới</TITLE>. <AUTHOR>Tác giả: Đ.Bình</AUTHOR>. <CONTENT>Thanh niên VN: động lực cho những ý tưởng mới, tầm nhìn mới. phối hợp với các cơ quan LHQ tại VN tổ chức), ông Edouard Wattez, điều phối viên thường trú LHQ tại VN, TN VN có vai trò quan trọng trong quá trình mở cửa với thế giới. Đây là tập tin Xml lưu các từ tách được từ các tập tin văn bản gốc cùng với các ID tham chiếu tới chúng. Mỗi tập tin chứa các từ của 50 tài liệu tương ứng trong tập tin văn bản gốc, trong chương trình các tập tin này được lưu ở thư mục “TachTu”.

                                        Đây là tập tin Xml chứa các từ không thể hiện nội dung của văn bản, gọi là danh sách StopList, trong chương trình tập tin này nằm trong thư mục “StopList”. Tập tin chỉ mục đảo lưu các từ chỉ mục, mỗi từ có các tham chiếu đến tài liệu chứa từ đó kèm theo tần số, trọng số của từ đó trong tài liệu, trong chương trình tập tin này được lưu trong thư mục “Inverted ”. Tập tin này chứa các từ tách được trong câu hỏi, trong chương trình nó được lưu trong thư mục “CauHoi”.

                                        Tập tin này chứa các từ trong câu hỏi và các tham chiếu đến các tài liệu chứa các từ này, kèm theo tần số, trọng số của mỗi từ trong tài liệu tương ứng, nó được lưu trong thư mục “CauHoi” và tên tập tin là “CauHoiVaTaiLieu.xml”. Tập tin này chứa tất cả các tài liệu liên quan đến câu hỏi, mỗi tài liệu sẽ có độ tương quan tương ứng và số từ trong câu hỏi mà tài liệu đó chứa.

                                        Chi tiết các lớp đối tượng

                                        • Các lớp trong quá trình tách từ .1 Sơ đồ các lớp
                                          • Các lớp trong quá trình lập chỉ mục .1 Sơ đồ các lớp
                                            • Các lớp trong quá trình tìm kiếm .1 Sơ đồ các lớp

                                              - Hàm TachThanhCumTu( ) : tách chuỗi văn bản thành các cụm từ dựa vào các kí tự đặc biệt như : dấu chấm, phẩy, chấm hỏi, chấm than…. Lớp tách từ sẽ có nhiệm vụ tạo tập tin văn bản Xml từ tập tin văn bản gốc, sau đó sẽ trích các từ trong văn bản và cuối cùng lưu lại các từ trích được cùng với các tài liệu chứa từ đó thành tập tin Xml tách từ. Nó sẽ làm nhiệm vụ tính tần số, trọng số của từ trong tài liệu sau đó sẽ lưu các thông tin này lại thành tập tin Xml chỉ mục tài liệu.

                                              - Sự kiện btnLapChiMuc_Click() : dùng đối tượng lcm (của lớp lập chỉ mục) để lập chỉ mục cho tất cả các tập tin trong ListBox2. - Sự kiện btnCapNhat_Click( ) : dùng đối tượng lcm (của lớp lập chỉ mục) để cập nhật chỉ mục cho tất cả các tập tin trong ListBox2, các tập tin nếu đã được lập chỉ mục rồi thì chương trình tự động bỏ qua. Lớp CTimKiem sẽ có nhiệm vụ tách từ câu hỏi, loại bỏ các từ trong danh sách StopList, sau đó tìm các từ khóa của câu hỏi trong tập tin Inverted để xác định các tài liệu liên quan đến câu hỏi, cuối cùng là tính độ tương quan giữa các tài liệu với câu hỏi, sắp xếp độ tương quan giảm dần và hiển thị cho người sử dụng.

                                              - Hàm ThemDocVaWeight( ) : hàm này nhằm mục đích là tìm kiếm trong tập tin Inverted các tài liệu liên quan đến các từ khóa của câu hỏi. - Hàm BoSungCacDocThieu( ) : hàm này nhằm mục đích bổ sung các tài liệu có trong từ khóa này mà không có trong từ khóa khác ( phần tần số và trọng số ta sẽ để giá trị là 0 ). - Hàm TaoFileDoTuongQuan( ) : hàm này nhằm mục đích tạo ra tập tin TuongQuan.xml chứa câu hỏi và các tài liệu liên quan đến câu hỏi kèm với độ tương quan dựa vào tập tin CauHoiVaTaiLieu.xml.

                                              - Xem từ khóa của tài liệu : nghĩa là khi người sử dụng chọn một tài liệu nào đó và chọn chức năng xem từ khóa tài liệu thì họ sẽ thấy từ khóa đó xuất hiện với tần số bao nhiêu và trọng số tương ứng của nó. - Hàm TimKiem_Click( ) : hàm này sẽ dùng đối tượng của lớp xử lý tìm kiếm để tách từ câu hỏi rồi tính độ tương quan của các tài liệu với câu hỏi. // Sau khi gọi 3 hàm này ta sẽ tạo ra được tập tin TuongQuan.xml Đọc tập tin TuongQuan.xml ta đưa vào mảng các DocID, Sim, Words SapXepUuTien();.

                                              Hình 6-29 Màn hình tách từ
                                              Hình 6-29 Màn hình tách từ

                                              Một số màn hình giao diện khác 1 Màn hình chính của chương trình

                                                <Noi_Dung>đất nước và con người Việt Nam</Noi_Dung>.

                                                Hình 6-45 Giao diện tìm kiếm trên Web
                                                Hình 6-45 Giao diện tìm kiếm trên Web

                                                TỔNG KẾT

                                                Đánh giá kết quả đạt được

                                                 Chưa tự động lấy được các tài liệu mới giống như một hệ thống Search Engine.