1 XÂY DNG CÔNG C KIM TRA CHÍNH T TING VIT TRONG MÔI TRNG MICROSOFTWINDOWS DESIGN A TOOL KIT TO CHECK THE SPELLING OF VIETNAMESE TEXT IN MICROSOFTWINDOWS Phan Huy Khánh E-mail: PhanHuyKhanh@dng.vnn.vn Tóm tt⎯Bài báo này trình bày gii pháp thit k mt công c gi là VitTools cho phép kim tra chính t ting Vit bng cách xây dng mt c s d liu t vng trên mã VIQR. VitTools đc m rng thành công c vn nng đ có th chuyn mã vn bn, sp xp, tra cu t đin ting Vit hoc t đin đa ng, x lý ngôn ng t nhiên. T khoá⎯c s d liu, mã, chuyn mã, mã trc, phông ch, ting Vit, chính t, t đin, x lý vn bn. I t vn đ Hin nay, hu nh mi công vn, giy t giao dch thng ngày đu đc to ra và in n bng máy vi tính. Mt trong nhng phn mm “vn phòng” đc s dng tng đi thông dng là trình son tho vn bn Microsoft Word (gi tt là WinWord). Có th nói vic ch bn, in n t đng đã làm vn bn đc trình bày đp hn, ni dung phong phú hn và do vy, cht lng hiu qu công vic cng đc tng lên. Tuy nhiên, vic son tho các vn bn ting Vit vn còn đt ra nhng vn đ cha đc gii quyt tt, trong đó có vn đ tìm và khc phc các li chính t. Nguyên nhân là vic s dng máy vi tính tng đi ph cp, s bn rn và phc tp ca cuc sng nên con ngi có ít thi gian, các phn mm hin nay hu nh ch làm vic vi ting Anh . Nhng li chính t hay gp nht là : − B du thanh sai, vit sai do cách phát âm sai t vùng này qua vùng khác, ví d nghip gõ thành ngip, s gõ thành x, ngõ gõ thành ng trong ngõ ph, ngõ hm . − t du câu sai, hay gp là các du phy (,), du chm (.), du chm lng ( .) v.v . không có du cách phía sau mà li có du cách phía trc, ví d gà, bò, heo . li gõ thành gà ,bò ,heo . − Không theo chun hoá chính t, s dng nhiu t mt cách tu tin không nht quán ngay trong cùng mt vn bn, ví d gy mà không phi gãy, màu (sc) thay cho mu (nhim), gi thay cho gi, v.v . Nh đã bit, chính t ting Vit là mt vn đ luôn luôn đc nhi u ngi quan tâm, bi vì tính thng nht ca ngôn ng đc th hin tính thng nht v chính t. T hàng th k nay, ting Vit luôn đi mi và phát trin cùng vi vn hoá, xã hi, kinh t và giao lu quc t. có th s dng đúng đn cng nh góp phn làm phong phú ting Vit, vic chun hoá và thng nht chính t rõ ràng là mt vn đ có tính thi s. Nh vy, vn đ đt ra là làm sao có th khc phc các li chính t ting Vit khi son tho vn bn trên máy vi tính ? Do trình son tho vn bn Winword ch có chc nng phát hin và sa li chính t (check and correct spelling) áp dng đc cho ting Anh, hin nay đã có nhng gii pháp đ áp dng cho ting Vit. Ví d trình VietSpell Checker (ca Trung tâm Tin hc, HKH tp.HCM), VitKey (ca ng Minh Tun), các phông ch VNI tân k, ABC . Bài báo này trình bày mt gii pháp tng quát và có tính m đ xây dng mt công c, đc gi là VitTools, có chc nng phát hin - sa li chính t và các chc nng x lý ting Vit khác nh : − Chuyn đi các vn bn ting Vit son tho trên mt h phông ch bt k sang mt h phông ch bt k khác. − Sp xp vn bn ting Vit theo th t ABC không ph thuc vào phông ch đang s dng. − Khai thác tra cu t vi chc nng là mt t đin đn ng và/hoc đa ng. Xây dng công c kim tra chính t ting Vit 2 Âm tit − Kh nng m rng đ x lý ting Vit theo quan đim x lý ngôn ng t nhiên . Theo t đin chính t ca Hoàng Phê [ 1], ting Vit có 6.760 âm tit ch vit đ cu to t đn hay t ghép. Mi âm tit gm hai phn : ph âm đu (có th vng mt) và khuôn vn (gm vn và thanh điu). Ví d các t đn n, hc, đp, trng . là do các âm tit n, hc, đp, trng . to thành, các t ghép chm ch, đp đ do các ph âm đu ch, đ và các âm tit m, , p và to thành. Nh vy, đ phát hin và sa li chính t, cn da trên vic phân tích mt âm tit bng cách nhn din (v mt hình hc) ph âm đu và khuôn vn. Cu trúc âm tit có th đc phân bit nh sau (Hình 1) : Hình 1 Cu trúc âm tit ting Vit Theo thng kê ca Hoàng Phê, ting Vit có tt c 25 ph âm đu và 1160 khuôn vn, cu trúc âm tit luôn luôn gm mt ph âm đu ghép vi mt khuôn vn hoc âm tit ch gm mt khuôn vn. II Thit k công c VitTools VitTools s đc thit k trong môi trng MicrosoftWindows đ có th áp dng cho các ng dng vn phòng nh Winword, Excel, Access, PowerPoint V mt lý thuyt, cn phi gii quyt ba vn đ là xây dng b phát hin - sa li chính t, c s d liu t vng và chuyn đi mã. II.1. Xây dng b phát hin và sa li chính t xây dng b phát hin - sa li chính t, cn gii quyt hai vn đ là phát hin li chính t và sa li. Ta có th s dng thut toán sau (Hình 2) : Repeat c_mt_âm_tit Phân_tích_âm_tit Kim_tra_li_chính_t If Có_li then Sa_li Until Ht_ âm_tit or Yêu_cu_dng Khuôn vn Vn Thanh điu Ph âm đu Hình 2 Thut toán phát hin và sa li chính t Vic c_mt_âm_tit đc tin hành ln lt t đu vn bn đang xét tr đi hoc bt đu t v trí du chèn tr v cui vn bn (down) hoc ngc (up) v đu vn bn. Mt âm tit là mt xâu ký t ch gm toàn ch cái thuc phông ch ting Vit đang s dng hin hành, đc đt gia các ký t ngt câu, hoc ký t ngt dòng, hoc ký t khác ch cái. Phân_tích_âm_tit tc là tách âm tit thành 2 phn, ph âm đu và khuôn vn. Khi nhn din, ta thy ph âm đu gi có hai trng hp phân bit là g (trong gic, giã .) và gi (trong gin, giêng .) còn các ph âm đu khác đu không cha nguyên âm. Ph âm đu qu mc dù có cha nguyên âm u nh ng d tách ra khi âm tit vì không có q đng mt mình. Các cp ph âm đu có đ dài 1, ch, gh, kh, ph, th, tr và ng), hoc 3 (ngh). Nu mt âm tit bt đu bi mt nguyên âm thì âm tit đó không có ph âm đu. Sau khi phân tích âm tit thành ph âm đu và khuôn vn, Kim_tra_li_chính_t đc tin hành theo hai bc : 1. Ph âm đu (nu có) và khuôn vn có thuc danh sách các ph âm đu và khuôn vn cho phép không ? 2. Âm tit có hp l không ? Nu âm tit đang xét vi phm mt trong hai li trên (đ tin trình bày, ta gi là li loi 1 và là li loi 2), giá tr bin logic Có_li đc khng đnh, ngha là đã phm li chính t. Trong trng hp này, vic Sa_li s cn c vào bn cht ca li là lo i 1 hay Xây dng công c kim tra chính t ting Vit loi 2. Tính “thông minh” ca b phát hin - sa li chính t là ch có th “đoán” đc ý đ ca tác gi vn bn mà gi ý cách sa cha. Vic phát hin - sa li dng khi không còn âm tit hoc ngi s dng yêu cu dng công vic. II.2. Xây dng c s d liu t vng Do cu trúc âm tit ting Vit và đ s dng các bng thng kê âm tit trong [ 1], ta có th thit k c s d liu là mt mng hai chiu. Mi phn t ca mng cho phép kim tra tính đúng đn (hay s có mt) mt âm tit cn c vào v trí hàng ca ph âm đu và v trí ct ca khuôn vn. Ví d âm tit ngoi là phn t đc xác đnh t ph âm đu th và khuôn vn oi t bng sau (bên phi Hình 3 là cách xác đnh âm tit đó) : . oi . . ng ⌦ . oi ng • Hình 3 Cách xác đnh mt âm tit Cu trúc mt phn t mng nh sau : Type Phn_t_mng = Record Vn_đ_chính_t Loi_t Ngha Ni_t Chuyn_ng end Hình 4 Cách xác đnh mt âm tit Mc Vn_đ_chính_t có th có các giá tr nh sau : − Có âm tit s dng trong ting Vit − Có vn đ v chính t, ví d v thanh điu (ha hay ho, qúy hay quý .), v phát âm các phng ng vi ch vit (z tng đng d và gi, k d, lý lun, k .), v t ng vay mn ca nc ngoài (karaole, photocopy, fax, bp gas .) . − Có yu t cu to t Hán-Vit, ví d cng - cng ., bãi - b . − Không th có cu to âm tit nh qút, quôn, coan (quan), cuê (quê) . Tu theo mc đ nghiên cu chính t, có th thêm các giá tr mi vào mc này. Mc Loi_t cho bit đây là loi t gì v mt ng pháp, nu âm tit là mt t đn. Chng hn loi t có th là danh t, đi t, đng t, ph t, tính t, v.v . Mc Ngha cho bit ngha (semantic) ca t biên son theo ni dung cun T đin ting Vit [ 2]. V mt chng trình, trng Ngha đc thit k là mt con tr (pointer) tr đn ni cha các dòng vn bn gii thích ngha ca t. Mc Ni_t cho phép liên kt vi các âm tit khác đ to thành các t ghép. Ví các t ghép ti đp, xinh ti, xinh đp, xinh xinh, xinh xn, đp đ đc minh ho cách ni ghép nh sau (Hình 5) : 3 p 4 Hình 5 Cách to các t ghép Vi t ghép đôi, có th xy ra các mi ni hai chiu, nh ân ái - ái ân, bo đm - đm bo . hoc các mi ni vòng, nh chung chung, xinh xinh . Trng hp các t ghép ba, nh tng tòng tong ., các t ghép bn nh lt thà lt tht, ko cà ko kt . hoc t ghép dài hn thì phi xây dng các mi ni bc cu. Hình 6 di đây mô t Ni_t là mt cu trúc con tr đc bit cho phép x lý các loi mi ni khác nhau nh va trình bày. d trin khai, có th quy c các t ghép ch xác đnh bi âm tit đu. Type Ni_t = Record Ni_đôi Ni_vòng Ni_bc_cu end Hình 6 Cu trúc mi ni t Các trng Ni_đôi, Ni_vòng và Ni_bc_cu là nhng con tr tr đn mt danh sách gm các con tr tr đn các phn t ca mng (s phn t ca danh sách là s t ghép tng ng). Mc Chuyn_ng cho phép ghi ngha tng đng ca âm tit (t đn) và t ghép trong mt ngôn ng nào đó, ví d Anh ng, Pháp ng, v.v . Nh vy có th thit k mc Chuyn_ng có cùng cu trúc vi mc Ni_t. II.3. Chuyn đi mã Hin nay có rt nhiu phông ch (fonts) ting Vit xây dng trên nhiu b mã khác nhau (khác nhau v s bytes s dng là 1 byte hoc 2 byte, th t du thanh, cách b trí các ký t .). Do cha s dng mã thng nht nên gii pháp tt nht là nên s dng mt b mã trc (pivot code) đ d dàng chuyn đi qua li gia các mã. B mã trc đc chn là VIQR (VIetnamese Quoted Readable Specifications). B mã này do nhóm Viet- Std (Vietnamese Standardization Working Group) phát trin ch s dng các ký t ASCII chun 7-bits đ biu din du ting Vit nên tính tng thích rt cao. Ví d đ gõ vào câu i hc à nng : DDa.i ho.c DDa` na(~ng. t i • x inh • đ đ • n x • • 5 Hình 7 B mã trc VIQR Trc khi chuyn mã ngun v mã VIQR cn có th tc Nhn_din_ mã_ngun và trc khi chuyn mã VIQR sang mt mã đích khác cn có th tc Nhn_din_mã_đích. Nh vy đ phát hin li chính t, công c VitTools s làm vic trên các âm tit đã đc chuyn sang mã VIQR. VitTools phân tích các âm tit đ dò tìm ph âm đu và khuôn vn tìm đc trong các vect ph âm đu và khuôn v n tng ng theo mã VIQR. III Kt lun V mt lý thuyt, ta đã thit k xong công c VitTools cho phép phát hin và sa li chính t. u đim ca phng pháp là công c hot đng không ph thuc vào mã phông ch ting Vit đang s dng và không ph thuc vào ng dng hin hành. VitTools cng đc thit k theo hng m bng cách thêm các chc nng sp xp, chuyn mã vn bn hoc d liu ting Vit, v.v . Cu trúc c s d liu t vng đã thit k cho phép xây dng t đin đa chc nng (multipurpose), đa ng (multilingual) phc v x lý ngôn ng t nhiên, trc ht là t đin chính t và t đ in tra ngha. Tài liu tham kho [ 1 ] Hoàng Phê. T đin chính t. Trung tâm t đin hc, NXB à nng 1995 [ 2 ] Hoàng Phê. T đin ting Vit. Trung tâm t đin hc, NXB à nng 1997 [ 3 ] Nguyn Kim Thn. Ng pháp ting Vit. NXB Giáo dc 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 . T TING VIT TRONG MÔI TRNG MICROSOFT WINDOWS DESIGN A TOOL KIT TO CHECK THE SPELLING OF VIETNAMESE TEXT IN MICROSOFT WINDOWS Phan Huy Khánh E-mail:. Thit k công c VitTools VitTools s đc thit k trong môi trng Microsoft Windows đ có th áp dng cho các ng dng vn phòng nh Winword, Excel,