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.
133 trang |
Chia sẻ: Dung Lona | Lượt xem: 988 | Lượt tải: 0
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:
- 8051.doc