THUẬT TOÁN KIỂM TRA ÂM TIẾT TIẾNG VIỆT DỰA TRÊN LUẬT CẤU TẠO ÂM TIẾT

THUẬT TOÁN KIỂM TRA ÂM TIẾT TIẾNG VIỆT
DỰA TRÊN LUẬT CẤU TẠO ÂM TIẾT
Nguyễn Gia Định, Trần Thanh Lương
Trường Đại học Khoa học, Đại học Huế
1. GIỚI THIỆU
Trong thời đại ngày nay nhu cầu giao tiếp bằng văn bản ngày càng nhiều. Các văn bản này thường được in ra từ máy tính thông qua các phần mềm soạn thảo văn bản như: MS Word, Word Perfect... nó cần phải đúng, chính xác và hiệu quả. Để làm được như vậy chúng ta phải kiểm tra chính tả, ngữ pháp văn bản trước khi in ra và gửi đi. Tuy nhiên, khi văn bản lớn thì việc kiểm tra do con người thực hiện mất rất nhiều thời gian và là một công việc nhàm chán. Vì nhiều nguyên nhân, trong đó có nguyên nhân về tâm lý làm người kiểm tra không kiểm tra hết văn bản, hoặc khi kiểm tra xong văn bản thì cũng không đảm bảo văn bản đúng toàn bộ. Sai sót lớn nhất trong văn bản thường là lỗi chính tả không cố ý (tức là lỗi do đánh máy nhầm).

Xuất phát từ những yều cầu đó mà trong phần mềm MS Word cũng đã có chức năng kiểm tra chính tả và ngữ pháp tiếng Anh ở một mức độ tương đối nhất định. Việc kiểm tra lỗi chính tả diễn ra khá dễ dàng trong MS Word, nhưng với lỗi ngữ pháp thì chưa hoàn toàn đúng. Vấn đề kiểm tra ngữ pháp đối với ngôn ngữ tự nhiên là một trong những vấn đề rất khó và đang được nghiên cứu bởi các nhà khoa học, các hãng phần mềm lớn trên thế giới. Đối với tiếng Việt cũng đã xuất hiện phần mềm kiểm tra chính tả, đó là phần mềm Vietkey Office, phần mềm này kiểm tra lỗi chính tả dựa trên một tập các từ vựng có sẵn trong từ điển. Vì vậy khả năng mở của phần mềm là không có, tức là không có khả năng học các từ mới từ văn bản đúng chính tả. Hơn nữa do sử dụng cơ chế lưu các từ vựng trong từ điển nên phải lưu trữ một lượng khá lớn các từ vựng. Đó là những hạn chế của phần mềm Vietkey Office.
Trong bài báo báo này, chúng tôi đưa ra một phương pháp mới dùng để kiểm tra lỗi chính tả tiếng Việt. Đó là kiểm tra chính tả dựa trên luật cấu tạo âm tiết tiếng Việt. Trong phần 2, chúng tôi sẽ giới thiệu về cấu trúc âm tiết theo cách tiếp cận hướng ngôn ngữ; và theo cách tiếp cận hướng tổ hợp âm; Phần 3 là phần so sánh giữa hai cách tiếp cận trên. Cuối cùng là các thuật toán, tổ chức, cài đặt và một số nhận xét.

 

