Ng pháp ti ng Vi t.. An Introduction to Machine Translation.. Computational Approaches to the Lexicon.
Trang 1XÂY D NG CÔNG C KI M TRA CHÍNH T TI NG VI T
DESIGN A TOOL KIT TO CHECK THE SPELLING OF VIETNAMESE TEXT
IN MICROSOFT WINDOWS
Phan Huy Khánh
E-mail: PhanHuyKhanh@dng.vnn.vn
Tóm t t⎯ Bài báo này trình bày gi i pháp thi t k m t công c g i là Vi tTools cho phép ki m tra chính t
ti ng Vi t b ng cách xây d ng m t c s d li u t v ng trên mã VIQR Vi tTools đ c m r ng thành công c v n n ng đ có th chuy n mã v n b n, s p x p, tra c u t đi n ti ng Vi t ho c t đi n đa ng , x
lý ngôn ng t nhiên.
T khoá⎯ c s d li u, mã, chuy n mã, mã tr c, phông ch , ti ng Vi t, chính t , t đi n, x lý v n b n
I t v n đ
Hi n nay, h u nh m i công v n, gi y
t giao d ch th ng ngày đ u đ c t o ra và
in n b ng máy vi tính M t trong nh ng
ph n m m “v n phòng” đ c s d ng
t ng đ i thông d ng là trình so n th o v n
b n Microsoft Word (g i t t là WinWord)
Có th nói vi c ch b n, in n t đ ng đã
làm v n b n đ c trình bày đ p h n, n i
dung phong phú h n và do v y, ch t l ng
hi u qu công vi c c ng đ c t ng lên
Tuy nhiên, vi c so n th o các v n b n
ti ng Vi t v n còn đ t ra nh ng v n đ ch a
đ c gi i quy t t t, trong đó có v n đ tìm
và kh c ph c các l i chính t Nguyên nhân
là vi c s d ng máy vi tính t ng đ i ph
c p, s b n r n và ph c t p c a cu c s ng
nên con ng i có ít th i gian, các ph n
m m hi n nay h u nh ch làm vi c v i
ti ng Anh
Nh ng l i chính t hay g p nh t là :
− B d u thanh sai, vi t sai do cách phát
âm sai t vùng này qua vùng khác, ví d
nghi p gõ thành ngi p, s gõ thành x ,
ngõ gõ thành ng trong ngõ ph , ngõ
h m
− t d u câu sai, hay g p là các d u ph y
(,), d u ch m (.), d u ch m l ng ( )
v.v không có d u cách phía sau mà l i
có d u cách phía tr c, ví d gà, bò,
heo l i gõ thành gà ,bò ,heo
− Không theo chu n hoá chính t , s d ng
nhi u t m t cách tu ti n không nh t
quán ngay trong cùng m t v n b n, ví d
g y mà không ph i gãy, màu (s c) thay
cho m u (nhi m), g i thay cho g i, v.v
Nh đã bi t, chính t ti ng Vi t là m t
v n đ luôn luôn đ c nhi u ng i quan tâm, b i vì tính th ng nh t c a ngôn ng
đ c th hi n tính th ng nh t v chính t
T hàng th k nay, ti ng Vi t luôn đ i m i
và phát tri n cùng v i v n hoá, xã h i, kinh
t và giao l u qu c t có th s d ng đúng đ n c ng nh góp ph n làm phong phú ti ng Vi t, vi c chu n hoá và th ng
nh t chính t rõ ràng là m t v n đ có tính
th i s
Nh v y, v n đ đ t ra là làm sao có th
kh c ph c các l i chính t ti ng Vi t khi
so n th o v n b n trên máy vi tính ? Do trình so n th o v n b n Winword ch có
ch c n ng phát hi n và s a l i chính t (check and correct spelling) áp d ng đ c cho ti ng Anh, hi n nay đã có nh ng gi i pháp đ áp d ng cho ti ng Vi t Ví d trình VietSpell Checker (c a Trung tâm Tin h c, HKH tp.HCM), Vi tKey (c a ng Minh
Tu n), các phông ch VNI tân k , ABC Bài báo này trình bày m t gi i pháp
t ng quát và có tính m đ xây d ng m t công c , đ c g i là Vi tTools, có ch c
n ng phát hi n - s a l i chính t và các
ch c n ng x lý ti ng Vi t khác nh :
− Chuy n đ i các v n b n ti ng Vi t so n
th o trên m t h phông ch b t k sang
m t h phông ch b t k khác
− S p x p v n b n ti ng Vi t theo th t ABC không ph thu c vào phông ch đang s d ng
− Khai thác tra c u t v i ch c n ng là
m t t đi n đ n ng và/ho c đa ng
Trang 2Xây d ng công c ki m tra chính t ti ng Vi t
Âm ti t
− Kh n ng m r ng đ x lý ti ng Vi t
theo quan đi m x lý ngôn ng t nhiên
Theo t đi n chính t c a Hoàng Phê [
1], ti ng Vi t có 6.760 âm ti t ch vi t đ
c u t o t đ n hay t ghép M i âm ti t
g m hai ph n : ph âm đ u (có th v ng
m t) và khuôn v n (g m v n và thanh đi u)
Ví d các t đ n n, h c, đ p, tr ng là
do các âm ti t n, h c, đ p, tr ng t o
thành, các t ghép ch m ch , đ p đ do các
ph âm đ u ch, đ và các âm ti t m, , p và
t o thành
Nh v y, đ phát hi n và s a l i chính
t , c n d a trên vi c phân tích m t âm ti t
b ng cách nh n di n (v m t hình h c) ph
âm đ u và khuôn v n C u trúc âm ti t có
th đ c phân bi t nh sau (Hình 1) :
Hình 1 C u trúc âm ti t ti ng Vi t
Theo th ng kê c a Hoàng Phê, ti ng
Vi t có t t c 25 ph âm đ u và 1160 khuôn
v n, c u trúc âm ti t luôn luôn g m m t ph
âm đ u ghép v i m t khuôn v n ho c âm
ti t ch g m m t khuôn v n
II Thi t k công c Vi tTools
Vi tTools s đ c thi t k trong môi
tr ng Microsoft Windows đ có th áp
d ng cho các ng d ng v n phòng nh Winword, Excel, Access, PowerPoint V
m t lý thuy t, c n ph i gi i quy t ba v n đ
là xây d ng b phát hi n - s a l i chính t ,
c s d li u t v ng và chuy n đ i mã
II.1 Xây d ng b phát hi n và s a
l i chính t
xây d ng b phát hi n - s a l i chính t , c n gi i quy t hai v n đ là phát
hi n l i chính t và s a l i Ta có th s
d ng thu t toán sau (Hình 2) :
Repeat
c_m t_âm_ti t
Phân_tích_âm_ti t
Ki m_tra_l i_chính_t
If Có_l i then S a_l i
Until H t_ âm_ti t or Yêu_c u_d ng
Khuôn v n
V n Thanh đi u
Ph âm đ u
Hình 2 Thu t toán phát hi n và s a l i chính t
Vi c c_m t_âm_ti t đ c ti n hành
l n l t t đ u v n b n đang xét tr đi
ho c b t đ u t v trí d u chèn tr v cu i
v n b n (down) ho c ng c (up) v đ u
v n b n M t âm ti t là m t xâu ký t ch
g m toàn ch cái thu c phông ch ti ng
Vi t đang s d ng hi n hành, đ c đ t
gi a các ký t ng t câu, ho c ký t ng t
dòng, ho c ký t khác ch cái
Phân_tích_âm_ti t t c là tách âm ti t
thành 2 ph n, ph âm đ u và khuôn v n
Các c p ph âm đ u có đ dài 1, ch,
gh, kh, ph, th, tr và ng), ho c 3 (ngh) N u
m t âm ti t b t đ u b i m t nguyên âm thì
âm ti t đó không có ph âm đ u
Sau khi phân tích âm ti t thành ph âm
đ u và khuôn v n, Ki m_tra_l i_chính_t
đ c ti n hành theo hai b c :
1 Ph âm đ u (n u có) và khuôn v n có thu c danh sách các ph âm đ u và khuôn v n cho phép không ?
2 Âm ti t có h p l không ?
đang xét vi ph m m t
Trang 3Xây d ng công c ki m tra chính t ti ng Vi t
lo i 2 Tính “thông minh” c a b phát hi n
- s a l i chính t là ch có th “đoán”
đ c ý đ c a tác gi v n b n mà g i ý
cách s a ch a
Vi c phát hi n - s a l i d ng khi
không còn âm ti t ho c ng i s d ng yêu
c u d ng công vi c
II.2 Xây d ng c s d li u t
v ng
Do c u trúc âm ti t ti ng Vi t và đ s
d ng các b ng th ng kê âm ti t trong [ 1],
ta có th thi t k c s d li u là m t m ng
hai chi u M i ph n t c a m ng cho phép
ki m tra tính đúng đ n (hay s có m t) m t
âm ti t c n c vào v trí hàng c a ph âm
đ u và v trí c t c a khuôn v n
Ví d âm ti t ngo i là ph n t đ c xác đ nh t ph âm đ u th và khuôn v n
o i t b ng sau (bên ph i Hình 3 là cách
xác đ nh âm ti t đó) :
o i
o i
Hình 3 Cách xác đ nh m t âm ti t
C u trúc m t ph n t m ng nh sau :
TypePh n_t _m ng = Record
V n_ đ _chính_t
Lo i_t
Ngh a
N i_t
Chuy n_ng
end
Hình 4 Cách xác đ nh m t âm ti t
M c V n_ đ _chính_t có th có các
giá tr nh sau :
− Có âm ti t s d ng trong ti ng Vi t
− Có v n đ v chính t , ví d v thanh
đi u (h a hay ho , qúy hay quý ), v
phát âm các ph ng ng v i ch vi t (z
t ng đ ng d và gi, k d , lý lu n,
k ), v t ng vay m n c a n c
ngoài (karaole, photocopy, fax, b p
gas )
− Có y u t c u t o t Hán-Vi t, ví d
c ng - c ng , bãi - b
− Không th có c u t o âm ti t nh qút,
quôn, coan (quan), cuê (quê)
Tu theo m c đ nghiên c u chính t ,
có th thêm các giá tr m i vào m c này
M c Lo i_t cho bi t đây là lo i t gì
v m t ng pháp, n u âm ti t là m t t
đ n Ch ng h n lo i t có th là danh t ,
đ i t , đ ng t , ph t , tính t , v.v
M c Ngh a cho bi t ngh a (semantic)
c a t biên so n theo n i dung cu n T
đi n ti ng Vi t [ 2] V m t ch ng trình,
tr ng Ngh a đ c thi t k là m t con tr (pointer) tr đ n n i ch a các dòng v n
b n gi i thích ngh a c a t
M c N i_t cho phép liên k t v i các
âm ti t khác đ t o thành các t ghép Ví
các t ghép t i đ p, xinh t i, xinh đ p, xinh xinh, xinh x n, đ p đ đ c minh ho
cách n i ghép nh sau (Hình 5) :
Trang 4Hình 5 Cách t o các t ghép
V i t ghép đôi, có th x y ra các m i
n i hai chi u, nh ân ái - ái ân, b o đ m -
đ m b o ho c các m i n i vòng, nh
chung chung, xinh xinh Tr ng h p các
t ghép ba, nh t ng tòng tong , các t
ghép b n nh l t thà l t th t, k o cà
k o k t ho c t ghép dài h n thì ph i xây
d ng các m i n i b c c u
Hình 6 d i đây mô t N i_t là m t
c u trúc con tr đ c bi t cho phép x lý các lo i m i n i khác nhau nh v a trình bày d tri n khai, có th quy c các
t ghép ch xác đ nh b i âm ti t đ u
Type
N i_t = Record
N i_ đôi
N i_vòng
N i_b c_c u
end
Hình 6 C u trúc m i n i t
Các tr ng N i_ đôi, N i_vòng và
N i_b c_c u là nh ng con tr tr đ n m t
danh sách g m các con tr tr đ n các
ph n t c a m ng (s ph n t c a danh
sách là s t ghép t ng ng)
M c Chuy n_ng cho phép ghi ngh a
t ng đ ng c a âm ti t (t đ n) và t
ghép trong m t ngôn ng nào đó, ví d
Anh ng , Pháp ng , v.v Nh v y có th
thi t k m c Chuy n_ng có cùng c u trúc
v i m c N i_t
II.3 Chuy n đ i mã
d ng là 1 byte ho c 2 byte, th t d u thanh, cách b trí các ký t ) Do ch a s
d ng mã th ng nh t nên gi i pháp t t nh t
là nên s d ng m t b mã tr c (pivot code)
đ d dàng chuy n đ i qua l i gi a các mã
B mã tr c đ c ch n là VIQR (VIetnamese Quoted Readable Specifications) B mã này do nhóm
Viet-Std (Vietnamese Standardization Working Group) phát tri n ch s d ng các ký t ASCII chu n 7-bits đ bi u di n d u ti ng
Vi t nên tính t ng thích r t cao
Ví d đ gõ vào câu i h c à n ng :
t
i
inh
•
đ
n
•
Trang 5Hình 7 B mã tr c VIQR
Tr c khi chuy n mã ngu n v mã
VIQR c n có th t c Nh n_di n_
mã_ngu n và tr c khi chuy n mã VIQR
sang m t mã đích khác c n có th t c
Nh n_di n_mã_ đích
Nh v y đ phát hi n l i chính t , công
c Vi tTools s làm vi c trên các âm ti t đã
đ c chuy n sang mã VIQR Vi tTools
phân tích các âm ti t đ dò tìm ph âm đ u
và khuôn v n tìm đ c trong các vect ph
âm đ u và khuôn v n t ng ng theo mã
VIQR
III K t lu n
V m t lý thuy t, ta đã thi t k xong
công c Vi tTools cho phép phát hi n và
s a l i chính t u đi m c a ph ng pháp
là công c ho t đ ng không ph thu c vào
mã phông ch ti ng Vi t đang s d ng và
không ph thu c vào ng d ng hi n hành
Vi tTools c ng đ c thi t k theo
h ng m b ng cách thêm các ch c n ng
s p x p, chuy n mã v n b n ho c d li u
ti ng Vi t, v.v
C u trúc c s d li u t v ng đã thi t
k cho phép xây d ng t đi n đa ch c n ng (multipurpose), đa ng (multilingual) ph c
v x lý ngôn ng t nhiên, tr c h t là t
đi n chính t và t đi n tra ngh a
Tài li u tham kh o
[ 1 ] Hoàng Phê T đi n chính t Trung tâm t
đi n h c, NXB à n ng 1995
[ 2 ] Hoàng Phê T đi n ti ng Vi t Trung tâm
t đi n h c, NXB à n ng 1997
[ 3 ] Nguy n Kim Th n Ng pháp ti ng Vi t
NXB Giáo d c 1997
[ 4] W J Hutchins & H L Somers An Introduction to Machine Translation
Academic Press 19ìc [ 5] B T S Atkins & A Zampolli
Computational Approaches to the Lexicon
Oxford University Press 1994
VIQR
IBM
CP 01129
TCVN3
VietKey
VISCII
VietWare VNI
BKtpHCM Microsoft
CP 1258