[r]
Trang 1T P CHÍ KHOA H C, Đ i h c Hu , S 25, 2004Ạ Ọ ạ ọ ế ố
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ổ ợ ầ ầ
Trang 2gi 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.ậ
Trang 32. 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ó
Trang 4Đâ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ặ
T h p âm gi aổ ợ ữ oặ
Hai
T h p âm gi aổ ợ ữ ai
O
T h p âm gi aổ ợ ữ o
Â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.ả ầ ấ ạ ế
Trang 5D 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. c
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 đ mệ
T h p âm gi aổ ợ ữ
Âm chính
Thanh đi uệ
Trang 6Nh 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.ả
Trang 7 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à logế ị ố ộ ế 2(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ấ ả ạ ọ ọ
(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ấ ả
5 Phan Th Tị ươ Trình biên d chi ị , Nhà xu t b n Đ i h c Qu c gia, Tp. H Chíấ ả ạ ọ ố ồ Minh, (2001).
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.