2. PHÂN TÍCH CẤU TRÚC ÂM TIẾT
2.1. Âm tiết
Âm tiết là đơn vị phát âm nhỏ nhất mà cho dù ta có phát âm chậm đến mấy đi nữa cũng không thể tách ra thành các phần nhỏ hơn được.
2.2. Cấu trúc âm tiết 5 thành phần: (Cách tiếp cận theo hướng ngôn ngữ)
Theo ngôn ngữ học một âm tiết tiếng Việt được cấu tạo từ năm thành phần sau:
- Âm đầu
- Âm đệm
- Âm chính
- Âm cuối
- Thanh điệu
Chúng ta có thể viết cấu trúc của một âm tiết theo cách tiếp cận 5 thành phần như sau:
Âm tiết = [Âm đầu][Âm đệm]<Âm chính>[Âm cuối][Thanh điệu]
Trong đó những thành phần nằm trong cặp dấu <> là bắt buộc phải có, những thành phần nằm trong cặp dấu [ ] thì có thể có hoặc không.
Ví dụ:
Âm tiết
Các thành phần cấu tạo thành âm tiết
hoặc
Âm đầu
h
Âm đệm
o
Âm chính
ă
Âm cuối
c
Thanh điệu
.
hai
Âm đầu
h
Âm đệm
không có
Âm chính
ai
Âm cuối
không có
Thanh điệu
không có
O
Âm đầu
không có
Âm đệm
không có
Âm chính
o
Âm cuối
không có
Thanh điệu
không có
Đây là một cách tiếp cận rất tốt trong việc phân tích ngôn ngữ tiếng Việt. Tuy nhiên, cách tiếp cận này rất khó khăn trong việc kiểm tra lỗi chính tả trên máy tính. Vì vậy, chúng tôi đưa ra một cách tiếp cận mới ngắn gọn hơn để dễ dàng cho việc kiểm tra chính tả trên máy tính.
2.3. Cấu trúc âm tiết ba thành phần: (Cách tiếp cận theo hướng tổ hợp âm)
Chúng ta có thể phân tích một âm tiết thành ba thành phần sau:
- Âm đầu
- Tổ hợp âm giữa
- Âm cuối
Cấu trúc của một âm tiết theo cách tiếp cận 3 thành phần sẽ được viết lại như sau:
Âm tiết = [Âm đầu]<Tổ hợp âm giữa>[Âm cuối]
Trong đó những thành phần nằm trong cặp dấu <> là bắt buộc phải có, những thành phần nằm trong cặp dấu [ ] thì có thể có hoặc không.
Ví dụ:
Âm tiết
Các thành phần cấu tạo thành âm tiết
hoặc
Âm đầu
h
Tổ hợp âm giữa
oặ
Âm cuối
c
Hai
Âm đầu
h
Tổ hợp âm giữa
ai
Âm cuối
không có
O
Âm đầu
không có
Tổ hợp âm giữa
o
Âm cuối
không có
Âm đầu gồm có 27 loại như sau:
b, c, ch, d, đ, g, gh, h, k, kh, l, m, n, ng, ngh, nh, p, ph, q, r, s, t, th, tr, v, x, none
Tổ hợp âm giữa có số lượng rất lớn, tổ hợp âm giữa sẽ được cập nhật trong quá trinh học văn bản của chương trình. Ví dụ một số tổ hợp âm giữa là:
a, ai, au, ay, e, eo, i, ia, iai, iày, iá, iáo...
Âm cuối gồm có 9 loại như sau:
c, ch, m, n, ng, nh, p, t, none
Trong đó: none có nghĩa là âm khuyết.
Trong cấu trúc âm tiết 3 thành phần thì tổ hợp âm giữa là thành phần bắt buộc phải có, nó là thành phần chính cấu tạo nên âm tiết.
Dựa trên cấu trúc âm tiết 3 thành phần chúng ta thấy một tổ hợp âm giữa thì có thể ghép với một số âm đầu và một số âm cuối nhất định, điều này có thể minh họa như sau:

Âm đầu

Tổ hợp âm giữa

Âm cuối
1. b
15. ngh
ươ
1. c
2.c
16. nh
2. ch
3. ch
17. p
3. m
4. d
18. ph
4. n
5. đ
19. q
5. ng
6. g
20. r
6. nh
7. gh
21. s
7. p
8. h
22. t
8. t
9. k
23. th
9. none
10. kh
24. tr

11. l
25. v

12. m
26. x

13. n
27. none

14. ng


Những âm đầu, tổ hợp âm giữa, âm cuối tô đậm là có thể ghép với nhau để tạo thành âm tiết: chẳng hạn như: chươm, chươn, chương, cươm, cươn, chương,  gươm, gươn, gương...
3. SO SÁNH HAI DẠNG CẤU TRÚC ÂM TIẾT
Hai dạng cấu trúc âm tiết này có một số sự khác nhau trên phương diện tiếp cận, trong đó dạng cấu trúc âm tiết 3 thành phần là tổ hợp của dạng cấu trúc âm tiết 5 thành phần. Hay dạng cấu trúc âm tiết 5 thành phần là khai triển của dạng cấu trúc âm tiết 3 thành phần. Chúng ta có thể thấy sự tương ứng giữa hai dạng cấu trúc này như sau:
Cấu trúc âm tiết 5 thành phần
Cấu trúc âm tiết 3 thành phần
Âm đầu
Âm đầu
Âm đệm
Tổ hợp âm giữa
Âm chính
Thanh điệu
Âm cuối
Âm cuối
Như vậy, Tổ hợp âm giữa của cấu trúc âm tiết 3 thành phần thực chất là ba thành phần Âm đệm, Âm chính, Thanh điệu của cấu trúc âm tiết 5 thành phần ghép lại.

