Hệ thống tìm kiếm thông tin xuyên ngôn ngữ Việt – Anh – Hoa

Trong các hệ thống tìm kiếm dựa trên so khớp chính xác, việc đánh giá hệ thống chủ yếu dựa trên việc đánh giá mức độ liên quan. Giả sử j là giá trị nhị phân và được cho trước. Nói cách khác, ta giả sử rằng các tài liệu hoặc có hoặc không có liên quan đến câu truy vấn, và độ liên quan giữa tài liệu và câu truy vấn do con người xác định là chính xác. Theo giả định này, tính hiệu quả của các hệ thống tìm kiếm dựa trên so khớp chính xác được đánh giá dựa trên 2 đại lượng thống kê là “độ chính xác” (precision) và “độ bao phủ” (recall). Độ chính xác là tỉ lệ các tài liệu được chọn, các tài liệu thực sự liên quan đến các thông tin mà người dùng cần, độ bao phủ là tỉ lệ tài liệu có liên quan được sắp xếp chính xác theo độ liên quan bởi hệ thống tìm kiếm. Nói cách khác, độ chính xác bằng 1 trừ đi tỉ lệ cảnh báo sai, trong khi đó độ bao phủ đo mức độ hoàn chỉnh của việc tìm kiếm. Bảng 1.1 minh họa cho các mối quan hệ này.

