BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỀ TÀI NCKH CẤP TRƯỜNG
XÂY DỰNG PHƯƠNG PHÁP KIỂM LỖI CHÍNH TẢ
TIẾNG VIỆT SỬ DỤNG MÔ HÌNH TỪ ĐIỂN
MÃ SỐ: T2010 - 40
NGƯỜI CHỦ TRÌ: Th.S MAI TUẤN KHÔI
THÀNH PHỐ HỒ CHÍ MINH, THÁNG 11/2010
S K C 0 0 3 0 3 3
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
ĐỀ TÀI NCKH CẤP TRƯỜNG
XÂY DỰNG PHƯƠNG PHÁP KIỂM LỖI CHÍNH TẢ
TIẾNG VIỆT SỬ DỤNG MÔ HÌNH TỪ ĐIỂN
TÓM TẮT ĐỀ TÀI 3
Mục tiêu của đề tài 3
Những cơ sở để xây dựng đề tài 3
Phương pháp tiếp cận 3
Những kết quả đạt được 4
Phần 1 ĐẶT VẤN ĐỀ 5
1.1 Đối tượng nghiên cứu 5
1.2 Tổng quan tình hình nghiên cứu 5
1.2.1 Các nghiên cứu của nước ngoài về vấn đề kiểm lỗi chính tả 5
1.2.2 Các nghiên cứu trong nước về vấn đề kiểm lỗi chính tả 10
1.3 Những vấn đề còn tồn tại 11
Phần 2 Các phương pháp thực hiện chi tiết 13
2.1 Mục đích của đề tài 13
2.2 Phương pháp nghiên cứu 13
2.3 Nội dung 13
2.3.1 Dựa trên luật cấu tạo âm tiết tiếng Việt 13
2.3.2 Sử dụng thuật toán minimum Edit Distance: 16
2.3.3 Sử dụng cấu trúc Finite State Transducer 16
2.4 Kết quả đạt được 24
2.4.1 Tính khoa học 24
2.4.2 Khả năng triển khai ứng dụng vào thực tế 24
2.4.3 Hiệu quả kinh tế - xã hội 25
2
2.4.4 Sản phẩm 25
2.5 Đánh giá 28
2.6 Kết luận 32
Phần 3 Tổng kết 33
3.1 Tổng kết 33
3.2 Hướng phát triển 33
TÀI LIỆU THAM KHẢO 35
Phương pháp tiếp cận
Phương pháp tiếp cận của tác giả là dựa trên tư tưởng vét cạn do tác giả đề xuất.
Tức là từ một từ được xem là đúng chính tả, tác giả sẽ phát sinh và lưu trữ lại tất cả các
trường hợp bò sai chính tả có thể có của từ đó. Sau này khi gặp một từ có dạng sai tương
tự như trường hợp đã lưu trữ, chương trình sẽ báo là có lỗi và đưa ra gợi ý là từ gốc của
từ đó.
Bộ từ điển được tạo ra dựa trên quy trình tạo từ điển do giáo viên hướng dẫn đưa
ra, quy trình đó cụ thể sẽ được trình bày chi tiết ở chương 4 các phương pháp thực hiện
chi tiết.
Chương trình sử dụng một số thư viện có sẵn của bộ Visual Studio.Net 2005 và
thêm vào các xử lý của tác giả để thực hiện các công việc theo quy trình kiểm lỗi chính
tả do tác giả đề xuất, chi tiết cũng được trình bày ở Phần 2 “các phương pháp thực hiện
chi tiết”.
4
Những kết quả đạt được
Tác giả đã xây dựng xong bộ từ điển theo cấu trúc Finite State Recognition dành
cho từ đơn có nghóa, từ đơn tham gia cấu tạo từ ghép, từ ghép có chiều dài hai, ba,
bốn, n chữ. Ngoài ra, bộ từ điển cũng cho biết một từ không có trong từ điển sẽ là
trường hợp sai của từ nào, điều này sẽ giúp cho việc cài đặt thuận lợi hơn trong việc
gợi ý cho người dùng sửa lỗi khi gặp trường hợp sai.
Dựa trên bộ từ điển xây dựng được, nhóm đã xây dựng một ứng dụng có thể nhúng
vào MSWord để kiểm tra lỗi chính tả. Chương trình có những chức năng sau đây:
Đưa ra gợi ý trên mỗi từ mà chương trình nghi ngờ sai lỗi chính tả, người
dùng có quyền chấp nhận sửa từ hoặc bỏ qua từ đó.
Nếu gặp một từ nước ngoài hoặc viết tắt, chương trình sẽ vẫn nghi ngờ sai
nếu không có trong thư viện từ nước ngoài, người dùng có quyền thêm từ
này vào thư viện từ nước ngoài để bỏ qua nếu gặp từ này lần tiếp theo.
Cũng tương tự với các thuật ngữ của các chuyên ngành khác nhau, nếu các
từ không thuộc từ điển (của chương trình), chương trình sẽ làm tương tự như
đối với một từ nước ngoài.
các từ xung quanh nó trong câu. Ví dụ: khi đang xem xét để chọn lựa giữa desert và
dessert, nếu như có các từ như arid, sand, sun, … gần đó, ta sẽ chọn desert, còn nếu như
gặp các từ như chocolate, delicious, … gần đó, ta chọn dessert. Phương pháp kiểm lỗi
dựa trên ngữ cảnh[12] được Golding xây dựng dựa trên nhận xét này. Trong giai đoạn
học, với mỗi từ thường bò viết sai chính tả, hệ thống sẽ ghi nhớ những từ thường xuất
hiện xung quanh nó trong ngữ liệu. Khi chạy thực tế
1.2.1.2 Phương pháp kiểm lỗi dựa trên các phép lai Bayes
Phương pháp kiểm lỗi dựa trên ngữ cảnh[12] rất tốt trong việc phát hiện các
nguyên tắc chung nhất phụ thuộc vào những từ lân cận, nhưng không quan tâm đến trật
tự của chúng. Trong trường hợp đó, các phương pháp đặc trưng lân cận tỏ ra rất thích
hợp để rút ra các quy luật về trật tự.
Một đặc trưng lân cận là một mẫu các yếu tố về cú pháp xung quanh từ đang xét.
Có hai đặc trưng thường được sử dụng trong các phương pháp này, đó là nhãn từ loại và
từ lân cận.
6
Phương pháp lai Bayes[11] được thực hiện theo cách thức tương tự với phương
pháp kiểm lỗi dựa trên ngữ cảnh[12]. Ý tưởng chính ở đây là phân biệt những từ dễ bò
dùng nhầm lẫn với nhau dựa vào các đặc trưng lân cận của chúng. Mỗi đặc trưng lân
cận cung cấp vài dấu hiệu với khả năng quyết đònh khác nhau cho những từ trong tập
nhầm lẫn. Những dấu hiệu này được kết hợp với nhau và tính toán theo một luật quyết
đònh (thường là Bayes). Sau cùng, từ nào có độ hợp lý cao nhất sẽ được chọn.
Tuy nhiên, phương pháp lai Bayes cũng có nhược điểm, đó là khi một từ có các
đặc trưng mâu thuẫn hoặc hàm chứa nhau, gọi là xung đột. Để phương pháp này hoạt
động tốt, các đặc trưng xung đột với nhau cần phải được phát hiện và loại bỏ. Hiện nay,
ngoài heuristic, vẫn chưa có một phương pháp hoàn chỉnh để giải quyết vấn đề này.
1.2.1.3 Phương pháp kiểm lỗi dựa trên sự sàng lọc
Phương pháp sàng lọc[10] là sự kết hợp của hai phương pháp kiểm lỗi dựa trên
ngữ cảnh[12] và lai Bayes[11] để tận dụng ưu điểm của cả hai phương pháp này: kiểm
lỗi dựa trên ngữ cảnh[12] sẽ rút ra các nguyên tắc tốt nhất theo cách độc lập với trật tự
từ, còn lai Bayes[11] được dùng để rút ra các nguyên tắc phụ thuộc vào trật tự.
Bộ phân loại Bayes được dùng trong bước sửa lỗi. Ý tưởng chính là tìm chuỗi
thích hợp nhất (có xác suất cao nhất) từ chuỗi đầu vào để làm phương án sửa lỗi. Để
đánh giá sự phù hợp của chuỗi sửa lỗi, Bayes được kết hợp với phương pháp phân phối
trọng số tự động dựa trên số phép biến đổi ngắn nhất (Minimum Edit Distance[16]) để
biến chuỗi đầu vào thành chuỗi sửa lỗi.
Theo thử nghiệm của tác giả, CInsunSpell có tỷ lệ phát hiện lỗi là khoảng 60%,
tỷ lệ lỗi tích cực khoảng 10%. Hai giá trò này thay đổi tuỳ thuộc vào các ngưỡng được
dùng trong hệ thống.
1.2.1.5 Phương pháp kiểm lỗi dựa trên ngữ cảnh cho tiếng Nhật
Phương pháp của Nagata[15] được áp dụng đầu tiên cho các hệ thống nhận dạng
chữ viết (OCR). Tuy nhiên nó cũng có thể được dùng để sửa các lỗi chính tả do con
người gây ra.
8
Phương pháp này gồm hai giai đoạn: trong giai đoạn thứ nhất, câu nhập vào được
chia thành nhiều chuỗi tiếng, với điều kiện mỗi chuỗi tiếng tạo thành một từ có trong từ
điển hoặc gần giống với ít nhất một từ nào đó có trong từ điển. Trong giai đoạn thứ hai,
bằng các phương pháp thống kê, n chuỗi từ tốt nhất (được tạo thành từ những ‚từ‛ đã
có ở giai đoạn trước) được chọn làm ứng viên sửa lỗi. Dưới đây là ví dụ minh hoạ cho
cách tiếp cận này.
Câu đầu vào:
Tôi lam việc ở hợp tát xả mua bán
Ma trận tiếng nhầm lẫn
lám họp tác sả báng
làm tạt xã
lãm
lạm
Hình 1-1 Sơ đồ dò tìm lỗi bằng ma trận tiếng nhầm lẫn
Để có thể chia chuỗi đầu vào thành các chuỗi con một cách hợp lý, hệ thống dùng
hai phương pháp, đó là mô hình ngôn ngữ thống kê và thuật toán Forward-DB
thu được những kết quả đáng ghi nhận trong sản phẩm VCLSpell.
Mô hình sửa lỗi chính tả của Nagata cho tiếng Nhật[15], về mặt lý thuyết cũng có
thể áp dụng ngay cho tiếng Việt mà không cần sửa đổi nhiều vì Nhật-Việt đều là các
ngôn ngữ đơn lập. Tuy nhiên, cũng như một số mô hình dùng cho tiếng Anh, mô hình
10
này cần có kho ngữ liệu đã được tách từ và gán nhãn từ loại, đó là điều chưa thể đáp
ứng được. Bên cạnh đó, việc dò tìm phương án sửa lỗi bằng ma trận tiếng nhầm lẫn, khi
áp dụng vào tiếng Việt, sẽ phải đương đầu với một thử thách mới: bùng nổ tổ hợp, nhất
là trong thực tế, các lỗi sai khi nhập liệu rất đa dạng nên tập nhầm lẫn khá lớn. Do đó,
việc áp dụng mô hình này hiện nay là rất khó khăn.
1.2.2 Các nghiên cứu trong nước về vấn đề kiểm lỗi chính tả
Kiểm lỗi chính tả tiếng là một bài toán khó, nhất là kiểm lỗi chính tả cho các
ngôn ngữ đơn lập như tiếng Việt, tiếng Hoa[4].
Trước khi tôi thực hiện đề tài này, đã có một số công trình nghiên cứu về kiểm lỗi
chính tả tiếng Việt với các hướng tiếp cận khác nhau. Tuy nhiên, ngoài Vietspell và
Chính Tả Cú Mèo, thì các kết quả nghiên cứu còn lại chưa đưa ra sản phẩm ứng dụng
vào thực tế.
1.2.2.1 Kiểm lỗi chính tả bằng mô hình lưới từ
Nghiên cứu[3] đã trình bày mô hình lưới từ cho kiểm lỗi chính tả tiếng Việt. Mô
hình này hoạt động dựa trên việc tách từ mờ, sau đó đánh giá các cách tách từ khác
nhau để tìm ra cách tách từ có vẻ hợp lý nhất làm câu sửa lỗi. Trong đó, lưới từ thực
chất là một dạng cấu trúc dữ liệu đặc biệt, giống như một đồ thò thưa có hướng không
chu trình. Cấu trúc dữ liệu này giúp cho việc tách từ mờ và đánh giá các cách tách từ
được dễ dàng và nhanh chóng, bởi vì có thể áp dụng các thuật toán tìm đường đi trên
đồ thò với nó.
Lưới từ là một mô hình mạnh và chặt chẽ. Về lý thuyết, nếu được cài đặt và huấn
luyện hoàn chỉnh thì hiệu suất của nó sẽ rất khả quan.
Tuy nhiên mô hình này có một nhược điểm rất khó khắc phục đó là việc bùng nổ
tổ hợp sẽ khiến cho việc cài đặt và tốc độ xử lý của chương trình gặp khó khăn. Từ đó
làm cho lưu trữ cũng là một vấn đề lớn với phương pháp này.
Không đề cập đến việc giải quyết lỗi trên các từ dài.
Chưa giải quyết được hết các luật về lỗi chính tả do các nhà ngôn ngữ học đưa ra.
class="bi x0 y0 w1 h1"