4.  TỔ CHỨC, CÀI ĐẶT VÀ NHẬN XÉT
4.1. Tổ chức lưu trữ luật âm tiết:
Dựa trên những phân tích về âm tiết 3 thành phần, chúng ta có thể tổ chức lưu trữ từ điển luật theo Tổ hợp âm giữa trên file dữ liệu như sau:
Structure CT_AM
Tong_Am_Dau : LongInt
     To_Hop_Am_Giua : String(3)
     Tong_Am_Cuoi : LongInt
End Structure
Trong đó: Tong_Am_Dau là giá trị tổng của các Âm đầu có thể đi với tổ hợp âm giữa
Tong_Am_Cuoi là giá trị tổng của các Âm cuối có thể đi với tổ hợp âm giữa
Lưu cấu trúc âm này (có sắp xếp) thành một từ điển các cấu trúc âm để sau này chúng ta kiểm tra các âm tiết ở trong từ điển.
4.2. Thuật toán kiểm tra một âm tiết có đúng hay không.
Đầu vào: Một âm tiết.
Đầu ra: Âm tiết đúng chính tả hay không.
Phương pháp:
1. Tách âm tiết ra làm 3 phần: âm đầu, tổ hợp âm giữa, âm cuối và chuyển thành một cấu trúc âm tiết X, tương ứng theo âm đầu, tổ hợp âm giữa và âm cuối.
2. Tìm tổ hợp âm giữa trong từ điển theo phương pháp tìm kiếm nhị phân.
3. Nếu tìm thấy thì tiếp tục bước 4, nếu không thì nhảy đến bước 6.
4. Ta lấy được một cấu trúc âm tiết CTAM tương ứng trong từ điển.
5. Kiểm tra xem âm đầu, âm cuối của X có trong trong cấu trúc âm tiết CTAM đó hay không. Nếu có thi kết luận là âm tiết đúng, nhảy đến bước 7. Nếu không tiếp tục bước 6.
6. Kết luận âm tiết sai.
7. Kết thúc.
Việc kiểm tra toàn bộ các âm tiết của văn bản là việc kiểm tra tất cả các âm tiết có trong từ điển hay không.
Với phương pháp này chúng ta kiểm tra được tất cả các âm tiết trong văn bản có đúng chính tả hay không.
4.3. Nhận xét:
- Phương pháp này tiết kiệm được không gian lưu trữ từ điển, số cấu trúc lưu trữ bằng số tổ hợp âm giữa của tiếng Việt, số lượng này không nhiều (khoảng 700 cấu trúc).
- Do số lượng cấu trúc âm tiết nhỏ nên việc tìm kiếm rất nhanh, với phương pháp tìm kiếm nhị phân thi tốc độ tìm kiếm là log2(n) (n là số cấu trúc âm tiết).

TÀI LIỆU THAM KHẢO

1.      Hoàng Phê (chủ biên), Từ điển tiếng Việt, Nhà xuất bản Giáo dục, Hà Nội (1994)
2.      Đoàn Thiện Thuật, Ngữ âm tiếng Việt, Nhà xuất bản Đại học và Trung học chuyên nghiệp Hà Nội (1980).
3.      Nguyễn Quốc Dũng, Ngữ pháp tiếng Việt, Trung tâm Đào tạo Từ xa, Huế (1995).
4.      Bùi Tất Tươm (chủ biên), Cơ sở ngôn ngữ học và tiếng Việt, Nhà xuất bản Giáo dục Hà Nội (1997).
5.      Phan Thị Tươi. Trình biên dịch, Nhà xuất bản Đại học Quốc gia, Tp. Hồ Chí Minh, (2001).
6.      Jeffrey D. Ullman, (Trần Đức Quang dịch), Chương trình dịch, Tập 1,2, Nhà xuất bản Thống kê (2000).

THE ALGORITHM FOR CHECKING THE VIETNAMESE SYLLABLES

BASED ON THE CONSTRUCTING LAWS OF SYLLABLES

Nguyen Gia Đinh, Tran Thanh Luong
College of  Sciences, Hue University

 

SUMMARY

In this paper, we introduce a new method to check the spelling mistakes in Vietnamese. This method is based on the constructing laws of syllables.


P/S  : Mình lưu lại để nghiên cứu. :)
Bài trước
Bài sau

Thíchcode.NET - Mang lại giải pháp cho coder. Nếu các bạn có gì khó khăn trong lập trình thì liên hệ chúng tôi (FanFace). Chúng tôi sẽ hỗ trợ miễn phí cho các bạn.

0 comments:


Hỗ trợ