doc133 trang | Chia sẻ: Dung Lona | Ngày: 09/08/2016 | Lượt xem: 90 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Hệ thống tìm kiếm thông tin xuyên ngôn ngữ Việt – Anh – Hoa, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
oàn chỉnh Chính xác, đầy đủ 3.1.3.2 Kế hoạch thực hiện và sơ đồ PERT: STT Công việc Công việc kết thúc trước đó Thời gian thực hiện Thời gian tối thiểu 1 A 56 50 2 B A 1 1 3 C B 2 2 4 D A 3 3 5 E D 12 10 6 F E 14 12 7 G E 3 3 8 H F 5 4 9 I 7 7 10 J 7 7 11 K H, I, J 3 2 12 L G 14 12 13 M L 7 6 14 N M, K 3 3 15 O M 7 6 16 P O 7 6 17 Q P,N 3 3 Bảng 3.1 Bảng phân kế hoạch thực hiện Hình 3.2: Sơ đồ Gantt 3.2 Phân tích – thiết kế hệ thống: 3.2.1 Mô hình Usecase: Dựa trên đặc tả của bài toán và mô hình hệ thống chúng ta có mô hình usecase như sau: Chuyen ngu Nguoi dung Tim tai lieu Sap xep tai lieu Hình 3.3: Mô hình Usecase 3.2.2 Đặc tả usecase: 3.2.2.1 Usecase chuyển ngữ: ƒ Tóm tắt: chức năng thực hiện qui trình chuyển ngữ câu truy vấn do người dùng nhập vào. ƒ Dòng sự kiện: o Dòng sự kiện chính: ¾ Hệ thống yêu cầu người dùng nhập vào câu truy vấn tiếng Việt (đúng chính tả). ¾ Sau khi dịch câu truy vấn dựa trên các từ điền sẽ thực hiện khử nhập nhằng các bản dịch và chọn ra bản dịch tốt nhất. ¾ Khi người dùng chọn chức năng tìm kiếm, hệ thống sẽ chuyển bản dịch của câu truy vấn cho usecase tìm kiếm, đồng thời hiển thị kết quả chuyển ngữ lên màn hình. o Dòng sự kiện khác: ¾ Nếu câu truy vần là rỗng thì thông báo cho người dùng biết. 3.2.2.2 Usecase tìm tài liệu: ƒ Tóm tắt : chức năng này sẽ download các trang kết quả tìm kiếm được từ google dựa vào các câu truy vấn – kết quả chuyển ngữ của chức năng chuyển ngữ. ƒ Dòng sự kiện: o Dòng sự kiện chính: ¾ Nhận kết quả chuyển ngữ của usecase chuyển ngữ và gọi Google thực hiện. ¾ Phân tích trang kết quả do Google gửi về. o Dòng sự kiện khác: không có 3.2.2.3 Usecase sắp xếp tài liệu: ƒ Tóm tắt: sắp xếp các tài liệu nhận được theo trình tự Việt – Anh – Hoa. ƒ Dòng sự kiện: o Dòng sự kiện chính: ¾ Nhận các kết quả được phân tích trong usecase tìm kiếm và lần lượt sắp xếp xen kẽ theo tiếng Việt, tiếng Anh và tiếng Hoa. o Dòng sự kiện khác: không có. 3.2.3 Sơ đồ tuần tự: Căn cứ vào các đặc tả usecase trên ta có các sơ đồ tuần tự sau: 3.2.3.1 Usecase chuyển ngữ: :frmTimKiem cong cu tach tu Dich dua vao MRD cong cu khu nhap nhang : Nguoi dung 1: nhap cau truy van 2: cau truy van 3: tach tu 4: loai bo cac tu co trong stoplist 5: cac tu khoa da tach 6: dich tu khoa 7: cac ban dich cua cac tu khoa 8: khu nhap nhang 9: cac tu khoa da khu nhap nhang Hình 3.4: Usecase chuyển ngữ 3.2.3.2 Usecase tìm tài liệu: :frmTimKiem cong cu tim tai lieu 1: cac tu khoa da khu nhap nhang 2: tim tai lieu theo tu khoa 3: tai lieu tim duoc Hình 3.5: Usecase tìm tài liệu 3.2.3.3 Usecase sắp xếp tài liệu: : Nguo i dung :frmTimKiem Cong cu sap xe p tai lieu 1: tai lieu tim duoc 2: phan tich tai lieu 3: sap xep tai lieu 4: tai lieu da sap xep 5: hien thi tai lieu 6: ket qua cuoi cung Hình 3.6: Usecase sắp xếp tài liệu 3.2.4 Thiết kế lớp: 3.2.4.1 Sơ đồ lớp: TuDien thuMucTuDien arrXml LayTuDien() LoadTuDien() * LoadTuDien_Arr() SetDir() KhoiTaoHashTable() TachTu hStopList DuongDanSL TachTu() LoaiBoTrongStopList()  1 frmTimKiem m_TachTu m_KhuNhapNhang m_DichTuTuDien m_TimKiem * 1 1 bnTimKiem_Click() DichAnh() DichHoa() HienThiKetQua() 1 * TimKiem loaiTimKiem  KhuNhapNhang tuDienTSNguon tuDienTSDich DichTuTuDien arrXml cptDic duongDanTuDien dicAnh dicHoa 1 KhoiTaoTuDien() TranslateOneLanRecursion() Normal() CheckInStrArr() TranslateRecursion() * arrDoc arrHash nDoc type directory TSDXHTrongSongNgu() * TSDXHTrongDonNgu() TimBanDichTotNhatTrongDonNgu() TimBanDichTotNhatTrongSongNgu() KhoiTaoTuDien() KhoiTaoNguLieu() KhoiTaoMangHash() DocNguLieu() TimTanSo() ChuanHoaTu() XuLyChuoiTimKiem() DownloadKetQua() LayCacTrangKeTiep() PhanTichTrangKetQua() Hình 3.7: Sơ đồ lớp 3.2.4.2 Đặc tả cho từng lớp: 3.2.4.2.1 TachTu: ƒ Biến thành phần: STT Tên biến Kiểu Ràng buộc Khởi động Ý nghĩa Ghi chú 1 hStopList HashTable Lưu các từ, cụm từ có trong stoplist 2 duongDanSL Chuỗi Lưu đường dẫn của file stoplist ƒ Hàm thành phần: STT Tên hàm Tham số Kết quả Xử lí Ghi chú 1 TachTu m_Query: chuỗi Chuỗi Gọi dll tách từ 2 LoaiBoTrongStopList arrWord: mảng chuỗi  Mảng chuỗi Lần lượt duyệt qua các phần tử của mảng chuỗi truyền vào, nếu chuỗi nào không có trong hStopList thì giữ lại. 3.2.4.2.2 TuDien: ƒ Biến thành phần: STT Tên biến Kiểu Ràng buộc  Khởi động  Ý nghĩa Ghi chú 1 thuMucTuDien Chuỗi Lưu đường dẫn của thư mục chứa các tập tin từ điển 2 arrXml[] XmlDocum ent Lưu nội dung của các tâp tin từ điển ƒ Hàm thành phần: STT Tên hàm Tham số Kết quả Xử lí Ghi chú 1 SetDir m_Dir: chuỗi void Khởi tạo đường dẫn 2 LoadTuDien() m_filename: xmlDocument Đọc file xml và lưu chuỗi vào XmlDocument 3 LoadTuDien_Arr() m_Directory arr_XmlDoc[] Lần lượt load các file có trong thư mục vào mảng xmlDocument 4 LayTuDien() Không có arr_XmlDoc[] - Gọi hàm LoadTuDien_Arr() 5 KhoiTaoHashTable() m_Filename: chuỗi - Trả về arr_XmlDoc nhận được sau khi gọi hàm HashTable Đọc file và khởi tạo hashtable 3.2.4.2.3 DichTuTuDien: ƒ Biến thành phần: STT Tên biến Kiểu Ràng buộc  Khởi động  Ý nghĩa Ghi chú 1 arrXml[] XmlDocument Mảng các tài liệu xml lưu thông tin của từ điển chung 2 cptDic XmlDocument Lưu nội dung của các tâp tin từ điển chuyên ngành 3 dicThuong TuDien Dùng để load các từ điển thông thường 4 dicChuyen Nganh TuDien Dùng để load các từ điển chuyên ngành 5 Directory Chuỗi Đường dẫn của ứng dụng ƒ Hàm thành phần: STT Tên hàm Tham số Kết quả Xử lí Ghi chú 1 KhoiTaoTuDien() lan: int void Tùy vào giá trị của lan: - lan = 1(tiếng Anh): khởi tạo đường dẫn, các từ điển thông thường và từ điển chuyên ngành tiếng Anh. - lan =2 (tiếng Hoa): khởi tạo từ điển tiếng Hoa. 2 TranslateRecursion() word: chuỗi lan: int arrTran[]: chuỗi arrSyn[]: chuỗi indexTran: int indexSyn: int indexRef: int void Tìm nghĩa của word trong ngôn ngữ lan bằng cách đệ qui như sau: - Lần lượt duyệt qua các file xml từ điển tìm node có là word - Kiểm tra các giá trị trong hay tương ứng đã có trong mảng arrTran hay arrSyn hay chưa? - Nếu chưa: lưu các hoặc vào arrTran. count: int - Tăng indexTran. - Kiểm tra giá trị tương ứng của đã có trong arrTran hay chưa? - Nếu chưa: lưu giá trị của vào arrSyn. - Tăng indexSyn. - Nếu không có hay thì xét đến . - Gọi hàm dịch cho giá trị của để tìm nghĩa. - Mỗi lần gọi đệ qui thì giảm giá trị count xuống 1. - Nếu count = 0 thì dừng đệ qui. 3 TranslateOne LanRecursion() arrWord[]: chuỗi count: int lan: int arrSyn[]: chuỗi Ma trận chuỗi hai chiều - Gọi hàm dịch cho từng phần tử của arrWord. - Trả về mảng hai chiều là các bản dịch của mảng arrWord. 4 Normal() m_str: chuỗi Chuỗi - Chuẩn hóa chuỗi: loại bỏ khoảng trắng đầu và cuối chuỗi. 5 CheckInStrArr() Word: chuỗi arrWord[]: chuỗi Bool - Kiểm tra xem word có trong arrWord không? - Nếu có thì trả về false. - Nếu không thì trả về true. 3.2.4.2.4 KhuNhapNhang: ƒ Biến thành phần: STT Tên biến Kiểu Ràng buộc Khởi động Ý nghĩa Ghi chú 1 arrDoc Ma trận chuỗi hai chiều Mỗi phần tử của ma trận là một câu trong một file ngữ liệu. 2 TuDienTSNg uon XmlDocu ment Lưu tần số xuất hiện của từng từ của ngôn ngữ nguồn trong ngữ liệu. 3 TuDienTSDi ch XmlDocu ment Lưu tần số xuất hiện của từng từ của ngôn ngữ đích trong ngữ liệu. 4 arrHash Ma trận hashtable hai chiều Mỗi phần tử của ma trận lưu các từ trong một câu của một file ngữ liệu. (các key của hashtable là các từ) 5 nDoc int Lưu số file có trong ngữ liệu 6 Type int Cho biết kiểu khử nhập nhằng: - type = 1: đơn ngữ Anh - type = 2: song ngữ Anh- Việt - type = 3: đơn ngữ Hoa - type = 4: song ngữ Hoa- Việt 7 Directory Chuỗi Lưu đường dẫn của ứng dụng ƒ Hàm thành phần: STT Tên hàm Tham số Kết quả Xử lí Ghi chú 1 TSXHTrongSongNgu() word1: chuỗi word2: chuỗi arrDoc[][]: chuỗi 2 TSXHTrongDonNgu() wordSrc: chuỗi wordDes: chuỗi arrDoc[][]: chuỗi  Float - Lần lượt duyệt qua từng phần tử của arrDoc và tìm xem chuỗi word1 hay word2 xuất hiện bao nhiêu lần? - Trả về số lần xuất hiện. float - Lần lượt duyệt qua từng phần tử của arrDoc và tìm xem chuỗi wordSrc hay wordDes xuất hiện bao nhiêu lần? - Trả về số lần xuất hiện. 3 TimBanDich TotNhatTrongDonNgu() arrWord1[]: chuỗi arrWord2[]: chuỗi strResult: chuỗi void - Lần lượt tính tần số đồng xuất hiện của từng cặp phần tử của 2 mảng arrWord1 và arrWord2 bằng cách gọi hàm TSDXHTrongDonNgu(). - Tìm cặp có tần số cao nhất. - Nếu các cặp đều có tần số bằng không thì chọn cặp đầu tiên là bản dịch tốt nhất. 4 TimBanDichTotNhat TrongSongNgu() arrWord1[]: chuỗi arrWord2[]: chuỗi strResult: chuỗi void - Lần lượt tính tần số đồng xuất hiện của từng cặp phần tử của 2 mảng arrWord1 và arrWord2 bằng cách gọi hàm TSDXHTrongSongNgu() - Tìm cặp có tần số cao nhất. - Nếu các cặp đều có tần số bằng không thì chọn cặp đầu tiên là bản dịch tốt nhất. 5 KhoiTaoTuDien() Không có Void - Tùy vào giá trị của type mà khởi tạo đường dẫn và các từ điển cần thiết - Gọi hàm KhoiTaoNguLieu() và KhoiTaoMangHash() 6 KhoiTaoMangHash () type: int Void Cắt câu trong các file ngữ liệu thành từng từ và lưu vào mảng HashTable. 7 KhoiTaoNguLieu() Directory: chuỗi Void Lần lượt đọc các file ngữ liệu vào lưu vào các phần tử của arrDoc 8 DocNguLieu() m_Filename: chuỗi  Mảng chuỗi Mỗi phần tử của mảng chuỗi được trả về là một câu trong file ngữ liệu 9 TimTanSo() word: chuỗi, dicXml: xmlDocument, lan: int  float Tìm tần số xuất hiện của từ trong một ngôn ngữ trong file từ điển tần số được lưu trong xmlDocument. 10 ChuanHoaTu() m_word: chuỗi Chuỗi Chuẩn hóa từ : xóa khoảng trắng đầu và cuối chuỗi 3.2.4.2.5 TimKiem: ƒ Biến thành phần: STT Tên biến Kiểu Ràng buộc Khởi động Ý nghĩa Ghi chú 1 loaiTimKiem int Cho biết ngôn ngữ cần tìm : - type = 0: tiếng Việt. - type = 1: tiếng Anh - type = 2: tiếng Hoa ƒ Hàm thành phần: STT Tên hàm Tham số Kết quả Xử lí Ghi chú 1 XuLyChuoiTimKiem() nSearchEngine: int, szQuery: chuỗi, Chuỗi - Thêm vào chuổi tìm kiếm font của file input và file output là “utf-8”. - Tùy vào nSearchEngine mà thêm vào chuỗi tìm kiếm loại ngôn ngữ. 2 DownLoadKetQua() nSearchEngine: int, szQuery: chuỗi, node[]: chuỗi , index: int Mảng chuỗi - Gọi hàm xử lý chuỗi tìm kiếm. - Gọi hàm download Webpage theo chuỗi tìm kiếm. - Gọi hàmPhanTich – TrangKetQua và lưu vào node[]. - Gọi hàm LayCacTrang_ KeTiep() 3 LayCacTrangKeTiep() strFile: chuỗi Mảng chuỗi - Duyệt qua chuỗi strFile, tìm vị trí của chuỗi “” - Lặp: + Tìm vị trị của chuỗi "href=\"" , cắt chuỗi bắt đầu từ vị trí tìm thấy và lưu vào một mảng chuỗi. + Tăng biến i. + Lặp cho đến khi không tìm thấy chuỗi "href=\"" 4 PhanTichTrangKetQua() webpage: StreamReader index: int node[]: mảng chuỗi void - Trong khi index < 1000 và vẫn tìm thấy chuỗi "" thì lặp. - Cắt chuỗi từ vị trí tìm thấy trước đó đến vị trí vừa tìm và lưu vào node. -Tăng index thêm 1 đơn vị. 3.2.4.2.6 frmTimKiem: ƒ Biến thành phần: STT Tên biến Kiểu Ràng buộc Khởi động Ý nghĩa Ghi chú 1 bnSearch Button 2 m_TachTu TachTu Dùng để tách từ câu truy vấn 3 m_DichTuTuDie n DichTuTuDien Dịch câu truy vấn 4 m_KhuNhapNha ng KhuNhapNhang Khử nhập nhằng các kết quả sau khi dịch 5 m_TimKiem TimKiem Tìm kết quả theo các câu truy vấn ƒ Hàm thành phần: STT Tên hàm Tham số Kết quả Xử lí Ghi chú 1 DichAnh() arrWord[]: chuỗi numW: int  Chuỗi - Gọi hàm dịch cùa đối tượng m_DichTuTuDien cho mảng arrWord. - Khử nhập nhằng kết quả dịch bằng cách gọi các hàm của đối tượng m_KhuNhapNhang. 2 DichHoa() arrWord[]: chuỗi numW: int Chuỗi - Gọi hàm dịch cùa đối tượng m_DichTuTuDien cho mảng arrWord. - Khử nhập nhằng kết quả dịch bằng cách gọi các hàm của đối tượng m_KhuNhapNhang. 3 HienThiKetQua() thutu: int, E_nodes[]: mảng chuỗi, V_nodes[]: mảng chuỗi, C_nodes[]: mảng chuỗi void Lần lượt hiển thị các kết quả xen kẽ Việt – Anh – Hoa lên màn hình 4 OnBnSearchClick() Không có void - Gọi hàm DichAnh(), DichHoa(). - Lấy kết quả tìm kiếm bằng cách gọi hàm DownloadKetQua() của đối tượng m_TimKiem - Gọi hàm hiển thị kết quả. 3.2.5 Thiết kế giao diện: 3.2.5.1 Màn hình chính: 1 2 4 3 5 6 7 Hình 3.8: Màn hình chính Danh sách các đối tượng thể hiện: STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 txtQuery A_TextBox Nhập câu truy vấn 2 cmbDesLan A_ComboBox Danh sách ngôn ngữ đích 3 cmbDisplayLan A_ComboBox Danh sách ngôn ngữ hiển thị 4 cmdTimKiem A_Button Nút tìm kiếm 5 txtEnglish A_TextBox Câu truy vấn tiếng Anh 6 txtChinese A_TextBox Câu truy vấn tiếng Hoa 7 lkAbout A_LinkButtom Link đến trang About 3.2.5.2 Màn hình kết quả: 1 2 3 4 5 Hình 3.9: Màn hình kết quả Danh sách các đối tượng thể hiện: ngoài các đối tượng như màn hình chính còn có một số đồi tượng thể hiện như sau: STT Tên Loại/Kiểu Ý nghĩa Ghi chú 1 lblViet1 A_Label Hiển thị kết quả tiếng Việt 2 lblEnglish1 A_Label Hiển thị kết quả tiếng Anh 3 lblChinese1 A_Label Hiển thị kết quả tiếng Hoa 4 Hiển thị các kết quả còn lại 5 Các link button Hiển thị kết quả ở các trang kế tiếp. 3.3 Xây dựng hệ thống: 3.3.1 Tổ chức các MRD: Trong luận văn này, chúng tôi xây dựng hai MRD Việt – Anh và Việt – Hoa cho hệ thống vì từ điển Việt – Anh là thể hiện của từ điển song ngữ có loại hình ngôn ngữ khác nhau (đơn lập và biến hình), còn Việt – Hoa là thể hiện của từ điển song ngữ có loại hình ngôn ngữ giống nhau (đơn lập). Điều này cho thấy khả năng tìm kiếm trên các loại hình ngôn ngữ khác nhau của hệ thống. 3.3.1.1 Giai đoạn tiền xử lý: Để phục vụ cho việc tạo lập từ điển MRD, công việc đầu tiên và mất nhiều thời gian nhất là thu thập và chỉnh lý các kho dữ liệu có sẵn, tìm kiếm nguồn dữ liệu tối ưu. Trong luận văn này chúng tôi sử dụng các kho dữ liệu có sẵn kế thừa từ [16]. Trước khi sử dụng các dữ liệu này, chúng tôi tiến hành giai đoạn tiền xử lý như sau: ƒ Loại bỏ các từ không có nghĩa trong từ điển. ƒ Chuẩn hoá các ký tự đặc biệt, tạo sự nhất quán trong toàn bộ các từ điển đầu vào. ƒ Thống nhất chuyển hết các dữ liệu nguồn về mã Unicode. Trước giai đoạn tiền xử lý, mục từ của từng từ điển (điện tử của người) có cấu trúc như sau: Việt – Anh: ứng với một từ gốc tiếng Việt (V) sẽ có một hoặc nhiều từ loại (P), ứng với mỗi từ loại (P) lại có một hoặc nhiều nghĩa tiếng Anh (E) hoặc tham chiếu (R) của từ đó và mỗi nghĩa tiếng Anh (E) có một hoặc nhiều ví dụ (Ex) của nó. V P P P E E E E R Ex Ex Ex Ex Hình 3.10: Cấu trúc cây của mục từ trong từ điển Việt – Anh Ví dụ: một số mục từ trong từ điển Việt – Anh: (1) @a * excl - O; oh (exclamation of surprise, regret, ect.) =a, đồ_chơi đẹp quá!+ Oh! What a nice toy! =a, tội nghiệp quá+Oh!What a pity! - By the way =a, còn một vấn_đề này nữa +By the way, there's this one other question * noun - Acre (100 square meters) (2) @kỳ thi * noun - examination =kỳ_thi tuyển+competitive examination Việt – Hoa: ứng với một từ gốc tiếng Việt (V) sẽ có một hoặc nhiều nghĩa tiếng Hoa (C) hoặc có tham chiếu của từ đó (R) và mỗi nghĩa tiếng Hoa (C) có một hoặc nhiều ví dụ (Ex) của nó. V C C R Ex Ex Ex Hình 3.11: Cấu trúc cây của mục từ trong từ điển Việt – Hoa Ví dụ: một số mục từ trong từ điển Việt– Hoa: (1) *Máy tính 1.電腦 2. 計算機 &Máy tính bức xạ: 射線計算機 &Máy tính điện tử: 電子計算機 (2) *Chế 1. 譏諷 2. 制造 &chế ra cái máy: 造出機器 3. 泡 制 &chế thuốc: 制藥 4. 制度 &đế chế: 帝制 5. 守制 &đang có chế không được cưới xin: (~古)孝服在身,不得婚娶 Sau giai đoạn tiền xử lý, mục từ của từng từ điển có cấu trúc như sau: Việt – Anh: ứng với một từ gốc tiếng Việt (V) sẽ có một từ loại (P), một nghĩa tiếng Anh (E) hoặc một tham chiếu (R) của từ đó. Ví dụ: một số mục từ trong từ điển Việt – Anh: (1) @a * excl - O; oh (exclamation of surprise, regret, ect.) (2) @a * excl - By the way (3) @a * noun - Acre (100 square meters) Việt – Hoa: ứng với một từ gốc tiếng Việt (V) sẽ có một nghĩa tiếng Hoa (C) hoặc có một tham chiếu của từ đó (R). Ví dụ: một số mục từ trong từ điển Việt– Hoa: (1) *Máy tính -電腦 (2) *Máy tính -計算機 Sau khi đã tiền xử lý xong các từ điển, chúng tôi tiến hành tạo từ điển MRD bằng cách đánh cấu trúc các trường. 3.3.1.2 MRD Việt – Anh (VEDic): 3.3.1.2.1 Cấu trúc vĩ mô, vi mô của VEDic: Để đảm bảo tính đơn trị của MRD, trong một mục từ mỗi từ tiếng Việt ứng với một từ loại sẽ có một nghĩa tiếng Anh, một lĩnh vực, một tham chiếu và đồng nghĩa Anh của nó. Chẳng hạn, MRD Việt – Anh có cấu trúc mục từ như sau: Từ tiếng Việt Từ loại Nghĩa tiếng Anh Lĩnh vực Ref11 Đồng nghĩa Anh Máy tính Noun Computer Tin_học Lật tẩy Verb Unmask Uncloak Luận bàn Verb Bàn 11 Ref: từ viết tắt của Reference nghĩa là từ tham chiếu (tiếng Việt). luận Luân lý Noun Morals Ethical motive, ethics, morality Bảng 3.1: Ví dụ một số mục từ trong từ điển Việt – Anh Các trường lĩnh vực, ref được rút trích ngay trong từ điển điện tử Việt – Anh. Trường đồng nghĩa Anh được thêm vào dựa trên từ điển đồng nghĩa tiếng Anh của mạng WORDNET. 3.3.1.2.2 Cấu trúc dữ liệu của VEDic: Các mục từ trong file từ điển sau khi tiền xử lý được lưu vào mảng phụ theo dạng cấu trúc sau: typedef struct _tagLoaiTu_PhienAm_Nghia { CString loaiTu; //từ loại CStringArray nghia; //Các nghĩa tiếng Anh tương ứng theo từ loại }LOAITU_PA_NGHIA; typedef LOAITU_PA_NGHIA *NGHIA_ANHS; typedef struct _tagTU_VE { CString TuGoc; //từ gốc NGHIA_ANHS NghiaAnh; //các nghĩa của từ gốc }TU_VE; Như vậy trong mỗi node của mảng này chỉ lưu thông tin của: ƒ Từ tiếng Việt ƒ Nghĩa tiếng Anh Vì mảng này có dung lượng khá lớn nên ta khai báo dữ liệu theo kiểu con trỏ động để tiết kiệm bộ nhớ: typedef TU_VE* TUDIEN_VE; TUDIEN_VE = new TU[50000]; Mảng thứ hai là mảng chính chứa các thông tin cần quan tâm để sau khi được xử lý xong sẽ lấy thông tin cho từ điển MRD: typedef struct _tagTu_VEDic { CString TuTV; //từ tiếng Việt CString TuLoai; //từ loại của từ tiếng Việt CString NghiaAnh; //nghĩa tiếng Anh CString LinhVuc; //lĩnh vực của từ tiếng Anh CString TuThamChieu; //từ tham chiếu của từ tiếng Việt CString DongNghiaAnh; //từ đồng nghĩa theo từ tiếng Anh }TU_VEDic; Mảng này cũng được khai báo dữ liệu theo kiểu con trỏ động như sau: typedef TU_VEDic* VEDic; VEDic = new TU_VEDic[100000]; Tuy nhiên, để việc khai thác MRD dễ dàng và tận dụng ưu điểm (dễ mang chuyển, truy xuất nhanh) của cấu trúc tập tin xml chúng tôi tổ chức từ điển như sau: từ tiếng Việt từ loại nghĩa tiếng Anh lĩnh vực từ tham chiếu tiếng Việt từ đồng nghĩa tiếng Anh 3.3.1.3 MRD Việt – Hoa (VCDic): 3.3.1.3.1 Cấu trúc vĩ mô, vi mô của VCDic: Tương tự đối với MRD Việt – Hoa, cấu tạo mục từ như sau: Từ tiếng Việt Ref Nghĩa tiếng Hoa Chi phiếu Ngân phiếu 支票 Máy tính 電腦 Máy tính 電子計算機 chế 譏諷 chế 制造 Bảng 3.2: Ví dụ một số mục từ của từ điển Việt – Hoa 3.3.1.3.2 Cấu trúc dữ liệu của VCDic: Các mục từ trong file từ điển sau khi tiền xử lý được lưu vào mảng phụ theo dạng cấu trúc sau: typedef struct _tagNGHIA { CString TuThamChieu; //từ tham chiếu của từ tiếng Việt CString NghiaHoa; //các nghĩa tiếng Hoa }NGHIA; typedef NGHIA* NGHIA_HOAS; typedef struct _tagTU_VC { CString TuGoc; //từ gốc NGHIA_HOAS NghiaHoa; //các nghĩa của từ gốc }TU_VC; Như vậy trong mỗi node của mảng này chỉ lưu thông tin của: ƒ Từ tiếng Việt ƒ Các nghĩa tiếng Hoa Vì mảng này có dung lượng khá lớn nên ta khai báo dữ liệu theo kiểu con trỏ động để tiết kiệm bộ nhớ: typedef TU_VC* TUDIEN_VC; TUDIEN_VC = new TU_VC[50000]; Mảng thứ hai là mảng chính chứa các thông tin cần quan tâm để sau khi được xử lý xong sẽ lấy thông tin cho từ điển MRD: typedef struct _tagTu_VCDic { CString TuTV; //từ tiếng Việt CString TuThamChieu; //từ tham chiếu của từ tiếng Việt CString NghiaHoa; //nghĩa tiếng Hoa }TU_VCDic; Mảng này cũng được khai báo dữ liệu theo kiểu con trỏ động như sau: typedef TU_VCDic* VCDic; VCDic = new TU_VCDic[100.000]; VCDic cũng đã được chuyển đổi thành dạng xml: từ tiếng Việt từ tham chiếu nghĩa tiếng Hoa 3.3.2 Phương pháp tìm kiếm dựa trên MRD: 3.3.2.1 Dịch dựa trên từ điển: Trình tự dịch dựa trên từ điển như sau: ™ Bước 1: Tách từ12 câu truy vấn mà người dùng nhập vào. ™ Bước 2: Loại bỏ các từ có trong stoplist (đây là những từ mang ít nghĩa như : đây, đó, này, ). ™ Bước 3: Lần lượt tìm các bản dịch của các từ dựa vào MRD. 3.3.2.1.1 Tách từ câu truy vấn: Để tách từ câu truy vấn chúng tôi sử dụng module tách từ dựa trên mô hình MMSEG (áp dụng cho tiếng Việt) của nhóm VCL13. 3.3.2.1.2 Loại bỏ các từ có trong stoplist: 12 Từ ở đây chúng tôi dùng đó là từ từ điển (từ từ điển là từ mà dựa vào đặc tính của nó mà người ta đưa nó vào từ điển). 13 VCL – Vietnamese Computational Linguistics Danh sách các stoplist được xây dựng dựa trên từ điển như sau: các từ có từ loại là thán từ, hình thái từ, trợ từ, trạng từ, đại từ, sẽ được thêm vào stoplist. Đây là những từ ít mang nghĩa và không ảnh hưởng đến kết quả tìm kiếm nên cần được bỏ đi. Trong câu truy vấn nếu có từ xuất hiện trong stoplist thì sẽ bị loại ra khỏi danh sách từ khóa. 3.3.2.1.3 Tìm các bản dịch dựa vào MRD: Bằng cách so khớp chính xác từ trong danh sách từ khóa (từ khóa là kết quả của tách từ sau khi loại bỏ các từ có trong stoplist) với từ tiếng Việt có trong MRD, chương trình sẽ tìm ra nghĩa tiếng Anh của từ tiếng Việt. Nếu mục từ đó có từ đồng nghĩa thì hệ thống sẽ lấy luôn cả từ đồng nghĩa để thêm vào câu truy vấn. Ở đây có một số vấn đề cần được giải quyết như sau: ¾ Nếu từ tiếng Việt không có nghĩa tiếng Anh (tiếng Hoa), chỉ có trường REF thì chương trình sẽ tìm nghĩa của REF để lấy ra nghĩa tiếng Anh (tiếng Hoa) của từ tiếng Việt đó. ¾ Chưa xác định được từ loại của các từ khóa, do đó nghĩa tiếng Anh (tiếng Hoa) của từ tiếng Việt ở tất cả các từ loại sẽ được trả về. ¾ Nếu từ khóa không được tìm thấy trong từ điển, lúc này có hai trường hợp xảy ra: ƒ Từ khóa là tên riêng hoặc là tiếng nước ngoài : trả về chính từ đó. ƒ Từ điển thiếu từ: hiện nay chương trình chúng tôi chấp nhận giải pháp là nếu từ điển thiếu từ nào thì trả về chính từ đó. (Chúng tôi sẽ cố gắng đến tối đa để hạn chế lỗi này, nhưng công việc này chỉ ở mức thủ công). 3.3.2.2 Khử nhập nhằng: Một trong những khó khăn của việc phát triển CLIR một cách có hiệu quả là việc giải quyết tính nhập nhằng trong quá trình dịch. Và các nguồn tài nguyên sẵn có cũng là một vấn đề. Ở đây chúng tôi chọn kỹ thuật dựa trên số liệu thống kê việc đồng xuất hiện từ ngữ liệu, kỹ thuật này có thể được sử dụng để làm giảm tính nhập nhằng và đạt được hiệu suất khá cao. Từ công thức của Lisa chúng tôi sử dụng hai ngữ liệu để khử nhập nhằng : ngữ liệu đơn ngữ và ngữ liệu song song. * Đơn ngữ: * Song ngữ: B Target Language . b1 A B . b2 a1 . . b1 A. . a2 . . b2 a3 . . b3 Source . Language . . . . . . . Target Language Target Language Hình 3.12: Mô hình khử nhập nhằng dựa trên ngữ liệu đơn ngữ và song ngữ Đối với ngữ liệu đơn ngữ (khoảng 100.000 câu tiếng Anh và 77.000 câu tiếng Hoa) chúng tôi áp dụng theo đúng công thức (*). Giả sử câu truy vấn do người dùng nhập vào là : “mạng máy tính”, bằng phương pháp dịch “word by word” dựa trên từ điển ta được tập các bản dịch: “Mạng” có tập bản dịch là T1 = {“net”, “network”, “darn”} “Máy tính” có tập bản dịch là T2 = {“computer”, “calculator”, “arithmometer” }. Áp dụng (*) ta tính: ⎛ n − En(a, b) ⎞ em(net, computer) = max⎜ ab , 0 ⎟ ⎝ na + nb ⎠ Tương tự tính : em(net, calculator), em(net, arithmometer),. Sau đó chọn cặp có tần số lớn nhất là cặp dịch tốt nhất. Trường hợp tần số của các cặp bằng nhau thì ta chọn cặp đầu tiên là cặp dịch tốt nhất. Với ngữ liệu song song chúng tôi sử dụng lại công thức tính tần số đồng xuất hiện của Lisa như trên nhưng a, b sẽ là hai từ ở hai ngôn ngữ khác nhau. Ta giả sử a là từ ở ngôn ngữ nguồn và b là bản dịch của nó trong ngôn ngữ đích. Khi đó ta sẽ tính tần số đồng xuất hiện của a và b dựa theo công thức (*) với nab là số lần b là bản dịch của a trong ngữ liệu song song. Cụ thể như sau: a = “máy tính” b thuộc tập bản dịch T = {“computer”, “calculator”, “arithmometer”} Ta lần lượt tính tần số đồng xuất hiện của từng cặp từ: co(máy tính, computer) = nmay tinh, computer − En((may tinh, computer ) nmay tinh + ncomputer Tương tự tính co(“máy tính”, “calculator”) và co (“máy tính”, “arithmometer”). Sau đó ta tìm tần số lớn nhất trong ba tần số trên và chọn bản dịch tốt nhất cho “máy tính”. Nếu tần số của các cặp từ bằng nhau thì từ đầu tiên trong từ điển sẽ được chọn là bản dịch tốt nhất. Sau khi áp dụng cụ thể hai phương pháp trên vào module dịch và khử nhập nhằng chúng tôi nhận thấy phương pháp khử nhập nhằng dựa trên ngữ liệu song song cho kết quả tốt hơn ngữ liệu đơn ngữ. Điều này là hợp lý vì đối với ngữ liệu song song ta đã có các tài liệu được dóng hàng ở mức câu (nghĩa là với một câu tiếng Việt thì ta sẽ có câu tiếng Anh tương ứng của nó), do đó khi a và b đồng xuất hiện trong một cặp câu thì xác suất b là bản dịch của a là rất lớn. Như đã nói ở trên, ngữ liệu song song là rất hiếm và thường thuộc về một lĩnh vực nào đó nên việc khử nhập nhằng cũng bị giới hạn. Ngữ liệu song song mà chúng tôi sử dụng để khử nhập nhằng các bản dịch tiếng Anh được kế thừa từ [16]. Việc khử nhập nhằng sẽ rất chính xác nếu câu truy vấn cũng nằm trong lĩnh vực này. Còn đối với các lĩnh vực khác việc khử nhập nhằng sẽ có độ chính xác không cao. Riêng đối với tiếng Hoa, hiện nay chúng tôi vẫn chưa xây dựng được ngữ liệu song song cần thiết cho việc khử nhập nhằng nên chúng tôi sẽ sử dụng phương pháp khử nhập nhằng dựa trên ngữ liệu đơn ngữ cho các bản dịch tiếng Hoa. 3.3.3 Tìm kiếm tài liệu bằng công cụ tìm kiếm: 3.3.3.1 Giới thiệu: Sau khi câu truy vấn tiếng Việt được dịch và khử nhập nhằng ta sẽ có thêm 2 câu truy vấn: một câu tiếng Anh và một câu tiếng Hoa. Lúc này ta sẽ gửi cả 3 câu truy vấn (Việt – Anh – Hoa) cho hệ thống tìm kiếm đơn ngữ để nhận về các tài liệu có liên quan. Tiếp theo chương trình sẽ trộn cả 3 kết quả tìm được theo trình tự Việt – Anh – Hoa và hiển thị cho người dùng. Trong các hệ thống tìm kiếm đơn ngữ trên Internet hiện nay, có thể nói Google là công cụ tìm kiếm mạnh nhất và rất được ưa chuộng nhờ vào tính chính xác và tốc độ của nó. Google có khả năng tìm kiếm rất tốt bằng cho nhiều ngôn ngữ khác nhau đặc biệt là tiếng Anh và tiếng Việt của chúng ta cũng được Google hỗ trợ khá tốt. Do đó , chúng tôi chọn Google là công cụ hỗ trợ tìm kiếm cho hệ thống tìm kiếm xuyên ngôn ngữ của mình. 3.3.3.2 Hệ thống tìm kiếm Google: Nguyên tắc hoạt động của Google [17] là tìm các trang theo đề tài hoặc chủ đề có liên quan đến câu truy vấn. Khi người dùng nhập vào câu truy vấn bình thường thì Google sẽ mặc định dùng toán tử AND. Do đó nếu muốn tìm các tài liệu mà trong đó phải chứa toàn bộ cụm từ trong câu truy vấn thì chúng ta đặt câu truy vấn trong ngoăc kép (“”). Điểm đặc biệt của Google là có tìm cả từ đồng nghĩa trong câu truy vấn. Kết quả Google trả về là các trang đã được sắp xếp theo mức độ quan trọng của chúng. Mức độ quan trọng này được đánh giá dựa vào số liên kết đến trang đó. Để tăng hiệu quả cho hệ thống tìm kiếm của mình, chúng tôi còn thêm vào câu truy vấn các từ đồng nghĩa. Kỹ thuật này gọi là “mở rộng câu truy vấn” (query expansion). Đối với các từ đồng nghĩa tìm được chúng tôi sử dụng toán tử OR. Tuy nhiên, do từ điển còn hạn chế, chỉ có một số mục từ có từ đồng nghĩa nên kỹ thuật này vẫn chưa phát huy tính hiệu quả của nó. CHƯƠNG 4: CÀI ĐẶT VÀ THỬ NGHIỆM Chương này sẽ trình bày cụ thể các kỹ thuật cài đặt cho hệ thống đồng thời trình bày các thử nghiệm cũng như các kết quả đánh giá của hệ thống tìm kiếm. Nội dung cụ thể như sau: 9 Cài đặt. 9 Thử nghiệm. 9 Đánh giá. 4.1 Cài đặt: Chương trình được cài đặt trên nền ASP.Net (C#) và được chạy trực tuyến (on-line ). Chương trình gồm hai phần : phần chuyển ngữ và phần tìm kiếm. Phần chuyển ngữ có sử dụng DLL tách từ kế thừa từ [16]. 4.1.1 Tiền xử lý: Các ngữ liệu trước khi sử dụng cần phải qua bước tiền xử lý để phù hợp với hệ thống. Các chương trình để tiền xử lý gồm có: 9 Chương trình xử lý tập tin từ điển ban đầu thành tập tin có cấu trúc theo yêu cầu của MRD (đã mô tả ở trên). 9 Chương trình tính tần số xuất hiện của từ (Việt, Anh, Hoa) dựa trên ngữ liệu (song ngữ, đơn ngữ) 9 Chương trình đánh tag các tập tin kết quả. 4.1.2 Cấu trúc dữ liệu: Để tăng tốc độ khi tìm kiếm từ điển, cấu trúc của từ điển sẽ được đánh tag và lưu dưới dạng XML, cấu trúc XML đồng thời cũng rất phù hợp với cấu trúc n-phân đã mô tả ở trên (chương 3) của từ điển. Mỗi từ điển sẽ có nhiều tập tin và mỗi tập tin sẽ được lưu trong một đối tượng XML Document. Tương tự như từ điển các tập tin lưu tần số xuất hiện cũng được đánh tag và lưu dưới dạng XML. Ngoài mục đích làm tăng tốc độ tìm kiếm, giảm khối lượng lưu trữ, việc lưu trữ toàn bộ dữ liệu bằng XML còn giúp cho hệ thống có thể dễ cải tiến, mở rộng và ngữ liệu của hệ thống cũng có thể được sử dụng bằng các hệ thống khác mà không cần phải xử lý hay xây dựng lại. Vì hiện nay XML là cấu trúc mà bất cứ ngôn ngữ lập trình nào cũng có thể hiểu được. 4.1.3 Dịch từ từ điển: Sau khi tách từ và loại bỏ các từ có trong stoplist, danh sách các từ khoá sẽ được dịch sang tiếng Anh và tiếng Hoa dựa vào từ điển Việt – Anh và từ điển Việt – Hoa. Việc tìm kiếm này tương đương với câu SQL: “select TXT_E from Dic where TXT_V = word” hoặc “select TXT_C from Dic where TXT_V = word” 4.1.4 Khử nhập nhằng : Trước khi khử nhập nhằng cần phải lưu ngữ liệu vào bộ nhớ. Ngữ liệu được lưu theo định dạng là mỗi dòng là một câu, để rõ ràng và tiện quản lý, chúng tôi lưu mỗi tâp tin trong ngữ liệu thành một mảng chuỗi, mỗi phần tử mảng là một câu trong ngữ liệu. Lưu ý là đối với ngữ liệu song ngữ thì các phần tử có chỉ số chẵn là phần tử lưu câu tiếng Anh và phần tử có chỉ số lẻ lưu câu tiếng Việt. Việc khử nhập nhằng dựa trên phương pháp tần số đồng xuất hiện của L. Ballesteros. Thuật toán như sau: ™ Cách 1: dùng ngữ liệu song ngữ string KhuNhapNhang(string * arrTran, string word) { int i=0; int max = 0; int arrFreq[]; Tính tần số của word trong ngữ liệu for(i=0; i < length(arrTran); i++) { Tính tần số của bản dịch i; arrFreq[i]= tần số đồng xuất hiện của word và bản dịch thứ i Áp dụng công thức (*) So sánh max với giá trị vừa tính và gán lại giá trị cho max } Tìm phần tử có giá trị max trong arrFreq return arrTran[vtmax]; } Hàm tính tần số đồng xuất hiện: int TinhTSDXH(string srcWord, string desWord) { int count = 0; Lần lượt duyệt qua các cặp câu có trong ngữ liệu Nếu srcWord xuất hiện trong câu i+1 VÀ desWord xuất hiện trong câu i thì count++; return count; } ™ Cách 2: đối với ngữ liệu đơn ngữ void KhuNhapNhang(string * arrTran1, string * arrTran2, string & tran1 , string & tran2) { int i=0, j=0; int max = 0; int arrFreq[][]; for(i=0; i < length(arrTran1); i++) { for(j=0; j < length(arrTran2); j++) { thứ j  Tính tần số của bản dịch i; Tính tần số của bản dịch j; arrFreq[i][j] = tần số đồng xuất hiện của bản dịch i và bản dịch Áp dụng công thức (*) So sánh max với giá trị vừa tính và gán lại giá trị cho max } } Tìm phần tử có giá trị max trong ma trận arrFreq tran1 = arrTran1[vtmaxi]; tran2 = arrTran2[vtmaxj]; } Hàm tính tần số đồng xuất hiện: int TinhTSDXH(string word1, string word2) { int count = 0; Lần lượt duyệt qua các câu có trong ngữ liệu Nếu word1 và word2 đồng xuất hiện trong câu i thì count++; return count; } 4.1.5 Tìm kiếm: Sau khi dịch câu truy vấn sang tiếng Anh và tiếng Pháp, kết quả này sẽ được dùng để tìm kiếm tài liệu từ Google. Đầu tiên câu truy vấn sẽ được tiền xử lý để có thể gọi được trên web: string GetURL (string strQuery) { string URL; URL = URL += "?ie=utf-8&oe=utf-8&q="+HttpUtility.UrlEncode(szQuery); return URL; } Sau khi gọi Google chương trình sẽ nhận về file kết quả và thực hiện parser để lấy các tài liệu: string [] Parser(string strFile) { string node[]; int i=0; Duyệt toàn file. Tìm vị trí lưu thông tin các tài liệu được trả về Gán phần tử node[i] cho chuỗi vừa lấy được. i++; return node; } 4.2 Thử nghiệm: 4.2.1 Module dịch và khử nhập nhằng: Nhập vào câu truy vấn “phân tích thiết kế hệ thống thông tin”, chọn cách khử nhập nhằng cho tiếng Anh là “Song ngữ” và tiếng Hoa mặc định là “Đơn ngữ” ta có kết quả như hình 4.1 Hình 4.1 Module dịch và khử nhập nhằng 4.2.2 Chương trình demo trên web: Bước 1: chạy chương trình ta sẽ có màn hình giao diện sau: 1 2 3 4 5 6 Hình 4.2 Màn hình giao diện 1: Người dùng nhập câu truy vấn 2: Chọn ngôn ngữ đích 3: Chọn ngôn ngữ hiển thị 5: Nút tìm kiếm 4: Chuỗi dịch tiếng Anh 6: Chuỗi dịch tiếng Hoa Bước 2: Sau khi nhập câu truy vấn: “thiết kế cơ sở dữ liệu phân tán”, chọn ngôn ngữ đích là “Anh - Hoa” và ngôn ngữ hiển thị là “ngôn ngữ nguồn và ngôn ngữ đích”, và nhấn vào nút “Tìm kiếm”. Ta có kết quả sau: 3 1: Tài liệu tiếng Việt 2: Tài liệu tiếng Anh 3: Tài liệu tiếng Hoa 1 2 Hình 4.3 Màn hình kết quả 4.3 Đánh giá : 4.3.1 Module dịch và khử nhập nhằng: Chúng tôi đã thực hiện việc dịch và khử nhập nhằng trên 100 câu tiếng Việt bao gồm 40 câu trong lĩnh vực tin học và 60 câu trong các lĩnh vực khác. Kết quả của chuyển ngữ và khử nhập nhằng tiếng Anh được trình bày ở bảng 4.1 Khử nhập nhằng Lĩnh vực Song ngữ Đơn ngữ Đúng (câu) Tỉ lệ Đúng (câu) Tỉ lệ Tin học 36 90% 31 77,5% Các lĩnh vực khác 50 83,33% 40 66,67% Bảng 4.1: Kết quả dịch và khử nhập nhằng tiếng Anh Từ các kết quả thống kê của bảng 4.1 ta dễ dàng nhận thấy việc khử nhập nhằng dựa trên ngữ liệu song ngữ cho độ chính xác khá cao, đặc biệt là trong lĩnh vực tin học. Kết quả này là hợp lý vì ngữ liệu song ngữ dùng để khử nhập nhằng thuộc về lĩnh vực tin học. Tuy nhiên, kết quả đối với các lĩnh vực khác cũng khá cao, nguyên nhân là do đối với các lĩnh vực khác thì sự nhập nhằng của các bản dịch cũng không nhiều, và thường bản dịch đầu tiên trong từ điển là bản dịch phổ biến nên cho kết quả dịch là khá chính xác. Kết quả chuyển ngữ và khử nhập nhằng tiếng Hoa: Khử nhập nhằng Lĩnh vực Song ngữ Đơn ngữ Đúng (câu) Tỉ lệ Đúng (câu) Tỉ lệ Tin học 25 62,5% Các lĩnh vực khác 39 65% Bảng 4.2: Kết quả dịch và khử nhập nhằng tiếng Hoa Riêng đối với tiếng Hoa, do vẫn chưa xây dựng được ngữ liệu song ngữ nên chỉ có thể khử nhập nhằng dựa trên ngữ liệu đơn ngữ. Tuy nhiên, ngữ liệu đơn ngữ mà chương trình sử dụng không thuộc một lĩnh vực chuyên nào nên kết quả khử nhập nhằng chưa cao. Trong tương lai, chúng tôi sẽ phát triển và hoàn thiện hơn nữa độ chính xác của qui trình khử nhập nhằng tiếng Hoa 4.3.2 Chương trình tìm kiểm trên Web: Đối với chương trình tìm kiếm trên web, độ hiệu quả là khá cao, chương trình có thể trả về các tài liệu tiếng Anh và tiếng Hoa tương đương với khi người dùng tìm kiếm trực tiếp bằng tiếng Anh và tiếng Hoa trên Google. Đây là một kết quả đáng khích lệ. Tuy nhiên, tốc độ tìm kiếm của chương trình lại phụ thuộc khá nhiều vào tính ổn định của đường truyền mạng. Với chất lượng của đường mạng khá tốt thì thời gian chương trình download các tài liệu chỉ mất khoảng 10s, thời gian tối đa để lấy tài liệu là 60s. Nếu thời gian lấy tài liệu về từ Google lớn hơn 60s thì chương trình sẽ không hiện được kết quả. Khuyết điểm này hiện nay vẫn chưa được khắc phục. Chương 5: KẾT LUẬN và HƯỚNG PHÁT TRIỂN 5.1 Kết luận: Hệ thống tìm kiếm xuyên ngữ Việt – Anh – Hoa là hệ thống tìm kiếm xuyên ngữ đầu tiên ở Việt Nam. Mặc dù vẫn còn một số hạn chế nhưng hệ thống đã đạt được một số thành công nhất định. Hệ thống cho thấy việc tìm kiếm xuyên ngữ bằng tiếng Việt tuy khác các ngôn ngữ khác nhưng hoàn toàn có thể thực hiện được. Ngoài mục đích minh họa cho hai loại hình ngôn ngữ tiêu biểu, việc lựa chọn tiếng Anh và tiếng Hoa cho hệ thống còn mang nhiều ý nghĩa khác. Tiếng Anh là một ngôn ngữ quốc tế phổ biến và thông dụng, đối với tiếng Hoa, là ngôn ngữ có số lượng người nói nhiều nhất trên thế giới; thông qua hệ thống người dùng có thể tiếp cận với kho thông tin khổng lồ trên thế giới. Những thành công mà hệ thống đạt được là nhờ may mắn kế thừa các kết quả từ [16]. Việc sử dụng công cụ tách từ đạt độ chính xác đến 98% là một khởi đầu tốt cho hệ thống. Mặt khác điểm chính của hệ thống là khử nhập nhằng các bản dịch, mà qui trình này đòi hỏi phải có ngữ liệu. Nếu không có kho ngữ liệu thì chắc chắn việc khử nhập nhằng sẽ không đạt được độ chính xác cao. Và ngữ liệu song ngữ từ [11] lại là một đóng góp vô cùng quan trọng cho hệ thống. Trong thời gian sắp tới chúng tôi sẽ tiếp tục phát triển và nâng cao tính hiệu quả của hệ thống. 5.2 Huớng phát triển: 5.2.1 Đối với từ điển và ngữ liệu: ™ MRD Việt – Anh mà chúng tôi xây dựng có cấu trúc khá đầy đủ (gồm cả trường lĩnh vực, tham chiếu và đồng nghĩa) tuy nhiên số lượng các mục từ còn hạn chế đặc biệt là các từ ghép và thuật ngữ chuyên ngành. Một MRD đầy đủ hơn sẽ giúp cho giai đoạn chuyển ngữ đạt độ chính xác cao hơn. Tuy nhiên, việc mở rộng từ điển đòi hỏi thời gian và công sức khá lớn. ™ MRD Anh – Hoa có cấu trúc khá đơn giản. Việc bổ sung thêm những trường như lĩnh vực, đồng nghĩa là khả thi dựa vào ngữ liệu song song. ™ Ngữ liệu là nguồn tài nguyên vô cùng quí và hiếm. Những ngữ liệu mà chúng tôi dùng hiện nay là ngữ liệu song ngữ Việt – Anh (về lĩnh vực tin học) và ngữ liệu đơn ngữ tiếng Hoa (thu thập từ các bài báo tiếng Hoa). Trong tương lai, chúng tôi sẽ cố gắng bổ sung một số ngữ liệu ở lĩnh vực khác để việc khử nhập nhằng đạt hiệu quả cao hơn. 5.2.2 Đối với IR Engine: ™ Trong luận văn này chúng tôi sử dụng Google như là một IR Engine. Ngoài Google hiện nay còn có rất nhiều công cụ mạnh khác có khả năng tìm kiếm trên Internet. Để tăng tính hiệu quả của việc tìm kiếm, chúng ta hoàn toàn có thể gọi thực thi các search engine khác. ™ Trên thực tế các hệ thống tìm kiếm có IR Engine riêng biệt để làm công việc tìm kiếm cụ thể. Chẳng hạn, hệ thống tìm kiếm xuyên ngữ mà chúng tôi xây dựng có thể dùng ba IR Engine khác nhau (VIR Engine, EIR Engine và CIR Engine) để tìm kiếm thông tin cần tìm cho ba loại ngôn ngữ Việt – Anh – Hoa. Như vậy hướng phát triển trong tương lai là xây dựng các IR Engine chuyên biệt cho từng ngôn ngữ giúp tăng độ chính xác khi tìm kiếm thông tin. Lúc đó hệ thống có thể được xây dựng theo mô hình sau: Người dùng Các từ điển Câu truy vấn bằng tiếng Việt Bộ dịch  Các tài liệu có liên quan đến câu truy vấn bằng ba ngôn ngữ Việt - Anh - Hoa Ngữ liệu Bộ khử nhập nhằng Câu truy vấn tiếng Anh Câu truy vấn tiếng Hoa EIR Engine CIR Engine VIR Engine Hình 5.1 Mô hình của hệ thống truy xuất xuyên ngữ Việt – Anh – Hoa (dùng ba IR Engine) ™ Trong các IR Engine chúng ta có thể dùng kỹ thuật local feedback để mở rộng câu truy vấn, làm phong phú hơn tài liệu tìm kiếm . 5.2.3 Mở rộng ngôn ngữ tìm kiếm cho hệ thống: Với giả thuyết là các nguồn tài nguyên từ điển và ngữ liệu của một ngôn ngữ khác (chẳng hạn như tiếng Pháp) là khá đầy đủ thì hệ thống của chúng tôi hoàn toàn có thể tìm kiếm tài liệu có liên quan đến câu truy vấn trong ngôn ngữ đó. Việc bổ sung các ngôn ngữ khác cho hệ thống chỉ là vấn đề thời gian. PHỤ LỤC 1. DANH SÁCH CÁC PHỤ TỐ TIẾNG ANH: HẬU TỐ DẪN XUẤT Stt Hậu tố Nghĩa tiếng Việt Ghi chú, Ví dụ 1. ability khả_năng ~ readability (khả_năng đọc) 2. able có_thể ~ được; khả_~ readable (có_thể đọc được), transferrable (khả_chuyển) 3. ably có_thể ~ được; khả_~ interchangeably (có_thể hoán_đổi được), transferrably (khả_chuyển) 4. al (thuộc về) ~ national (quốc_gia) 5. ance sự ~ assistance (sự trợ_giúp) 6. ant ~ assistant (trợ_giúp) 7. ate Làm cho ~ fascinate (làm cho chặt) 8. ation sự ~ decoration (sự-trang_trí) 9. cation sự ~ application (sự-áp_dụng) 10. ed* (đã được / bị) ~ closed-door (cửa bị đóng) 11. ee người/vật được interviewee (người được phỏng_vấn) 12. en Làm bằng ~ golden (làm bằng vàng) 13. en Làm cho ~ shorten (làm cho ngắn) 14. ence sự ~ dependence (sự-phụ_thuộc) 15. ent ~ referent (tham_khảo) 16. er* người/máy ~ printer (thợ_in, máy_in) 17. ese tiếng/người ~ Japanese (tiếng_Nhật), Vietnamese 18. ful ~ đầy handful (nắm_tay đầy), cupful 19. hood thời_kỳ ~ childhood (thời_kỳ niên_thiếu) 20. ial (thuộc về) ~ sentential (thuộc về câu) 21. ian người ~, ~_viên technician (kỹ_thuật_viên) 22. ibility khả_năng ~ comprehensibility (khả_năng hiểu) 23. ible có_thể ~ được; khả_~ visible (có_thể nhìn thấy được), visible (khả_kiến) 24. ibly có_thể ~ được; visibly (có_thể nhìn thấy được), khả_~ visible (khả_kiến) 25. ic (có tính) ~ graphic (đồ_hoạ) 26. ing* (đang) ~ running car (xe_hơi đang chạy) 27. ion sự ~ action (hành_động) 28. ise/ize ~_hóa normalise/-ize (bình_thường_hoá) 29. ism chủ_nghĩa ~ socialism (chủ_nghĩa xã_hội) 30. ist người ~, nhà_~ scientist (nhà_khoa_học) 31. ity sự ~ activity (sự-hoạt_động) 32. ive ~ active (tích_cực) 33. less không có ~; bất_~, vô_~  careless (bất_cẩn, không cẩn_thận) 34. let ~ nhỏ booklet (cuốn-sách nhỏ) 35. like giống như ~ humanlike (giống như người) 36. ly (một cách) ~ strongly (một cách mạnh_mẽ) 37. Ment sự ~ replacement (sự-thay_thế) 38. ness sự ~ brightness (sự-chói_sáng) 39. Logy (ngành)_~_học etymology (ngành_từ_nguyên_học) 40. or người/máy_~ editor (người_hiệu_đính), generator (máy_phát) 41. st,nd,rd,t h thứ ~ 31st, 32nd, 33rd ,34th (thứ 31,32,32,34) 42. tion sự ~ evolution (sự-tiến_triển) 43. Tive ~ talkative (hay nói) 44. Y có ~ cloudy, rocky (có mây, có đá) Lưu ý: • Dấu ~ để đại diện cho thân từ. Stt Tiền tố Nghĩa tiếng Việt Ghi chú, Ví dụ 1. Anti chống ~, kháng_~ antivirus (chống virút), antibody (kháng_thể) 2. Auto ~ tự_động autocar (xe_hơi tự_động) • Các hậu tố đánh dấu * là những hậu tố bị trùng với hậu tố của biến cách. TIỀN TỐ DẪN XUẤT 3. Bi Hai ~, lưỡng_~ bicenter (lưỡng_tâm) 4. Centi Xen-ti_~ centimeter (xen_ti_mét) 5. Co đồng_~ co-author (đồng_tác_giả) 6. Counter trái ngược với ~ counterclockwise (ngược chiều kim đồng_hồ) 7. De khử_~, giải_~ decode (giải_mã) 8. Dis khử_ discharge (khử_tích_điện) 9. Former cựu_~ former-president (cựu_tổng_thống) 10. Giga gi_ga_~ gigabyte (gi_ga_byte) 11. Hexa sáu ~, lục_~ hexagon (lục_giác) 12. Hyper siêu_~ hypertext (siêu_văn bản) 13. in, il, im, ir (*) không ~, bất_~, vô_~ illiterate (không biết chữ), impatient (không kiên_nhẫn), irregular (bất_quy_tắc) 14. Inter ~ lẫn nhau, liên_~ interconnection (kết_nối lẫn nhau) 15. Kilo kí_lô_~ kilogram (kí_lô_gam) 16. Macro ~ vĩ mô macro-economy (kinh_tế vĩ_mô) 17. Mega mê_ga_~ megawatt (mê_ga_oát) 18. Meta siêu ~ metavariable (siêu_biến) 19. Micro vi_~ micro-instruction (vi_lệnh) 20. Mid giữa ~, trung ~ midterm (giữa kỳ, trung_hạn) 21. Milli mi_li ~ millimeter (mi_li_mét) 22. Mis ~ sai, ~ lầm mismatch (không trùng nhau) 23. Mono đơn_~ monotone (đơn_điệu) 24. Multi đa_~ multi-media (đa_phương_tiện) 25. Nano na_nô ~ nanofarad (na_nô_fara) 26. Non không ~, phi ~ non-profit (không lợi_nhuận) 27. Oct tám ~, bát_~ octal (bát_phân) 28. Over quá_~ overload (quá_tải) 29. Pent năm ~, ngũ_~ pentagon (ngũ_giác) 30. Photo quang_~ photo-electronic (quang_điện_tử) 31. Pico pi_cô_~ picofarad (pi_cô_farad) 32. Post hậu_~, sau ~ post-graduate (sau đại_học) 33. Pre tiền_~ pre-process (tiền_xử_lý) 34. Pseudo ~_giả pseudo-code (mã_giả) 35. Quad bốn ~, tứ ~ quadruple (bộ bốn) 36. Re ~ lại, tái_~ re-calculate (tính_toán lại) 37. Self tự_~ self-educate (tự_học) 38. Semi bán_~ semi-conductor (bán_dẫn) 39. Stereo ~ nổi stereo-image (hình_ảnh_nổi) 40. Sub ~_con, ~ phụ subprogram (chương_trình_con) 41. Super siêu_~ super-conductor (siêu_dẫn) 42. Tele ~ từ xa, viễn ~ tele-meter (đo_lường từ xa) 43. Tera tê_ra_~ terabyte (tê_ra_byte) 44. Tri ba ~, tam_~ triangle (tam_giác), tripod (ba cực) 45. Ultra cực_~ ultraviolet (cực_tím) 46. Un không ~ unhappy (không hạnh_phúc) 47. Under dưới ~,hạ ~, ~thấp under-estimate (đánh_giá thấp) 48. Vice phó ~ vice-director (phó_giám_đốc) (*): “in-” biến thể thành “il-” khi đứng trước “l”; thành “im-” khi đứng trước “b”, “m” hay “p” và thành “ir-” khi đứng trước “r”. Lưu ý: dấu gạch dưới (“_”) để nối các hình vị trong cùng một từ của tiếng Việt. 2. DANH SÁCH CÁC PHÓ TỪ TIẾNG VIỆT: DANH TỪ CHỈ LOẠI (KHÔNG PHẢI ĐỘNG VẬT ) Stt Loại từ Ví dụ Ghi chú 1. Ang Văn 2. Bài thơ, diễn văn, 3. bản tuyên ngôn, tài liệu, tiểu thuyết 4. bộ từ điển, máy, 5. bông hoa, 6. bức tranh, thư, tượng, vách, ảnh 7. cái Bàn, ghế, đầu, thuyền; khuyết điểm, tâm trạng  chiếm đa số cho các danh từ cụ thể cũng như trừu tượng 8. cây nến, đèn, roi, bút, súng, đàn, tăm vật có hình trụ, dài 9. căn phòng, nhà 10. chiếc Bàn, ghế, thuyền, chỉ sự lẻ loi 11. con Dao, thuyền, sông, con đa số được dùng chỉ động vật 12. cơn gió, 13. cuốn Sách, tập, vở, tiểu thuyết sự vật đóng thành quyển 14. đoá Hoa 15. hòn đạn, bi, núi có dạng tròn 16. khẩu súng, đại bác 17. lá Bùa, thư, phiếu, đơn có dạng dẹp giống lá cây 18. làn Gió 19. màn kịch, 20. món Quà, nợ, 21. nền Văn hoá, độc lập, khoa học, chỉ danh từ trừu tượng 22. nóc Nhà 23. ngọn cờ, núi, 24. ngôi Nhà, đền, mộ, (sao) chỉ công trình xây dựng 25. pho tượng, truyện, sách 26. quả Bom, núi, có hình tròn (giống trái cây) 27. quyển Sách, vở 28. tấm ảnh, tranh, bảng, bìa 29. tấn tuồng, kịch 30. toà Nhà, lâu đài chỉ công trình xây dựng 31. thanh gươm, kiếm 32. thửa ruộng, đất 33. vì sao, vua 34. vở kịch, tuồng DANH TỪ CHỈ LOẠI (NGƯỜI/CON VẬT) Stt Loại từ Ví dụ Ghi chú 1. anh Sinh viên, cán bộ 2. bà chủ nhiệm, vợ 3. bác thợ, phu xe 4. chị Giáo viên, nhà báo 5. bậc vĩ nhân, anh hùng trọng 6. cái Tí, Tỉu 7. cậu học trò, con trai 8. con Gián điệp, mẹ mìn Khinh 9. con Trâu, bò, gà chỉ dùng cho con vật 10. cô dược sĩ, y tá 11. chàng thi sĩ, văn nhân văn chương 12. chú Liên lạc, tài xế 13. đấng Anh hùng, thánh thần trọng 14. em học sinh, nhi đồng 15. lão quản gia, tri huyện khinh 16. mụ Đàn bà, vợ khinh 17. nàng công chúa, tiên văn chương 18. người Giáo viên, thợ nề 19. tay thầu khoán, nhà buôn khinh 20. tên sĩ quan địch, nguỵ binh khinh 21. thằng quỷ sứ, mật thám khinh 22. vị phụ lão, chủ tịch trọng 23. viên sĩ quan, đại uý 24. DANH TỪ CHỈ ĐƠN VỊ QUY ƯỚC Stt Từ Tiếng Anh Ví dụ Ghi chú 1. cân pound thịt 2. chai bottle rượu 3. chuyến time tàu, hàng đây là đơn vị lâm thời 4. cục clot Đá 5. dãy Row, line Nhà dùng với danh từ tập hợp 6. đàn herd Gà dùng với danh từ tập hợp 7. đoàn herd, người dùng với danh từ tập hợp 8. đoạn section, Văn 9. giấc sleep,slunker ngủ đây là đơn vị lâm thời 10. giọt drop nước 11. gói pack thuốc lá 12. hạt grain, drop cát, gạo 13. hàng Row, line Cây dùng với danh từ tập hợp 14. hột grain gạo 15. hòn Ball, piece Đá 16. lít litter rượu 17. lon jar, pot, can gạo 18. miếng piece thịt 19. sợi string, thread dây, chỉ 20. tấn Ton sắt, vàng 21. thìa spoon Canh 22. thước metter vải 23. thúng basket gạo 24. thùng barrel, cask rượu 25. tờ sheet giấy 26. trận battle Mưa đây là đơn vị lâm thời 27. xâu thread, string Cá TÀI LIỆU THAM KHẢO [1] Lisa Ballesteros, W.Bruce Croft . “Statistical Methods for Cross-Language Information Retrieval ”. Computer Science Department – University of Massachusetts. [2] Christian Fluhr, Dominique Schmit, Philippe Ortet, Faza Elkateb, Karine Gurtner, Khaled Radwan. “Distributed Cross-Lingual Informtion retrieval”. DIST/SMTI CEA- Saclay France. [3 ] Mark. W .Davis and Ted. E. Dunning, March 1995. Query translation using an evolutionary programming for multi-lingual information retrieval. In proceeding the Fourth Annual Conference on Evolutionary Programming. [4] Michael L. Littman, Susan T. Dumais, Thomas K. Landauer, “Automatic Cross- Language Information Retrieval using Latent Semantic Indexing”, Computer Science Department, Brown University. [5] Lisa Ballesteros, W. Bruce Croft, Resolving Ambiguity for Cross-language Retrieval, 1997. [6] Lisa Ballesteros, W. Bruce Croft, Phrase Translation and Query Expansion Techniques for Cross-Language Information Retrieval, 1997 [7 ] Yamabana Kiyoshi, Muraki Kazunori, Doi Shinichi, Kamei Shin-ichiro . “A language conversion front-end for Cross-language Information Retrieval ”. [8] Atsushi Fuiji and Tetsuya Ishikawa. 9.2002. “Japanise/English Cross-Language Information Retrieval: Exploration of Query Translation and Translisteration”. [9] J.S.Chang, Y.C.Lin, Y.K.Su (1995). “Automatic Construction of a Chinese Electronic Dictionary”. Proceedings of Workshop of ACL-1995, pp.107-120. [10] Hoàng Phê (1998), Từ điển tiếng Việt, Trung tâm từ điển học, NXB Đà Nẵng. [11] Đinh Điền (2004), “Một số vấn đề trong việc xây dựng từ điển tiếng Việt điện tử”, Tập san Khoa học Xã hội và Nhân văn – ĐH Khoa học Xã hội & Nhân văn TP HCM, 2004 (27), trang 37 – 46. [12] George Miller (2000): Introduction to WordNet, [13] Dien Dinh, Kiem Hoang, Toan Nguyen Van (2001), “Vietnamese Word Segmentation”, Proceedings of NLPPRS’01 (The 6th Natural Language Processing Pacific Rim Symposium), Tokyo, Japan, 11/2001, pg 749-756. [14] Tsai, C. H. (1996), MMSEG: A word identification system for Mandarin Chinese text based on two variations of the maximum matching algorithm, Unpublished manuscript, University of Illinois at Urbana-Champaign. [15] Mark W. Davis và William C.Ogden , 1997. “Implementing Cross-Language Text Retrieval Systems for Large-scale Text Collections and the World Wide Web”. Computing Research Laboratory – New Mexico State Univeristy [16] Đinh Điền (2005). “Xây dựng và khai thác kho ngữ liệu song ngữ Anh – Việt”. Luận án tiến sĩ ngôn ngữ học, Trường đại học Khoa học Xã hội và Nhân văn. [17] Lê Thuý Ngọc, Đỗ Mỹ Nhung, Tìm hiểu về Search Engine và xây dựng ứng dụng minh hoạ cho Search Engine tiếng Việt, Luận văn cử nhân tin học, GVHD: Nguyễn Thị Diễm Tiên.

Các file đính kèm theo tài liệu này:

  • doc8051.doc
Tài liệu liên quan