Tải bản đầy đủ (.pdf) (5 trang)

Tài liệu Microsoft Windows pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (295.24 KB, 5 trang )

1
XÂY DNG CÔNG C KIM TRA CHÍNH T TING VIT
TRONG MÔI TRNG MICROSOFT WINDOWS
DESIGN A TOOL KIT TO CHECK THE SPELLING OF VIETNAMESE TEXT
IN MICROSOFT WINDOWS
Phan Huy Khánh
E-mail:
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.
Xây dng công c kim tra chính t ting Vit
2
Â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.
Khi nhn din, ta thy ph âm đu gi có
hai trng hp phân bit là g (trong gic,
giã...) và gi (trong gin, giêng...) còn các
ph âm đu khác đu không cha nguyên
âm. Ph âm đu qu mc dù có cha

nguyên âm u nh
ng d tách ra khi âm tit
vì không có q đng mt mình.
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 ?
Nu âm tit đang xét vi phm mt
trong hai li trên (đ tin trình bày, ta gi
là li loi 1 và là li loi 2), giá tr bin
logic Có_li đc khng đnh, ngha là đã
phm li chính t.
Trong trng hp này, vic Sa_li s
cn c vào bn cht ca li là lo
i 1 hay
Xâ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 ...
...
ng


...
oi
ng

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 :
Type Ph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) :
3

p
4

Hì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ã
Hin nay có rt nhiu phông ch
(fonts) ting Vit xây dng trên nhiu b
mã khác nhau (khác nhau v s bytes s
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 :
DDa.i ho.c DDa` na(~ng.

t
i

x
inh

đ
đ

n
x


5

Hì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

×