Chuong trinh bat loi chinh ta

Chuong trinh bat loi chinh ta - L i c m ơn K H O A C N TT...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: L i c m ơn K H O A C N TT – Đ H K H TN L i đ u tiên em xin chân thành c m ơn th y Đinh Đi n, ngư i đã tr c ti p hư ng d n em hoàn thành lu n văn này. Th y là ngư i đã truy n th cho em r t nhi u ki n th c v tin h c và ngôn ng h c, giúp em có đư c hi u bi t sâu hơn v m t trong các ng d ng có ý nghĩa vô cùng to l n trong cu c s ng c a tin h c —- v n đ d ch máy. Em cũng xin chân thành c m ơn các th y cô trong khoa Công ngh thông tin đã t n tình ch b o và giúp đ cho em trong su t th i gian em h c đ i h c và h tr em trong quá trình th c hi n lu n văn. Con xin chân thành c m ơn ba m , các anh và nh ng ngư i thân trong gia đình đã nuôi d y, t o m i đi u ki n t t nh t cho con h c t p và đ ng viên con trong th i gian th c hi n lu n văn. Và cu i cùng, xin g i l i c m ơn đ n t t c b n bè và nh t là các b n trong nhóm VCL (Vietnamese Computational Linguistics), nh ng ngư i đã giúp đ và h tr trong quá trình hoàn thi n lu n văn này. Tp. H Chí Minh, tháng 7 năm 2004 Nguy n Thái Ng c Duy — 0012020 K H TN M cl c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Đ . . . . – . . . . Cơ s lý thuy t ngôn ng 2.1 Âm ti t . . . . . . . . . 2.1.1 Nguyên âm và ph 2.1.2 Âm v . . . . . . 2.1.3 Âm ti t . . . . . 2.1.4 Ph âm đ u . . . 2.1.5 V n . . . . . . . 2.1.6 Thanh đi u . . . 2.2 T . . . . . . . . . . . . 2.2.1 Đ nh nghĩa t . . 2.2.2 Đ c đi m c a t 2.2.3 Các quan ni m v K H O A 2 M đu 1.1 N i dung bài toán 1.2 Đ c đi m . . . . 1.3 Hư ng gi i quy t 1.4 B c c lu n văn . C N TT 1 H Tóm t t lu n văn .... âm . .... .... .... .... .... .... .... .... hình v 1 ... ... ... ... ... ... ... ... ... ... và t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... trong ti ng Vi t . . . . . . . . . . . . . . . . 8 . . . . 10 11 12 14 15 . . . . . . . . . . . 16 16 17 18 19 23 25 30 32 32 36 37 M CL C ....... ....... vi t ti ng Vi t...... ....... . . t . . . . . . . . . . . . . . . . . . . . . . . . . . . Cơ s tin h c 3.1 B t l i chính t . . . . . . . . . . . . . . . . . . 3.1.1 Phân lo i l i chính t . . . . . . . . . . . 3.1.2 Phát hi n l i chính t . . . . . . . . . . . 3.1.3 Các sai l m c a trình b t l i chính t . . 3.1.4 V n đ ch hoa, ch thư ng . . . . . . . 3.2 L p danh sách t đ ngh . . . . . . . . . . . . . 3.2.1 L i phát âm sai . . . . . . . . . . . . . . 3.2.2 L i nh p sai . . . . . . . . . . . . . . . 3.2.3 Các l i khác . . . . . . . . . . . . . . . 3.3 S p x p danh sách . . . . . . . . . . . . . . . . 3.3.1 Văn ph m ràng bu c . . . . . . . . . . . 3.3.2 M t đ quan ni m . . . . . . . . . . . . 3.4 B t l i t đ ng . . . . . . . . . . . . . . . . . . 3.4.1 Mô hình TBL . . . . . . . . . . . . . . . 3.4.2 Mô hình Winnow . . . . . . . . . . . . . 3.4.3 Mô hình Danh sách quy t đ nh . . . . . . 3.4.4 Mô hình Trigram và Bayes . . . . . . . . 3.4.5 Mô hình Bayes và Danh sách quy t đ nh 3.5 B t l i ti ng châu Á . . . . . . . . . . . . . . . . 3.6 Tách t . . . . . . . . . . . . . . . . . . . . . . 3.6.1 Kh p t i đa . . . . . . . . . . . . . . . . K H O A C N TT – Đ H 3 T láy . . . . . . . . . . Chính t ti ng Vi t . . . 2.4.1 T ng quan v ch 2.4.2 Chính t ti ng Vi 2.4.3 L i chính t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 39 39 41 45 . . . . . . . . . . . . . . . . . . . . . 46 47 47 49 49 50 51 52 53 54 55 55 56 59 59 62 65 66 67 68 69 71 K H TN 2.3 2.4 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M CL C Mô hình HMM . . . . . . . . . . Mô hình WFST và m ng nơ-ron . Mô hình Source-Channel c i ti n Mô hình TBL . . . . . . . . . . . m ................ Hu n luy n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mô hình 4.1 Mô hình chung . . . . . . . . . . . . . . . . . . 4.1.1 Ti n x lý . . . . . . . . . . . . . . . . . 4.1.2 B t l i non-word . . . . . . . . . . . . . 4.1.3 B t l i real-word . . . . . . . . . . . . . 4.2 Ti n x lý . . . . . . . . . . . . . . . . . . . . . 4.2.1 Tách token . . . . . . . . . . . . . . . . 4.2.2 Tách câu . . . . . . . . . . . . . . . . . 4.2.3 Chu n hoá . . . . . . . . . . . . . . . . 4.2.4 Ch vi t hoa . . . . . . . . . . . . . . . 4.2.5 T nư c ngoài, t vi t t t, các ký hi u . . . 4.3 B t l i non-word . . . . . . . . . . . . . . . . . 4.3.1 Tìm l i chính t . . . . . . . . . . . . . . 4.3.2 L p danh sách t đ ngh . . . . . . . . . 4.3.3 S p x p danh sách t đ ngh . . . . . . 4.4 B t l i real-word . . . . . . . . . . . . . . . . . 4.4.1 Lư i t . . . . . . . . . . . . . . . . . . 4.4.2 T o lư i t . . . . . . . . . . . . . . . . 4.4.3 M r ng lư i t — Ph c h i l i . . . . . 4.4.4 Hoàn ch nh lư i t . . . . . . . . . . . . 4.4.5 Áp d ng mô hình ngôn ng — Tách t . K H O A C N TT – Đ H 4 3.6.2 3.6.3 3.6.4 3.6.5 Tách t 3.7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 73 73 75 76 77 . . . . . . . . . . . . . . . . . . . . 79 80 82 82 82 83 83 85 85 87 87 88 88 88 96 96 96 99 100 103 103 K H TN 3.7 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M CL C . . . . . . . . . . . . . t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . – C N TT K H O A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 106 107 107 111 112 . . . . . . . . . . . . . . . . . . . . 120 122 122 123 124 124 125 125 126 126 126 126 126 132 132 135 136 137 137 142 142 K H TN Cài đ t 5.1 C u trúc d li u . . . . . . . . 5.1.1 Lưu chu i . . . . . . . 5.1.2 T đi n . . . . . . . . 5.1.3 Câu . . . . . . . . . . 5.1.4 Lư i t . . . . . . . . 5.1.5 Cách tách t . . . . . 5.1.6 Mô hình ngôn ng . . 5.2 Ti n x lý . . . . . . . . . . . 5.2.1 Tách token . . . . . . 5.2.2 Tách câu . . . . . . . 5.3 Lư i t . . . . . . . . . . . . . 5.3.1 T o lư i t . . . . . . 5.3.2 B sung lư i t . . . . 5.3.3 Tìm cách tách t t t nh 5.3.4 L i phát âm . . . . . . 5.3.5 Danh t riêng . . . . . 5.3.6 L i bàn phím . . . . . 5.4 B t l i chính t . . . . . . . . 5.4.1 Separator . . . . . . . 5.4.2 vspell-gtk . . . . . . . Đ 5 4.4.6 Tìm l i chính t . . . . . . . . . . . . . 4.4.7 L p danh sách t đ ngh . . . . . . . . 4.4.8 S p x p danh sách t đ ngh . . . . . 4.4.9 Các heuristic đ c i thi n đ chính xác Hu n luy n . . . . . . . . . . . . . . . . . . . 4.5.1 Hu n luy n mô hình ngôn ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . H 4.5 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M CL C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 146 146 147 148 148 148 149 149 . . . . 150 152 152 157 158 K H TN . . . . . . . . . H Đánh giá và k t lu n 6.1 Tóm t t . . . . . 6.2 Th nghi m . . . 6.3 Đánh giá . . . . . 6.4 Hư ng phát tri n C N TT 6 . . . n . . . . . Đ 5.6 Hu n luy n . . . . . . . . . . . . . 5.5.1 D li u hu n luy n . . . . . 5.5.2 D li u ngu n . . . . . . . 5.5.3 Ti n x lý ng li u hu n luy 5.5.4 Hu n luy n d li u . . . . . Linh tinh . . . . . . . . . . . . . . 5.6.1 X lý b ng mã . . . . . . . 5.6.2 So sánh chu i . . . . . . . . 5.6.3 X lý ti ng Vi t . . . . . . . – 5.5 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tài li u tham kh o 160 Ph l c 165 K H O A A D li u ki m tra 165 K H TN Danh sách hình v C u trúc âm ti t . . . . . . . . . . . . . . . . . . . . . . . . 4.1 4.2 4.3 4.4 4.5 Mô hình chung . . . . . . . . . . . . . . . . . . Lư i t c a câu “H c sinh h c sinh h c” . . . . . Lư i t m r ng c a câu “H c sinh h c sinh h c” Lư i 2-t c a câu “H c sinh h c sinh h c” . . . Sơ đ tr ng thái phân tích c u trúc ti ng . . . . . 5.1 5.2 Quy t c tách token dùng flex . . . . . . . . . . . . . . . . . 127 Giao di n vspell-gtk . . . . . . . . . . . . . . . . . . . . . 143 K H O A C N TT – Đ H 2.1 6 . . . . . . . . . . . . . . . . . . . . . . . . . 22 . 81 . 97 . 98 . 98 . 101 K H TN Danh sách b ng B ng nguyên âm . . . . . . . . . . . . . . . . . . . . . . . B ng ph âm và bán nguyên âm cu i . . . . . . . . . . . . B ng ph âm đ u . . . . . . . . . . . . . . . . . . . . . . . 42 43 43 4.1 4.2 Danh sách phím lân c n . . . . . . . . . . . . . . . . . . . Ki u gõ VNI-TELEX . . . . . . . . . . . . . . . . . . . . . 91 92 6.1 6.2 K t qu th nghi m t p d li u 1 . . . . . . . . . . . . . . . 155 K t qu t p th nghi m d li u 2 . . . . . . . . . . . . . . . 156 K H O A C N TT – Đ H 2.1 2.2 2.3 7 K H TN Tóm t t lu n văn Đ H V n đ nghiên c u Xây d ng chương trình b t l i chính t ti ng Vi t nh m phát hi n và đ ngh t thay th cho các l i chính t thư ng g p. Đ tài này ch gi i h n b t l i chính t trong các văn b n hành chính. K H O A C N TT – Cách ti p c n S d ng cách ti p c n như sau: Phát sinh nh ng câu có kh năng thay th d a trên các nguyên nhân gây l i chính t , sau đó s d ng mô hình ngôn ng d a trên t đ xác đ nh câu đúng nh t. D a trên s khác bi t gi a câu g c và câu đư c ch n, ta s có th bi t đư c t nào sai chính t , và cách vi t đúng chính t là như th nào. Mô hình s d ng ng li u thô chưa tách t , t hu n luy n đ phù h p v i m c đích c a mô hình. Mô hình b t l i chính t theo hai giai đo n. Giai đo n th nh t tìm và yêu c u ngư i dùng s a l i ti ng (nh ng ti ng không t n t i trong ti ng Vi t). Giai đo n này ch y u s a nh ng l i sai do nh p li u t bàn phím. Giai đo n hai đư c dùng đ b t l i t . T t c các cách tách t có th có c a câu nh p vào đư c xây d ng d a trên lư i t . Sau đó lư i t này đư c m r ng đ thêm vào nh ng câu m i nh áp d ng các nguyên nhân gây l i chính t , nh m t o ra câu đúng t câu sai chính t . Mô hình ngôn ng đư c áp d ng đ đánh giá t ng cách tách t trong lư i t và ch n ra cách tách t t t nh t. D a vào cách tách t này và câu g c, ta s xác đ nh t sai chính t và đưa ra t đ ngh . M t s heuristic đư c áp d ng đ hi u ch nh lư i t nh m t o ra m t k t qu 8 DANH SÁCH B NG DANH SÁCH B NG H K H TN t t hơn. Mô hình ngôn ng đư c dùng là trigram d a trên t . Vi c hu n luy n trigram d a trên ng li u đã tách t s n có và t o thêm ng li u m i t ng li u thô chưa tách t . V i ng li u thô, mô hình ngôn ng đư c hu n luy n đ thu th p t t c cách tách t có th có c a m i câu trong ng li u hu n luy n thay vì s d ng b tách t r i hu n luy n trên cách tách t t t nh t đó. Các trigram trong m i cách tách t đư c thu th p d a theo kh năng c a m i cách tách t . Trigram c a cách tách t t t hơn s có tr ng s cao hơn các cách tách t còn l i K H O A C N TT – Đ K t qu Chương trình ho t đ ng t t và đ t đư c m t s k t qu nh t đ nh. Các l i sai âm ti t đư c phát hi n hoàn toàn. L i sai t có th phát hi n đ n trên 88%. Các lo i l i khác đ t đ chính xác r t cao. Chương trình có th đư c c i ti n thêm b ng cách s d ng các thông tin cao c p hơn như thông tin t lo i, thông tin cú pháp, ng nghĩa . . . nh m nâng cao đ chính xác hơn n a. 9 K H TN Chương 1 H M đu Đ M cl c – V n đ nghiên c u . . . . . . . . . . . . . . . . . 8 Cách ti p c n . . . . . . . . . . . . . . . . . . . . 8 K t qu 9 C N TT ....................... K H O A Ngôn ng là m t ph n quan tr ng c a đ i s ng, là phương ti n chuy n t i thông tin trong đ i s ng. Trong th i đ i bùng n thông tin hi n nay thì ngôn ng đóng vai trò h t s c quan tr ng, đ c bi t là ngôn ng vi t. Khi vi t, đôi khi ta m c ph i nh ng l i sai chính t . Ch qu c ng là th ch ghi âm nên m t s âm ti t r t d nh m l n, khó phân bi t rõ ràng. Ngôn ng nói nh ng vùng khác nhau l i có nh ng đi m khác nhau. Nh ng đi m khác nhau này r t d gây ra nh ng l i chính t khi vi t n u ngư i vi t không đ ý khi s d ng ti ng Vi t. Nh ng thao tác chuy n thông tin d ng khác thành văn b n cũng có th gây ra l i chính t . Ví d , n u nh p li u không c n th n d n đ n l i sai chính t . Khi ghi l i l i nói c a ngư i khác mà ngư i đó s d ng gi ng đ a phương cũng có th d n đ n l i chính t . Quét các văn b n gi y thành văn b n đi n 10 CHƯƠNG 1. M ĐU 1.1. N I DUNG BÀI TOÁN 1.1 C N TT – Đ H K H TN t , s d ng chương trình nh n d ng ch , cũng có th d n đ n l i chính t do chương trình nh n d ng nh m l n . . . Văn b n d b sai chính t do nhi u y u t khách quan. Đ ki m l i chính t nh ng văn b n này đòi h i nhi u công s c và th i gian, đ c bi t khi kh i lư ng văn b n bùng n như hi n nay. Do đó c n có m t công c h tr ki m l i chính t , giúp nhanh chóng phát hi n l i chính t và đ ngh cách kh c ph c. Trong th i đ i tin h c hoá, máy tính đư c t n d ng đ gi m thi u công s c c a con ngư i, đ ng th i tăng tính hi u qu . Tin h c đã đư c áp d ng trong nhi u lĩnh v c khác nhau và ch ng t tính hi u qu c a nó. Tuy nhiên, vi c ng d ng tin h c nh m h tr b t l i chính t ti ng Vi t ch m i đư c b t đ u trong th i gian g n đây. Nh ng ng d ng b t l i chính t hi n có v n còn khá đơn gi n, ho c chưa hi u qu , chưa đáp ng đư c nhu c u th c t . Lu n văn này đ ra m t gi i pháp khác đ b t l i chính t , v i hy v ng góp ph n nâng cao ch t lư ng ng d ng b t l i chính t ti ng Vi t b ng máy tính. N i dung bài toán K H O A Bài toán có th đư c phát bi u như sau: Cho m t văn b n ti ng Vi t. Tìm t t c các t sai chính t trong văn b n và đ ngh cách gi i quy t l i n u có. Do ngôn ng là m t lĩnh v c quá r ng. Vi c b t l i chính t ti ng Vi t t ng quát là c c kỳ khó khăn. Do v y đ tài này ch gi i h n b t l i chính t trong các văn b n hành chính. Ch s d ng t đi n t , t đi n ti ng và ng li u thô làm đ u vào. Khái ni m t đây là “t t đi n” — t c là các t đơn, t ghép, c m t đư c lưu trong t đi n. L i chính t đây bao g m ch y u hai lo i l i sau: 11 CHƯƠNG 1. M ĐU 1.2. Đ C ĐI M • L i nh p li u sai: l i gõ thi u ch , gõ dư ch , gõ nh m v trí hai ch liên ti p nhau, gõ nh m m t ch b ng m t ch khác, sai sót do b gõ ti ng Vi t . . . K H TN • L i phát âm sai: ch y u là do đ c đi m phát âm c a t ng vùng, d n đ n sai chính t khi vi t. 1.2 C N TT – Đ H Không x lý l i t v ng, l i cú pháp. Gi đ nh r ng, n u t b sai chính t , thì ch sai b i m t trong nh ng lý do nêu trên m t l n (m i t ch sai m t l i chính t , l i đó thu c m t trong nh ng lo i đã nêu). Nghĩa là không xét nh ng trư ng h p sai chính t , v a gõ nh m ch này b ng ch khác, v a gõ dư ch . Gi đ nh ngư i dùng ch s d ng m t trong hai cách gõ ti ng Vi t là VNI ho c TELEX. Văn b n ti ng Vi t đư c coi là thu n Vi t. Không ki m tra chính t đ i v i nh ng t nư c ngoài. Nh ng t nư c ngoài và các ký hi u khác đ u b coi là sai chính t . Đ c đi m K H O A B t l i chính t , xét t quan đi m tin h c, là m t bài toán khó. Khó b i vì ngôn ng là m t ph n r t quan tr ng c a đ i s ng xã h i, nó bao hàm r t nhi u khía c nh c a văn hoá, xã h i. Ngôn ng dùng đ di n đ t suy nghĩ, chuy n t i thông tin, nên nó ch a đ ng m t kh i lư ng tri th c đ s . Đ x lý ngôn ng t nhiên m t cách đúng đ n đòi h i m t trình đ nh t đ nh. B i v y, vi c gi i quy t bài toán b t l i chính t b ng máy tính là h t s c khó khăn. B t l i chính t đôi khi đư c m r ng đ phát hi n nh ng l i khác trong văn b n như l i cú pháp, l i t v ng . . . Đi u này cũng d hi u vì ngư i s 12 CHƯƠNG 1. M ĐU 1.2. Đ C ĐI M K H O A C N TT – Đ H K H TN d ng c n m t chương trình giúp h phát hi n và lo i b t t c các l i trong văn b n, không quan tr ng l i đó thu c lo i l i nào. Thông thư ng nh ng l i t v ng thư ng b nh m l n v i l i chính t , bu c chương trình b t l i chính t ph i phát hi n c l i t v ng. Đây là m t v n đ khó vì đ b t l i t v ng, đôi khi c n ph i hi u n i dung c văn b n. N u tìm hi u sâu hơn v bài toán này, ta l i g p m t khó khăn khác do b n ch t c a ti ng Vi t. Đ i v i ti ng Vi t, cũng như m t s ngôn ng châu Á khác, m t t chính t có th không tương ng v i m t “t ” trên văn b n. Đ i v i các th ti ng châu Âu, ta có th d dàng nh n ra m t t , do các t đư c phân cách b ng kho ng tr ng. Đi u đó không đúng v i ti ng Vi t. Trong ti ng Vi t, các ti ng đư c phân cách b i kho ng tr ng, không ph i các t . Đi u này d n đ n m t bài toán m i: tách t trong ti ng Vi t. Do ti ng Vi t là ngôn ng nói sao vi t v y, nên r t ít khi g p l i sai v ti ng. Đa s các l i chính t là l i sai t , nên vi c xác đ nh đâu là t c c kỳ quan tr ng. V n đ càng tr nên khó khăn hơn khi ph i th c hi n cùng lúc hai bài toán là tách t ti ng Vi t và ki m tra chính t . Th t s là tách t ti ng Vi t trư c, sau đó b t l i chính t . Tuy nhiên, do khi tách t thư ng ng m đ nh là d li u đúng chính xác. Nên khi ph i tách t trư c bư c ki m tra chính t , ng m đ nh trên không còn đúng. Bài toán tách t tr thành m t bài toán khác, ph c t p hơn. Đ tài này ch s d ng các cách hình thành l i chính t , t đi n t ti ng Vi t và ng li u văn b n d ng thô. Vi c không th áp d ng đư c nh ng thông tin c p cao hơn như t lo i, cú pháp, ng nghĩa . . . s làm chương trình không th phát huy t i đa kh năng. 13 CHƯƠNG 1. M 1.3 ĐU 1.3. HƯ NG GI I QUY T Hư ng gi i quy t K H O A C N TT – Đ H K H TN Bài toán b t l i chính t đã đư c tìm hi u t r t lâu. Tuy nhiên đa s đ u t p trung vào các ngôn ng ph d ng châu Âu. Trong khi đó các ngôn ng châu Á, đ c bi t là ti ng Vi t, có nh ng đ c trưng riêng, đ t ra nhi u thách th c m i. Bài toán b t l i chính t trên các ngôn ng châu Á như ti ng Trung Qu c, ti ng Hàn Qu c, ti ng Nh t, ti ng Thái và ti ng Vi t ch b t đ u đư c nghiên c u g n đây. Đ i v i các ngôn ng châu Âu, cách gi i quy t đơn gi n là d a vào t đi n. N u m t t trên văn b n không có trong t đi n nghĩa là t đó sai chính t. Đ i v i các ngôn ng như ti ng Trung Qu c, ti ng Nh t . . . , nhi u gi i pháp đư c đ ra đ gi i quy t bài toán. Tuy nhiên h u h t các gi i pháp đ u d a trên ý tư ng áp d ng t p nh m l n đ phát sinh các t g n đúng, sau đó s d ng mô hình ngôn ng đ đ nh lư ng, xác đ nh xem t nào là đúng nh t. Đ tài này áp d ng cách gi i quy t truy n th ng, so sánh t d a trên t đi n. N u t không có trong t đi n nghĩa là sai chính t , t đó đưa ra nh ng g i ý thích h p. Bài toán đ t ra m t bài toán con khác là tách t ti ng Vi t trong đi u ki n văn b n b sai chính t . Cách gi i quy t bài toán này là phát sinh m i cách tách t có th , s d ng t p nh m l n, và sau đó áp d ng mô hình ngôn ng đ tìm ra cách tách t đúng nh t. T p nh m l n đư c phát sinh d a vào ngu n g c gây l i. Các l i v phát âm s d a trên các thói quen phát âm c a t ng vùng đ t o t p nh m l n. Các l i v nh p li u s d a trên các nghiên c u v l i nh p li u đ đưa ra t p nh m l n tương ng. 14 CHƯƠNG 1. M 1.4 ĐU 1.4. B C C LU N VĂN B c c lu n văn Lu n văn đư c chia thành các chương sau: K H TN • Chương 1 gi i thi u chung v lu n văn, các v n đ c n gi i quy t, đ c đi m, ph m vi c a bài toán và hư ng gi i quy t. • Chương 2 trình bày cơ s lý thuy t ngôn ng h c. H • Chương 3 trình bày cơ s lý thuy t toán h c/tin h c. Các mô hình đư c áp d ng đ gi i quy t bài toán. Đ • Chương 4 trình bày mô hình đ ngh cho b t l i chính t ti ng Vi t. – • Chương 5 trình bày các chi ti t khi cài đ t chương trình. C N TT • Chương 6 tóm t t lu n văn, các k t qu đ t đư c, tìm hi u các đ c đi m c a mô hình cũng như chương trình cài đ t, các h n ch và các hư ng gi i quy t trong tương lai. K H O A • Ph n ph l c trình bày các thông tin liên quan. 15 K H TN Chương 2 H Cơ s lý thuy t ngôn ng Đ M cl c N i dung bài toán . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Đ c đi m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 Hư ng gi i quy t . . . . . . . . . . . . . . . . . . . . . . . . . . 14 B c c lu n văn . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Âm ti t K H O A 2.1 C N TT 1.3 – 1.1 Ngôn ng là m t h th ng tín hi u. Khi nói, v v t ch t c a tín hi u là âm thanh, khi vi t nó đư c th hi n b ng ch . Không ph i ch vi t lúc nào cũng ph n ánh chính xác các âm t tương ng. Vì v y, các âm t đư c bi u di n b ng nh ng ký hi u đ c bi t, g i là phiên âm. Các ký hi u phiên âm thư ng đ t gi a / / ho c [ ]. Âm thanh trong t nhiên đư c t o thành nh s rung đ ng c a m t v t th đàn h i. Âm thanh c a ti ng nói đư c hình thành nh “b máy phát âm” 16 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T 2.1.1 C N TT – Đ H K H TN c a con ngư i — bao g m môi, răng, lư i, khoang mi ng, khoang mũi, y t h u, thanh h u, ph i . . . . Ngoài ra, tai ngư i ch có th ti p nh n m t kho ng âm thanh nh t đ nh. Nh ng ch n đ ng không nghe đư c g i là siêu âm và âm ngo i. Âm h c phân bi t các âm thanh theo nh ng đ c trưng khác nhau, bao g m: đ cao, đ m nh, đ dài. Đ cao ph thu c vào t n s dao đ ng. T n s dao đ ng càng l n thì âm thanh càng cao. Tai ngư i có kh năng nh n bi t đ cao trong kho ng t 16 đ n 20.000 Hz . Đ m nh (cư ng đ ) ph thu c vào biên đ dao đ ng. Biên đ càng l n, âm thanh càng to. Cư ng đ âm thanh trong ngôn ng đ m b o s xác minh trong giao t và là cơ s đ t o thành các ki u tr ng âm khác nhau. Đ dài (trư ng đ ) là kho ng th i gian kéo dài c a âm thanh. Ngôn ng ch quan tr ng th i gian tương đ i c a âm thanh. Ví d , các nguyên âm có tr ng âm thư ng dài hơn nguyên âm không có tr ng âm. Nguyên âm và ph âm K H O A Các âm t có th chia thành nguyên âm và ph âm, d a vào các đ c đi m âm h c, c u âm và vai trò trong c u t o âm ti t. Nguyên âm có đ c đi m c u t o: • Lu ng hơi ra t do, không b c n tr , không có v trí c u âm. • B máy phát âm căng th ng toàn b . • Lu ng hơi ra y u. Ph âm có đ c đi m c u t o hoàn toàn trái ngư c v i nguyên âm: • Lu ng hơi b c n tr do s xu t hi n chư ng ng i trên l i ra c a lu ng không khí, chư ng ng i thư ng xu t hi n các khoang trên thanh h u 17 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T do các khí quan ti p xúc nhau hay nhích g n nhau mà thành, đi m có chư ng ng i đư c g i là v trí c u âm c a ph âm. K H TN • B máy phát âm không căng th ng toàn b mà s căng th ng cơ th t t p trung v trí c u âm. • Lu ng hơi ra m nh. Âm v C N TT 2.1.2 – Đ H Nguyên âm và ph âm có ch c năng khác nhau trong c u t o âm ti t. Các nguyên âm thư ng làm h t nhân hay đ nh c a âm ti t, còn ph âm thư ng là y u t đi kèm, không t o thành âm ti t (tr các âm ph vang). Nh ng âm t có đ c tính gi ng nguyên âm nhưng thư ng ch đi kèm, b n thân không t o thành âm ti t đư c g i là bán nguyên âm. Ví d , các âm t vi t là u, i trong các âm “sau”, “mai” trong ti ng Vi t. K H O A Âm v là đơn v nh nh t c a cơ c u âm thanh ngôn ng , dùng đ c u t o và phân bi t hình th c ng âm c a nh ng đơn v có nghĩa c a ngôn ng — t và hình v . Ví d , các t “tôi” và “đôi”, “ta” và “đa” đư c phân bi t b i các âm v /t/ và /d/. Âm v là đơn v nh nh t, vì v m t tuy n tính nó không th phân chia nh hơn n a. N u thay âm v này b ng âm v khác trong cùng m t b i c nh ng âm s làm cho t thay đ i nghĩa ho c m t nghĩa. Ví d , thay âm /t/ trong t “toàn” b ng âm /h/ s đư c “hoàn” có nghĩa khác, ho c n u thay b ng âm /n/ s đư c “noàn” hoàn toàn vô nghĩa. Âm v có th đư c so sánh như nh ng viên g ch trong vi c xây d ng m i ngôn ng . Các viên g ch thư ng gi ng nhau, nhưng các âm v v nguyên t c ph i khác nhau, ít nh t m t đ c trưng nào đó. S khác bi t này t o ra khác bi t v hình th c âm thanh c a hình v và t , t o ra tín hi u khác bi t đ i v i 18 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T 2.1.3 K H TN s th c m c a con ngư i. V y âm v có hai ch c năng cơ b n là ch c năng khu bi t (v âm thanh c a hình v và t ) và ch c năng c u t o (ch t li u đ c u t o nên nh ng thành t c a nh ng đơn v có nghĩa). Âm ti t K H O A C N TT – Đ H Chu i l i nói c a con ngư i đư c chia ra làm nh ng khúc đo n khác nhau, t l n đ n nh . Âm ti t là đơn v phát âm nh nh t, đư c phân đ nh t nhiên trong l i nói con ngư i. V phương di n phát âm, dù l i nói ch m đ n đâu cũng ch phân chia đ n gi i h n c a âm ti t mà thôi. Nhưng v phương di n thính giác thì âm ti t là m t t h p âm thanh, có th g m nhi u âm t ho c đôi khi ch có m t âm t . M i âm ti t ch có m t âm t âm ti t tính (có kh năng t o thành âm ti t), còn l i là nh ng y u t đi kèm, không t mình t o thành âm ti t. Âm t âm ti t tính thư ng đư c phân b đ nh hay trung tâm, làm h t nhân âm ti t, thư ng là các nguyên âm. Các ph âm thư ng là các y u t đi kèm, đ ng ngoài biên, hay ranh gi i c a âm ti t. Đôi khi âm ti t ch g m m t nguyên âm. Trong m t s trư ng h p, âm ti t có th có hai ho c ba nguyên âm. Tuy nhiên trong s đó ch có m t nguyên âm t o đ nh, các âm t khác không t o thành âm ti t, g i là bán nguyên âm. Âm ti t có m t s ch c năng sau: • Âm ti t có ch c năng t ch c ch t li u âm thanh c a ngôn ng b ng cách h p nh t các âm t trong m t đơn v phát âm nh nh t. • Âm ti t là môi trư ng đ hi n th c hoá các hi n tư ng ngôn đi u như tr ng âm, âm đi u. 19 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T • Âm ti t có ch c năng c u thành ti t đi u c a l i nói . . . Ch c năng này th hi n rõ trong ngôn ng thơ. K H O A C N TT – Đ H K H TN Trong các ngôn ng âm ti t tính như ti ng Trung Qu c, ti ng Mi n Đi n, ti ng Vi t . . . nói chung âm ti t trùng v i hình v — đơn v cơ b n c a ng pháp. Âm ti t có ch c năng là v ng âm c a hình v , t o nên m t đơn v đ c bi t, g i là hình ti t. Tính ch t âm ti t c a ti ng Vi t đưa đ n nhi u h qu quan tr ng v ng âm cũng như v ng pháp. V m t ng âm, do m i âm ti t là v ng âm c a m t hình v , và cũng thư ng là v ng âm c a t đơn, nên s lư ng các âm ti t là h u h n1 . Là v ng âm c a m t hình v hay m t t đơn, m i âm ti t Ti ng Vi t bao gi cũng tương ng v i m t ý nghĩa nh t đ nh, nên vi c phá v c u trúc âm ti t trong ng lưu, t c xê d ch v trí các âm t (âm v ) c a cùng m t hình v t âm ti t này sang âm ti t khác, là đi u ít x y ra. K t qu là trong ti ng Vi t, âm ti t có m t c u trúc ch t ch , m i âm t (âm v ) có m t v trí nh t đ nh trong âm ti t. Đ ng đ u âm ti t bao gi cũng là m t ph âm, cu i âm ti t là m t ph âm ho c m t bán nguyên âm. Ph âm cu i luôn luôn cu i âm ti t, không th tr thành âm đ u đư c. Do đó, ph âm cu i và âm đ u làm thành hai đ i h khác nhau, có v trí và ch c năng khác nhau trong c u trúc âm ti t. M t đ c đi m khác c a âm ti t ti ng Vi t là m i âm ti t đ u mang m t thanh đi u nh t đ nh. Vi c th hi n thanh đi u đòi h i âm ti t ph i có m t trư ng đ c đ nh. Tính ch t này làm cho các y u t bên trong âm ti t, tr ph âm đ u, không có m t trư ng đ c đ nh, mà đ p đ i l n nhau, liên quan v i nhau r t ch t ch . 1 Theo Nguy n Phan C nh “ti ng Vi t đưa ra hơn 17.000 âm ti t — tín hi u v i t cách là v ng âm kh năng, và ch s d ng hơn 6.900 v i tư cách là các âm ti t t n t i th c” (Nguy n Phan C nh, “B n ch t c u trúc âm ti t tính c a ngôn ng : D n lu n vào m t miêu t không phân l p đ i v i âm v h c Vi t Nam, t p chí ngôn ng , H. 1978, s 2) 20 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T C u trúc âm ti t ti ng Vi t K H O A C N TT – Đ H K H TN Trên bình di n ng âm h c, các c li u th c nghi m cho th y âm ti t Ti ng Vi t đư c c u t o b i ba thành t đ c l p là thanh đi u, ph âm đ u và ph n còn l i. Thanh đi u là y u t luôn có m t trong m i âm ti t ti ng Vi t. Tính ch t đ c l p v m t ng âm c a thanh đi u th hi n ch nó có đư ng nét và trư ng đ tương đ i n đ nh tùy thu c vào các lo i hình âm ti t. Ph âm đ u là y u t m đ u c a âm ti t. Tính ch t đ c l p c a ph âm đ u th hi n ch nó không tham gia vào vi c đ p đ i v trư ng đ gi a các y u t bên trong âm ti t. Ph n còn l i c a âm ti t có t m t đ n ba y u t , g m m t bán nguyên âm chi m v trí trung gian gi a ph âm đ u và ph n còn l i, m t nguyên âm âm ti t tính và m t ph âm ho c bán nguyên âm cu i, có vai trò k t thúc âm ti t. Tr bán nguyên âm trư c nguyên âm ti t tính, các y u t c a ph n còn l i liên k t v i nhau r t ch t ch , làm thành m t kh i. Đ đ m b o cho tính ch t c đ nh v trư ng đ c a âm ti t, các y u t c a ph n còn l i có s đ p đ i nhau v trư ng đ : n u nguyên âm dài thì ph âm hay bán âm cu i ng n, ngư c l i n u nguyên âm ng n thì âm cu i dài. Các y u t c a ph n còn l i không có m t trư ng đ c đ nh, và do đó m c đ đ c l p v m t ng âm c a chúng th p hơn so v i ph âm m đ u âm ti t. Ph n còn l i c a âm ti t đư c g i là ph n v n, vì đây là b ph n đo n tính k t h p v i thanh đi u t o nên v n thơ. Tóm l i, các y u t c a âm ti t ti ng Vi t có m c đ đ c l p khác nhau, chia làm hai b c: • B c m t là nh ng y u t đ c l p v m t ng âm và có th đư c tách r i v m t hình thái h c. Đó là thanh đi u, âm đ u và v n. • B c hai là các y u t c a ph n v n, g m bán nguyên âm trư c nguyên 21 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T K H TN âm âm ti t tính (đư c g i là âm đ m), nguyên âm âm ti t tính (đư c g i là âm chính), ph âm ho c bán nguyên âm cu i (đư c g i là âm cu i). Các y u t này g n li n v i nhau v m t ng âm do tính ch t c đ nh v trư ng đ c a âm ti t và ch đư c tách ra b ng nh ng ranh gi i thu n túy ng âm h c. Các thành t c a âm ti t ti ng Vi t và quan h hai b c gi a các thành t đư c trình bày trong hình 2.1. Đ H Thanh đi u Âm đ u Vn Âm đ m Âm chính Âm cu i Hình 2.1: C u trúc âm ti t C N TT – Khái ni m âm ti t liên quan m t thi t đ n s bi n hoá ng âm. Vì các âm t l i nói không phát âm đơn l p mà đư c phát âm trong dòng l i nói liên t c, cho nên các âm t có th nh hư ng l n nhau, đ c bi t là nh ng âm t lân c n đư c phát âm trong cùng m t âm ti t, ho c nh ng âm ti t đi li n nhau. M t s hi n tư ng bi n hoá ng âm thư ng g p trong ti ng Vi t: K H O A • S thích nghi. Xu t hi n gi a ph âm và nguyên âm đ ng c nh nhau. N u âm t sau bi n đ i cho gi ng âm t đi trư c, đó là thích nghi xuôi. N u âm t trư c bi n đ i cho h p v i âm t sau là thích nghi ngư c. Trong ti ng Vi t, nguyên âm và ph âm cu i k t h p v i nhau r t ch t ch , t o thành v n c a âm ti t. Hi n tư ng thích nghi bi u hi n rõ r t trong nh ng v n có nguyên âm dòng trư c và dòng sau tròn môi k t h p v i ph âm cu i “ng” và “c”. • S đ ng hoá (m t y u t thay đ i đ gi ng y u t kia). Ví d , “v n v n” và “v n v n”. 22 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T • S d hoá (hi n tư ng rút g n cho d phát âm). Ví d , “ba mươi m t” và “băm m t”. Ph âm đ u K H TN 2.1.4 K H O A C N TT – Đ H Ph âm đ u luôn g n li n v i v trí và ch c năng m đ u âm ti t. Đi sau âm đ u trong âm ti t là bán nguyên âm không thành âm ti t (hay còn g i là âm đ m). H th ng ph âm đ u ti ng Vi t v i s lư ng đ i l p âm v h c t i đa đư c th hi n trên ch vi t. Riêng nh ng âm ti t như “ăn”, “u ng” . . . tuy không ghi ph âm đ u, nhưng th c t v n t n t i ph âm đ u (âm t t thanh h u /P/). Trong t ng phương ng , m t s đ i l p có trên ch vi t có th b m t đi ho c b thay th . Ví d , trong ti ng Hà N i không còn đ i l p các ph âm đ u gi a ch–tr,x–s và gi,d v i r. Trong ti ng mi n Nam, /v/ và /z/ đư c thay b ng /j/. Hi n nay, h th ng ph âm đ u đư c s d ng th c t trong nhà trư ng và trên các văn b n, chung cho các phương ng , là h th ng ph âm đ u hình thành trên cơ s phát âm Hà N i v i s phân bi t các ph âm ch–tr, x–s, g,gi–r g m 22 ph âm sau: /b, m, f, v, t, th , d, n, s, z, l, ú, ù, ü, c, ñ, k, N, x, G, P, h/2 H th ng ph âm đ u c a ti ng đ a phương mi n B c, mà c s là phát âm Hà N i có 19 ph âm (k c âm t c thanh h u /P/). Trong phát âm Hà N i không có lo t ph âm u n lư i /ú, ù, ü/. Các ph âm này đ u đư c chuy n thành các âm đ u lư i ho c m t lư i tương ng /c, s, z/. Ví d , • “cha” và “tra” đ u phát âm thành “cha” /ca/ • “sa” và “xa” đ u phát âm thành “xa” /sa/ 2 Ph âm /p/ g p trong t vay mư n ho c phiên âm ti ng nư c ngoài, không đư c đưa vào h th ng này 23 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T • “da”, “gia” và “ra” đ u đư c phát âm thành “da” /da/ K H O A C N TT – Đ H K H TN Trong các th ng vùng B c Trung B (Ngh Tĩnh — Bình Tr Thiên) còn gi lo t các ph âm cong lư i /ú, ù, ü/. m t s nơi thu c Ngh Tĩnh, ph âm “ph” đư c phát âm như âm m t lư i sau b t hơi /kh /. Vì v y h th ng ph âm đ u nh ng nơi này có thêm dãy âm b t hơi /pj , úh , kh /. Trong khi đó các th ng mi n B c và mi n Nam ch còn l i m t âm b t hơi /th / mà thôi. Vùng Bình Tr Thiên không có ph âm “nh”. Ph âm này thư ng đư c phát âm thành /j/. Ví d , “nhà” đư c phát âm thành “dà”. N u coi h th ng ph âm đ u vùng Vinh là đ i di n cho phương ng B c Trung B thì h th ng này có 22 ph âm đ u. H th ng ph âm đ u mi n Nam (t đèo H i Vân tr vào) không có các ph âm xát h u thanh /v, z/. Tương ng v i /v, z/ trong phát âm Hà N i, phát âm mi n Nam có ph âm m t lư i gi a /j/. Đôi khi âm /v/ đư c phát âm thành âm môi-môi, xát, vang ng c hoá /Bj/. Hi n nay các âm cong lư i đang trong quá trình bi n đ i trong ti ng mi n Nam. Ph âm /ù/ là ph âm ít b n v ng nh t thư ng đư c phát âm thành /s/. Các ph âm cong lư i khác như /ú/ và /ü/ v n còn gi l i, phân bi t v i /c/ và /j/ nhưng không đ u đ n các th ng . Trong phát âm mi n Nam có ph âm đ u /w/3 xát, môi-môi, tương ng v i các ph âm t c, lư i sau và thanh h u ti ng B c khi k t h p v i âm đ m /-u-/. Ví d , “qua” /wa/, “ngo i” /wai/, hoa /wa/. N u l y h th ng ph âm đ u c a ti ng thành ph H Chí Minh làm cơ s cho phương ng mi n Nam thì h th ng này có 21 ph âm đ u. Quan h phân b gi a ph âm đ u và âm đ m Âm đ m là thành t đi sau ph âm đ u trong âm ti t. Trong ti ng Vi t ch có m t âm đ m là /-u-/, th hi n trên ch vi t b ng hai ch “u” và “o”. Ví d , 3 Giá tr âm v h c c a /w/ là v n đ còn đang bàn cãi 24 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T 2.1.5 Đ H K H TN “hoa”, “qu ”. Trong phát âm, âm đ m ch đư c th hi n ti ng đ a phương mi n B c và B c Trung B , còn trong ti ng đ a phương mi n Nam thư ng không có âm đ m /-u-/. Trong phát âm Hà N i, h u h t lo t ph âm lư i và thanh h u có th phân b trư c âm đ m. Ví d , “toa”, “đoán”, “nhoà” . . . Riêng lo t âm môi /b, m, v, f/ không phân b trư c âm đ m /-u-/ vì chúng có c u âm môi gi ng nhau. Trong ti ng Vi t, h nh ng âm có c u âm gi ng nhau hay tương t nhau thì không phân b c nh nhau. Ngoài các âm môi, m t vài ph âm lư i như /n, ü, G/ cũng r t ít xu t hi n trư c âm đ m. Vn – Âm đ m K H O A C N TT Trong âm ti t, âm đ m /-u-/ đ ng sau ph âm đ u và đ ng trư c âm chính. Nó đóng vai trò m t âm lư t trong k t c u âm ti t. V m t c u âm, âm đ m /-u-/ đư c phát âm gi ng như nguyên âm [u] nhưng không làm đ nh âm ti t. Đó là m t bán nguyên âm môi-ng c m m, đư c phiên âm là [-u-] hay [-w-]. Đ ng tác c u âm này di n ra đ ng th i v i các giai đo n phát âm c a ph âm đ u và ph n v n đ u c a nguyên âm làm âm chính. V m t âm h c, âm đ m /-u-/ có tác d ng làm bi n đ i âm s c c a âm ti t, làm tr m hoá âm s c c a âm ti t. Âm đ m /-u-/, v i tính ch t là m t bán nguyên âm môi-ng c m m, có đ m r ng hay h p tương ng v i đ m c a nguyên âm đi sau nó. Trư c nguyên âm h p i, âm đ m /-u-/ đư c th hi n b ng m t bán âm h p tương ng là [u], ví d “tuy”. Trư c các nguyên âm có đ m trung bình ê, ơ, â, âm đ m /-u-/ đư c th hi n b ng m t bán âm đ m v a [o], ví d “khuê”, “huơ”, “huân”. Trư c các nguyên âm có đ m r ng e, a, ă, âm đ m /-u-/ 25 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T K H O A C N TT – Đ H K H TN đư c th hi n b ng m t bán âm có đ m tương ng là [O], ví d “kh e”, “kho n”, “khoan”. Âm đ m /-u-/ xu t hi n ph n l n các t g c Hán như “thuy n”, “loan”, “uyên”. V m t phân b , như đã nói, âm đ m có th xu t hi n sau h u h t các ph âm đ u, tr các ph âm môi /b, m, f, v/. Sau các ph âm môi, âm đ m ch có m t trong m t ít t phiên âm ti ng nư c ngoài như “buýt”, “phuy”, “voan”. Ngoài ra, sau các ph âm /n, ü, G/, âm đ m /-u-/ cũng ch xu t hi n trong m t vài t như “noãn”, “roa”, “goá”. Âm đ m /-u-/ cũng không xu t hi n trư c các nguyên âm tròn môi u, uô, ô, o. S phân b c a âm đ m sau ph âm đ u và trư c các nguyên âm th hi n m t quy lu t c a ng âm ti ng Vi t: các âm có c u âm gi ng nhau ho c g n gũi nhau không đư c phân b c nh nhau. V m t ch vi t, âm đ m /-u-/ đư c ghi b ng con ch “o” trư c ba nguyên âm r ng e, a, ă và đư c ghi b ng con ch “u” trư c các nguyên âm còn l i. Ví d , “thuý”, “thuê”, “loe”, “loa”. Riêng trư ng h p sau ph âm đ u /k-/, âm đ m /-u-/ luôn đư c ghi b ng con ch “u” dù sau nó là nguyên âm r ng. Ví d : “qu ”, “quý” (trong nh ng trư ng h p này âm /k-/ đư c ghi b ng con ch “q”)4 . Âm đ m /-u-/, v n là y u t có m t trong phương ng B c và B c Trung B , l i hoàn toàn v ng m t trong phương ng Nam B . Do đó, c u trúc âm ti t c a phương ng Nam B ch có ba thành ph n đo n tính: âm đ u, âm chính, âm cu i. S v ng m t c a âm đ m trong phương ng Nam B có th đưa đ n m t s bi n đ i âm đ u và âm chính. Đáng chú ý là s bi n đ i c a các ph âm m t lư i sau và thanh h u, thành các ph âm môi. Ví d , “hoa” thành “wa”, 4 Do đó v m t ch vi t, sau con ch “q”, con ch “u” luôn luôn có giá tr là m t âm đ m. Đi u này giúp ta phân bi t “ua” là m t nguyên âm đôi trong t “c a” v i “ua” trong t h p âm đ m+nguyên âm trong “qu ”. Riêng trư ng h p “qu c” thì “uô” là nguyên âm đôi nhưng /k-/ v n đư c ghi b ng “q”. S phân bi t v m t con ch đây có giá tr phân bi t nghĩa hai t đ ng âm “cu c” và “qu c” đ u đư c phát âm là /kuok/. 26 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T K H TN khuya thành “phia”. Hi n nay dư i s nh hư ng c a ngôn ng văn h c, đã th y xu t hi n âm đ m sau các ph âm đ u lư i, m t lư i gi a và m t lư i sau trong cách phát âm c a t ng l p trí th c, c a gi i tr , tr trư ng h p hai ph âm thanh h u /h-,P-/ và ph âm m t lư i sau /k-/, v n đư c phát âm thành [w-] trong các t “hoa”, “oa”, “qua” (đ u phát âm là [wa]). Âm chính Đ H Âm chính trong âm ti t ti ng Vi t có th là m t nguyên âm đơn ho c m t nguyên âm đôi. – Nguyên âm đơn Ti ng Vi t có 11 nguyên âm đơn làm âm chính. Căn c vào v trí lư i, hình dáng môi, các nguyên âm đơn đư c chia ra: C N TT • Các nguyên âm giòng trư c không tròn môi: /i, e, E/. • Các nguyên âm giòng sau không tròn môi: /W, 7, 7, a, ˇ/. ˇ a • Các nguyên âm giòng sau tròn môi: /u, o, O/. K H O A Căn c vào đ m mi ng, có th chia thành: • Các nguyên âm có đ m mi ng h p: /i, W, u/. • Các nguyên âm có đ m trung bình: /e, 7, 7, o/. ˇ • Các nguyên âm có đ m r ng: /E, a, ˇ, O/. a Căn c vào âm s c, có th chia ra: • Các nguyên âm b ng: /i, e, E/. 27 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T • Các nguyên âm trung bình: /W, 7, 7, a, ˇ/. ˇ a • Các nguyên âm tr m: /u, o, O/. K H TN Căn c vào trư ng đ , có th chia ra: • Các nguyên âm dài: /i, e, E, W, 7, a, u, o, O/. • Các nguyên âm ng n: /ˇ, ˇ/. 7a Đ H Nguyên âm đôi Ngoài 11 nguyên âm đơn, còn có 3 nguyên âm đôi âm v tính là /ie, W7, uo/. Âm cu i K H O A C N TT – Âm cu i là y u t k t thúc âm ti t. Các âm ti t trong ti ng Vi t có th k t thúc b ng cách bi n đ i âm s c c a âm chính do đ ng tác khép l i c a b máy phát âm, làm cho nó b ng hơn ho c tr m hơn. Âm cu i trong trư ng h p này là hai bán nguyên âm /-u/ và /-i/. Âm ti t ti ng Vi t còn có th k t thúc b ng đ ng tác khép c a b máy phát âm v i m t ph âm t c (mũi ho c mi ng). H th ng âm cu i trong ti ng Vi t g m có 2 bán nguyên âm và 6 ph âm. Sau ph âm bao g m: /m, p, n, t, N, k/. Quy lu t phân b c a các âm cu i sau âm chính V m t phân b , các bán nguyên âm cu i /-u/ và /-i/ ch xu t hi n sau các nguyên âm không cùng âm s c v i nó. Bán nguyên âm cu i /-i/ ch xu t hi n sau các bán nguyên âm không ph i giòng trư c. Bán nguyên âm cu i /-u/ ch xu t hi n sau các bán nguyên âm không tròn môi. S k t h p gi a nguyên âm và bán nguyên âm cu i, gi ng như s k t h p gi a âm đ m và 28 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T K H TN nguyên âm làm âm chính, tuân theo quy lu t d hoá. Theo đó, các âm có c u âm gi ng nhau ho c g n nhau không bao gi đư c phân b c nh nhau. Có th hình dung kh năng k t h p gi a nguyên âm làm âm chính v i hai bán nguyên âm cu i /-i/ và /-u/ như sau: • Các nguyên âm có th đ ng trư c bán nguyên âm /-i/ bao g m các âm bi u hi n b i các ch : ư, ươ, ơ, â, a, ă, u, uô, ô, o. • Các nguyên âm có th đ ng trư c bán nguyên âm /-u/ bao g m các âm bi u hi n b i các ch : i, iê, ê, e, ư, ươ, ơ, â, a, ă. Đ H Các ph âm cu i khác, nói chung đư c phân b đ u đ n sau các nguyên âm, tr hai âm cu i mũi /-m, -p/ không xu t hi n sau /W/. – S th hi n c a nguyên âm và ph âm trong các ti ng đ a phương K H O A C N TT Trong phương ng Nam B , các nguyên âm đôi /ie, W7, uo/ khi k t h p v i các âm cu i /-i, -u, -m, -p/ đư c th hi n thành các nguyên âm đơn /i, W, u/. Ví d , “chu i” — “chúi”, “bư i” — “b i”, “ti p” — “típ”. m t vài đ a phương thu c phương ng Trung B , các nguyên âm đôi đư c th hi n b ng các nguyên âm cùng dòng, đ m r ng. Ví d , “ngư i” — “ngài”, “ru t” — “r t”, “mi ng” — “méng”. Hai ph âm cu i /-n, -t/ đư c th hi n thành /-N, -k/ trong phương ng Nam B , khi chúng đi sau các nguyên âm đơn và đôi, tr /i, e/ là hai nguyên âm giòng trư c, đ m h p và trung bình. Ví d , “đen” – “đeng”, “đét” — “đéc”. Sau ba nguyên âm giòng trư c /i, e, E/, hai ph âm /-N, -k/ đư c th hi n trong các phương ng Nam B thành /-n, -t/, đ ng th i các nguyên âm này có c u âm lui v phía sau nhi u hơn so v i các nguyên âm trong phương 29 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T Thanh đi u H 2.1.6 K H TN ng B c B , tr thành các nguyên âm giòng gi a nghe g n gi ng như ư, ơ (ho c â) và ă. Đi m đáng lưu ý là trong phương ng Nam B , sau /i, e/ hai âm cu i /-n, -t/ v n đư c phát âm không đ i. S khác bi t trong các v n này gi a phương ng B c B và Nam B x y ra nguyên âm. Trong phương ng Nam B không có các âm cu i /-ñ, -c/. Âm cu i này đư c phát âm thành /-n, -t/. K H O A C N TT – Đ Thanh đi u là đ c trưng ngôn đi u c a âm ti t. Ngư i ta g i thanh đi u là âm v siêu đo n tính. S lư ng thanh đi u trong ti ng Vi t khác nhau gi a các ti ng đ a phương. S lư ng nhi u nh t là 6 thanh trong phát âm Hà N i, hay trong các ti ng B c nói chung, và đư c ph n ánh trên ch vi t. Đó là các thanh: s c, huy n, ngã, h i, n ng, và thanh không d u. Trong các ti ng đ a phương t Thanh Hoá tr vào Nam thư ng ch có năm thanh, thanh ngã trùng v i thanh h i (trong m t s vùng Thanh Hoá, ti ng Bình Tr Thiên, Nam Trung B và Nam B ), ho c thanh ngã trùng v i thanh n ng (trong ti ng vùng Ngh An, Hà Tĩnh). Ngoài ra trong m t vài th ng l t Ngh An và Qu ng Bình ch có 4 thanh đi u. S phân b c a thanh đi u Như đã bi t, thanh đi u là đ c tính siêu đo n c a âm ti t. Các đ c trưng c a thanh đi u đư c th hi n đ ng th i v i các thành ph n c u trúc khác c a âm ti t. Vì v y, trong ch ng m c nào đó nó b ch đ nh b i các thành ph n này. V m t âm v h c, âm ti t ti ng Vi t trư c h t đư c chia thành hai đơn v là ph âm đ u và v n. Ph n v n, trong đó có nguyên âm, là phân luôn luôn mang thanh tính c a âm ti t. Các đ c đi m v âm v c và âm đi u c a thanh 30 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.1. ÂM TI T K H O A C N TT – Đ H K H TN đi u ch đư c bi u hi n trong ph n mang thanh tính mà thôi. Vì v y, trong s đ i l p và th ng nh t các thanh đi u, ph n v n đóng vai trò quan tr ng. Ph âm đ u h u như không đóng vai trò gì trong s đ i l p các thanh. V m t ng âm, đ c tính c a thanh đi u cũng h u như không lan truy n lên ph âm đ u, ho c có chăng (trong trư ng h p ph âm đ u h u thanh) thì trong đo n đ u c a âm ti t, các đ c trưng khu bi t c a thanh đi u cũng chưa th hi n rõ. Ph n v n có th bao g m âm đ m, m t âm chính và có th có bán nguyên âm ho c ph âm cu i. S khác nhau c a thanh đi u bi u hi n t p trung gi a và cu i v n (t c ph n nguyên âm và ph âm cu i). Trong các v n không có âm cu i, có âm cu i là bán nguyên âm ho c ph âm vang, các đ c trưng c a thanh đi u đư c th hi n d dàng. V i các v n k t thúc b ng các ph âm cu i vô thanh, khép, các đ c trưng c a thanh đư c bi u hi n r t h n ch . Có th nói r ng, trong m i quan h v i các thành ph n chi t đo n c a âm ti t, thanh đi u b s ch đ nh rõ ràng nh t c a âm cu i. Vì v y s phân b c a thanh đi u trong âm ti t ph thu c vào lo i hình k t thúc âm ti t. S lư ng các thanh đi u xu t hi n trong nh ng âm ti t k t thúc b ng ph âm cu i vô thanh r t h n ch , thư ng ch có th có thanh s c ho c thanh n ng. Thanh s c và thanh n ng trong nh ng âm ti t có âm cu i vô thanh có nh ng đ c đi m riêng v đ di và đư ng nét âm đi u khác v i thanh s c và thanh n ng trong các âm ti t còn l i. Vì v y trư c đây đã t ng có quan ni m cho r ng các thanh đi u trong các âm ti t có âm cu i vô thanh là nh ng thanh đi u đ c bi t, t o thành h th ng 8 thanh đi u: tan, tàn, tãn, t n, tán, t n, tát, t t. 31 CHƯƠNG 2. CƠ S 2.2 LÝ THUY T NGÔN NG 2.2. T T 2.2.1 C N TT – Đ H K H TN Khái ni m t , m c dù nghe qua r t thông d ng, d hi u, nhưng đ nh nghĩa chính xác th nào là t không đơn gi n. T trư c đ n nay đã có nhi u đ nh nghĩa v t đư c đưa ra. Các đ nh nghĩa đ u đúng, tuy nhưng không hoàn ch nh. Vi n sĩ L. V. Sherba th a nh n r ng: “Trong th c t , t là gì? Thi t nghĩ r ng trong các ngôn ng khác nhau, t s khác nhau. Do đó, t t s không có khái ni m t nói chung”5 . Chính vì tính đa d ng và ph c t p c a t mà m t s nhà ngôn ng h c ch i b khái ni m t , ho c né tránh đ nh nghĩa t m t cách chính th c. Nhà ngôn ng h c Ferdinand de Saussure đã nh n xét: “. . . Ngôn ng có tính ch t kỳ l và đáng kinh ng c là không có nh ng th c th tho t nhìn có th th y ngay đư c, th nhưng ngư i ta v n bi t ch c là nó t n t i, và chính s giao lưu gi a nh ng th c th đó đã làm thành ngôn ng . Trong s nh ng th c th đó có cái mà ngôn ng h c v n g i là t .”. Theo ông thì “. . . T là m t đơn v luôn luôn ám nh toàn b tư tư ng chúng ta như m t cái gì đó tr ng tâm trong toàn b cơ c u ngôn ng , m c dù khái ni m này khó đ nh nghĩa”. Đ nh nghĩa t K H O A Th i Hy L p c đ i, trư ng phái ngôn ng Alexandri đã đ nh nghĩa: “T là đơn v nh nh t trong chu i l i nói”. Ngoài ra A. Meillet trong Ngôn ng h c l ch s và ngôn ng h c đ i cương đã đ nh nghĩa: “T là k t qu c a s k t h p m t ý nghĩa nh t đ nh v i m t t h p các âm t nh t đ nh, có th có m t công d ng ng pháp nh t đ nh”. Theo E. Sapir thì “T là m t đo n nh nh t có ý nghĩa, hoàn toàn có kh năng đ c l p và b n thân có th làm thành câu t i gi n”. 5 Nguy n Kim Th n, Nghiên c u ng pháp ti ng Vi t. NXB GD, 1997. Trang 28 32 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.2. T K H O A C N TT – Đ H K H TN Theo L. Bloomfield thì t là “m t hình thái t do nh t”. Theo B. Golovin thì t là “đơn v nh nh t có ý nghĩa c a ngôn ng , đư c v n d ng đ c l p, tái hi n t do trong l i nói đ xây d ng nên câu”. Theo Solncev thì “T là đơn v ngôn ng có tính hai m t: âm và nghĩa. T có kh năng đ c l p v cú pháp khi s d ng trong l i”. Theo B. Trơ-nơ-ka thì “T là đơn v nh nh t có ý nghĩa, đư c c u t o b ng âm v và có kh năng thay đ i v trí và thay th l n nhau trong câu”. Theo L c Chí V thì “T là đơn v nh nh t có th v n d ng t do trong câu”. Theo m t s tác gi khác c a Trung Qu c thì “T là đơn v t v ng, là đơn v v t li u ki n trúc c a ngôn ng , và cũng là đơn v nh nh t có kh năng v n d ng tư do trong l i nói”. Theo V. G. Admoni thì “T là đơn v ng pháp, do hình v c u t o nên, dùng đ bi u th đ i tư ng, quá trình, tính ch t và nh ng m i quan h trong hi n th c, có tính đ c thù rõ r t và có kh năng ki n l p nhi u m i quan h đa d ng v i nhau”. Theo R. A. Bunđagôp thì “T là đơn v nh nh t và đ c l p, có hình th c v t ch t (v âm thanh và hình th c) và có nghĩa, có tính ch t bi n ch ng và l ch s ”. Đ i v i ti ng Vi t, cũng có m t s đ nh nghĩa t đư c đưa ra. Theo M. B. Émeneau thì “T bao gi cũng t do v m t âm v h c, nghĩa là có th miêu t b ng nh ng danh t c a s phân ph i các âm v và b ng nh ng thanh đi u”6 . Émeneau đã d a trên m t ng âm đ đ nh nghĩa t , xem m i t trư c h t là nh ng âm ti t. V i quan ni m như v y ch y u d a vào tính hoàn ch nh v m t âm thanh và trong th c t thì ngư i Vi t luôn có khuynh hư ng mong đ i m i ti ng như v y s mang m t nghĩa nào đó và coi đó như “t ”. Theo Trương Văn Trình và Nguy n Hi n Lê thì “T là âm có nghĩa, dùng 6 Nguy n Thi n Giáp. T và nh n di n t ti ng Vi t. NXB GD, Hà N i 1996. Trang 17 33 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.2. T K H O A C N TT – Đ H K H TN trong ngôn ng đ di n t m t ý đơn gi n nh t, nghĩa là ý không th phân tích ra đư c”. Đ nh nghĩa này ch y u d a vào tính nh t th c a nghĩa, nghĩa là m i t có m t nghĩa t i gi n nào đó, và nghĩa c a t có tính võ đoán và tính thành ng . Lê Văn Lý cho r ng t ti ng Vi t “là m t tín hi u ng âm có th c u t o b ng m t âm v hay s k t h p v i âm v , mà s phát âm ch ti n hành trong m t l n, ho c là m t âm ti t mà ch vi t bi u th b ng m t đơn v tách r i và có m t ý nghĩa hi u đư c”7 . Đ nh nghĩa này d a vào c ba m t: ng âm, ch vi t và ý nghĩa. Tuy nhiên đ nh nghĩa này mâu thu n v i đ nh nghĩa t ghép c a chính tác gi , vì tác gi đ nh nghĩa t ghép d a trên ch c năng ng pháp và g m nhi u âm ti t. Theo Phan Khôi thì “T là m t l i đ t ra m t khái ni m trong khi nói”. Theo Nguy n Lân thì “T là nh ng ti ng có nghĩa, t c là m i khi nghe th y, trong óc chúng ta đ u có m t khái ni m”. N u xem t tương đương v i khái ni m thì nh ng t hình thái như à, ư, nh , nhé . . . hay nh ng hư t như cũng, v i, b i . . . s mang khái ni m gì? Trên th c t , t và khái ni m không tương ng 1-1 v i nhau. Có nh ng khái ni m có th bi u th b ng nhi u t . Theo Nguy n Kim Th n thì “T là đơn v cơ b n c a ngôn ng , có th tách kh i các đơn v khác c a l i nói đ v n d ng m t cách đ c l p và là m t kh i hoàn ch nh v m t ý nghĩa (t v ng hay ng pháp) và c u t o”. Quan ni m c a ông v “đơn v cơ b n” là nh ng đơn v có s lư ng h u h n đ thông báo, trao đ i tư tư ng cho nhau. Đơn v này ph i có nghĩa, và khi s d ng, ngư i s d ng ph i có ý th c v nó. Chính vì v y mà đơn v cơ b n này không th là câu (vì s lư ng câu là vô h n) và cũng không th là âm ti t (vì nhi u âm ti t không có nghĩa và khi s d ng, ngư i s d ng không ý th c v nó). V y đơn v cơ b n là cái gì đó nh hơn câu và l n hơn âm ti t. Theo H Lê thì “T là đơn v ng ngôn có ch c năng đ nh danh phi liên 7 Nguy n Kim Th n, Nghiên c u ng pháp ti ng Vi t. NXB GD, 1997. Trang 30 34 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.2. T K H O A C N TT – Đ H K H TN k t hi n th c, ho c ch c năng mô ph ng ti ng đ ng, có kh năng k t h p t do, có tính v ng ch c v c u t o và tính nh t th v ý nghĩa”. Theo ông, t khác v i âm ti t ch y u v m t ý nghĩa. T có ý nghĩa ng ngôn, còn âm ti t thì ch có ý nghĩa ti n ng ngôn. T khác t t kh năng k t h p. T có kh năng k t h p t do trong l i nói, còn t t thì ch có kh năng k t h p h n ch . T khác v i c m t t do b i tính v ng ch c v c u t o, tính nh t th v ý nghĩa và b i ch c năng đ nh danh phi liên k t hi n th c. T khác c m t c đ nh (thành ng , ng n ng ) ch y u b i ch c năng đ nh danh phi liên k t hi n th c c a nó. Đái Xuân Ninh ch trương không đ nh nghĩa t , vì “t trư c đ n nay, trong ngôn ng h c đ i cương cũng như trong ti ng nói c th như ti ng Vi t, chưa có m t đ nh nghĩa nào th a đáng c ”. Theo ông thì “đ ng v m t ch c năng và c u trúc c a ngôn ng , ch c n xác đ nh đơn v t và m i quan h c a nó v i các đơn v khác trong ti ng nói”. Ông cho r ng ta có th nh n di n t m t cách khái quát như sau: “T là đơn v cơ b n c a c u trúc ngôn ng gi a hình v và c m t . Nó đư c c u t o b ng m t hay nhi u đơn v hàng ngay sau nó t c là hình v và l p thành m t kh i hoàn ch nh”. Nguy n Tài C n, tuy không đ nh nghĩa tr c ti p t ti ng Vi t, nhưng ông đã ch ng minh nh ng tính ch t đ c bi t c a “ti ng”, m t đơn v mà ông coi chính là hình v và có tính năng r t g n v i “t ”, nó cũng chính là “t đơn” và là thành t tr c ti p đ t o nên “t ghép”. Theo ông, m i đ c thù v t pháp c a ti ng Vi t b t ngu n t tính đơn l p c a ti ng Vi t mà th hi n rõ nét nh t là qua m t đơn v đ c bi t, đó chính là ti ng. Quan đi m này cũng đư c Cao Xuân H o đ ng tình. K th a quan đi m coi ti ng g n trùng v i t . Nguy n Thi n Giáp đã phát tri n tư tư ng này lên đ n m c c c đoan là coi ti ng trong ti ng Vi t chính là t trong các ngôn ng n-Âu. Theo ông “N u quan ni m t không ch là đơn v ngôn ng h c mà còn là đơn v tâm lý-ngôn ng h c, n u chú ý 35 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.2. T Đ c đi m c a t H 2.2.2 K H TN đ n tính nhi u m t c a t và đ c đi m c a t trong t ng ngôn ng , n u nh n di n t căn c vào nh ng quan h đ i l p trong n i b t ng ngôn ng thì cái đơn v g i là “ti ng” c a Vi t ng có đ tư cách đ đư c g i là “t ””. Như v y Nguy n Thi n Giáp đã không s d ng đ n khái ni m hình v trong ti ng Vi t (đơn v dùng đ c u t o t trong các ngôn ng n-Âu). Trong quan ni m v t c a ông, ông ch y u d a trên các tiêu chí nh n di n thu c v hình th c mà không nh n m nh tiêu chí v ng nghĩa và kh năng đ c l p v ng pháp. – Đ T các đ nh nghĩa trên, có th rút ra các đ c đi m chính c a t nói chung như sau: C N TT • V hình th c, t ph i là m t kh i v c u t o (chính t , ng âm . . . ). • V n i dung, t ph i có ý nghĩa hoàn ch nh. • V kh năng, t có kh năng ho t đ ng t do và đ c l p v cú pháp. K H O A Đ i v i t ti ng Vi t, ta có th rút ra nh ng đ c đi m c a t ti ng Vi t so v i các ngôn ng thu c lo i hình khác. Ti ng Vi t là m t ngôn ng đơn l p v i các đ c đi m chính như sau: • Trong ho t đ ng ngôn ng , t không bi n đ i hình thái. Ý nghĩa ng pháp n m ngoài t . • Phương th c ng pháp ch y u là tr t t t và t hư. • T n t i m t đơn v đ c bi t là hình ti t mà v ng âm c a nó trùng khít v i âm ti t. Đơn v đó còn đư c g i là ti ng. 36 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.2. T • Không có hi n tư ng c u t o t b ng cách ghép thêm ph t vào g c t. Các quan ni m v hình v và t trong ti ng Vi t K H TN 2.2.3 Đ i v i t trong ti ng Vi t, đ n nay có m t s quan đi m như sau: H • Coi m i ti ng đ u là t (Nguy n Thi n Giáp). Đi u này thu n ti n trong x lý nhưng không đúng v i tiêu chí ngôn ng h c đ i cương vì có nhi u ti ng không có nghĩa, như “phê” trong “cà phê”, “bù” trong “bù nhìn” . . . – Đ • Coi ti ng chưa h n là t (đa s các nhà Vi t ng h c). Trong s này chia thành ba nhóm sau: C N TT – Xem ti ng là hình v . Quan ni m có th ch p nh n đư c n u coi hình v là hình v ti ng Vi t (g m tha hình v và á hình v ) – Xem ti ng l n hơn hình v (Tr n Ng c Thêm, Lưu Văn Lang . . . ) cho là ti ng có nh ng hình v (khuôn v n). K H O A – Xem ti ng nh hơn ho c b ng hình v . Đa s các ti ng đ u là hình v , ngo i tr “h u” trong “dưa h u”, “bù” trong “bù nhìn” . . . vì nh ng ti ng này không có nghĩa. Quan đi m này đư c nhi u ngư i ch p nh n. • Xem ti ng châu Âu (Anh, Pháp . . . ) cái nào là t thì trong ti ng Vi t cái đó là t . Quan đi m này chưa xét đ n s khác bi t v s t v ng hoá gi a hai ngôn ng do khác bi t v văn hoá. Theo quan đi m ngôn ng h c đ i cương, t đư c c u t o b i các hình v , và hình v chính là các đơn v có nghĩa nh nh t. Vì v y, t trong ti ng 37 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN NG 2.3. T LÁY 2.3 K H TN Vi t cũng ph i đư c c u t o b i các hình v nêu trên, nhưng có đi u khác là các hình v thành ph n đây không hoàn toàn gi ng khái ni m hình v c a ngôn ng h c đ i cương, mà là “hình v ti ng Vi t” hay còn g i là “hình ti t” (hình v + âm ti t) hay “ti ng” (vì ch ti ng Vi t m i có đơn v ti ng đ c bi t như v y). T láy Đ H T láy là t mà các thành t k t h p v i nhau ch y u là theo quan h ng âm. S lư ng t láy trong ti ng Vi t r t l n, kho ng 4000 t . Quan h ng âm trong t láy th hi n hai m t: – • Tương ng v y u t siêu đo n tính (thanh đi u) C N TT • Tương ng v y u t âm đo n tính (ph âm đ u, v n và các y u t trong v n) K H O A Các thành t c a t láy thư ng ph i có thanh thu c cùng m t âm v c: ho c thu c âm v c cao (ngang, h i, s c), ho c thu c âm v c th p (huy n, ngã, n ng)8 Các t láy có nhi u ki u, bao g m láy toàn b và láy b ph n (láy v n, láy ph âm đ u). Lu t hài thanh c a m i ki u láy có đ c đi m riêng: • Trong các t láy toàn b , âm ti t đ u thư ng là m t trong các thanh b ng (1, 2) còn âm ti t th hai thư ng là m t trong các thanh tr c (3, 4, 5, 6) cùng âm v c v i nó. • Trong các t đi p v n, thư ng có xu hư ng th ng nh t các thanh đi u c hai âm ti t. Theo th ng kê c a Nguy n Thi n Giáp, có 81% s 8 Trong ti ng Vi t hi n đ i, thanh ngã thu c âm v c cao, thanh h i thu c âm v c th p. Tuy nhiên v m t l ch s , thanh h i trư c kia thu c âm v c cao còn thanh ngã l i thu c âm v c th p (A.G. Haudricourt, 1954) 38 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN 2.4. CHÍNH T TI NG VI T NG K H TN t láy v n có thanh đi u hai âm ti t gi ng nhau hoàn toàn. Trong m t s trư ng h p, s k t h p c a thanh đi u trong t láy không theo đúng lu t hài thanh (như khe kh , se s , x p x p . . . ) có th gi i thích b ng s thay đ i l ch s c a thanh ngã t âm v c th p lên âm v c cao, kéo theo s thay đ i c a các thanh đi u khác k t h p v i nó, ho c do quan h v i cơ ch láy ba. H • Trong các t láy ph âm đ u, thanh đi u c a hai âm ti t không b t bu c ph i gi ng nhau, ch c n hai thanh đi u hai âm ti t cùng âm v c là đư c. – Đ S phân b thanh đi u trong các t láy ti ng Vi t tuân theo lu t phù-tr m. Lu t hài hoà thanh đi u này b ch đ nh rõ r t trong ki u láy v n do m i quan h ch t ch gi a v n và thanh đi u. Chính t ti ng Vi t 2.4.1 T ng quan v ch vi t ti ng Vi t C N TT 2.4 K H O A Ch vi t là m t trong nh ng phương ti n giao ti p hi u qu . Ch vi t cho phép vư t qua nh ng gi i h n v không gian và th i gian c a ti ng nói. Nh đ c đi m này, ch vi t đư c s d ng r ng rãi trong nhi u lĩnh v c khác nhau c a đ i s ng. Có nhi u h th ng ch vi t khác nhau đư c s d ng trên th gi i, nhưng nhìn chung có th phân thành hai lo i ch vi t sau: Ch vi t ghi ý Đây là lo i ch vi t bi u hi n t b ng m t ký hi u duy nh t, không liên quan gì đ n nh ng âm thanh c u t o nên t . Ký hi u này liên quan v i c t và do đó cũng gián ti p có quan h v i ý ni m mà t đó bi u hi n. Lo i này bao g m ch Trung Qu c, ch Ai C p . . . 39 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN 2.4. CHÍNH T TI NG VI T NG K H TN Vì các ký hi u ch vi t không ph n ánh m t âm thanh và hình th c ng pháp c a t mà ph n ánh m t ý nghĩa, nên trong ti ng Trung Qu c nh ng t đ ng âm đư c bi u hi n b ng nh ng ch hoàn toàn khác nhau. Ch vi t ghi âm Đây là lo i ch vi t nh m tái hi n chu i âm thanh n i ti p nhau trong t . Các h th ng ch vi t ng âm h c có th ghi âm ti t hay âm t . H Ch ghi âm ti t M i ký hi u ghi m t âm ti t. D n ch ng cho lo i ch vi t này là h th ng ch Nh t Hiragana và Katakana. – Đ Ch ghi âm t M i ký hi u ghi m t âm t (hay âm v ). Ví d như ch Anh, ch Pháp, ch Nga . . . K H O A C N TT H th ng ch vi t đư c s d ng hi n nay c a nư c ta là ch qu c ng . Nư c ta trư c đây v n dùng ch Hán và ch Nôm. Ch qu c ng đư c hình thành t th i Pháp đô h nư c ta, đư c ngư i Pháp s d ng trong các văn t chính th c và càng ngày càng đư c s d ng r ng rãi. Ch qu c ng ra đ i cách nay kho ng ba th k . Đó là công trình c a m t nhóm các c đ o ngư i châu Âu c ng tác cùng m t s ngư i Vi t. Ngư i đ l i nhi u tác ph m có giá tr trong giai đo n đ u c a ch qu c ng là Alexandre de Rhodes. Ch qu c ng là m t l i ch ghi âm, dùng ch cái Latin. Nó dùng nh ng ký hi u (t c là nh ng con ch , mư n t ch cái Latin, có thêm các d u ph ) đ ghi l i nh ng âm v , âm t và các thanh đi u ti ng Vi t. Ch qu c ng v căn b n khác v i ch Hán và ch Nôm. Ch Hán là l i ch ghi ý. Ch Nôm c a chúng ta ngày xưa v căn b n cũng là l i ch ghi ý, tuy có nhi u thành ph n ghi âm. So v i ch Nôm, ch qu c ng có ti n b r t l n vì nó là ch ghi âm 40 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN 2.4. CHÍNH T TI NG VI T NG Chính t ti ng Vi t H 2.4.2 K H TN r t gi n ti n, s d ng vài ch c ký hi u gi n ti n là có th bi u di n đư c h th ng âm thanh ti ng Vi t. So v i các h th ng ch ghi âm khác như ch Anh, ch Pháp thì ch qu c ng là m t h th ng “ch vi t tr ”, m i đư c dùng ph bi n hơn m t th k nay, nên gi a ch và âm tương đ i có s phù h p. Nguyên t c chính t cơ b n c a ch qu c ng là nguyên t c ng âm h c, có nghĩa là “phát âm th nào thì vi t th y”, nên có s tương ng khá l n gi a ch vi t và phát âm. – Đ Nói ng n g n, chính t là toàn b nh ng tiêu chu n và nh ng qui lu t th c hành ch vi t, bao g m: C N TT 1. Nh ng lu t dùng các con ch c a b ng ch cái đ vi t các t . 2. Lu t vi t các t đ c l p v i nh ng ch cái khi vi t chúng. Ví d : Cách dùng các d u câu, cách vi t hoa, tên ngư i, tên đ t . . . K H O A Chu n m c c a cách vi t thư ng tuân theo nh ng nguyên t c khác nhau. Đ i v i nh ng lu t chính t liên quan đ n vi c s d ng các con ch c a b ng ch cái ghi âm, có th k đ n các nguyên t c cơ b n sau đây: Nguyên t c âm v h c M i âm v đư c th hi n b ng m t ch cái, không ph thu c vào v trí c a nó trong các t và t h p t . Nguyên t c ng âm h c Ch cái ph n ánh phát âm c a âm v trí hay b i c nh khác nhau. nh ng v Nguyên t c t nguyên Nguyên t c vi t theo l ch s , truy n th ng. Ph n ánh trên ch vi t không ph i là tr ng thái hi n t i mà là tr ng thái quá kh c a h th ng âm thanh. 41 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN 2.4. CHÍNH T TI NG VI T NG – Ch cái Ch cái Âm v i,y /o/ ô,ôô ê /O/ o,oo e,a /ˇ/ 7 â /ˇ/ a a,ă ư ơ /ie/ iê,ia,yê,ya a /uo/ uô,ua u /W7/ ươ,ưa C N TT Âm v /i/ /e/ /E/ /W/ /7/ /a/ /u/ Đ H K H TN Trong b t kỳ m t h th ng ch vi t nào cũng có th th y s k t h p các nguyên t c khác nhau. Nhưng m i h th ng ch vi t có nh ng nguyên t c ch y u. Ch qu c ng đư c xây d ng ch y u trên nguyên t c âm v h c và ng âm h c. Ngư c l i, ch Pháp và ch Anh ch y u dùng nguyên t c t nguyên, vi t theo truy n th ng l ch s . Âm ti t trong ti ng Vi t có 5 thành ph n, đó là thanh đi u, âm đ u, âm đ m, âm chính và âm cu i. Âm đ u các âm v ph âm đ m nhi m. Các âm ti t mà có ch trên ch vi t không ghi ph âm đ u có th có âm đ u là âm t t thanh h u /P/. Âm đ m do các âm v bán nguyên âm /-u-/ đ m nhi m. Âm chính do các âm v nguyêm âm đ m nhi m như trong b ng 2.1. K H O A B ng 2.1: B ng nguyên âm Âm cu i do các âm v ph âm bán nguyên âm đ m nhi m như trong b ng 2.2 trang k ti p. Trên ch vi t, các âm v âm đ u đư c th hi n như trong b ng 2.3 trang k ti p. M t s âm như k và q, gh và g, ngh và ng là cùng âm v . Tuy nhiên, do khi hình thành ch qu c ng , ng âm ti ng Vi t chưa đư c nghiên c u đ y đ , nên các giáo sĩ đã ph i mư n nhi u con ch ghép trong ch B Đào Nha, Hi L p, Pháp, Ý . . . d n đ n s không đ ng nh t khi bi u di n âm v . 42 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN 2.4. CHÍNH T TI NG VI T NG K H TN Ph âm cu i Bán nguyên âm cu i Âm v Ch cái Âm v Ch cái /-p/ p /-u/ u,o /-t/ t /-i/ i,y /-k/ c,ch /-m/ m /-n/ n /-N/ ng,nh Đ H B ng 2.2: B ng ph âm và bán nguyên âm cu i – Ch cái Âm v b /m/ /v/ ph th /t/ đ /n/ x /z/ /ú/ l s /ü/ ch /ñ/ b c q , k , c /N/ /G/ kh /P/ h K H O A C N TT Âm v /b/ /f/ /th / /d/ /s/ /l/ /ù/ /c/ /k/ /x/ /h/ Ch cái m v t n d,gia tr r nh nghc , ng ghc , g khuy t B ng 2.3: B ng ph âm đ u a D a vào nguyên t c t nguyên đ phân bi t Dùng khi đ ng trư c bán nguyên âm /-u-/ c Dùng khi đ ng trư c các nguyên âm /i,e,E,ie/ b 43 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN 2.4. CHÍNH T TI NG VI T NG C N TT – Đ H K H TN H th ng âm chính ti ng Vi t d a trên cách phát âm Hà N i bao g m 9 nguyên âm dài, 2 nguyên âm ng n, 3 nguyên âm đôi. Tóm g n các cách bi u di n nguyên âm chính g m: i, y, ê, e, a, ư, ơ, a, u, ô, o, â, ă, iê, ia, yê, y, uô, y, uô, ươ, ưa. Các ph âm cu i đư c ghi b ng “nh” khi đ ng sau các nguyên âm i, y, ê, e, a. Ví d : minh, mênh, manh. Trong các trư ng h p khác l i đư c ghi b ng “ng”. Ví d : mang, vâng, h ng, xu ng. Các bán nguyên âm cu i /-u/ ghi b ng “o” khi đ ng sau các nguyên âm đơn dài, b c thanh lư ng l n như e, a. Các vi t này bi u di n s bi n d ng c a các bán âm sau các m r ng. Trong các trư ng h p còn l i, bán nguyên âm này đư c ghi b ng “u”. Các bán nguyên âm cu i /-i/ đư c ghi b ng “y” khi đ ng sau các nguyên âm ng n ă, a, â. Trong các trư ng h p khác nó đư c ghi b ng “i”. Tóm l i, các âm v cu i đư c th hi n b ng nh ng ch cái: p, t, c, ch, m, n, ng, nh, u, o, i, y. Ti ng Vi t có sáu thanh đi u: s c, huy n, ngã, h i, n ng và thanh không d u. V vi c b d u, có ba nguyên t c b d u sau: K H O A Nguyên t c b d u khoa h c D u thanh đư c đ t âm chính c a v n, t c là đ t trên ho c dư i nguyên âm có vai trò quy t đ nh âm s c ch y u c a âm ti t. Nguyên t c th m m (nguyên t c th y u) D u thanh đư c đ t v tri cân đ i trong âm ti t. Nguyên t c này trư c đây hay dùng nhưng nay trong m t s trư ng h p n u đ t d u thanh sai s làm cho phát âm không đúng và hi u sai nghĩa t . Nguyên t c th c d ng D u thanh thư ng đư c đ t vào m t con ch nguyên âm ch không đ t gi a hai con ch , đ ti n vi c in n. 44 CHƯƠNG 2. CƠ S LÝ THUY T NGÔN 2.4. CHÍNH T TI NG VI T NG • N u âm chính là m t nguyên âm đơn thì d u thanh luôn luôn đư c ghi trên ho c dư i âm chính. 2.4.3 K H TN • N u âm chính là m t nguyên âm đôi thì tùy trư ng h p có th b đ u thanh y u t th nh t ho c y u t th hai c a âm chính. L i chính t Theo [Hoa02] thì: Đ H Ch vi t là h th ng ký hi u b ng đư ng nét đ t ra đ ghi ti ng nói và có nh ng qui t c, qui đ nh riêng. Mu n vi t đúng chính t ti ng Vi t, ta ph i tuân theo nh ng qui đ nh, qui t c đã đư c xác l p. C N TT – Chính t là cách vi t ch đư c xem là chu n, t c là vi t đúng âm đ u, đúng v n, đúng d u (thanh), đúng quy đ nh v vi t hoa, vi t t t, vi t thu t ng . K H O A Các l i chính t thư ng rơi vào lo i l i do phát âm sai d n đ n vi t sai (l i h i-ngã, l i sai âm đ u, sai âm chính, sai âm cu i). Ngoài ra còn các lo i l i khác như vi t hoa không đúng qui cách, vi t tên riêng, thu t ng , tên ti ng nư c ngoài không đúng qui cách. 45 K H TN Chương 3 H Cơ s tin h c Âm ti t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nguyên âm và ph âm . . . . . . . . . . . . . . . . . . . C N TT 2.1.1 – 2.1 Đ M cl c 16 17 2.1.2 Âm v . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.3 Âm ti t . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 C u trúc âm ti t ti ng Vi t . . . . . . . . . . . . . . . . . 21 Ph âm đ u . . . . . . . . . . . . . . . . . . . . . . . . . 23 Quan h phân b gi a ph âm đ u và âm đ m . . . . . . 24 Vn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Âm đ m .......................... 25 Âm chính . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Nguyên âm đơn . . . . . . . . . . . . . . . . . . . 27 Nguyên âm đôi . . . . . . . . . . . . . . . . . . . 28 2.1.4 K H O A 2.1.5 Âm cu i .......................... 28 Quy lu t phân b c a các âm cu i sau âm chính . . . . . 28 S th hi n c a nguyên âm và ph âm trong các ti ng đ a phương . . . . . . . . . . . . . . . . . . . . . . 29 46 CHƯƠNG 3. CƠ S 2.1.6 TIN H C 3.1. B T L I CHÍNH T T 30 S phân b c a thanh đi u . . . . . . . . . . . . . . . . . 2.2 Thanh đi u . . . . . . . . . . . . . . . . . . . . . . . . . 30 .................................. 32 Đ nh nghĩa t . . . . . . . . . . . . . . . . . . . . . . . . 32 2.2.2 Đ c đi m c a t ...................... 36 2.2.3 Các quan ni m v hình v và t trong ti ng Vi t . . . . . . 37 2.3 T láy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.4 Chính t ti ng Vi t . . . . . . . . . . . . . . . . . . . . . . . . 39 2.4.1 T ng quan v ch vi t ti ng Vi t . . . . . . . . . . . . . . 39 2.4.2 Chính t ti ng Vi t . . . . . . . . . . . . . . . . . . . . . 41 2.4.3 L i chính t . . . . . . . . . . . . . . . . . . . . . . . . . 45 B t l i chính t C N TT 3.1 – Đ H K H TN 2.2.1 Trình b t l i chính t có th đư c đánh giá theo nhi u cách khác nhau. Nhưng ch y u v n đư c phân lo i t quan đi m ngư i dùng: kh năng phát hi n l i sai, và kh năng đ ngh nh ng t thay th cho l i sai đó. Phân lo i l i chính t K H O A 3.1.1 Có nhi u cách phân lo i l i khác nhau. Tuy nhiên, xét theo quan đi m c a chương trình b t l i chính t thì l i chính t có th phân làm hai lo i là l i non-word và l i real-word (đư c s d ng trong [TPLT98]): • L i non-word là l i t o ra t sai, hoàn toàn không có trong t đi n. Đây là lo i l i d phát hi n. (Ví d , “hoa2”, “nhưg” . . . ) 47 CHƯƠNG 3. CƠ S TIN H C 3.1. B T L I CHÍNH T trong t đi n. N u th xác đ nh đó có là m t ngư i bàng n có trong t đi n). K H TN • L i real-word là l i chính t mà t /ti ng đó có không d a vào ng c nh chung quanh thì không ph i là l i chính t hay không. (Ví d , “Anh ta quang” — t “bàng quang” không đúng, nhưng v Đây là lo i l i r t khó nh n ra và x lý. Ngoài ra có th phân lo i l i theo ngu n g c phát sinh l i. Theo cách phân lo i này, có hai lo i l i chi m đa s là l i phát âm sai và l i nh p sai. – Đ H • L i phát âm sai. L i này do s nh m l n gi a cách đ c và cách vi t gi a nh ng t đ ng âm ho c g n v i nhau. V i ti ng Vi t, do có nhi u khác bi t cách phát âm gi a các vùng trong khi h th ng ch vi t d a trên h th ng phát âm ti ng Hà N i, nên d d n đ n các l i sai lo i này. C N TT • L i nh p sai. L i gây ra do gõ sai phím, gõ sót phím ho c dư phím. K H O A • Các l i khác. Ngoài hai lo i l i trên, còn có nhi u nguyên nhân khác d n đ n l i chính t . M t trong nh ng nguyên nhân đó là l i dùng t sai (do hi u sai, ho c không hi u rõ cách dùng t ). Đây th c ch t thu c v l i t v ng, nhưng đôi khi ngư i dùng l i đòi h i trình b t l i chính t ph i tìm ra nh ng l i này. Ngoài l i dùng t sai, còn có nh ng l i phát sinh do máy móc. Hai công c liên quan đ n x lý văn b n và d gây ra l i chính t là nh n d ng ti ng nói và nh n d ng ch vi t. Đ i v i nh n d ng ti ng nói, l i thư ng g p gi ng v i d ng l i phát âm sai. Tuy nhiên, đ i v i m t s ngôn ng như ti ng Anh — m i t g m nhi u âm ti t — thì có th gây ra l i tách t sai. Đ i v i nh n d ng văn b n, l i ch y u do s gi ng nhau gi a các ch cái khi vi t. Thông thư ng, b n thân các công 48 CHƯƠNG 3. CƠ S TIN H C 3.1. B T L I CHÍNH T c này cũng đư c cài đ t m t trình b t l i chính t t đ ng (d ng đơn gi n ho c ph c t p) nh m gi m thi u các l i chính t . K H TN Theo [Cha98] thì l i bao g m: • Gi ng phiên âm • Gi ng hình d ng ch vi t • Gi ng nghĩa Phát hi n l i chính t Đ 3.1.2 H • Gi ng cách gõ K H O A C N TT – Gi i pháp đơn gi n đ phát hi n l i chính t là dùng m t c u trúc d li u đ lưu t t c các t đã bi t (đư c lưu trong t đi n). N u t không có trong t đi n nghĩa là t đó b sai. Gi i pháp này c n thêm m t s heuristic đ tránh không xem các con s , ngày tháng . . . là l i sai. Đ i v i trình b t l i chính t truy n th ng thì t đi n là m t ph n r t quan tr ng. T đi n có th đư c lưu theo các d ng c u trúc d li u như b ng băm ho c c u trúc d li u d ng cây có th đư c s d ng [McI82, Pet80a] V i nh ng l i sai d ng l i t v ng, ta ph i dùng m t s phương pháp khác ph c t p hơn đ phát hi n (chi ti t trong ph n 3.4 trang 59). 3.1.3 Các sai l m c a trình b t l i chính t Khi b t l i chính t , trình b t l i không tránh kh i các sai l m. Có th phân ra làm hai lo i sai l m: sai l m tích c c1 và sai l m tiêu c c2 . 1 2 false positive false negative 49 CHƯƠNG 3. CƠ S TIN H C 3.1. B T L I CHÍNH T K H O A C N TT – Đ H K H TN Sai l m tích c c x y ra khi trình b t l i báo l i nh ng t hoàn toàn không sai chính t . Sai l m tiêu c c x y ra khi trình b t l i b qua nh ng t b sai chính t . Nói cách khác, trình b t l i cho r ng nh ng t sai chính t này không sai. Sai l m tích c c có th tránh đư c nh tăng kích thư c t đi n. Tuy nhiên đây không ph i là gi i pháp hoàn h o. Vi c tăng kích thư c t đi n s t n kém (v b nh , CPU, cũng như công s c b ra đ xây d ng t đi n). Hơn n a, càng có nhi u t thì vi c đ ngh các t thay th càng tr nên kém hi u qu do b phân tán b i nh ng t r t ít g p, không th t p trung vào nh ng l i ph bi n. Sai l m tiêu c c có th xem là l i không phát hi n đư c. Ph n nhi u nh ng l i này thư ng đòi h i ph i hi u văn b n (ít nh t là m t ph n văn b n) đ có th phát hi n l i. Nh ng d ng l i t v ng, l i cú pháp thư ng rơi vào d ng này. Tuy nhiên v n có m t s l i chính t rơi vào lo i này. Nh ng lo i l i này đư c phát hi n nh nh ng chương trình b t l i chính t c m ng c nh (xem ph n 3.4 trang 59). Trong hai lo i sai l m thì sai l m tích c c thư ng gây khó ch u cho ngư i s d ng, d gây tâm lý không tin tư ng vào trình b t l i chính t . Ngư c l i, sai l m tiêu c c ph n ánh tính hi u qu c a trình b t l i chính t . Sai l m tiêu c c càng nhi u thì trình b t l i càng kém hi u qu . 3.1.4 V n đ ch hoa, ch thư ng V n đ ch hoa/ch thư ng gây nhi u khó khăn cho trình b t l i chính t . Trong t đi n, h u h t các t là ch thư ng. Tuy nhiên cũng có ch hoa (tên riêng, t vi t t t . . . ). Các quy t c chính t v vi t hoa cũng khá ph c t p. Ngoài ra, đôi khi các ch đư c vi t hoa hoàn toàn đ nh n m nh, đ làm tiêu đ ... Thu t toán đ x lý trư ng h p ch hoa, ch thư ng có th đư c mô t 50 CHƯƠNG 3. CƠ S TIN H C 3.2. L P DANH SÁCH T Đ NGH như trong thu t toán 3.1. 2. Đ t c là k t qu tìm ki m wt . 3. N u không tìm đư c c, t b sai chính t . 4. N u c gi ng w, t đúng. K H TN 1. Đ t wt là ch vi t thư ng c a w. 5. Đ t cc là ch thư ng, vi t hoa ch cái đ u tiên c a w. N u c gi ng cc , t đúng. H 6. Đ t cu là ch hoa c a w. N u c gi ng cu , t đúng. Đ 7. Ngư c l i, t w sai. 3.2 C N TT – Thu t toán 3.1: X lý ch hoa, ch thư ng L p danh sách t đ ngh K H O A Sau khi phát hi n ra t b sai chính t , ta c n đưa ra m t s t “g n gi ng” có kh năng thay th t b sai chính t . Trong trư ng h p lý tư ng, ta nên đưa ra m t t duy nh t, đó chính là t đúng chính t , l ra c n ph i đư c dùng thay cho t b sai chính t . Tuy nhiên, vi c tìm ra t đúng c a t b sai chính t là m t công vi c không d dàng, ngay c v i con ngư i. Khi g p m t t sai chính t , ta thư ng ph i suy nghĩ nhi u, ch n ra m t s t có kh năng thay th , ki m nghi m xem t nào là t thích h p nh t. Quá trình ki m nghi m xem t nào là thích h p thư ng đòi h i ph i hi u v n i dung c a văn b n đang xem (đ i v i con ngư i). Đ i v i máy tính, vi c hi u văn b n, đ n nay v n là m t v n đ khó. Tuy nhiên, máy tính cũng có kh năng tìm ra k t qu đ i v i m t s trư ng 51 CHƯƠNG 3. CƠ S TIN H C 3.2. L P DANH SÁCH T Đ NGH 3.2.1 C N TT – Đ H K H TN h p l i thông d ng (chi ti t trong ph n 3.4 trang 59). Vi c tìm ra ch m t k t qu duy nh t đưa đ n m t thu n l i đáng k . B i vì ch có m t k t qu , không c n ph i l a ch n, nên ta có th t o ra chương trình b t l i chính t (và s a l i chính t ) t đ ng. Vi c t o ra m t chương trình b t l i chính t t đ ng hoàn toàn m ra m t kh năng to l n khi áp d ng vào th c t , giúp gi m đáng k công s c c a con ngư i. Trong trư ng h p không th đưa ra m t đ ngh duy nh t, ta có th đưa ra m t danh sách các t “có kh năng” đ ngư i dùng ch n l a. Yêu c u đ t ra là t đúng ph i n m trong danh sách t l a ch n. Và t t hơn n a là t đúng nên đư c đ t trên cùng danh sách đ gây s chú ý c a ngư i dùng (chi ti t trong ph n 3.3 trang 55). Đ đ m b o t đúng n m trong danh sách, ta c n tìm hi u nguyên nhân d n đ n l i, sau đó c g ng ph c h i l i đ t o l i nh ng t có kh năng. Do có nhi u nguyên nhân khác nhau d n đ n l i chính t , nên cũng có nhi u cách khác nhau đ phát sinh danh sách t đ ngh . L i phát âm sai K H O A Đ i v i các ngôn ng như ti ng Vi t — v n “nói sao vi t v y”, gi i pháp khá đơn gi n. Ta có th phân tích c u trúc ti ng trong ti ng Vi t, sau đó d a vào các cách phát âm gi ng nhau đ t o ra danh sách các ti ng phát âm gi ng nhau. Đ i v i các ngôn ng như ti ng Anh — cách vi t không còn tương ng v i cách đ c n a, thì gi i pháp s ph c t p hơn. Cơ b n là ta c n m t cách nào đó đ chuy n t đư c vi t thành m t d ng phiên âm, sau đó áp d ng như bình thư ng. M t s heuristic đư c đưa ra đ gi i quy t v n đ này. Thu t toán cơ b n là Soundex [Knu73]. Nhi u thu t toán khác đư c đưa ra đ c i 52 CHƯƠNG 3. CƠ S TIN H C 3.2. L P DANH SÁCH T Đ NGH K H TN ti n Soundex như Double Metaphone3 , Phonetex [AHD01]. Soundex cũng đư c c i ti n đ áp d ng cho các ngôn ng khác, như ti ng Thái [KSM97]. Nói chung, các k thu t này bi n đ i v cơ b n thay th các ký t trong t b ng như ký t khác chung hơn, v i m c đích làm cho sau khi bi n đ i, các t có cách đ c gi ng nhau s tr nên gi ng nhau. Ví d như trong Soundex: • Các ký t “aeiouhwy” đư c thay b ng “0”. • “bpfv” đư c thay b ng “1”. H • “cgjkqsxz” đư c thay b ng “2”. Đ • “dt” đư c thay b ng “3”. – • “l” đư c thay b ng “4”. C N TT • “mn” đư c thay b ng “5”. • “r” đư c thay b ng “6”. Cách thay th khác nhau tùy vào t ng thu t gi i. Ngoài ra, các thu t gi i có th gi l i m t s ký t mà không thay th . L i nh p sai K H O A 3.2.2 L i nh p li u x y ra khi gõ không đúng phím c n gõ trên bàn phím. Damerau [Dam64] xác đ nh b n thao tác có th gây ra l i như sau: • Tráo đ i m t c p ký t . • Xóa m t ký t đã có. 3 http://aspell.sourceforge.net/metaphone/ 53 CHƯƠNG 3. CƠ S TIN H C 3.2. L P DANH SÁCH T Đ NGH • Chèn m t ký t l . • Thay m t ký t b ng m t ký t khác. 3.2.3 Đ H K H TN Damerau cho r ng 80% các l i là do th c hi n thao tác trên m t l n (m t trong b n thao tác trên). Phân lo i l i theo các thao tác trên d n đ n m t k thu t s a l i đơn gi n đư c dùng b i [Pet80b]. N u phát hi n m t t b sai chính t , ta l n lư t th c hi n l i nh ng thao tác trên đ ph c h i t b sai chính t . Nh ng t đư c phát sinh, n u có trong t đi n, s đư c lưu vào danh sách nh ng t đ ngh . K thu t này thư ng đư c g i là Đ o ngư c l i4 . Các l i khác K H O A C N TT – Ngoài hai lo i l i trên, còn có nhi u nguyên nhân khác d n đ n l i chính t . M t trong nh ng nguyên nhân đó là l i dùng t sai (do hi u sai, ho c không hi u rõ cách dùng t ). Đây th c ch t thu c v l i t v ng, nhưng đôi khi ngư i dùng l i đòi h i trình b t l i chính t ph i tìm ra nh ng l i này. Ngoài l i dùng t sai, còn có nh ng l i phát sinh do máy móc. Hai công c liên quan đ n x lý văn b n và d gây ra l i chính t là nh n d ng ti ng nói và nh n d ng ch vi t. Đ i v i nh n d ng ti ng nói, l i thư ng g p gi ng v i d ng l i phát âm sai. Tuy nhiên, đ i v i m t s ngôn ng như ti ng Anh — m i t g m nhi u âm ti t — thì có th gây ra l i tách t sai. Đ i v i nh n d ng văn b n, l i ch y u do s gi ng nhau gi a các ch cái khi vi t. Thông thư ng, b n thân các công c này cũng đư c cài đ t m t trình b t l i chính t t đ ng (d ng đơn gi n ho c ph c t p) nh m gi m thi u các l i chính t . 4 Error reversal 54 CHƯƠNG 3. CƠ S 3.3 TIN H C 3.3. S P X P DANH SÁCH S p x p danh sách K H TN Vi c ch n t t t nh t trong danh sách t đ ngh là m t công vi c không d dàng. [AGSV98] mô t cách l a ch n trong trư ng h p này, có th chia làm các nhóm như sau: • S d ng phân tích cú pháp đ lo i b nh ng t sai t lo i, ho c sai các đ c trưng hình thái (s đ m, ch hoa/ch thư ng . . . ) H • Kh nh p nh ng ng nghĩa đ ch n t phù h p v i ng c nh nh t. Đ • Dùng th ng kê đ ch n t thư ng xu t hi n nh t. – • Nh ng t có cách vi t hoa/thư ng khác v i t b sai s b lo i (ví d , n u t vi t sai là ch thư ng thì các t đ ngh vi t hoa s b lo i) 3.3.1 C N TT M t s k thu t đ s p x p danh sách t đư c ch n s đư c mô t ng n g n bên dư i. Văn ph m ràng bu c K H O A Văn ph m ràng bu c5 (CG) đư c thi t k đ c l p ngôn ng và là m t công c m nh giúp kh nh p nh ng các văn b n không gi i h n [LVHA94]. CG có th đư c xem như m t t p h p các lu t m u-hành đ ng6 , không quá m t lu t v i m i tag có nh p nh ng. M i lu t bao g m m t ho c nhi u m u (các “ràng bu c”) xác đ nh khi nào tag đó không h p l . N u th a m t m u trong s các m u c a lu t, tag đó s b xoá. Các m u ng c nh có th là m u c c b ho c toàn c c, có th tham kh o nh ng phân tích nh p 5 6 Constraint Grammar pattern-action rule 55 CHƯƠNG 3. CƠ S TIN H C 3.3. S P X P DANH SÁCH – Đ H K H TN nh ng ho c không nh p nh ng. Thu t toán s đư c ch y vài l n đ gi m nh p nh ng t t , nh đó giúp các ng c nh gi m nh p nh ng, ho c không còn nh p nh ng, t o đi u ki n kh nh p nh ng nh ng t khác. Mô t cú pháp và hình thái đư c mã hoá b ng tag thay vì c u trúc đóng m ngo c. Mô t cú pháp r t nông. M i t đư c g n v i m t tag ch c năng cú pháp7 , quy đ nh mô t ph thu c v m t ch c năng. Các ràng bu c giúp tránh các d đoán có nhi u r i ro ch không ch n ra gi i pháp đúng. Do đó CG ch giúp gi m s lư ng các nh p nh ng. Văn ph m ràng bu c ti ng Anh (EngCG) đã giúp c i thi n đáng k ch t lư ng b đánh nhãn t lo i ti ng Anh. Văn ph m ràng bu c giúp lo i b h u h t các nh p nh ng có th đư c. Vi c áp d ng CG đ kh nh p nh ng cho trình b t l i chính t là m t công vi c khó khăn vì hi n nay CG cho ti ng Vi t v n chưa đư c xây d ng. M t đ quan ni m C N TT 3.3.2 K H O A Đây th c ch t là áp d ng kh nh p nh ng ng nghĩa dùng WordNet và đ đo kho ng cách gi a các khái ni m trong WordNet. Cách này đư c áp d ng cho danh t . WordNet là m t m ng ng nghĩa v t v ng ti ng Anh, bao g m các m i liên h khác nhau gi a các t ti ng Anh. WordNet đ nh nghĩa các quan h khác nhau cho m i t lo i. Đ i v i danh t thì hai lo i quan h quan tr ng nh t là hypernym và hyponym. A đư c xem là hyponym c a B (và B là hypernym c a A) n u ta có th nói “A là m t lo i đ c bi t c a B”. Ví d , cây là m t lo i th c v t. V y cây là hyponym c a th c v t (và th c v t là hypernym c a cây) WordNet đư c t ch c theo đơn v là các synset. Synset (Synonym set) 7 syntactic function tag 56 CHƯƠNG 3. CƠ S TIN H C 3.3. S P X P DANH SÁCH H K H TN là m t nhóm các t đ ng nghĩa có th dùng thay th cho nhau. M i t có th thu c nhi u synset khác nhau. Trong trư ng h p đó, các syset đư c g i là sense c a t đó. Ph n danh t trong WordNet có th xem như m t đ th c a các synset và các liên k t hypernym/hyponym gi a các synset đó. Đ đo khái ni m8 cung c p m t n n t ng đ đo đ gi ng nhau v m t nghĩa c a các t . Đ đo khái ni m đư c đ nh nghĩa b i [RMBB89] là đ dài đư ng đi ng n nh t liên k t các khái ni m trong m ng ng nghĩa phân c p. Cho m t khái ni m c n m trên đ nh cây con và nhyp là s hypernym m i nút. M t đ quan ni m9 (CD) đ kh nh p nh ng cho c khi cây con c a nó ch a m sense c a t đó như sau: m−1 Đ nhypi i=0 descendantsc – CD(c, m) = 0.20 K H O A C N TT Trong công th c trên, tham s 0, 20 đư c dùng đ làm trơn h s mũ i khi m ch y t 1 đ n s sense t ng c ng trong WordNet. Nhi u giá tr đã đư c th cho tham s này và tham s g n 0, 20 là t t nh t. Thu t toán kh nh p nh ng d a trên CD như sau: Cho c a s v i kích thư c nh t đ nh, chương trình di chuy n c a s m i danh t m t l n, t đ u câu cho đ n h t, kh nh p nh ng cho danh t chính gi a c a s , xem các danh t còn l i trong c a s là ng c nh. Đ t c a s các danh t là W và danh t chính gi a c a s là w, ta có thu t toán 3.2 trang k ti p. Đ u tiên, thu t toán th hi n m t dàn các danh t trong c a s , các sense và hypernym c a chúng (bư c 1). Sau đó thu t toán tính CD cho m i khái ni m trong WordNet tương ng v i sense nó ch a trong cây con c a nó (bư c 2). Thu t toán ch n khái ni m c v i CD cao nh t (bư c 3) và ch n sense đúng 8 9 conceptual distance conceptual density 57 CHƯƠNG 3. CƠ S TIN H C 3.3. S P X P DANH SÁCH 1. tree := compute_tree(words_in_window). Loop K H TN 2. tree := compute_conceptual_distance(tree) 3. concept := select_concept_width_highest_weight(tree) if concept = null then exitloop 4. tree := mark_disambiguated_senses(tree,concept) endloop H 5. output_disambiguation_result(tree) Đ Thu t toán 3.2: Kh nh p nh ng danh t dùng CD K H O A C N TT – bên dư i cho nh ng t tương ng (bư c 4). Thu t toán ti n hành tính CD cho nh ng sense còn l i trong dàn, ti p t c kh nh p nh ng nh ng danh t còn l i trong c a s (quay l i bư c 2, 3, 4). Khi không th kh nh p nh ng đư c n a, nh ng sense còn l i c a w đư c x lý và xu t k t qu ra (bư c 5). Gi i pháp CD có h n ch là ch áp d ng đ i v i danh t . Nh ng lo i t khác, do có các m i quan h ph c t p hơn nhi u so v i quan h hypernym c a danh t nên r t khó áp d ng. CD đôi khi không th kh nh p nh ng tuy t đ i (ch ch a l i m t k t qu ) mà nhi u khi v n còn l i vài nh p nh ng. Tuy nhiên vi c gi m nh p nh ng b ng CD cũng giúp ít r t nhi u cho trình b t l i chính t . H n ch quan tr ng c a CD khi áp d ng cho ti ng Vi t là thi u WordNet hoàn ch nh cho ti ng Vi t. Vi c xây d ng m t m ng ng nghĩa ti ng Vi t có t m vóc như WordNet s t n r t nhi u công s c, chưa k các đi m khác bi t gi a ti ng Anh và ti ng Vi t đòi h i các nhà ngôn ng h c ph i xem xét l i 58 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG 3.4 K H TN có th áp d ng hoàn toàn các m i quan h đã đư c s d ng trong WordNet hay không, hay c n ph i lo i b và thêm vào m t s quan h khác cho phù h p v i ti ng Vi t. Nói tóm l i, đây là m t gi i pháp hay tuy nhiên không th áp d ng trong đi u ki n hi n t i. G n đây có nhi u đ tài nghiên c u xây d ng WordNet ti ng Vi t [TND03]. Hy v ng có th áp d ng CD và các gi i pháp d a trên WordNet khác cho ti ng Vi t trong tương lai không xa. B t l i t đ ng Mô hình TBL K H O A 3.4.1 C N TT – Đ H T đ ng phát hi n và s a l i chính t đư c đ t ra đ c i ti n các chương trình b t l i chính t . Các chương trình b t l i chính t truy n th ng thư ng d a trên t đi n, nên không th b t l i nh ng t sai, nhưng l i có trong t đi n. Ví d , “give me a peace of cake” (l ra ph i là “give me a piece of cake”) ho c “anh y là m t ngư i bàng quang” (trong khi ph i là “anh y là m t ngư i bàng quan”). Hư ng gi i quy t là d a vào t p nh m l n đ tìm ra nh ng t có kh năng vi t sai (ví d , “peace-piece” và “bàng quang-bàng quan”) sau đó d a vào ng c nh đ xác đ nh xem đang xét có phù h p v i ng c nh hay không. B i v y bài toán này còn đư c g i là b t l i chính t c m ng c nh10 . TBL11 là mô hình h c có giám sát, đư c Eric Brill đưa ra vào năm 1993. Đây là mô hình h c lu t d a trên l i, t o ra các lu t m i đ kh c ph c các l i còn l i sau khi đã áp d ng các lu t trư c đó. TBL đư c áp d ng đ t đ ng phát hi n và s a l i chính t . TBL ch nh m vào m t t p l i thông d ng cho trư c, ch y u là lo i l i dùng t sai, lo i l i r t khó b phát hi n b i các trình b t 10 11 context-sensitive spelling checking Transformation-based Learning 59 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG C N TT – Đ H K H TN l i chính t thông thư ng. Nh ng l i không ph i t (l i nh p li u . . . ) không đư c x lý b i TBL. Phương pháp này đư c áp d ng b i Lidia Mangu và Eric Brill [MB97] cho k t qu r t cao (93,15%). TBL ho t đ ng như m t b lu t s a l i. D li u ban đ u c n đư c m t chương trình khác (baseline) x lý đ phát hi n hi n và s a l i chính t . M c tiêu c a chương trình này phát hi n và s a đúng l i chính t càng nhi u càng t t. Các l i gây ra b i chương trình ban đ u này s đư c s a b i TBL. Các lu t h c đư c t quá trình hu n luy n TBL s đư c áp d ng l n lư t theo th t , s a ch a các l i c a do chương trình baseline gây ra cũng như các l i do chính vi c áp d ng lu t TBL gây ra. K t qu là s l i sai chính t s gi m đáng k . Các lu t trong TBL là các lu t d ng m u-hành đ ng12 s d ng nhi u lo i thông tin khác nhau đ xác đ nh ng c nh. Hành đ ng trong lu t thư ng là thay th t đang xét b ng m t t khác. Các thông đư c s d ng trong m u bao g m v trí tương đ i c a các t so v i t đang xét, t lo i, t . . . Ba lo i m u đư c dùng trong [MB97] là: • T W xu t hi n trong ph m vi ±k t chung quanh t w đang xét. K H O A • M t m u xác đ nh g m l t /t lo i liên ti p nhau xu t hi n chung quanh w. • M t m u xác đ nh g m các t /t lo i không liên ti p, xu t hi n quanh w. Hu n luy n TBL gi ng như cách áp d ng lu t TBL. D li u đ u vào là m t ng li u đã đư c đánh d u (t đúng/t sai — n u t sai thì đi kèm v i t đúng). Th c hi n các bư c sau: 1. G b các đánh d u trong ng li u, đưa tr v d ng ng li u thô. 12 pattern-action rule 60 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG 2. Đánh baseline cho ng li u thô. 3. D a vào các m u lu t, phát sinh các lu t. K H TN 4. L n lư t áp d ng các lu t lên ng li u. 5. Tính đi m cho ng li u d a trên ng li u đã đánh d u ban đ u, sau khi áp d ng t ng lu t lên ng li u. Đi m tăng nghĩa là k t qu đúng nhi u hơn so v i khi chưa áp d ng lu t. Đi m âm nghĩa là k t qu sai nhi u hơn. H 6. N u đi m âm, b qua lu t này. Đ 7. N u đi m dương, đưa lu t vào danh sách lu t. C N TT 9. Quay l i bư c 4. – 8. N u đi m tăng ít hơn m t gi i h n cho trư c, d ng thu t toán. K H O A Sau khi ch m d t thu t toán, ta ch n kho ng n lu t đ u tiên. Nh ng lu t còn l i b lo i b . n lu t này chính là nh ng lu t k t qu c a quá trình hu n luy n theo mô hình TBL. Vi c áp d ng TBL đòi h i ph i có ng li u đã đánh d u (ng li u vàng), m t hàm tính đi m (đư c dùng trong bư c 5), trình đánh d u baseline, và các m u lu t. Ngoài ra còn có m t s tham s (ngư ng d ng thu t toán, các tham s n, k , l . . . đã nêu trên). Vi c ch n m u lu t và các tham s thích h p nh hư ng nhi u đ n hi u qu c a TBL. Ng li u đánh d u có th đư c t o ra t t p nh m l n13 . T p nh m l n xác đ nh nh ng t thư ng b nh m l n (Ví d , “their” và “there” hay “đã” và “đ ” . . . ) T văn b n đúng chính t , ta có th áp d ng t p nh m l n đ t o ra ng li u sai chính t . Đ th c hi n đ u này c n có t p nh m l n. 13 confusion set 61 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG 3.4.2 Đ H K H TN N u t p nh m l n không ch bao g m các nh p nh ng v ti ng (ho c t đơn) mà c nh p nh ng v t (Ví d “bàn quan” và “bàng quang”) thì c n ph i có thêm m t b tách t . Hi u qu c a TBL ph thu c vào t p nh m l n. T p nh m l n càng l n thì kh năng s a l i chính t b ng TBL càng cao. Tuy nhiên, t p nh m l n càng l n thì kh năng sai sót cũng càng l n, và chương trình không th t p trung vào các l i thư ng g p. Đ TBL hi u qu hơn, c n s d ng thông tin t lo i (ho c phân l p t ). Tuy nhiên, m t khi chưa s a l i chính t /tách t xong thì vi c tìm t lo i b ng các phương pháp thông d ng tr nên không an toàn. Mô hình Winnow K H O A C N TT – Bài toán b t l i chính t đư c xem như là bài toán kh nh p nh ng t . Các t nh p nh ng đư c t p h p thành t p nh m l n. T p nh m l n C = {W1 , . . . , Wn } nghĩa là m i t Wi trong t p C có th b dùng l n l n v i các t còn l i trong C . Bài toán bao g m m t câu, và m t t c n s a ch a. Thu t toán th hi n bài toán như là m t danh sách các đ c trưng tích c c14 . M i đ c trưng tích c c th hi n cho m t ng c nh c th . Hai lo i đ c trưng đư c dùng là t ng c nh15 và collocation. T ng c nh là m t t p các t n m xung quanh t đang xét (gi i h n trong kho ng ±k t tính t t đang xét). Collocation là m t m u l t /t lo i liên ti p nhau xung quanh t đang xét. M t b rút trích đ c trưng16 đư c s d ng đ chuy n văn b n g c thành danh sách các đ c trưng tích c c. B rút trích đ c trưng ph i đư c hu n luy n trư c, đ ch l c ra nh ng đ c trưng nh t đ nh (đ c trưng tích c c), thay vì 14 active feature context word 16 feature extractor 15 62 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG C N TT – Đ H K H TN t t c các đ c trưng. Đ hu n luy n b rút trích đ c trưng, ta cho ch y b rút trích đ c trưng trên ng li u hu n luy n, rút trích t t c các đ c trưng có th có, đ ng th i th ng kê s lư ng c a m i đ c trưng. Sau khi ch y xong, danh sách đ c trưng này s b c t b t theo m t tiêu chí cho trư c, ch ch a l i nh ng đ c trưng đư c xem là tích c c. Có th thu g n danh sách đ c trưng theo nhi u tiêu chí khác nhau. Tuy nhiên cách đơn gi n nh t là d a vào t n s xu t hi n c a các đ c trưng. N u các đ c trưng xu t hi n ít hơn m t ngư ng nào đó thì đ c trưng đó b lo i b . Công vi c m i b phân l p là xác đ nh t Wi trong t p nh m l n có thu c v câu đang xét hay không. M i b phân l p ch y thu t toán Winnow. B phân l p nh n t p các đ c trưng tích c c (đ i di n cho câu đang xét), tr v giá tr nh phân cho bi t t Wi có thu c v câu đang xét hay không. Đ t F là t p các đ c trưng tích c c. V i m i f ∈ F , đ t wf là trong s c a cung n i f v i b phân l p. Thu t toán Winnow tr v giá tr 1 khi và ch khi wf > θ f ∈F K H O A trong đó θ là tham s ngư ng. Kh i đ u, b phân l p không k t n i v i b t kỳ đ c trưng nào trong m ng. Trong quá trình hu n luy n, các k t n i và tr ng s c a k t n i s đư c thành l p. M t m u hu n luy n bao g m m t câu (t p đ c trưng tích c c) cùng v i t Wc trong t p nh m l n. Wc là t đúng cho câu trong m u hu n luy n đ i v i các m u kh ng đ nh17 và là t sai trong các m u ph đ nh18 . Quá trình hu n luy n đư c ti n hành theo như sau: l n lư t m i m u đư c 17 18 positive example negative example 63 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG Đ H K H TN đưa vào h th ng, các b phân l p đư c c p nh t, sau đó m u b h y. Bư c đ u tiên hu n luy n b phân l p là thi t l p các liên k t gi a b phân l p và các đ c trưng tích c c F trong m u. N u đ c trưng tích c c f ∈ F chưa đư c k t n i vào b phân l p, và câu là m u kh ng đ nh đ i v i b phân l p, ta t o m t k t n i gi a đ c trưng đó và b phân l p v i giá tr tr ng s kh i đ u là 0, 1. Chú ý r ng không có gì x y ra v i các m u ph đ nh. Bư c k ti p là c p nh t trong s cho các liên k t. Bư c này đư c th c hi n nh vào lu t c p nh t Winnow, ch c p nh t tr ng s khi x y ra l i. N u b phân l p d đoán là 0 đ i v i m t m u kh ng đ nh (nghĩa là l ra b phân l p ph i d đoán là 1), trong s s đư c tăng: – ∀f ∈ F, wf ← α · wf C N TT trong đó α > 1 là tham s cho trư c. N u b phân l p d đoán 1 v i các m u ph đ nh (mà l ra b phân l p ph i d đoán là 0), tr ng s s đư c gi m: ∀f ∈ F, wf ← β · wf K H O A v i 0 < β < 1 là tham s cho trư c. [GR99] đ ngh α là 1, 5 và β là 0, 5 n 0, 9. Như v y, tr ng s c a các đ c trưng không tích c c s gi nguyên, không thay đ i. Th i gian c p nh t c a thu t toán ph thu c vào s đ c trưng tích c c trong m u. Thay vì x lý t Wi d a trên m t b phân l p, ta có th áp d ng k t qu tr v c a nhi u b phân l p đ ng th i. Mô hình Weighted Majority đư c dùng đ k t h p nhi u b phân l p. Ta cho ch y nhi u b phân l p đ ng th i. Các b phân l p tr v các giá tr khác nhau. Hi u su t c a m i b phân l p đư c theo dõi. Tr ng s đư c tính toán đ ph n ánh đ chính xác c a b phân l p. Giá tr sau cùng là t ng c a các d đoán c a các b phân 64 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG l p đư c xét, kèm v i tr ng s c a m i b phân l p. Mô hình này đư c áp d ng trong [GR99]. Mô hình Danh sách quy t đ nh K H TN 3.4.3 – Đ H Mô hình Danh sách quy t đ nh đư c Yarowsky đưa ra đ gi i quy t bài toán kh nh p nh ng ng nghĩa. Mô hình này d a trên các đ c trưng quan tr ng đ nh n d ng. Ngoài ra k t xu t c a mô hình r t đơn gi n, d hi u, t o thu n l i trong nghiên c u, c i ti n mô hình. Phương pháp này đư c [TTCV02] áp d ng đ b t l i chính t ti ng Vi t. Mô hình có th s d ng nhi u lo i đ c trưng khác nhau. Hai đ c trưng thư ng đư c áp d ng là t ng c nh và collocation. Thu t toán c a mô hình như sau: C N TT 1. Xét m i t trong câu, có t p nh m l n tương ng là S . 2. V i m i t w ∈ S : (a) Xác đ nh t p đ c trưng Cw không ch a các đ c trưng xung đ t v i các đ c trưng đã đư c ch p nh n trư c đó. K H O A (b) Tím đi m c a t : Score(w) = maxP (w|f ) f ∈Cw và xác đ nh fw = argmaxP (w|f ) f ∈Cw 3. T đư c ch n là a = argmaxScore(w) w∈S 65 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Ghi nh thu c tính fw đ ki m tra xung đ t Đ NG các v trí khác. Quá trình hu n luy n mô hình như sau. • Đ m t n s xu t hi n c a m i đ c trưng. K H TN • B rút trích đ c trưng (tương t như trong mô hình Winnow) đư c s d ng đ rút ra các đ c trưng tích c c t các câu trong ng li u hu n luy n. H • Lo i b các đ c trưng không đáng tin c y (Ví d , t n s quá th p). Mô hình Trigram và Bayes – 3.4.4 Đ • S p x p các đ c trưng theo th t gi m d n kh năng quy t đ nh. K H O A C N TT Mô hình s a l i b ng Trigram r t đơn gi n. Đ i v i m i câu, các t trong t p nh m l n đư c thay th cho t tương ng trong câu, sau đó tính xác su t trigram c a toàn b câu. T tương ng v i câu có xác su t l n nh t s là t đư c ch n. Cho câu W = w1 . . . wk . . . wn , wk là t đư c dùng đ thay th cho wk , t o ra câu m i W . N u P (W ) > P (W ) thì wk s đư c ch n, v i P (W ) và P (W ) l n lư t là xác su t trigram c a câu W và W . M t c i ti n c a phương pháp này là áp d ng trigram d a trên t lo i thay vì trigram t . T câu W , ta t o ra các chu i t lo i. Xác su t cu i cùng là: P (W, T ) P (W ) = T P (W, T ) = P (W |T )P (T ) P (ti |ti−2 ti−1 ) P (wi |ti ) = i i 66 CHƯƠNG 3. CƠ S TIN H C 3.4. B T L I T Đ NG 3.4.5 C N TT – Đ H K H TN v i T là m t chu i t lo i c a W , T = t1 . . . tn và P (ti |ti−2 ti−1 ) là xác su t trigram t lo i. M t mô hình khác đ tìm và s a l i chính t là áp d ng b phân l p Bayes. Có th xem đây là bài toán phân l p t d a vào m t t p các đ c trưng. T c n xét là t n m trong t p nh m l n, ta s xét t này và các t khác trong t p nh m l n trong cùng ng c nh. T p đ c trưng chính là ng c nh c a t c n xét. T p đ c trưng đư c rút trích t câu đang xét. Các đ c trưng và cách rút trích đ c trưng tương t như trong mô hình Winnow. Mô hình Trigram và Bayes, m i cái có đi m m nh riêng. Mô hình trigram ho t đ ng t t n u nh ng t trong t p nh m l n không cùng t lo i. Ngư c l i, khi không th phân bi t d a trên t lo i, mô hình Bayes s ho t đ ng t t hơn do d a vào các thông tin v cú pháp, ng c nh xung quanh. Do đó, gi i pháp t t nh t là k t h p hai mô hình này v i nhau. Đ u tiên ta áp d ng mô hình Trigram. Trong quá trình x lý, n u th y m i t trong t p nh m l n đ u cùng t lo i, ta áp d ng mô hình Bayes. Ngư c l i, ta s ch p nh n k t qu c a mô hình Trigram. Gi i pháp này đư c áp d ng trong [GS96], t o ra mô hình Tribayes. Mô hình Bayes và Danh sách quy t đ nh K H O A Mô hình Danh sách quy t đ nh là m t mô hình m nh. Tuy nhiên, có m t đi m c n lưu ý là mô hình này ch s d ng m t đ c trưng t t nh t đ phân lo i. Có l t t hơn là nên s d ng t t c các đ c trưng đ phân lo i. Không có lý do gì đ ch s d ng m t đ c trưng, trong khi ta v n có th khai thác các đ c trưng khác. Đây là nơi có th c i ti n b ng cách s d ng b phân l p Bayes. B phân l p Bayes cũng s d ng m t t p các đ c trưng, s p theo th t gi m d n hi u qu . B phân l p Bayes phân lo i t đang xét b ng cách s 67 CHƯƠNG 3. CƠ S TIN H C 3.5. B T L I TI NG CHÂU Á B t l i ti ng châu Á Đ 3.5 H K H TN d ng các đ c trưng. Tuy nhiên, thay vì d ng l i sau khi áp d ng đ c trưng đ u tiên có th s d ng, Bayes duy t qua t t c các đ c trưng, k t h p t t c các đ c trưng, và gi i quy t các xung đ t gi a các đ c trưng n u có, đ đưa ra k t qu sau cùng. Ta gi s ch s d ng các đ c trưng lo i t ng c nh và collocation. N u hai đ c trưng c n xét đ u là t ng c nh, v y s không có xung đ t. N u hai đ c trung đang xét đ u là collocation và ch ng lên nhau, nghĩa là có xung đ t. Đ c trưng xung đ t v i đ c trưng đã xét trư c đó s b b qua, không đư c xem xét. Phương pháp này đư c đ ngh b i [Gol95]. K H O A C N TT – Đi m đ c trưng d th y gi a các ngôn ng châu Âu và các ngôn ng châu Á, như ti ng Trung Qu c, ti ng Nh t, ti ng Hàn Qu c . . . , là ranh gi i t . Đ i v i các th ti ng châu Âu, các c m ký t cách nhau b i kho ng tr ng cũng là t , do đó vi c tách t r t d dàng (ch ph i x lý các trư ng h p đ c bi t như d u ‘-’ . . . ). Đ i v i các ti ng châu Á, đ c bi t là ti ng Vi t, công vi c ph c t p hơn nhi u. B i vì m t “t ” như quan ni m châu Âu ch là m t ph n t (m t âm ti t trong ti ng Vi t) trong các ngôn ng châu Á. Đi u này đ t ra m t v n đ mà các chương trình b t l i chính t các th ti ng châu Âu chưa t ng g p ph i: phân ranh gi i t . Do các phương pháp d a trên ti ng Anh đ u ng m đ nh có th tìm đư c ranh gi i t ngay t c thì, nên khi áp d ng cho ti ng Trung Qu c, ti ng Vi t . . . không d dàng. Đi m khó khăn đây là n u ta thay m t t b ng m t t khác (trong t p nh m l n) có đ dài không gi ng t trư c đó, thì toàn b ranh gi i t phía sau s b thay đ i. Nói cách khác, câu đã b bi n thành m t câu khác (xét trên quan đi m câu là m t chu i các t ) khi thay đ i m t t trong câu. 68 CHƯƠNG 3. CƠ S TIN H C 3.6. TÁCH T K H O A C N TT – Đ H K H TN N u không gi i tr c ti p bài toán mà th c hi n tách t trư c, sau đó m i b t l i chính t , thì khó khăn l i đè n ng lên ph n tách t . Bài toán tìm ranh gi i t v n đã ph c t p (trong m t s trư ng h p, n u không d a vào thông tin ng nghĩa thì không th nào tách t ), l i càng ph c t p hơn khi áp d ng trong bài toán b t l i chính t , vì khi đó ta ph i tìm ranh gi i t khi các t /ti ng đ u vào có th không đúng. Nói cách khác, ta ph i th c hi n tách t trong đi u ki n d li u đ u vào không hoàn toàn chính xác: tách t m . Các k thu t tách t , n u b qua y u t này s d d n đ n sai l m, vì m i phương pháp tách t đ u ng m đ nh là d li u đ u vào là chính xác. Sau khi tách t xong, bài toán b t l i chính t tr nên đơn gi n. Ta có th áp d ng các k thu t đã đư c áp d ng trên b t l i chính t các ngôn ng châu Âu d dàng. V i ti ng Vi t, do đ dài m i ti ng ng n (kho ng năm ch cái, t i đa b y ch cái). Tuy nhiên n u tính theo c u trúc âm ti t thì m i ti ng ch g m t i đa b n thành ph n (không k thanh đi u) là âm đ u, âm đ m, âm chính và âm cu i. M i thành ph n đ u đư c th hi n b ng m t c m ch cái riêng bi t, có th coi như là m t đơn v tương đương ch cái. V y nên, xét m t m t nào đó, có th xem m i ti ng trong ti ng Vi t ch g m t i đa b n “ch cái”. Do đ dài ti ng quá ng n nên s lư ng nh p nh ng c a m t ti ng l n hơn r t nhi u so v i các ngôn ng châu Âu dù ch xét t đ ng âm. Trình b t l i ti ng Vi t đã đư c nghiên c u trong nh ng năm g n đây [TPLT98, TTCV02, cHN99]. Gi i pháp đư c đ ngh trong [TPLT98, cHN99] s d ng phân tích cú pháp đ đánh giá các cách tách t . Trong khi đó [TTCV02] s d ng danh sách quy t đ nh đ kh nh p nh ng cho t ng t m t. 3.6 Tách t Bài toán tách t cho ngôn ng đơn l p đã đư c đ t ra t lâu, ch y u đ gi i quy t cho ti ng Trung Qu c, ti ng Nh t. Các thu t toán tách t có th đư c 69 CHƯƠNG 3. CƠ S TIN H C 3.6. TÁCH T phân lo i như sau: D a theo lu t Bao g m các cách sau: K H TN • Longest Matching, Greedy Matching Models (Yuen Poowarawan, 1986; Sampan Rarurom, 1991) – Đ H • Mô hình kh p t i đa19 . Mô hình này đư c chia thành “kh p t i đa ti n”20 và “kh p t i đa lùi”21 . Đ i v i phương pháp này thì m t t đi n hoàn ch nh là không th thi u. M t t đi n không hoàn ch nh s gi m hi u su t c a thu t toán. Tuy nhiên, d th y là khó có th có m t t đi n hoàn ch nh (đ c bi t khi các ngôn ng v n còn đư c ti p t c phát tri n h ng ngày trong th i đ i ngày nay). Mô hình này tùy thu c nhi u vào t đi n. C N TT Dùng th ng kê Gi i pháp này d a vào ng c nh t xung quanh đ đưa ra quy t đ nh thích h p. Có hai v n đ c n đư c gi i quy t đ i v i gi i pháp này: đ r ng ng c nh, và cách áp d ng th ng kê. Ng c nh càng r ng thì thu t toán càng ph c t p. K H O A Cho dù đ r ng ng c nh th nào, luôn có th áp d ng mô hình firstorder HMM. Tuy nhiên gi i pháp này ph thu c r t nhi u vào ng li u hu n luy n. K t qu hu n luy n trên ng li u chính tr khó có th áp d ng trên các tài li u văn h c và ngư c l i. Thêm vào đó, có nh ng t có xác su t r t cao, nhưng ch có ch ng năng v m t ng pháp, làm gi m vai trò c a xác su t. Các cách khác H u h t các gi i pháp khác là s lai t o gi a các mô hình trên và các mô hình ngôn ng h c như WFST, TBL. Th i gian x lý 19 Maximal Matching Model forward maximum match 21 backward maximum match 20 70 CHƯƠNG 3. CƠ S TIN H C 3.6. TÁCH T các gi i pháp lo i này tr nên đáng k , nhưng đ chính xác đ t đư c khá cao. K H TN Tri th c v ngôn ng , thư ng đư c áp d ng cho các mô hình d a trên lu t, hi m khi đư c áp d ng cho nh ng mô hình trên. M t s phương pháp tách t đư c mô t ng n g n bên dư i. 3.6.1 Kh p t i đa – Đ H Thu t toán so kh p t i đa ho t đ ng như tên c a chính nó. Thu t toán gi i quy t bài toán tách t b ng cách ch n cách tách t nào có nhi u t nh t (so kh p đư c nhi u nh t). Thu t toán đư c áp d ng đ xây d ng chương trình tách t ti ng Trung Qu c MMSEG22 . Thu t toán này có nhi u bi n th khác nhau. K H O A C N TT • D ng đơn gi n, đư c dùng đ gi i quy t nh p nh ng t đơn. Gi s có m t chu i ký t (tương đương v i chu i ti ng trong ti ng Vi t) C1 , C2 , . . . Cn . Ta b t đ u t đ u chu i. Đ u tiên, ki m tra xem C1 có ph i là t hay không, sau đó ki m tra xem C1 C2 có ph i là t hay không. Ti p t c tìm cho đ n khi tìm đư c t dài nh t. T có v h p lý nh t s là t dài nh t. Ch n t đó, sau đó tìm ti p như trên trên nh ng t còn l i cho đ n khi xác đ nh đư c toàn b chu i t . • D ng ph c t p. Quy t c c a d ng này là phân đo n có v h p lý nh t là đo n ba t v i chi u dài t i đa. Thu t toán b t đ u như d ng đơn gi n. N u phát hi n ra nh ng cách tách t gây nh p nh ng (ví d , C1 là t và C1 C2 cũng là t ), ta xem các ch k ti p đ tìm t t c các đo n ba t có th có b t đ u v i C1 ho c C1 C2 . Ví d ta đư c nh ng đo n sau: 22 http://casper.beckman.uiuc.edu/ c-tsai4/chinese/wordseg/mmseg.zip 71 CHƯƠNG 3. CƠ S – C1 C2 TIN H C 3.6. TÁCH T C3 C4 C3 C4 C5 – C1 C2 C3 C4 C5 C6 K H TN – C1 C2 Chu i dài nh t s là chu i th ba. V y t đ u tiên c a chu i th ba (C1 C2 ) s đư c ch n. Th c hi n l i các bư c cho đ n khi đư c chu i t hoàn ch nh. Cách này đ t đư c đ chính xác 99.69% [CL92]. Mô hình HMM H 3.6.2 C N TT – Đ Trong cách áp d ng này, các tr ng thái n là các l p t , gi đ nh r ng m i t có th thu c m i l p v i m t xác su t nh t đ nh. Bài toán đư c xem như tìm ki m chu i l p t C = c1 , . . . , cn t m t chu i t W = w1 , . . . , wn . M c tiêu là tìm W và C t câu S cho trư c, sao cho t i đ i xác su t argmaxP (W |C )P (C ) W,C K H O A Gi đ nh r ng xác su t P (W |C ) ch ph thu c vào l p t c a nó, và xác su t l p P (C ) ch ph thu c vào l p c a t đ ng trư c. Nh ng xác su t này có th đư c ư c lư ng b ng thu t toán Baum-Welch dùng ng li u hu n luy n. Ti n trình h c d a trên thu t toán Baum-Welch và gi ng v i bài toán đánh nhãn t lo i b ng HMM, tr vi c s tr ng thái đư c xác đ nh trư c và xác su t kh i đ u đư c gán ng u nhiên. 72 CHƯƠNG 3. CƠ S 3.6.3 TIN H C 3.6. TÁCH T Mô hình WFST và m ng nơ-ron 3.6.4 K H TN WFST23 đã đư c [SSGC96] áp d ng đ tách t ti ng Trung Qu c. Ý tư ng cơ b n là áp d ng WFST k t h p v i tr ng s là xác su t xu t hi n c a m i t trong ng li u. Dùng WFST đ duy t qua câu c n xét. Cách duy t có tr ng s l n nh t s là cách tách t đư c ch n. Gi i pháp này cũng đã đư c áp d ng trong [DKT01, TH01] kèm v i m ng nơ-ron đ kh nh p nh ng. Mô hình Source-Channel c i ti n – Đ H Mô hình này đư c đ ngh trong [GLH03]. Đ t S là m t câu ti ng Trung Qu c, hay là m t chu i các ký t (tương đương chu i ti ng trong ti ng Vi t). V i m i cách tách t W có th có, ch n cách tách t t t nh t W ∗ , tương ng v i xác su t đi u ki n P (W |S ): C N TT W ∗ = argmaxP (W |S ) w Theo công th c Bayes, b m u s là h ng s , ta đư c: W ∗ = argmaxP (W )P (S |W ) w K H O A Ta đ nh nghĩa l p t C như sau: • M i t đư c đ nh nghĩa như m t l p. • M i t d n xu t hình thái đư c đ nh nghĩa như m t l p. • M i lo i ký hi u khác nhau đư c đ nh nghĩa như m t l p. Ví d , các bi u th c th i gian thu c v l p TIME. 23 Weighted Finite State Transducer 73 CHƯƠNG 3. CƠ S TIN H C 3.6. TÁCH T • M i lo i tên riêng thu c v m t l p. Ví d , tên ngư i thu c l p PN. Ta chuy n công th c trên qua các l p t : K H TN C ∗ = argmaxP (C )P (S |C ) c K H O A C N TT – Đ H Công th c trên là công th c cơ b n c a mô hình source-channel cho tách t ti ng Trung Qu c. Mô hình gi đ nh câu S đư c phát sinh như sau: Đ u tiên, m t ngư i ch n m t chu i khái ni m (ví d , l p t C ) đ xu t ra, theo xác su t P (C ). Sau đó ngư i đó c g ng th hi n các khái ni m đó b ng chu i các ký t , theo xác su t P (S |C ). Mô hình source-channel có th đư c hi u theo m t cách khác: P (C ) là mô hình th ng kê d đoán xác su t c a chu i l p t . Nó ch ra kh năng m t l p t xu t hi n, d a trên m t ng c nh cho trư c. V y P (C ) còn đư c hi u như mô hình ng c nh. P (S |C ) là mô hình phát sinh, d đoán kh năng m t chu i ký t đư c phát sinh d a trên l p t cho trư c. V y P (S |C ) còn đư c hi u như mô hình l p. M c dù mô hình ng c nh và mô hình l p có th đư c k t h p b ng m t phép nhân đơn gi n. Tuy nhiên n u thêm tr ng s thì k t qu t t hơn. Lý do là có m t s mô hình l p d đoán k t qu r t không chính xác. Hơn n a, các mô hình l p c a các l p t khác nhau đư c xây d ng theo nh ng cách khác nhau. Vì v y xác su t mô hình l p khác nhau nhi u gi a các mô hình l p. M t cách đ cân b ng nh ng xác su t này là thêm vào m t tr ng s CW cho m i mô hình l p đ đi u ch nh xác su t P (S |C ) thành P (S |C )CW V i mô hình đã có, thao tác tách t bao g m hai bư c: 1. Cho chu i S, phát sinh m i cách tách t có th có. M i cách tách t đư c đánh nhãn l p t và xác su t l p P (S |C ) v i S là b t kỳ chu i con nào c a S . 74 CHƯƠNG 3. CƠ S TIN H C 3.6. TÁCH T 2. Thu t toán tìm ki m Viterbi đư c áp d ng đ ch n cách tách t có kh năng nh t theo công th c nêu trên. K H TN Hu n luy n H N u có m t d li u đư c tách t s n, công vi c tr nên r t d dàng. Tuy nhiên, vi c xây d ng m t ng li u tách t s n đ l n s t n r t nhi u công s c (đ c bi t là các mô hình th ng kê thư ng đòi h i lư ng ng li u c c kỳ l n, l n hơn r t nhi u so v i các mô hình d a trên lu t). Đ đơn gi n v n đ , ng li u này đư c xây d ng t đ ng như sau: – Đ 1. Kh i đ u, s d ng m t b tách t s n có (có th áp d ng các thu t gi i đơn gi n, không c n hu n luy n, như Longest matching, Maximum matching . . . ) C N TT 2. S d ng mô hình đ ngh đ tách t ng li u hu n luy n. 3. Tái hu n luy n mô hình d a trên k t qu tách t có đư c bư c 2. Bư c 2–3 có th đư c l p l i nhi u l n cho đ n khi hi u su t c a mô hình ng ng tăng. Mô hình TBL K H O A 3.6.5 Mô hình TBL (xem thêm ph n 3.4.1 trang 59) cũng có th đư c áp d ng đ tách t ti ng Trung Qu c [Pal97]. Mô hình TBL có th đư c áp d ng cho nhi u bài toán khác nhau. Tùy vào các hành đ ng c th c a m u lu t mà cách áp d ng s khác nhau. M u lu t áp d ng cho TBL s d ng các hành đ ng sau: • N i hai ký t (ti ng). 75 CHƯƠNG 3. CƠ S TIN H C 3.7. TÁCH T M • Tách hai ký t . • Trư t ranh gi i t sang ký t k bên. 3.7 K H TN Trình tách t baseline, có th áp d ng cách kh p t i đa. Tách t m K H O A C N TT – Đ H Như đã nói trên, bài toán tách t không đơn thu n là tách t đúng như nghĩa ban đ u, mà là tách t trong đi u ki n d li u đ u vào có kh năng b sai. Nói cách khác, đây là bài toán tách t có kh năng ch u l i24 . Các phương pháp tách t đư c nêu, thông thư ng không th áp d ng tr c ti p mà ph i có m t s c i ti n nh t đ nh n u có th . Ngoài ra cũng có th áp d ng m t s gi i pháp khác, tuy không tr c ti p áp d ng cho tách t m , nhưng ph n nào có th g i ý cho m t gi i thu t tách t m hi u qu . Kemal Oflazer [Ofl96] khi x lý hình thái trong ti ng Th Nhĩ Kỳ g p trư ng h p khá gi ng v i trư ng h p này. Tác gi ph i tách hình thái t trong đi u ki n t đó b sai chính t . Do đ c tính ngôn ng ch p dính25 , s ti p vĩ ng nhi u, liên ti p nhau, gây khó khăn cho vi c nh n d ng ti p vĩ ng , cũng như không th phân bi t nh ng ti ng nào h p thành m t t trong m t chu i ti ng trong ti ng Vi t. Tác gi dùng m t hàm đ đo, t o ra các ti p đ u ng có kh năng thay th d a trên đ đo này, sau đó s d ng WFST đ tìm chu i ti p vĩ ng thích h p nh t. Bài toán nh n d ng ti ng nói trong ti ng Anh cũng g p trư ng h p tương t [Rav96]. Sau công đo n x lý âm thanh, ta nh n đư c m t chu i các âm ti t. Ta ph i chuy n nhóm âm ti t này thành chu i t . Do âm thanh thư ng b nhi u, nên các âm ti t có th không chính xác hoàn toàn. Ngoài ra, do 24 25 error-tolerant word segmentation agglunative language 76 CHƯƠNG 3. CƠ S TIN H C 3.7. TÁCH T M K H O A C N TT – Đ H K H TN đ c tính c a ti ng Anh nên cùng m t chu i âm ti t có th suy ra nhi u chu i t khác nhau. Tác gi s d ng lư i t đ t o ra các chu i t có kh năng t chu i âm ti t, sau đó ngram trên t đ lư ng giá các chu i t . M t đi m đáng chú ý đây là s tương đ ng v m t m t nào đó gi a ti ng Anh và ti ng Vi t. V i ti ng Anh, t có th tách d dàng, nhưng t bao g m nhi u âm ti t. Vi c phân ranh gi i âm ti t trong ti ng Anh là m t đi u khá khó khăn. V i ti ng Vi t, các âm ti t đư c tách r t d dàng vì m i âm ti t là m t “ti ng” tương đương v i m t “t ” trong câu — cách nhau b i kho ng tr ng. T c a ti ng Vi t l i bao g m nhi u ti ng, và vi c tách t l i g p nhi u khó khăn. V i nh n xét này, có th th y các bài toán nh n d ng ti ng nói ti ng Anh g p cùng v n đ v i bài toán b t l i chính t ti ng Vi t! [Cha98] cũng dùng mô hình ngôn ng d ng ngram đ đánh giá các cách tách t sau khi đã qua ti n x lý nh p nh ng chính t , tuy nhiên l i s dùng nhi u mô hình ngôn ng khác nhau như character bigram, word bigram, inter-word character bigram (IWCB), POS bigram, word class bigram. D a trên nh ng nghiên c u này, có th th y gi i pháp kh thi cho vi c tách t khi b sai chính t , là phát sinh m t lo t các t có kh năng thay th , v i gi đ nh trong t p t này s có t đúng chính t , thay th t sai chính t ban đ u. Sau đó s d ng tách t tìm m t cách tách t t nh t. Sau khi tìm đư c cách tách t , ta có th tra t đi n đ tìm xem t nào b sai. 3.7.1 Hu n luy n N u có d li u đã đư c đánh d u s n các ranh gi i t , công vi c đơn gi n ch là áp d ng các công th c th ng kê đ tính ra các giá tr c n thi t. Đ i v i vi c hu n luy n các thu t toán tách t truy n th ng, ta có th s d ng b tách t ti ng Vi t s n có đ t o ng li u. Ch t lư ng c a b tách t s nh hư ng đ n ch t lư ng c a thu t toán. 77 CHƯƠNG 3. CƠ S TIN H C 3.7. TÁCH T M K H O A C N TT – Đ H K H TN V i các thu t toán tách t m , đôi khi không th áp d ng b tách t s n có. V i đi u ki n hi n t i, khó có th tìm đư c m t kh i lư ng ng li u l n đã đư c tách t s n, do đó c n ph i tìm gi i pháp tính đư c các tham s c n thi t t ng li u chưa đư c tách t (ng li u thô). Thu t toán EM26 thư ng đư c áp d ng đ vư t qua khó khăn này [PSG99, SSGC96]. Trên lý thuy t, áp d ng thu t toán EM đ m b o k t qu s h i t , và k t qu m i vòng l p sau s t t hơn ho c b ng k t qu c a vòng l p trư c. Do thu t toán EM cũng có nhi u h n ch (đ c bi t là h n ch t i ưu c c b ), nhi u gi i pháp đã đư c đưa ra đ kh c ph c các h n ch này [WGLL00, PS01]. M t gi i pháp khác là áp d ng HMM đ tìm ra ranh gi i t , sau đó áp d ng các công th c th ng kê thông thư ng. Gi i pháp này g p h n ch b i chính HMM, vì HMM là mô hình th ng kê thu n tuý, không phát huy đư c m t s đ c trưng c a tách t , cũng không s d ng các tri th c v ngôn ng h c, do đó ph n nào h n ch k t qu cu i cùng. 26 Estimation Maximization 78 K H TN Chương 4 H Mô hình B t l i chính t . . . . . . . . . . . . . . . . . . . . . . . . . . . – 3.1 Đ M cl c 47 47 3.1.2 Phát hi n l i chính t . . . . . . . . . . . . . . . . . . . . 49 3.1.3 Các sai l m c a trình b t l i chính t ........... 49 3.1.4 V n đ ch hoa, ch thư ng . . . . . . . . . . . . . . . . 50 L p danh sách t đ ngh . . . . . . . . . . . . . . . . . . . . . 51 3.2.1 L i phát âm sai . . . . . . . . . . . . . . . . . . . . . . . 52 3.2.2 L i nh p sai ........................ 53 Các l i khác . . . . . . . . . . . . . . . . . . . . . . . . 54 S p x p danh sách . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.3.1 Văn ph m ràng bu c . . . . . . . . . . . . . . . . . . . . 55 3.3.2 M t đ quan ni m . . . . . . . . . . . . . . . . . . . . . 56 B t l i t đ ng . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.4.1 Mô hình TBL . . . . . . . . . . . . . . . . . . . . . . . . 59 3.4.2 Mô hình Winnow . . . . . . . . . . . . . . . . . . . . . . 62 3.4.3 Mô hình Danh sách quy t đ nh . . . . . . . . . . . . . . . 65 K H O A 3.2 Phân lo i l i chính t . . . . . . . . . . . . . . . . . . . . C N TT 3.1.1 3.2.3 3.3 3.4 79 CHƯƠNG 4. MÔ HÌNH 4.1. MÔ HÌNH CHUNG 3.4.4 Mô hình Trigram và Bayes . . . . . . . . . . . . . . . . . 66 3.4.5 Mô hình Bayes và Danh sách quy t đ nh . . . . . . . . . 67 3.5 B t l i ti ng châu Á . . . . . . . . . . . . . . . . . . . . . . . . 68 3.6 Tách t 69 K H TN ............................... Kh p t i đa . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.6.2 Mô hình HMM . . . . . . . . . . . . . . . . . . . . . . . 72 3.6.3 Mô hình WFST và m ng nơ-ron . . . . . . . . . . . . . . 73 3.6.4 Mô hình Source-Channel c i ti n . . . . . . . . . . . . . 73 Hu n luy n . . . . . . . . . . . . . . . . . . . . . . . . . 75 Mô hình TBL . . . . . . . . . . . . . . . . . . . . . . . . 75 3.7 Tách t m Hu n luy n . . . . . . . . . . . . . . . . . . . . . . . . . 76 77 4.1 C N TT – 3.7.1 ............................. Đ 3.6.5 H 3.6.1 Mô hình chung Vi c b t l i chính t c a m t văn b n đư c x lý l n lư t qua các bư c (xem hình 4.1 trang k ti p), bao g m ba kh i chính là: K H O A • Kh i ti n x lý. Tách văn b n thành nh ng đo n ng n. Tách đo n thành t ng ti ng. Đánh d u các ký hi u, d u ng t dòng, các s , tên riêng . . . • Kh i b t l i non-word. Ki m tra các ti ng v i các ti ng đã có trong t đi n. Báo l i nh ng ti ng không có trong t đi n. Sau đó đưa ra gi i pháp thay th . • Kh i b t l i real-word. Tương t như kh i b t l i real-word. Tuy nhiên c n ph i tách t trư c khi th c hi n b t l i chính t . 80 4.1. MÔ HÌNH CHUNG K H O A C N TT – Đ H K H TN CHƯƠNG 4. MÔ HÌNH Hình 4.1: Mô hình chung 81 CHƯƠNG 4. MÔ HÌNH 4.1.1 4.1. MÔ HÌNH CHUNG Ti n x lý B t l i non-word H 4.1.2 K H TN Ph n ti n x lý bao g m nhi u công đo n, b t đ u b ng ph n tách các token (“ti ng”) ( 4.2.1 trang k ti p), và các ph n ti n x lý khác như đánh d u các s , các ký hi u . . . Do đây là ti n x lý trên d li u không chính xác, nên m t s công đo n ti n x lý (như nh n d ng tên riêng) không đư c th c hi n ngay công đo n này mà đư c th c hi n trong ph n b t l i real-word. 4.1.3 C N TT – Đ Ph n này s d ng t đi n đ tìm ra nh ng token sai, không có trong t đi n, l p danh sách t đ ngh , sau đó yêu c u ngư i dùng ch n t đúng. Ph n này đư c ch y l p đi l p l i cho đ n khi không còn l i non-word. Sau đó s đ n ph n th c hi n c a b t l i real-word. B t l i real-word K H O A Ph n này c g ng tìm ra t t c các t sai chính t . Ph n này g m hai công đo n là tách t và b t l i chính t . Đ u tiên, lư i t c a câu đang xét s đư c xây d ng. Sau đó lư i t này đư c b sung thêm t cơ ch ph c h i l i và các bư c ti n x lý đã không th th c hi n đư c trong ph n ti n x lý. T lư i t này, ta s ch n ra m t cách tách t t t nh t d a vào mô hình ngôn ng . Sau khi đã tách t xong, ph n vi c còn l i r t gi ng v i các bư c đã th c hi n trong ph n tách t non-word. Tuy nhiên, thay vì l n lư t tra c u các t v i t đi n, ta s so sánh gi a t trong cách tách t đúng nh t và t trong câu có gi ng nhau hay không. T trong cách tách t đúng nh t đư c xem là 82 CHƯƠNG 4. MÔ HÌNH 4.2. TI N X LÝ t đúng. N u t trong câu không gi ng, ta xem như đó là l i chính t . Ph n còn l i đư c th c hi n tương t như trong ph n b t l i non-word. Ti n x lý 4.2.1 Tách token K H TN 4.2 văn t , ta t ng dư bn cn ti ng th a mt token ” vào ph i mt , và văn K H O A trong đu là C N TT Do – Đ H Do văn b n đ u vào là m t chu i các ký t , ta c n ph i tách văn b n ra thành t ng ti ng m t, lo i b các kho ng tr ng dư th a và đánh d u các lo i d u câu trong văn b n. Sau khi tách xong, ta đư c m t dãy các chu i, m i chu i là m t “token” kèm theo thông tin v lo i token đó (ch , kho ng tr ng, d u câu . . . ) Ví d , đo n văn b n trên đư c tách thành nh ng ph n như sau: dãy kèm tách lo i đánh bn . các theo mt văn b du Sau các tin ( ch , kho ng tr ng , Quy lu t tách như sau: du các thành kho ng tr ng du xong , chu i v câu câu ta là lo i mt token ... ) • Kho ng tr ng là ký t kho ng tr ng (space) ho c ký t tab. 83 ký ra lo i tách mi thông bn các khi chu i , chu i đư c “ đó CHƯƠNG 4. MÔ HÌNH 4.2. TI N X LÝ • D u k t thúc câu bao g m ba d u: . ? ! K H TN • D u đóng ngo c bao g m: " ) ] } > ’ • M t token là: – M t ho c nhi u d u k t câu và các d u đóng ngo c n u có. Ví d : .) H – M t ho c nhi u d u n i ch (hyphen) - . Đ – M t ho c nhi u d u m nháy đơn ‘ . C N TT – – M t ho c nhi u d u đóng nháy đơn ’ . – M t ho c nhi u ch , ch s , m t s d u: . , : ’ $ % - \ / ; k t thúc b ng ch ho c ch s . Ví d : tôi $12 K H O A – M t ho c nhi u ch , ch s , k t thúc b ng d u t nh lư c ’ (quy t c này ch y u áp d ng cho ti ng Anh, như she’ s a teacher ) – M t ch ho c ch s . – M t ho c nhi u kho ng tr ng, d u xu ng dòng và các ký t l khác. 84 CHƯƠNG 4. MÔ HÌNH 4.2.2 4.2. TI N X LÝ Tách câu K H TN M c đích c a tách câu là tách ra thành t ng câu đ x lý. Vi c xác đ nh đơn v câu r t quan tr ng trong các ng d ng x lý ngôn ng t nhiên. Tuy nhiên, do chương trình này chưa s d ng m t s thông tin c n đ n đơn v câu, nên “câu” đây đư c hi u như là m t đo n ng n, m t câu ho c m t ph n c a câu. Vi c tách câu d a vào các d u câu đ ng t câu ra thành t ng đo n đ x lý. M i đo n s đư c x lý đ c l p v i nhau. Các đo n đư c phân cách b i H các token d u câu . , ; ( ) . . . Ph n tách token ph i đư c th c hi n trư c Chu n hoá C N TT Chu n hoá d u – 4.2.3 Đ ph n tách câu. K H O A Chu n hoá là đ t l i v trí d u trong các ti ng nh m đ m b o th ng nh t m t quy t c đ t d u chung. Do ti ng Vi t có nhi u hơn m t quy đ nh v quy t c b d u (b d u khoa h c, b d u m thu t . . . ), gây khó khăn cho các thao tác x lý v sau, b i vì cùng m t ch nhưng dùng hai quy t c b d u khác nhau s cho ra hai chu i ký t hoàn toàn khác nhau (Ví d , “hoà” và “hòa”). Đ tránh tình tr ng này, d u đư c tách riêng ra kh i ti ng, đư c coi như là m t ký t n m đ u ti ng. Như v y m t ti ng b t kỳ s bao g m ký t đ u tiên đ i di n cho thanh đi u, các ký t theo sau đ i di n cho âm đ u và v n c a ti ng đó. D u đư c th hi n theo quy ư c gõ VNI: • Thanh ngang đư c bi u di n b ng ký t ‘0’. • Thanh s c đư c bi u di n b ng ký t ‘1’. • Thanh huy n đư c bi u di n b ng ký t ‘2’. 85 CHƯƠNG 4. MÔ HÌNH 4.2. TI N X LÝ • Thanh h i đư c bi u di n b ng ký t ‘3’. • Thanh ngã đư c bi u di n b ng ký t ‘4’. K H TN • Thanh n ng đư c bi u di n b ng ký t ‘5’. C N TT – Đ H Theo quy t c trên, “hoà” s đư c bi n đ i thành “2hoa”; “hòa” s đư c bi n đ i thành “2hoa”. Như v y ta có th coi “hòa” và “hoà” là tương đương nhau khi so sánh d ng bi n đ i “2hoa” c a chúng. M t s ví d khác: “h ng” đư c bi n đ i thành “2hông”, “hoa” đư c bi n đ i thành “0hoa”. Các ti ng nư c ngoài, các ký hi u . . . không có d u, s đư c xem như có thanh ngang. Như v y, “USA” s đư c bi n đ i thành “0USA”. Do vi c bi n đ i làm m t thông tin v cách b d u. Ta c n ph i gi l i ch g c bên c nh ch bi n đ i (“ch chu n hoá”) đ có th dùng l i sau này. Ta cũng có th ph c h i ch t ch chu n hoá b ng cách phân tích c u trúc âm ti t và b d u thích h p theo quy t c b d u cho trư c. Vi c này s giúp chu n hoá cách b d u cho toàn văn b n. Chu n hoá ‘y’ và ‘i’ K H O A Ngoài vi c chu n hoá cách b d u, m t s ch trong ti ng Vi t k t thúc b ng ‘y’ có th đư c đ i thành ‘i’. Ví d , “quý” và “quí” đ u h p l . Tuy nhiên, không ph i ch nào k t thúc b ng ‘y’ cũng có th chuy n thành ‘i’, ví d “thuý” và “thúi”. Nguyên nhân là do khi chuy n thành ‘i’, ch cái này k t h p v i ‘u’ t o ra âm chính ‘ui’ thay vì âm chính ‘i’. M t s ch k t thúc b ng ‘i’ cũng không th chuy n sang ‘y’, ví d “bí”, “chí” . . . Vi c cho phép vi t m t t hai cách s làm gi m hi u su t c a chương trình do chương trình coi “quý” và “quí” là hai ch hoàn toàn khác nhau. Gi i pháp là l p danh sách nh ng t có âm chính là y/i và là âm ti t m , sau đó chuy n t t c nh ng t k t thúc b ng ‘i’ có trong danh sách trên sang ‘y’. Trong quá trình 86 CHƯƠNG 4. MÔ HÌNH 4.2. TI N X LÝ 4.2.4 K H TN b t l i chính t , n u ngư i dùng yêu c u chu n hoá thì ta có th xem vi c vi t ‘y’ ho c ‘i’ như là sai chính t . N u không, ta s b qua khác bi t ‘y’ và ‘i’ bư c báo l i chính t . G m các ch sau (không xét thanh đi u): “mi”, “ti”, “thi”, “qui”, “ki”, “hi”, “li” “si”, “vi”. Ch vi t hoa 4.2.5 C N TT – Đ H Ch vi t hoa dùng đ bi u di n tên riêng, t vi t t t ho c dùng cho ch đ ng đ u câu. Do đó c n phân bi t ch đ u câu có ph i là ch b t đ u tên riêng hay không. Ngoài ra, c n xác đ nh tên riêng khi tìm đư c ch vi t hoa b t đ u tên riêng. Các văn b n ti ng Vi t chưa hoàn toàn th ng nh t v quy t c vi t hoa. Ví d , có tài li u dùng “C ng hoà Xã h i Ch nghĩa Vi t Nam”, nhưng có tài li u l i dùng “C ng Hoà Xã H i Ch Nghĩa Vi t Nam”. Do văn b n đ u vào có kh năng b sai chính t , kèm theo s không th ng nh t trong quy cách vi t tên riêng, nên khó có th xác đ nh tên riêng ngay bư c ti n x lý. Vì v y ph n này s đư c th c hi n trong ph n tách t thay vì trong ph n ti n x lý. T nư c ngoài, t vi t t t, các ký hi u . . . K H O A X lý ti ng nư c ngoài, các ký hi u chuyên ngành, các t vi t t t. Do trình b t l i không có ki n th c v các lĩnh v c chuyên ngành, cũng như các th ti ng trên th gi i, nên vi c áp d ng tri th c đ phân lo i là đi u h t s c khó khăn. Gi i pháp đư c dùng đây là xem các t nư c ngoài, t vi t t t, các ký hi u . . . như là nh ng ch bình thư ng (và s đư c xem như là l i chính t trong ph n b t l i chính t ). Ph n này s c g ng phân lo i m t s lo i thư ng g p như s , ngày tháng . . . nh m gi m b t các l i sai chính t không đáng có. Các con s 87 CHƯƠNG 4. MÔ HÌNH 4.3. B T L I NON-WORD B t l i non-word 4.3.1 Tìm l i chính t H 4.3 K H TN đư c đánh d u riêng b ng mã N U M . “S ” đây đư c coi là b t c ch nào b t đ u b ng s . Ví d , “0lit”, “0.2”, “0-4” . . . đ u đư c coi là s . Ngày tháng đư c nh n d ng theo m u “ngày-tháng-năm” ho c “ngày/tháng/năm”. Nói cách khác, ngày tháng là các s liên ti p, cách nhau b ng d u ‘/’ ho c ‘–’. Ngày tháng cũng đư c đánh nhãn N U M . L p danh sách t đ ngh K H O A 4.3.2 C N TT – Đ Vi c tìm l i chính t đơn gi n là duy t qua t ng token, ki m tra xem token đó có trong t đi n hay không. N u token không có trong t đi n, token đó b sai chính t . N u th c hi n như trên, s có r t nhi u ch b cho là sai chính t , ví d như các con s , ngày tháng . . . Ta c n ph i nh n ra nh ng token lo i này và b qua chúng khi tìm l i chính t . Do ph n ti n x lý đã đánh d u các token ch a s b ng mã N U M nên khi th c hi n tìm l i chính t , ta s không xét nh ng token lo i này. Sau khi đã xác đ nh nh ng ch b sai chính t , ta c n đưa ra m t s g i ý đ ngư i dùng ch n, thay vì bu c ngư i dùng t tìm ra ch đúng. Vi c l p ra danh sách g i ý ch y u d a vào nguyên t c ph c h i l i: D a vào nguyên nhân phát sinh ra l i, th c hi n thao tác ngư c l i đ tìm ra ch đúng. L i đư c x lý trong ph n này là l i non-word. L i này có th do nh ng nguyên nhân sau: • L i nh p li u sai. 88 CHƯƠNG 4. MÔ HÌNH 4.3. B T L I NON-WORD • L i OCR. • L i phát âm sai. L i nh p li u L i nh p li u bao g m nh ng lo i l i sau: • L i gõ sót phím. Đ H • L i gõ dư phím. K H TN • L i nh n d ng ti ng nói. • L i gõ sai phím (gõ nh m phím này b ng phím khác). C N TT – • L i gõ sai th t (gõ đ o th t hai phím liên ti p nhau). Ngoài ra, do phím spacebar phát sinh ký t kho ng tr ng dùng đ phân cách các ch v i nhau, nên c n ph i x lý đ c bi t v i phím này. D a vào các lo i l i trên, ta có thêm các l i b sung: • L i gõ thi u phím spacebar, gom hai ch thành m t ch . K H O A • L i gõ dư phím spacebar, tách m t ch thành hai ch . • L i gõ sai phím spacebar, có th d n đ n vi c nhóm hai ch ho c tách ch làm hai. • L i gõ sai th t gi a m t phím và phím spacebar d n đ n vi c m t ký t trong ch này b đ y sang ch khác. Gi i pháp kh c ph c l i là th c hi n ngư c l i quá trình t o ra l i. Đ i v i l i gõ sót phím, dư phím, ta có th thêm m t phím ho c b t m t phím đ 89 CHƯƠNG 4. MÔ HÌNH 4.3. B T L I NON-WORD K H O A C N TT – Đ H K H TN t o ra ch m i. V i l i gõ sai th t , ta duy t qua ch , l n lư t hoán v hai ký t liên ti p đ t o ra ch m i. Đ i v i l i gõ nh m phím, ta d a vào b trí bàn phím đ phát sinh l i. Gi đ nh sơ đ b trí c a bàn phím EN-US đư c dùng. Do thông thư ng ch g p m t l i gõ nh m v i phím ngay bên c nh này m i t , nên chương trình ch lưu danh sách nh ng phím lân c n v i t ng phím, d a trên bàn phím EN-US. Ví d : A → {S, Q, W, X, Z }. V i nh ng phím hai ký t như phím ‘2’ (‘2’ và [email protected]) thì @ s đư c thêm vào t p các phím lân c n v i 2 và ngư c l i. Danh sách c th đư c nêu trong b ng 4.1 trang k ti p. Do v i m i phím có kho ng 8 phím lân c n. M t ch dài trung bình 5 ký t s phát sinh ra m t t p 85 các chu i có kh năng. Trong s này ch có m t s r t ít là ch th t s , đúng quy t c chính t . Tuy nhiên vi c x lý m t kh i lư ng l n như v y là không th . Vì v y chương trình gi đ nh ch nh p gõ sai t i đa hai phím v i m i ch , nh m gi m thi u bùng n t h p. V i l i spacebar, ta cũng xét tương t . Tuy nhiên, v i nh ng l i có kh năng tách làm hai ch , ta s xét ch hi n th i và ch k ti p cùng lúc, xem như là m t ch . L i gõ nh m spacebar v i m t phím khác là đi u khó có th x y ra vì phím spacebar tương đ i l n, d nh n di n khi gõ. V i các ki u gõ như VNI, TELEX. Chương trình c g ng “ph c h i” t nh ng ch gõ sai n u phát hi n đư c. Ví d , “nguyê4n” s t o ra “nguy n”. B gõ đư c VNI, TELEX cài đ t, sau đó nh n chu i các ký t c a ch đang xét qua b gõ ph c h i các d u. Bư c này đư c th c hi n sau bư c trên, đ n u gõ nh m phím d u k bên thì v n có th ph c h i l i. B gõ VNI và TELEX đư c s d ng như trong b ng 4.2 trang 92. Nguyên t c c a các b gõ đư c cài đ t không quá c u kỳ, do yêu c u ch là đ ph c h i l i. Các phím d u c a m i b gõ s đư c duy t qua ch , t v trí c a phím d u v đ u ch . N u phím d u có th k t h p đư c v i ký t đang 90 CHƯƠNG 4. MÔ HÌNH Phím 1 @ 4 % 7 * 0 _ \ w t i [ } d h l ’ x b , > Phím lân c n !‘~q2@ 21!qw3# $3#er5% 54$rt6^ &6^yu8* 87&ui9( )9(op-_ -0)p[=+ |=+]} qase3#2@ rfgy6^5% ujko9(8*}=+-_ [{=+\| erfcxs yujnbg op;:.>,<k [{]}/?;: zsdc vghn <mkl.> .,<l;:/? Đ H K H TN Phím lân c n ‘1! @1!qw3# [email protected]$ %4$rt6^ 65%ty7& *7&ui9( 98*io0) _0)p[=+ =-_[{]}\\| [email protected]! edft5%4$ yhji8*7& ol;:[{-_0) [{=+\| awedxz tyhbvf iol,<mj /?.>l asx cfgb njk,< >,<l;:/? /.>;:’" – Phím ~ 2 # 5 ^ 8 ( + q r u p s g k : z v m . ? C N TT Phím lân c n ~1! 1‘~q2@ [email protected]$ 43#er5% ^5%ty7& 76^yu8* (8*io0) 09(op-_ +-_[{]}\\| \=+]} wsdr4$3# tghu7&6^ iklp0)9(}=+-_ qwsz rtgvcd uikmnh /?.>l ’[{]}/?;: xdfv bhjm ,mkl.> ?.>;:’" K H O A Phím ‘ ! 3 $ 6 & 9 ) = | e y o { a f j ; " c n < / 4.3. B T L I NON-WORD B ng 4.1: Danh sách phím lân c n 91 CHƯƠNG 4. MÔ HÌNH 4.3. B T L I NON-WORD đư c duy t, ta xem như đã ph c h i l i. L i VNI-TELEX đư c áp d ng l i, sau khi đã ph c h i l i theo phương pháp trên, vì khi gõ VNI-TELEX ngư i dùng v n có kh năng gõ nh m các phím d u. Đ H K H TN TELEX Phím Du s d us c f d u huy n r d uh i x d u ngã j d u n ng aa,ee,oo â,ê,ô uw,ow ư,ơ aw ă dd đ – VNI Phím D u 1 d us c 2 d u huy n 3 d uh i 4 d u ngã 5 d u n ng 6 d u mũ u7,o7 ư,ơ a8 ă d9 đ C N TT B ng 4.2: Ki u gõ VNI-TELEX Các ch đư c phát sinh s đư c so sánh v i t đi n ti ng. N u ch n m trong t đi n, ta cho ch vào danh sách đ ngh . Ngư c l i, ch b h y b . Tóm l i, thu t toán 4.1 trang k ti p đ ph c h i l i bàn phím. K H O A L i phát âm L i phát âm ch y u gây ra l i real-word. Tuy nhiên l i phát âm đôi khi v n có l i non-word. Đây là nh ng t phát âm gi ng nhau, ch vi t bao g m các thành ph n âm đ u, âm đ m, âm chính, âm cu i h p l . Tuy nhiên k t h p các thành ph n l i không t o thành m t ch n m trong t đi n ti ng. Ví d , “nghành”, “ng ”, “ka”. Do đ c đi m c a ch qu c ng , m t s âm t không th k t h p v i nhau. Đây là nguyên nhân ch y u c a l i lo i này. L i phát âm s đư c trình bày c th trong ph n 4.4.3 trang 100. Ph n này ch nêu ra nh ng đi m riêng c a l i phát âm — non-word. 92 CHƯƠNG 4. MÔ HÌNH 4.3. B T L I NON-WORD 1. Ph c h i l i VNI-TELEX. K H TN 2. Ph c h i l i gõ sót phím. Ph c h i l i VNI-TELEX d a trên k t qu c a l n ph c h i trư c. 3. Ph c h i l i gõ dư phím. Ph c h i l i VNI-TELEX d a trên k t qu c a l n ph c h i trư c. 4. Ph c h i l i nh m phím. Ph c h i l i VNI-TELEX d a trên k t qu c a l n ph c h i trư c. H 5. Ph c h i l i sai th t phím. Ph c h i l i VNI-TELEX d a trên k t qu c a l n ph c h i trư c. – Đ 6. Ph c h i l i gõ sót phím spacebar. Ph c h i l i VNI-TELEX d a trên k t qu c a l n ph c h i trư c. C N TT 7. Ph c h i l i gõ dư phím spacebar. Ph c h i l i VNI-TELEX d a trên k t qu c a l n ph c h i trư c. 8. Ph c h i l i sai th t phím spacebar. Ph c h i l i VNI-TELEX d a trên k t qu c a l n ph c h i trư c. K H O A 9. L c l i danh sách nh ng t đã có. N u t không n m trong t đi n ti ng thì lo i b . Thu t toán 4.1: Ph c h i l i bàn phím 1. Duy t l n lư t t ng ký t trong ch , t trái sang ph i. 2. N u ký t đang xét là phím d u, duy t ngư c t v trí ký t đang xét v đ u ch . N u có th ghép d u, th c hi n ghép d u, lưu ch vào danh sách. Thu t toán 4.2: Ph c h i l i VNI-TELEX 93 CHƯƠNG 4. MÔ HÌNH 4.3. B T L I NON-WORD 1. Duy t l n lư t t ng ký t trong ch , t trái sang ph i. t ng v trí, chèn thêm m t ký t vào bên ph i ký t đang xét. Lưu ch vào danh sách. K H TN 2. Thu t toán 4.3: Ph c h i l i gõ sót phím 1. Duy t l n lư t t ng ký t trong ch , t trái sang ph i. 2. t ng v trí, xóa ký t đang xét. Lưu ch vào danh sách. Đ H Thu t toán 4.4: Ph c h i l i gõ dư phím 1. Duy t l n lư t t ng ký t trong ch , t trái sang ph i. – t ng v trí, thay th ký t đang xét b ng ký t lân c n (như trong b ng 4.1 trang 91). Lưu ch vào danh sách. C N TT 2. Thu t toán 4.5: Ph c h i l i gõ nh m phím 1. Duy t l n lư t t ng ký t trong ch , t trái sang ph i. t ng v trí, hoán v ký t đang xét và ký t bên ph i ký t đang xét. Lưu ch vào danh sách. K H O A 2. Thu t toán 4.6: Ph c h i l i gõ sai th t phím 1. Duy t l n lư t t ng ký t trong ch , t trái sang ph i. 2. t ng v trí, tách ch làm hai ch t i v trí ký t đang xét. Lưu hai ch vào danh sách. Thu t toán 4.7: Ph c h i l i gõ sót phím spacebar 94 CHƯƠNG 4. MÔ HÌNH 4.3. B T L I NON-WORD 1. N i ch đang xét và ch bên ph i ch đang xét l i làm m t. 2. Lưu ch vào danh sách. K H TN Thu t toán 4.8: Ph c h i l i gõ dư phím spacebar 1. Chuy n m t ký t t ch bên ph i ch đang xét sang cu i ch đang xét. Lưu vào danh sách. H 2. Chuy n m t ký t t ch đang xét sang đ u ch bên ph i ch đang xét. Lưu vào danh sách. Đ Thu t toán 4.9: Ph c h i l i gõ sai th t phím spacebar C N TT – V i lo i l i này, ta c n phân tích c u trúc âm ti t ti ng Vi t. Sau khi phân tích c u trúc âm ti t ti ng Vi t, ta s thay th t ng thành ph n c a âm ti t b ng m t thành ph n khác có cách phát âm gi ng như thành ph n đư c thay th . Thu t toán l i phát âm như trong thu t toán 4.10. 1. Phân tích c u trúc âm ti t. K H O A 2. T o danh sách âm ti t, bao g m các âm ti t có phát âm tương t v i âm ti t ban đ u. 3. L c l i danh sách, nh ng âm ti t không có trong t đi n ti ng b lo i b. Thu t toán 4.10: Ph c h i l i phát âm (non-word) 95 CHƯƠNG 4. MÔ HÌNH 4.3.3 4.4. B T L I REAL-WORD S p x p danh sách t đ ngh K H TN Như đã nói trong ph n 3.3 trang 55, có nhi u cách đ s p x p danh sách t đ ngh . Do không th s d ng các thông tin cú pháp, ng nghĩa, gi i pháp đư c áp d ng là dùng mô hình ngôn ng (đư c dùng khi b t l i real-word — ph n 4.4.5 trang 103) s đư c dùng đ đánh giá các t đ ngh , cùng v i vi c lo i b các ch không cùng ch hoa/thư ng v i ch g c và áp d ng th ng kê t n s s d ng c a m i t . Gi i pháp đư c áp d ng như sau trong thu t toán 4.11. H 1. Phát sinh lư i t . Đ 2. Thêm các ch đ ngh vào, c p nh t lư i t , thêm các t m i t nh ng ch đư c thêm. C N TT – 3. Áp d ng mô hình ngôn ng , d a vào đi m đ s p x p danh sách t . Thu t toán 4.11: S p x p danh sách t đ ngh (non-word) B t l i real-word 4.4.1 Lư i t K H O A 4.4 B t l i real-word đòi h i tách t và lư ng giá các cách tách t b ng mô hình ngôn ng . Đ thu n ti n x lý, chương trình s d ng m t c u trúc d li u d ng đ th đ th hi n các t — g i là lư i t 1 . Đây là m t đ th có hư ng không chu trình, v i các nút là các t trong câu, c nh là đư ng n i gi a hai t k nhau, hư ng th hi n th t c a các t trong câu. Ngoài các nút là các t trong câu, lư i t có hai nút đ c bi t là nút “head” và nút “tail”. Nút 1 word lattice 96 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD – Đ H K H TN “head” n m đ u lư i t , n i v i nh ng nút tương ng v i nh ng t đ u tiên trong câu. Ngư c l i, nút “tail” n m cu i lư i t , đư c n i v i nh ng t cu i cùng trong câu. Lư i t ch a t t c các t có kh năng xu t hi n trong câu. Các t đư c liên k t v i nhau theo tr t t như trong câu. Khi duy t t nút g c đ n nút đích, ta s đư c m t cách tách t cho câu. Hình 4.2 th hi n m t lư i t . C N TT Hình 4.2: Lư i t c a câu “H c sinh h c sinh h c” K H O A Ngoài lư i t cơ b n như mô t trên, ta có th m r ng lư i t đ ch a thêm nh ng t có kh năng, phát sinh t công đo n ph c h i l i, nh m xác đ nh xem t nào là đúng nh t. Lư i t này g i là lư i t m r ng (hình 4.3 trang k ti p). M t d ng khác c a lư i t , g i là lư i 2-t (xem hình 4.4 trang k ti p). Trong lo i lư i t này, m i nút không ph i là m t t mà là hai t đ ng li n nhau. Hai nút n i li n nhau thì t bên ph i c a nút bên trái và t bên trái c a nút bên ph i là m t. Nói cách khác, m t c p nút n i v i nhau b ng m t c nh trong lư i t ch có ba t thay vì b n t . Lư i t lo i này dùng đ th hi n mô hình trigram (trong khi lư i t bình thư ng đư c dùng đ th hi n bigram). Vi c t o ra lư i 3-t , lư i 4-t là có th . Tuy nhiên nh ng lư i t này thư ng không hi u qu . 97 4.4. B T L I REAL-WORD Đ H K H TN CHƯƠNG 4. MÔ HÌNH K H O A C N TT – Hình 4.3: Lư i t m r ng c a câu “H c sinh h c sinh h c” Hình 4.4: Lư i 2-t c a câu “H c sinh h c sinh h c” 98 CHƯƠNG 4. MÔ HÌNH 4.4.2 4.4. B T L I REAL-WORD T o lư i t K H TN Lư i t cơ b n đư c t o b ng thu t toán Viterbi. M i ti ng trong câu đư c duy t qua đ tìm ra t t c các t có th có trong đo n. Sau đó t p h p các t này l i t o nên lư i t . Cho câu S có n ti ng. State là đ nh, còn “nút i” là c nh. Ta duy t l n lư t qua các c nh đ tìm ra các t . Duy t i t 1 đ n n: • T o state g c cho nút i. Đ • N u không ti n đư c thì xóa state. H • Xét các state, n u ti n thêm đư c m t bư c thì lưu l i state m i (i+1). • N u hoàn t t m t t thì lưu l i. C N TT – Thu t toán 4.12: T o lư i t (cơ b n) Thu t toán t o lư i 2-t đư c nêu trong [Rav96]. Thu t toán s t o ra lư i n-t t lư i n − 1-t . Lư i t cơ b n nên trên đư c xem như là lư i 1-t . Thu t toán đư c tóm t t l i như trong thu t toán 4.13. K H O A 1. N u nút (w) có n t đ ng li n trư c nó (wi ), i = 1, 2, . . . , n trong lư i t g c, nó s đư c l p l i n l n trong lư i t m i, tên là (wi w), tương ng v i i = 1, 2, . . . , n. 2. N u (wi ) n i v i (wj ) trong lư i t g c, n i t t c (wx wi ) v i (wi wj ) x b t kỳ. 3. Giá tr c a (wi wj ) là giá tr c a c nh (wi ) (wj ) trong lư i t cũ. 4. Giá tr c a c nh (wi wj ) (wj wk ) là 3-gram c a wi , wj và wk . Thu t toán 4.13: T o lư i n-t t lư i (n − 1)-t 99 CHƯƠNG 4. MÔ HÌNH 4.4.3 4.4. B T L I REAL-WORD M r ng lư i t — Ph c h i l i C N TT L i phát âm – Đ H K H TN Sau khi có lư i t cơ b n. Ta có th áp d ng mô hình ngôn ng đ tìm ra cách tách t t t nh t n u bài toán là tách t . Tuy nhiên, do câu không hoàn toàn chính xác, ta c n ph i ti n hành ph c h i l i — thêm vào nh ng t có kh năng đúng, sau đó m i có th tách t . Ph n ph c h i l i, thêm t vào lư i t đ t o lư i t m r ng là n i dung c a công đo n này. Như đã xét ph n 4.3.2 trang 88, có 4 lo i l i ch y u là l i bàn phím, l i OCR, l i nh n d ng ti ng nói, l i phát âm (và các lo i l i còn l i). C b n lo i l i này đ u có th gây ra l i real-word. Tuy nhiên, l i real-word ch y u là l i phát âm, l i bàn phím chi m r t ít, ph n còn l i là l i OCR và l i nh n d ng ti ng nói. Ph n này ch y u t p trung vào l i phát âm. L i bàn phím đư c trình bày trong ph n 4.3.2 trang 89. L i phát âm ph thu c vào cách phát âm c a t ng vùng. [Hoa02] li t kê các trư ng h p l i thông d ng nh t. Nh ng quy t c này đư c áp d ng đ t o ra nh ng t g n gi ng phát âm. Theo [Hoa02], l i bao g m các lo i sau: K H O A • L i thanh đi u. Ch y u là l i nh m l n hai thanh h i, ngã. • L i v âm đ u. Thư ng l n l n các âm đ u sau: C/K, G/Gh, Ng/Ngh, Ch/Tr, S/X, V/D/Gi/R, W/Hw/Ngw/Qu. • L i v âm chính. Thư ng l n l n các âm chính sau: ai/ay/ây, ao/au/âu, ăm/âm, ăp/âp, iu/iêu/êu, im/iêm/em, ip/iêp/êp/ep, oi/ôi/ơi, om/ôm/ơm, op/ôp/ơp, ong/ông, oc/ôc, ui/uôi, um/uôm, up/(uôp), ưi/ươi, ưu/ươu, ưm/ươm, (ưp)/ươp. 100 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD K H TN • L i v âm cu i. Thư ng l n l n ch ghi các âm cu i trong các v n sau: an/ang, at/ac, ăn/ăng, ăt/ăc, ân/âng, ât/âc, en/eng, et/ec, ên/ênh, êt/êch, in/inh, it/ich, iên/iêng, iêt/iêc, ơn/(ơng), ơt/(ơc), un/ung, ut/uc, uôn/uông, uôt/uôc, ưn/ưng, ưt/ưc, ươn/ương, ươt/ươc. • Sai quy cách vi t hoa Phân tích âm ti t C N TT – Đ H Đ phát sinh t d a trên l i phát âm, c n phân tích c u trúc c a t ng ti ng. M t ti ng bao g m âm đ u, v n và thanh. V n g m âm đ m, âm chính và âm cu i. Trong các thành ph n c a ti ng, âm chính là b t bu c ph i có. Các thành ph n còn l i có th không có. Ta có th bi u di n c u trúc âm ti ng theo sơ đ tr ng thái như hình 4.5. K H O A Hình 4.5: Sơ đ tr ng thái phân tích c u trúc ti ng Ta có th phân tích ti ng dùng FST. Tuy nhiên, qua hình 4.5 có th th y ch có tám cách đ hình thành ti ng. Cài đ t theo tám cách này đơn gi n và hi u qu hơn dùng FST t ng quát. Khi phân tích ti ng, có th có m t s nh p nh ng gi a các thành ph n c a ti ng. Ví d , “lúa” bao g m âm đôi “ua” hay âm đ m “u” và âm chính “a”? Nh ng âm có th gây nh p nh ng xu t phát t vi c âm ‘u’ và ‘o’ có th v a là âm đ m, v a là âm chính, bao g m các âm “uô”, “ua”. Ngoài ra còn 101 4.4. B T L I REAL-WORD K H TN CHƯƠNG 4. MÔ HÌNH Ki m tra m u A, bao g m vi c phân tích âm ti t theo m u A. N u âm ti t có th phân tích theo m u A và không vi ph m các quy lu t phân b thì ch p nh n âm ti t, d ng thu t toán. H 1. Ki m tra m u “Âm đ u, âm chính, âm cu i”. Đ 2. Ki m tra m u “Âm chính, âm cu i”. – 3. Ki m tra m u “Âm đ u, âm chính”. 4. Ki m tra m u “Âm chính”. C N TT 5. Ki m tra m u “Âm đ u, âm đ m, âm chính, âm cu i”. 6. Ki m tra m u “Âm đ m, âm chính, âm cu i”. 7. Ki m tra m u “Âm đ u, âm đ m, âm chính”. 8. Ki m tra m u “Âm đ m, âm chính”. K H O A 9. Không th phân tích âm ti t. D ng. Thu t toán 4.14: Phân tích c u trúc âm ti t 102 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD Hoàn ch nh lư i t H 4.4.4 K H TN có nh p nh ng gi a âm chính và âm cu i, bao g m “ui”, “uy”, “oi”. Cu i cùng là trư ng h p “qu”. H u h t các nh p nh ng này đư c lo i b b ng th t áp d ng các m u âm ti t (ưu tiên xét các trư ng h p không có âm đ m trư c). Hai trư ng h p c n đư c x lý đ c bi t là “uy” và “qu”. N u ch s d ng nh ng lu t này, s có nhi u ti ng phân tích đư c, nhưng th c t không t n t i. Ví d , “cỳ”, “kông” . . . Tuy nhiên cách phân tích này v n ch p nh n đư c. Nh ng ti ng sai như v y s đư c phát hi n và s a ch a trong ph n b t l i non-word. C N TT – Đ Sau khi t o lư i t m r ng, c n b o đ m có th tìm đư c m t cách tách t t t đ u tiên cho đ n t cu i cùng và m i cách tách t đ u k t thúc t cu i cùng trong câu. Nói cách khác, ph i đ m b o luôn tìm đư c đư ng đi t b t kỳ đ nh nào trên đ th đ n đ nh c a các t k t thúc câu. Do t đi n b gi i h n, có kh năng lư i t thi u m t vài c nh làm đ th không còn liên thông. Bư c này thêm vào các đ nh đ b o đ m đ th liên thông. Lư i t s đư c duy t l i, tìm nh ng nơi không liên thông, thêm vào các đ nh (mã “UNK”) đ đ m b o tính liên thông. Áp d ng mô hình ngôn ng — Tách t K H O A 4.4.5 Ph n này s d ng mô hình ngôn ng ngram đ đánh giá các cách tách t , t đó đưa ra cách tách t t t nh t. D a theo c u trúc lư i t , m t cách tách t chính là đư ng đi t nút head đ n nút tail. Ta có th ti n hành vi c lư ng giá b ng cách duy t đ th theo chi u sâu, tìm m i cách tách t . V i m i cách tách t tìm đư c, mô hình ngôn ng s đư c áp d ng đ tính giá tr c a cách tách t đó. 103 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD K H O A C N TT – Đ H K H TN Cách trên đơn gi n, nhưng không hi u qu . V i bài toán tách t bình thư ng (không tách t m ), s phân nhánh trong đ th không nhi u, mô hình này có th áp d ng đư c. Tuy nhiên, v i các câu dài phương pháp này tr nên không hi u qu vì s lư ng các cách tách t tăng r t nhanh. Hãy xét m t trư ng h p c c đoan, m t câu dài 86 ch : “Đó là tr l i c a B Ngo i giao nư c ta t i cu c h p báo thư ng kỳ ngày hôm qua trư c câu h i c a m t s phóng viên nư c ngoài v ph n ng c a Vi t Nam đ i v i vi c y ban v T do Tôn giáo Qu c t c a Hoa Kỳ t ch c đi u tr n v n đ tôn giáo Vi t Nam và vi c m t s t ch c tôn giáo h i ngo i kêu g i trì hoãn vi c phê chu n Hi p đ nh Thương m i song phương v i Vi t Nam”. Đây là m t câu trích t m t tin t c th i s . Khi đ c lư t qua câu này, ta không c m nh n đư c đ dài c a nó. Nh ng câu lo i này không ph i hi m g p trong các văn b n hành chính. Câu này có 76101451776 ≈ 76 · 109 cách tách t khác nhau (842851528992620544 ≈ 842 · 1015 n u tách t m ), d n đ n vi c tính giá tr c a t ng cách tách t m t là đi u không th c t . Th t ra, đ i v i bài toán tách t thông thư ng, ta có th phân tách câu trên thành t ng đo n ng n hơn, do có m t s t trong câu hoàn toàn không nh p nh ng trong tách t . Nh ng t như th đư c bi u di n trên lư i t là nh ng đi m th t nút. Nh nh ng đi m này, ta có th tách câu ra thành t ng đo n ng n hơn và x lý t ng đo n đ c l p. Cách này tùy thu c vào lo i mô hình ngôn ng đư c áp d ng. V i mô hình unigram, có th áp d ng cách này. V i mô hình bigram ho c cao hơn, ta c n tìm nh ng nút có đi u ki n kh t khe hơn. C th v i bigram, ta c n tìm ra m t c p nút th t thì vì ch c n m t nút. Như v y, vi c s d ng mô hình bigram hay trigram, đ có đư c mô hình ngôn ng hi u qu hơn, s làm gi m đi s phân đo n trong câu, làm tăng th i gian x lý. Bài toán tách t m l i càng khó khăn hơn. Do k t qu c a vi c ph c h i l i, s nút trong lư i t tăng r t nhi u, h u qu là các nút có th dùng đ 104 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD Đ H K H TN phân đo n gi m đáng k , h u như không còn. Do v y c i ti n trên coi nhưng không th phát huy tác d ng. C i ti n trên dùng nguyên t c quy ho ch đ ng đ c i ti n. Đi u đó d n đ n suy nghĩ t i sao không t n d ng quy ho ch đ ng tri t đ hơn? Th t s , ta có th áp d ng thu t toán Viterbi đ gi i quy t bài toán này. Thu t toán Viterbi đã đư c áp d ng thành công trong nh ng bài toán tìm ki m tương t trong lĩnh v c nh n d ng ti ng nói. Thu t toán Viterbi có th ho t đ ng, nhưng không t n d ng tri t đ ưu đi m c a lư i t . Do mô hình ngôn ng đư c s d ng là ngram, ta s dùng mô hình bigram. Do m i nút đ i di n cho m t t , c nh n i gi a hai t có th đ i di n cho xác su t bigram logP (w2 |w1 ), vi c tính mô hình ngôn ng cho m t cách tách t : – n P (wi |wi−1 )P (tail|wn ) C N TT P (w1 . . . wn ) = P (w1 |head) i=2 n P (wi |wi−1 )P (tail|wn ) logP (w1 . . . wn ) = log (P (w1 |head) i=2 n P (wi |wi−1 ) + P (tail|wn ) = P (w1 |head) + i=2 K H O A V i cách tính này, vi c tính logP (w1 . . . wn ) tương đương v i giá tr đư ng đi t head đ n tail (c nh head đ n nút c a t đ u tiên là P (w1 |head), còn c nh t nút c a t cu i cùng đ n tail là P (tail|wn )). Vi c tính maxP tương đương v i minlogP , cũng là tìm đư ng đi ng n nh t t head đ n tail. Bài toán cu i cùng quy v bài toán tìm đư ng đi ng n nh t trong đ th có hư ng, có tr ng s . Thu t toán tìm đư ng đi ng n nh t đư c dùng đây là thu t toán tìm 105 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD 4.4.6 C N TT – Đ H K H TN ki m theo đ ưu tiên PFS2 đ tìm đư ng đi ng n nh t trên đ th . Kho ng cách gi a hai đi m trong đ th là xác su t bigram c a hai t . Bài toán tìm đư ng đi ng n nh t, có th áp d ng PFS, Prime, Djisktra. PFS đư c ch n vì lư i t , qua kh o sát, có th đư c coi là m t đ th thưa. Cách trên đư c áp d ng cho bigram, không th áp d ng cho trigram do gi đ nh dùng tr ng s c a c nh là xác su t bigram, bigram là xác su t gi a hai t liên ti p, trong khi trigram là xác su t gi a ba t liên ti p. Đ áp d ng trigram thay vì bigram, ta s s d ng lư i 2-t . Sau đó áp d ng thu t toán PFS cho đ th m i vì m i nút trong lư i 2-t th c ch t bao g m 3 t liên ti p nhau. Cách làm này không th th c hi n v i ngram (n > 3) vì khi đó s nút/c nh trong đ th s tăng đáng k . Ngoài ra, PFS cũng không áp d ng đư c trong trư ng h p s d ng nh ng đ đo như đo s l i sai đã x y ra . . . Trong trư ng h p đó ta nên s d ng thu t toán Viterbi. Tìm l i chính t Sau khi tách t xong, vi c b t l i chính t cũng gi ng như ph n b t l i chính t non-word ( 4.3.1 trang 88). L p danh sách t đ ngh K H O A 4.4.7 Vi c l p danh sách t đ ngh tương t như l p danh sách t đ ngh khi b t l i non-word ( 4.3.2 trang 88). Tuy nhiên, ta s s d ng t đi n thay vì dùng t đi n ti ng. Vi c ph c h i l i trong bư c này là không c n thi t vì đã đư c th c hi n trong ph n tách t . 2 Priority-First Search — PFS 106 CHƯƠNG 4. MÔ HÌNH 4.4.8 4.4. B T L I REAL-WORD S p x p danh sách t đ ngh Các heuristic đ c i thi n đ chính xác Phân bi t t g c và t phát sinh Đ 4.4.9 H K H TN Trong ph n tách t , ta đã xác đ nh đư c cách tách t đúng nh t nh áp d ng mô hình ngôn ng . Áp d ng mô hình ngôn ng giúp ta ch n đư c câu h p lý nh t trong s các câu có th hình thành t lư i t , vi c tìm ra ranh gi i t ch là hi u ng ph . Do đã ch n đư c câu h p lý nh t nên t đúng nh t chính là t n m trong câu đư c ch n này. Do đó, t n m trên câu đư c ch n c n đư c ưu tiên s p đ u danh sách t đ ngh . Nh ng t còn l i có th đư c s p x p như trong ph n 4.3.3 trang 96. K H O A C N TT – V i lư i t hi n có, ta coi t g c và nh ng t phát sinh là nh nhau. Tuy nhiên, trên th c t ta thư ng ưu tiên ch n t g c hơn là các t phát sinh, do s l i trong câu ch chi m m t t l nh , ph n còn l i là các t đúng. Vi c đánh đ ng hai lo i t này làm cho chương trình d có khuynh hư ng s d ng t phát sinh không gi i h n ch ng nào nh ng t này còn t o ra m t câu h p lý. Ti ng Vi t có s lư ng t h n ch hơn so v i ti ng Anh (do đ c đi m ngôn ng đơn l p, hình thái t n m ngoài t , nên s lư ng t gi m xu ng), nh ng câu phát sinh nghe có v h p lý cũng nhi u hơn. N u không kh ng ch s lư ng t phát sinh đư c s d ng thì kh năng ch n nh m câu đúng s cao hơn. V n đ đ u tiên có th đư c gi i quy t b ng cách tăng giá tr các c nh n i đ n t phát sinh m t t l nh t đ nh đ ph n ánh s khác bi t. Ví d , trong hình 4.3 trang 98, ta có th bi n đ i giá tr các c nh n i đ n t “xinh” b ng cách tăng 0,2% giá tr c a các c nh n i đ n t “xinh” đó. V y, b t c cách tách t nào ch a t xinh cũng s b tăng m t kho ng giá tr nh t đ nh, so v i 107 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD C N TT – Đ H K H TN các cách tách t ch a t “sinh” v n gi a nguyên giá tr g c. Nh v y, t g c s đư c ưu tiên hơn các t phát sinh. Cách này nói chung h n ch vi c s d ng t phát sinh, tăng kh năng s d ng t g c. Vi c đi u ch nh t l tăng cho t phát sinh c n ph i đư c xem xét c n th n. Vi c tăng quá nhi u s làm cho chương trình bám l y t g c, gi m kh năng phát hi n l i. Nhưng n u không tăng thì chương trình có kh năng tìm nh m câu đúng, d n đ n sai l m dây chuy n trong các bư c ti p theo. Trên nguyên t c, đ gi m c a các c nh nên ph thu c vào kh năng xu t hi n c a các t phát sinh. Nh ng t phát sinh có kh năng nh t s ít b gi m nh t, nh ng t hi m g p nh t s b gi m nhi u nh t. Vi c này s giúp h n ch l i ch n sai t c a mô hình ngôn ng . Tuy nhiên các thông s v kh năng xu t hi n c a các t phát sinh đòi h i ph i có ng li u sai trong th c t và ng li u đúng tương ng đ rút trích thông tin này. Đây là m t hư ng phát tri n trong tương lai. Chu n hoá đ dài câu K H O A Do mô hình ngôn ng đư c tính toán d a trên t ng giá tr c a các c nh, nên các câu có ít t hơn (ít c nh hơn) thư ng có xu hư ng đư c ch n vì t ng giá tr s nh hơn. Do đó c n có m t cách đ chu n hoá đ dài câu, lo i b s nh hư ng v s lư ng t trong câu lên giá tr c a câu. Vi c chu n hóa có th đư c th c hi n b ng cách l y giá tr c a câu chia cho s lư ng t trong câu. N u ta s d ng Viterbi hay WFST thì ch c n chu n hoá giá tr m i l n duy t nút k . Khi áp d ng đ th đ gi i quy t, ta không th làm như v y vì giá tr các c nh đư c ng m đ nh là không thay đ i, và công th c tính đ dài đư ng đi là t ng các c nh, cũng không thay đ i. Tuy nhiên ta có th kh c ph c b ng cách thay đ i giá tr c a các c nh chưa 108 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD 1 n n n ei = i=1 i=1 1 ei n K H TN đư c xét. Vi c thay đ i giá tr các c nh chưa đư c xét s không nh hư ng đ n tính đúng đ n c a thu t toán, vì thu t toán tính toán đư ng đi ng n nh t d a vào các c nh đã xét. N u ta không thay đ i giá tr các c nh đã xét, thu t toán v n không đ i. Gi s có m t đư ng đi qua n c nh e1 , e2 , . . . , en , giá tr đư ng đi qua 1 các c nh đó là n=1 ei . N u đư c chu n hóa, giá tr m i s là n n=1 ei . Do i i K H O A C N TT – Đ H 1 ta th y m i c nh c n ph i “co” l i còn m t kho ng n (hay nói cách khác, m t đi n−1 ) giá tr th c c a chính nó. Các c nh c co l i t t m i khi thêm n vào m t c nh m i. Tuy nhiên, do các c nh đã xét s không th thay đ i, nên ta s gom t t c các kho ng giá tr m t đi này tr vào c nh s đư c xét. Gi s đã có n c nh, ta c n thêm c nh en+1 vào. Đ dài n c nh trư c đó là N (đã chu n hoá). Ta c n tính N là đ dài n + 1 c nh đã chu n hoá ∆=N −N N n + en+1 −N = n+1 en+1 − N = n+1 N =N +∆ Ta có th coi c nh m i, c n đư c thêm vào là c nh có giá tr là ∆ = en+1 −N n+1 thay vì en+1 như ban đ u. Tuy nhiên, do ∆ có th âm, c n dùng nh ng thu t toán có th tìm đư ng đi trên đ th có tr ng s âm như Bellman-Ford thay vì dùng PFS. Có th hình dung đ th m i là m t lo i đ th đ ng, các c nh phía sau càng ngày càng b thu ng n l i. 109 CHƯƠNG 4. MÔ HÌNH 4.4. B T L I REAL-WORD – Đ H K H TN M t v n đ c n quan tâm là, li u thu t toán Bellman-Ford có còn đúng v i m t đ th đ ng như v y hay không? Gi s ta tính đư c giá tr c nh khi d a trên đư ng đi ng n nh t phía trư c nó là A1. Sau đó, vì m t lí do nào đó, đư ng đi ng n nh t t i đi m đó b đ i sang A2, d n đ n giá tr c nh đã tính không còn h p l . V i m t đ th t ng quát, thu t toán có th không còn chính xác. Tuy nhiên v i đ th DAG c a lư i t , đi u này v n còn đúng. Trong DAG, ta có th xác đ nh đư c t p các nút cha c a m t nút nào đó (nh ng nút n i đ n nút đó), tách r i hoàn toàn v i ph n còn l i c a đ th . Do đó ta có th tìm đư ng đi l n nh t ch trong t p con đó mà thôi. Sau khi tìm đư c đư ng đi ng n nh t trong t p con này, coi như đư ng đi đã n đ nh và không thay đ i n a, vì v y vi c tính giá tr c nh k ti p s không b thay đ i sau m i l n tính toán. Vì lí do này nên thu t toán s ph i duy t th t các đi m theo th t tôpô ch không th duy t theo m t th t ng u nhiên. C N TT T phát sinh ph thu c ng c nh t g c K H O A Mô hình hi n t i phát sinh t cho m i t trong câu. Th c t khi đ c m t câu, ta thư ng coi như m i t đ u đúng. Ta ch “phát sinh t ” nh ng ch có v n đ trong câu (thư ng là do t không phù h p v i ý nghĩa c a câu ho c c a đo n văn). Ta có th áp d ng ý tư ng này đ bi n đ i lư i t nh m h n ch nh ng l i tìm nh m câu đúng. Cách ti p c n đây là tăng giá tr c nh n i đ n nh ng t phát sinh t nh ng t g c “có v n đ ”. T g c càng có v n đ thì t l tăng càng th p. T g c càng ít có v n đ thì t l tăng càng cao nh m gi m kh năng s d ng t phát sinh c a t này. Đ đo v n đ là ngram c a liên quan đ n các ti ng c a t g c trong câu. V i bigram, đ đo này là trung bình xác su t c a hai bigram n i v i ti ng. V i trigram, đ đo này là trung bình xác su t c a ba trigram n i v i ti ng đó. Đ đo v n đ c a t là t ng đ đo c a các ti ng 110 CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N 4.5 K H TN thu c t đó. V i cách làm này, các t phát sinh s không đư c đánh giá ngang nhau n a. Nh ng t phát sinh t nh ng t g c có ít kh năng g p l i s b tăng v i m t t l nh t đ nh, so v i nh ng t phát sinh t t g c có nhi u kh năng x y ra l i. Vi c này giúp gi m kh năng tìm nh m câu đúng. Hu n luy n C N TT – Đ H Do chương trình c n m t s tham s như th ng kê t n s xu t hi n c a t , mô hình ngôn ng bigram, trigram . . . nên ta c n ph i thu th p các tham s này. Đ i v i ti ng Anh, vi c này tương đ i d dàng. Tuy nhiên, do không th xác đ nh ranh gi i t ti ng Vi t, ta c n ph i s d ng m t b tách t trư c khi hu n luy n. Chương trình s d ng m t t p ng li u đã tách t s n d a trên [iiND03]. Tuy nhiên, mô hình ngôn ng đòi h i ng li u hu n luy n càng l n càng t t. Do v y chương trình t t o thêm ng li u hu n luy n thêm ng li u d a thô chưa tách t . Đ i v i ti ng Vi t, đã có m t s nghiên c u v tách t ti ng Vi t, tiêu bi u là [DKT01, TH01]. Chương trình này không s d ng b tách t hi n có vì các lý do sau: K H O A • B tách t trong [DKT01, TH01] s d ng unigram. Trên lý thuy t, bigram/trigram t t hơn unigram do ch a đ ng thông tin v ng c nh. • Do b tách t th ng kê thư ng ph thu c vào ng li u, n u s d ng m t b tách t trên lĩnh v c khác v i lĩnh v c đư c hu n luy n cho trình b t l i chính t , k t qu s không như mong đ i. • Cách tách t đư c đ ngh t o ra mô hình ngôn ng t t hơn so v i cách s d ng b tách t r i th ng kê trên đó (s gi i thích chi ti t bên dư i) 111 CHƯƠNG 4. MÔ HÌNH 4.5.1 4.5. HU N LUY N Hu n luy n mô hình ngôn ng K H O A C N TT – Đ H K H TN Như đã nói, tính toán mô hình ngôn ng c n ph i tách t . Trong ph n b t l i real-word, ta đã th c hi n đư c ph n tách t m . Do d li u hu n luy n đư c xem là chính xác nên ch c n tách t bình thư ng. Do đó ta s b qua ph n T o lư i t m r ng, gi nguyên lư i t cơ b n, và ph n b t l i non-word. Tóm l i, các bư c th c hi n g m kh i ti n x lý, theo sau là các bư c T o lư i t và Tách t . Trong ph n tách t , ta ch c n dùng PFS thay vì Bellman-Ford vì lư i t không có tr ng s âm. N u dùng PFS đ tách t , ta ch có 1 cách tách t t t nh t. Vi c đ m t s d a trên cách tách t này. Cách này cho k t qu tương t như b tách t r i, tr vi c áp d ng bigram/trigram thay cho unigram. Đ i v i đ th có tr ng s âm, thu t toán Bellman-Ford s đư c s d ng thay cho PFS. Thay vì ch s d ng m t cách tách t , ta có th th ng kê trên nhi u cách tách t c a cùng m t câu. Cách này ph n ánh giá tr c a các t chính xác hơn. Ví d , ta có 3 cách tách t v i xác su t các cách tách t tương ng l n lư t là 0,5, 0,4 và 0,1. Cách ch dùng cách tách t t t nh t s ch tính nh ng t trong cách tách t đ u, v i giá tr m i t là 1,0. Trư ng h p sau, các t trong cách 2 và 3 v n đư c tính. S đ m c a m i t không còn là 1, mà là xác su t c a cách tách t ch a t đó. Tr l i ví d cũ, các t trong cách m t s đư c c ng thêm 0,5 thay vì 1. Ngoài ra các t trong cách 2 và 3 l n lư t đư c c ng 0,4 và 0,1. D th y, các t trong cách tách t th p s không tăng s đ m đáng k , do đó không th gây nh hư ng l n đ n quy t đ nh tách t . Cách c ng d n s như v y đư c g i là “fractional count” (hay trong [PSG99] g i là “soft-count”). Do b tách t r i ch tr v cách tách t t t nh t, nên ta không th áp d ng fractional count d a trên b tách t r i. Đó là m t trong nh ng lý do không s d ng b tách t r i. Thay vì tính trên m i cách tách t (có th r t l n n u câu dài), ta có th 112 CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N – Đ H K H TN dùng WFST đ tách t . WFST ph i dùng kèm v i beam pruning đ tránh bùng n s t h p các cách tách t . Sau khi dùng WFST, ta còn n cách tách t t t nh t, đư c dùng đ đ m fractional count. Tuy nhiên, t t hơn h t v n là tính trên t t c các cách tách t , n u có th . [PSG99] đưa ra m t gi i pháp (t m g i là thu t toán “soft-count”) áp d ng quy ho ch đ ng đ gi i quy t v n đ này. Soft-count th c t không k t xu t ra m t cách tách t c th nào (và do v y nên cũng không th áp d ng đ tìm cách tách t t t nh t đư c!). Thu t toán đ m m i t th có theo cách khác, không c n d a trên cách tách t hoàn ch nh. Thu t toán đư c mô t trong [PSG99] không dùng t đi n. M i chu i con trong câu đ u đư c cho là t . Đi m này, v a là đi m m nh vì không c n dùng t đi n, nhưng cũng là đi m y u vì y u t này làm gi m đ chính xác m t cách đáng k (kho ng 20%, như k t qu trong [PSG99]). C N TT Thu t toán Soft-count K H O A Cho m t cây dài n ch . Có 2n−1 cách đ tách câu. Gi s chúng ta bi t xác su t pi c a m i cách tách t . M i cách tách t trong câu s góp ph n vào vi c đ m t , d a trên xác su t c a các cách tách t đó. Ví d , v i cách tách t có xác su t pi , ta tăng s đ m cho m i t trong cách tách t đó m t kho ng pi . Cách đ m t ki u này đư c g i là “soft-count” vì m i cách tác t 2n−1 j =1 pj đ u đư c đ m. Câu cho trư c bao g m các ch C1 C2 C3 . . . Cn . M i t Cj1 . . . Cj2 trong câu s đư c tăng m t kho ng lef right Sj1 t p(Cj1 ...Cj2 )Sj2 , α trong đó lef • Sj1 t là t ng xác su t m i cách tách t có th có c a chu i con t đ u câu đ n Cj1 . • p(Cj1 . . . Cj2 ) là xác su t c a cách tách t Cj1 . . . Cj2 hi n có. 113 CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N • α là h ng s chu n hoá, b ng t ng xác su t m i cách tách t c a câu lef t — Sn+1 . Đ Siright 1 i=1 = p(C1 ) i=2 i−1 lef t 2<i≤n+1 j =1 p(Cj . . . Ci−1 )Sj 1 i=n = p(C ) i=n−1 nn right 1≤i<n−1 j =i+1 p(Ci+1 . . . Cj )Sj H Silef t K H TN right lef Sj1 t và Sj2 đư c tính b ng quy ho ch đ ng. C N TT – Silef t đư c tính l n lư t v i i = 1, 2, . . . , n + 1 t trái sang ph i. Sau khi lef t k t thúc, ta đư c α = Sn+1 . Sau đó tính Siright v i i = n, n − 1, . . . , 3, 2, 1 t ph i sang trái, v a tính Siright v a đ m t . Đ ph c t p c a thu t toán là O(kIN ) v i k là đ dài t i đa c a t , I là s l n duy t (kho ng 5 − 10 l n) và N là kích thư c ng li u. Thu t toán Soft-count áp d ng trên bigram K H O A Như đã nói, thu t toán Soft-count có hai h n ch là không dùng t đi n, và tính toán d a trên unigram. Thu t toán c i ti n đư c đưa ra đ kh c ph c hai h n ch này. S d ng t đi n và lư i t V i h n ch không dùng t đi n, kh c ph c h n ch này khá đơn gi n. V i xác su t P (Ci . . . Cj ), n u t Ci . . . Cj không t n t i, ta cho xác su t này v 0. Tuy nhiên, thu t toán s đư c thay đ i đ t n d ng lư i t khi tính toán, tránh vi c tìm t t c các chu i con r i l i xét xem chu i con đó có ph i là m t t hay không. 114 CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N Cho lư i t c a câu S . G i L(W ) là t p nh ng t n i đ n nút W . Tương t , R(W ) là t p nh ng t đư c n i đ n t nút W . V i m i nút W trong S , t ng xác su t các cách tách t có ch a nút W là: K H TN P (W ) = P lef t (W )p(W )P right (W ) Trong đó: • P lef t (W ) là t ng xác su t các cách tách t tính t đ u câu đ n W . (W ) = W ∈L(W ) C N TT n u W là nút head p(W )P lef t (W ) ngư c l i – P lef t p(W ) Đ H • P right (W ) là t ng xác su t các cách tách t tính t W đ n h t câu. Tương t (W ) = K H O A P right p(W ) n u W là nút tail p(W )P right (W ) ngư c l i W ∈R(W ) Thu t toán 4.15 trang k ti p đư c dùng đ tính P lef t . Thu t toán tương t đư c áp d ng đ tính P right . Sau khi tính đư c P lef t và P right , ta có th tính fractional count cho các t trong câu b ng cách duy t t t c các nút P (W ) cho t C . Th c t , ta s l ng bư c trong lư i t , c ng thêm vào lef t P (tail) này vào trong thu t toán tính P right , vì thu t toán cũng ph i duy t qua t t c các t (thu t toán 4.16 trang k ti p). 115 CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N 2. Đ t P lef t (W ) = 0 v i m i W còn l i. K H TN 1. Đ t P lef t (head) = p(head) 3. Duy t l n lư t các nút W theo th t t trái sang ph i, tính theo v trí b t đ u c a W trong câu. V i W ∈ R(W ) c ng thêm p(W )P lef t (W ) vào P lef t (W ) C N TT – Đ H Thu t toán 4.15: Tính P lef t 1. Đ t P right (tail) = p(tail) 2. Đ t P right (W ) = 0 v i m i nút còn l i. K H O A 3. Duy t t t c các nút W t ph i sang trái, tính theo v trí k t thúc c a W trong câu. (a) V i W ∈ L(W ), c ng thêm p(W )P right (W ) vào P right (W ) (b) Tính fractional count P lef t (W )p(W )P right (W ) P lef t (tail) cho W Thu t toán 4.16: Tính P right 116 theo công th c CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N Đ H K H TN Áp d ng bigram Đ áp d ng bigram thay vì unigram, gi i pháp đ u tiên là s d ng lư i 2-t thay vì lư i t . V i lư i 2-t , m i nút tương đương hai t liên ti p nhau, do đó P (Ci . . . Cj ) tương ng v i P (Wk |Wk−1 ) (v i Wk là t th k ). Tuy nhiên, đ áp d ng v i trigram, ta l i ph i s d ng lư i 3-t . Đi u này không hi u qu vì lư i t c p càng cao càng to, x lý kém hi u qu . Ta có th áp d ng tr c ti p lư i t cơ b n cho thu t toán Soft-count mà không c n lư i 2-t . Thay vì tính toán các giá tr d a trên nút, thu t toán s đư c thay đ i đ tính toán các giá tr d a trên c nh. Thay vì v y, thu t toán đư c hi u ch nh đ áp d ng bigram v i lư i t thông thư ng. Thay vì dùng giá tr nút đ tính, ta dùng giá tr c nh đ tính. p(W ) s đư c thay b ng p(W |W ) v i W và W là hai t k nhau. P lef t C N TT – P (W ) = P lef t (W )P right (W ) (W ) = p(W ) n u W là nút head p(W/W )P lef t (W ) ngư c l i W ∈L(W ) K H O A Tương t P right (W ) = p(W ) n u W là nút tail p(W /W )P right (W ) ngư c l i W ∈R(W ) P (W ) đ i di n cho xác su t t t c các cách tách t đi qua nút W . Do ta hu n luy n bigram, nên c n xác su t P (W/W ) ch không c n P (W ). N u W và W+1 ch có m t c nh, P (W ) cũng chính là P (W/W+1 ). N u có nhi u 117 CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N 1. Đ t P lef t (head) = p(head) 2. Đ t P lef t (W ) = 0 v i m i W còn l i. K H TN hơn m t c nh, ta c n dùng cách khác đ tính P (W/W ). V i thu t toán tính P right hi n có, ta c ng d n p(W/W )P right vào cho P right (W ). V y trong quá trình c ng d n ta có th tính ngay P (W/W ) b ng cách nhân giá tr c ng d n v i P lef t (W ). Thu t toán 4.17 và 4.18 là thu t toán c i ti n đ tính P lef t và P right . Đ H 3. Duy t l n lư t các nút W theo th t t trái sang ph i, tính theo v trí b t đ u c a W trong câu. V i m i W tìm đư c, c ng thêm p(W /W )P lef t (W ) vào P lef t (W ) W ∈ R(W ) C N TT – Thu t toán 4.17: Tính P lef t cho bigram 1. Đ t P right (tail) = p(tail) 2. Đ t P right (W ) = 0 v i m i nút còn l i. 3. Duy t t t c các nút W t ph i sang trái, tính theo v trí k t thúc c a W trong câu. V i W ∈ L(W ): K H O A (a) C ng thêm p(W/W )P right (W ) vào P right (W ) (b) Tính fractional count cho P lef t (W )p(W/W )P right (W ) P lef t (tail) W theo Thu t toán 4.18: Tính P right cho bigram 118 công th c CHƯƠNG 4. MÔ HÌNH 4.5. HU N LUY N Thu t toán Soft-count m i đ áp d ng trigram K H O A C N TT – Đ H K H TN V i cách tính áp d ng đ tính Soft-count v i bigram, ta ch c n dùng lư i 2-t thay vì lư i t đ có th áp d ng trigram (trong khi l ra ph i dùng lư i 3-t đ tính trigram, n u dùng thu t toán g c). 119 K H TN Chương 5 H Cài đ t 80 4.1.1 82 – Mô hình chung . . . . . . . . . . . . . . . . . . . . . . . . . . . Ti n x lý . . . . . . . . . . . . . . . . . . . . . . . . . . C N TT 4.1 Đ M cl c 4.1.2 B t l i real-word . . . . . . . . . . . . . . . . . . . . . . 82 Ti n x lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.2.1 Tách token . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.2.2 Tách câu . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.2.3 Chu n hoá . . . . . . . . . . . . . . . . . . . . . . . . . 85 Chu n hoá d u . . . . . . . . . . . . . . . . . . . . . . . 85 Chu n hoá ‘y’ và ‘i’ . . . . . . . . . . . . . . . . . . . . 86 4.2.4 Ch vi t hoa . . . . . . . . . . . . . . . . . . . . . . . . 87 4.2.5 T nư c ngoài, t vi t t t, các ký hi u . . . . . . . . . . . . 87 B t l i non-word . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.3.1 Tìm l i chính t . . . . . . . . . . . . . . . . . . . . . . . 88 4.3.2 L p danh sách t đ ngh . . . . . . . . . . . . . . . . . . 88 K H O A 82 4.1.3 4.2 B t l i non-word . . . . . . . . . . . . . . . . . . . . . . 4.3 120 CHƯƠNG 5. CÀI Đ T 89 L i phát âm . . . . . . . . . . . . . . . . . . . . . . . . . 92 S p x p danh sách t đ ngh ............... 96 B t l i real-word . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.3.3 4.4 K H TN L i nh p li u . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Lư i t ........................... 4.4.2 T o lư i t 4.4.3 M r ng lư i t — Ph c h i l i . . . . . . . . . . . . . . 100 ......................... 96 99 L i phát âm . . . . . . . . . . . . . . . . . . . . . . . . . 100 Phân tích âm ti t . . . . . . . . . . . . . . . . . . . . . . 101 Hoàn ch nh lư i t . . . . . . . . . . . . . . . . . . . . . 103 4.4.5 Áp d ng mô hình ngôn ng — Tách t 4.4.6 Tìm l i chính t . . . . . . . . . . . . . . . . . . . . . . . 106 4.4.7 L p danh sách t đ ngh . . . . . . . . . . . . . . . . . . 106 4.4.8 S p x p danh sách t đ ngh . . . . . . . . . . 103 . . . . . . . . . . . . . . . 107 C N TT – Đ H 4.4.4 4.4.9 Các heuristic đ c i thi n đ chính xác . . . . . . . . . . 107 Phân bi t t g c và t phát sinh . . . . . . . . . . . . . . 107 Chu n hoá đ dài câu . . . . . . . . . . . . . . . . . . . 108 T phát sinh ph thu c ng c nh t g c . . . . . . . . . . 110 Hu n luy n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.5.1 K H O A 4.5 Hu n luy n mô hình ngôn ng . . . . . . . . . . . . . . . 112 Thu t toán Soft-count . . . . . . . . . . . . . . . . . . . 113 Thu t toán Soft-count áp d ng trên bigram . . . . . . . . 114 S d ng t đi n và lư i t . . . . . . . . . . . . . 114 Áp d ng bigram . . . . . . . . . . . . . . . . . . 117 Thu t toán Soft-count m i đ áp d ng trigram . . . . . . 119 121 CHƯƠNG 5. CÀI Đ T 5.1. C U TRÚC D LI U 5.1.1 Lưu chu i Đ C u trúc d li u C N TT – 5.1 H K H TN Chương trình đư c cài đ t b ng C++ trên n n Linux. Ph n giao di n đư c cài đ t b ng Gtk+. Ph n giao di n này ch mang tính ch t minh ho . Trong th c t , chương trình nên đư c tích h p vào các b so n th o văn b n như Open Office, AbiWord . . . đ có th phát huy tác d ng. Ngoài ra chương trình s d ng thư vi n SRILM [Sto02] đ tính toán mô hình ngôn ng . Chương trình g m hai ph n: ph n b t l i chính t và ph n hu n luy n. Hai ph n này s d ng khá nhi u thành ph n chung. Các thành ph n s đư c trình bày l n lư t bên dư i. Nh ng đi m riêng c a trình b t l i chính t và trình hu n luy n s đư c trình bày riêng. K H O A Đ ti t ki m ch và gi m chi phí khi so sánh các token và các t , chương trình lưu toàn b các token có th có vào m t m ng chung. M i token đ u đư c tham chi u b ng m t con s , t m g i là strid (chính là s th t token trong m ng). Ngoài ra m t b ng băm đư c dùng đ ánh x chu i sang strid. C hai c u trúc d li u này đư c cài đ t trong l p StringArchive. Chương trình ch s d ng m t đ i tư ng duy nh t thu c l p này, đư c truy c p thông qua hàm get_sarch(). Toán t , đư c cài đ t đ chuy n đ i t strid sang chu i và ngư c l i. T và ti ng đ u đư c lưu trong StringArchive. V i t , các kho ng tr ng đư c thay th b ng d u g ch chân ‘_’ trư c khi lưu. Ngoài ra t cách nhau b i nhi u kho ng tr ng s đư c gom l i thành m t kho ng tr ng. Ví d , t “h c sinh” s đư c lưu trong StringArchive d ng “h c_sinh”. Vi c chu n hoá s đư c ti n hành trên t ng ti ng. Sau khi chu n hoá, t s thành 122 CHƯƠNG 5. CÀI Đ T 5.1. C U TRÚC D LI U “5hoc_0sinh”. 5.1.2 T đi n K H O A C N TT – Đ H K H TN T đi n đư c lưu d ng văn b n, m i dòng tương ng v i m t t . Trong b nh , t đi n s d ng cây đa nhánh (l p Node). Node g m hai l p d n xu t là BranchNode (nhánh) và LeafNode (lá). Hàm Node::is_leaf() đư c dùng đ xác đ nh nút nhánh, nút lá. Trong l p BranchNode, nodes s ch a con tr đ n các nút k ti p kèm theo ch tương ng đư c dùng đ chuy n qua nút đó. Duy t t nút g c (truy c p thông qua hàm WordArchive::get_root()) cho đ n h t, ta s đư c danh sách ti ng hình thành t . Ch đư c dùng đ chuy n qua nút lá t nút nhánh là <mainleaf> (v i nút lá cơ b n), <caseleaf> . . . Đ ti t ki m b nh , t t c các danh sách t khác nhau trong chương trình đư c tr n chung vào m t cây BranchNode duy nh t đư c qu n lý b i WordArchive. Các nút lá khác nhau s ph n ánh t trong các danh sách khác nhau. Ví d , nút <mainleaf> đư c dùng đ lưu t trong t đi n t . Trong khi nút <caseleaf> đư c dùng đ lưu t vi t hoa c a t vi t thư ng tương ng (khi duy t cây b ng t vi t thư ng, nhưng lá là t vi t hoa). L p WordArchive ch a nút g c c a cây và m t s hàm linh tinh đ thao tác trên cây. T đi n ti ng không đư c lưu tr c ti p vào t p tin mà s đư c phát sinh t đ ng khi n p t đi n t . Th c ra, hàm WordArchive::load()@ khi đư c g i s lưu các ti ng vào StringArchive, đ ng th i đánh d u ti ng đó thu c t đi n ti ng. Sau đó, ta có th xác đ nh m t ch có ph i thu c v t đi n ti ng hay không nh hàm StringArchive::in_dict(). 123 CHƯƠNG 5. CÀI Đ T 5.1.3 5.1. C U TRÚC D LI U Câu Lư i t – 5.1.4 Đ H K H TN M i câu bao g m danh sách strid c a các token, kèm theo v trí chu i con c a token đó trong câu th t s . L p Sentence bao g m m t m ng các đ i tư ng Sentence::Syllable (bi n syllables) đ i di n cho các ti ng. M i đ i tư ng Sentence::Syllable bao g m v trí b t đ u c a ti ng trong câu start, mã strid c a ti ng đó id và mã strid dùng đ so sánh cid. Chu i các câu s đư c hàm sentences_split() tách thành nh ng chu i con, đ i di n cho các câu. Các chu i con này s đư c chuy n cho Sentence đ phân tích thành t ng ti ng. K H O A C N TT Lư i t bao g m lư i t d ng thô Lattice và lư i t DAG. Lư i t thô Lattice không có nút head và tail, cũng không có các liên k t tư ng minh gi a các nút v i nhau. C u trúc này lưu thành danh sách các t theo v trí b t đ u c a t . Đ bi t t này n i v i t nào, ta s d ng thông tin v v trí b t đ u c a t và đ dài c a t đ suy ra v trí b t đ u c a t k ti p, sau đó l y danh sách c a nh ng t b t đ u t i v trí c a t k ti p. T t c các t c a lư i t đư c lưu vào danh sách chung (bi n Lattice::we ki u WordEntries), ch a đ ng toàn b thông tin liên quan đ n m t t . Các t đư c tham chi u b ng s th t c a t trong WordEntries — t m g i là WordID. M i t đư c lưu trong c u trúc WordEntry. C u trúc này bao g m: • len: cho bi t s ti ng c a t . • fuzid: m i bit trong bi n này cho bi t tr ng thái fuzzy c a ti ng tương ng trong t . N u bit là 1 nghĩa là ti ng đó đư c bi n đ i, không 124 CHƯƠNG 5. CÀI Đ T 5.1. C U TRÚC D LI U ph i là ti ng g c. • id: WordID. K H TN • node: liên k t đ n t trong t đi n, dùng đ l y các thông tin chi ti t hơn v t . 5.1.5 C N TT – Đ H Lattice ch a m t m ng các đ i tư ng WordInfos. M i đ i tư ng WordInfo tương đương v i m t v trí ti ng trong câu. WordInfos cho ta bi t danh sách các t b t đ u t v trí ti ng đó, danh sách các t fuzzy t i ti ng đó, chi u dài t không b fuzzy. Lư i t DAG đư c dùng đ t ng quát hoá các thu t toán ho t đ ng trên c lư i t và lư i 2-t . So v i Lattice, l p này gi ng m t lư i t hơn. DAG là l p cơ s . L p d n xu t WordDAG ho t đ ng như lư i t cơ b n, còn l p WordDAG2 ho t đ ng như lư i 2-t . Cách tách t Cách tách t đơn gi n là m t m ng các WordID c a nh ng t hình thành nên cách tách t đó. Mô hình ngôn ng K H O A 5.1.6 Mô hình ngôn ng đư c s d ng là trigram. Mô hình ngôn ng đư c cài đ t trong thư vi n SRILM. Mô hình ngôn ng đư c truy c p thông qua hàm get_ngram(). 125 CHƯƠNG 5. CÀI Đ T 5.2 Ti n x lý 5.2.1 5.2. TI N X LÝ Tách token 5.2.2 K H TN Chương trình s d ng flex đ tách token. Các quy t c flex đư c áp d ng đư c li t kê trong hình 5.1 trang k ti p. Tách câu Đ H Trư c h t, câu đư c tách thành token. Sau đó, các d u “?!():;.,” s đư c dùng đ tách thành nh ng đo n nh hơn — nh ng “câu”. Hàm sentences_split() đư c dùng đ th c hi n đi u này. 5.3.1 T o lư i t – Lư i t C N TT 5.3 T o lư i t Lattice K H O A Lư i t Lattice đư c t o thông qua hàm Lattice::construct(). Th c t, construct() ch là v bc gi đn ba hàm Lattice::pre_construct(), mark_proper_name() và post_construct(). pre_construct() th c hi n công đo n đ u tiên đ t o lư i t : phát sinh t t c các t có th có d a trên t đi n và so sánh m . M t thu t toán tương t Viterbi đư c s d ng đ t o lư i t . Chương trình l n lư t quét qua các v trí ti ng, t m t đ n h t. m i v trí, chương trình c g ng n i thêm ti ng m i vào danh sách nh ng t chưa hoàn ch nh n u đư c. N u t hoàn ch nh, t s đư c đưa vào danh sách (nhưng không b xóa kh i danh sách t 126 CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T K H TN SENTENCE_FINAL [.?!] HYPHEN [\-] OPEN_SINGLE_QUOTE [\‘] CLOSE_SINGLE_QUOTE [\’] RIGHT_PAREN [\"\)\]\}\>\’] H LETTERS_AND_NUMBERS [a-zA-Z0-9] LETTERS_NUMBER_AND_THEN_SOME [a-zA-Z0-9] APOSTROPHE \’ C N TT – WHITE_SPACE [ \t\n] NEWLINE [\n] INVISIBLE [^\040-\176] Đ SINGLE_CHARACTER [a-zA-Z0-9] K H O A {SENTENCE_FINAL}+{RIGHT_PAREN}* | {HYPHEN}+ | {OPEN_SINGLE_QUOTE}+ | {CLOSE_SINGLE_QUOTE}+ | {LETTERS_NUMBER_AND_THEN_SOME}+{LETTERS_AND_NUMBERS} | {LETTERS_AND_NUMBERS}+{APOSTROPHE} | {SINGLE_CHARACTER} { xu t t } ({WHITE_SPACE}|{INVISIBLE}|{NEWLINE})+ { b Hình 5.1: Quy t c tách token dùng flex 127 qua } CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T K H O A C N TT – Đ H K H TN chưa hoàn ch nh, vì có th có nh ng t dài hơn). N u không th g n thêm ti ng m i vào t , t đó s b lo i b kh i danh sách t chưa hoàn ch nh. Ngoài ra, m i khi chuy n sang ti ng m i, ti ng đó cũng đư c đưa vào danh sách t chưa hoàn ch nh như là nh ng ti ng b t đ u t m i. Công vi c đư c th c hi n cho đ n khi quét h t chi u dài câu (thu t toán 5.1 trang k ti p). C u trúc WordState đư c dùng đ lưu m t t chưa hoàn ch nh trong danh sách các t chưa hoàn ch nh. C u trúc này bao g m v trí b t đ u t , mã fuzid c a t , và con tr đ n nút c a ti ng cu i cùng hi n th i c a t trong cây t đi n. Con tr này s đư c WordState::get_next() dùng đ tìm ra nh ng ti ng k ti p giúp hình thành nên t . Thành ph n fuzid đư c c p nh t sau m i khi thêm ti ng m i vào t , cho bi t đó là ti ng chính xác trên câu, hay ti ng g n gi ng v i ti ng trên câu (phát sinh nh so sánh m ). M i bit trong fuzid tư ng trưng cho m t ti ng trong t . Vi c tìm t d a trên l p WordState v i hai hàm chính là WordState::get_next() và WordState::collect_words(). Hàm get_next() khi đư c g i s t o ra các đ i tư ng WordState m i tương ng v i ti ng k ti p đư c nh n, sau đó t h y chính nó. collect_words s thu th p t t c các nút lá có th có t i v trí ti ng đang xét và đưa vào lư i t . Các l p d n xu t khác nhau t WordState có các cách tìm ki m t khác nhau. Các l p này s đư c đ c p bên dư i. Mi lp dn xu t WordState có mt lp dn xu t WordStateFactory tương ng, đư c dùng đ t o ra đ i tư ng d n xu t WordState. Hàm WordStateFactory::create_new() trong l p d n xu t s t o ra đ i tư ng d n xu t WordState tương ng v i l p đó. Danh sách các đ i tư ng WordStateFactory đư c chuy n cho pre_construct() nh đó pre_construct() bi t c n ph i s d ng nh ng l p nào. 128 5.3. LƯ I T K H TN CHƯƠNG 5. CÀI Đ T states1 và states2 ch a danh sách các WordState, đư c kh i đ ng là r ng. H 1. Duy t i t ti ng đ u tiên đ n h t câu. Đ (a) Xóa states2. – (b) Thêm state m i (b t đ u t i v trí i) vào states2 (WordStateFactory::create_new()). sang C N TT (c) Chuy n state cũ (trong states1) (WordState::get_next()). states2 mi (d) T o t t nh ng state trong states2 (WordState::collect_words()), thêm vào WordEntry we. a (e) Hoán v states1 và states2. K H O A 2. Xóa states1. Tr v we. Thu t toán 5.1: Lattice::pre_construct() 129 CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T K H TN Tìm t chính xác đư c th c hi n b i l p ExactWordState. L p này s d ng cid c a các ti ng trong câu đ tìm, không h th c hi n các bi n đ i nào trong quá trình tìm ki m. Nút lá đư c dùng là nút <mainleaf>. Tìm t không phân bi t hoa thư ng đư c th c hi n b i l p LowerWordState. L p này so sánh d a trên ch vi t thư ng c a các ti ng trong câu. Nút lá đư c dùng là <mainleaf>. – Đ H Tìm t vi t hoa b vi t sai đư c th c hi n b i l p UpperWordState. L p này th c hi n tìm ki m gi ng như LowerWordState. Tuy nhiên s d ng nút lá <caseleaf> thay vì <mainleaf>. Trong quá trình t o t đi n, các ch vi t hoa s t o ra các nút <caseleaf>, trong đó đư ng đi đ n <caseleaf> là ch thư ng ch không ph i ch vi t hoa. K H O A C N TT Tìm t phát âm tương t đư c th c hi n b i l p FuzzyWordState. L p này th c hi n tìm ki m d a trên t t c các ti ng có phát âm gi ng v i ti ng tương ng trong câu. Sau đó tr v các nút lá <mainleaf>. Vi c tìm ti ng gi ng phát âm d a trên t p nh m l n đư c l y thông qua hàm get_confusion_sets. Xem thêm ph n 5.3.4 trang 135 đ bi t cách ho t đ ng c a FuzzyWordState::get_next(). Hàm post_construct() th c hi n n t nh ng gì còn l i đ t o nên lư i t , bao g m vi c duy t qua lư i t , thêm các nút (như U N K ) đ b o đ m đ th liên thông, đ ng th i đưa danh sách toàn b các t đã thu đư c vào lư i t . Vi c này đư c th c hi n b ng cách duy t qua lư i t , đánh d u t t c các ti ng đư c bao g m trong các t đã đư c t o. Nh ng ti ng chưa đư c đánh d u là nh ng ti ng không n m trong b t c t nào, do đó s phá h y tính liên thông c a đ th . Trong trư ng h p x u nh t, ta s t o m t t U N K ch a ti ng này. 130 CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T C N TT – Đ H K H TN Lư i t lưu danh sách t trong m ng đ đ m b o hi u su t, tuy nhiên k t qu tr v t bư c pre_construct() l i là m t t p h p std::set ch không ph i m t m ng. M c đích c a vi c s d ng t p h p là đ có th truy xu t nhanh đ n m t ph n t trong lư i t trong quá trình hi u ch nh lư i t . post_construct() g i hàm construct() (hàm override, không ph i hàm construct() ban đ u) đ đi n các thông tin v WordInfos đ m b o cho lư i t có th ho t đ ng. Sau khi hoàn t t t o lư i t , lư i t xem như đã n đ nh và s không bao gi thay đ i. Không m t hi u ch nh nào đư c phép x y ra sau khi đã hoàn t t t o lư i t . Chính vì v y, vi c t o lư i t đư c tách làm hai ph n đ t o cơ h i can thi p vào lư i t ngay trong giai đo n hình thành đ có th thêm các nút khác (phát sinh trong bư c ph c h i l i). Như đã nói, construct() g i đ n hàm mark_propername() hàm này t o thêm nh ng nút P ROP đ i di n cho tên riêng. Các hàm khác có th đư c g i v trí c a hàm này n u c n thay đ i lư i t nhi u hơn. T o lư i t DAG K H O A Lư i t DAG đư c hình thành d a trên lư i t Lattice. Có th coi đây là m t v b c đ d truy c p đ n lư i t , thêm vào nh ng nút head, tail . . . cho hoàn ch nh. Các hàm trong DAG ch là v b c cho các hàm c a Lattice. Hai nút gi head, tail đư c t o ra và thêm vào lư i t . Đó là trư ng h p c a lư i t cơ b n WordDAG. V i lư i 2-t WordDAG2, công vi c ph c t p hơn. Thu t toán m r ng lư i t thành lư i 2-t đư c cài đ t trong constructor c a WordDAG2. Do m i nút c a WordDAG2 bao g m hai nút c a lư i t cơ b n, ta c n lưu tr mã các nút này trong WordDAG2::Node (các bi n n1 và n2). Ngoài ra còn có bi n id là mã nút c a lư i 2-t . T t c các nút c a lư i 2-t đư c lưu trong bi n 131 CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T 5.3.2 K H TN thành ph n WordDAG2::nodes. Hàm WordDAG2::demange() đư c dùng đ chuy n mã t mã nút trong lư i 2-t thành mã nút trong lư i t WordDAG. B sung lư i t Tìm cách tách t t t nh t K H O A 5.3.3 C N TT – Đ H B sung lư i t d a theo l i phát âm đư c th c hi n ngay trong pre_construct() thông qua l p FuzzyWordState (xem thêm ph n 5.3.4 trang 135). L p PenaltyDAG đư c d n xu t t l p DAG. L p này đi u ch nh l i hàm DAG::edge_value() đ thay đ i đ dài c nh nh m t o s khác bi t gi a các c nh phát sinh và c nh g c. L p nh n m t đ i tư ng DAG khác, ho t đ ng như là m t v b c cho đ i tư ng này. L p s d ng thông tin WordEntry::fuzid đ bi t có bao nhiêu ti ng trong t là ti ng phát sinh, sau đó gi m giá tr c a c nh theo m t t l tương ng. N u có n ti ng sai, giá tr c nh s b m t đi m t kho ng nwV v i V là giá tr ban đ u, w là tr ng s . Giá tr w đư c s d ng trong chương trình minh ho là 0.05. Thu t toán 5.2 trang k ti p trình bày cài đ t PFS. Thu t toán 5.3 trang 134 trình bày cài đ t Bellman-Ford kèm chu n hoá. 132 CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T K H TN last[head] ← head val[head] ← 0 seen[head] ← true candidates ← {head}(candidates là m t heap) 1. N u candidates r ng thì k t thúc thu t toán. 2. L y m t đ nh v ra kh i candidates. next_nodes là t p đi m n i t v đ n. H 3. Duy t t ng đ nh vv trong next_nodes. – Thêm vv vào candidates. seen[vv ] ← true val[vv ] ← val[v ] + edge_value(v, vv ) last[vv ] = v C N TT i. ii. iii. iv. Đ (a) N u seen[vv ] là f alse. (b) N u seen[vv ] là true và val[vv ] > val[v ] + edge_value(v, vv ) i. val[vv ] ← val[v ] + edge_value(v, vv ) ii. last[vv ] ← v iii. S p x p l i candidates. K H O A 4. V bư c 1. L y danh sách các nút. 1. v ← tail. 2. Lưu v . 3. v ← last[v ] 4. N u v = last[v ], l p l i bư c 2. 5. Lưu v . 133 6. Đ o ngư c danh sách các nút đã lưu. Thu t toán 5.2: Thu t toán tìm đư ng PFS CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T K H TN last[head] ← head length[head] ← 0 node_count[head] ← 1 nexts ← {head} L p danh sách c nh. 1. i ← 0. 2. l ← size_of (nexts) H 3. N u i >= l, d ng. Đ 4. v ← nexts[i]. i ← i + 1 – 5. N u done[v ] là true thì quay v bư c 2. N u không thì done[v ] ← true C N TT 6. Thêm các nút k v vào phía sau nexts. 7. L p ii = l . . . size_of (nexts), thêm các c nh (v, nexts[ii]) vào edges 8. Quay v 2. Tìm đư ng K H O A 1. cont ← true. Duy t l n lư t t 0 đ n n − 1 v i đi u ki n cont v n còn là true. 2. cont ← f alse. Duy t l n lư t các c nh trong edges, đ t đ nh đ u, đ nh cu i l n lư t là i và v , b qua các c nh có node_count[i] = 0. 3. N u node_count[v ] = 0 và length[v ] > length[i] + edge_value(i,v )−length[i] node_count[i]+1 (a) length[v ] ← length[i] + edge_value(i,v )−length[i] node_count[i]+1 (b) last[v ] ← i (c) node_count[v ] ← node_count[i] + 1 134 (d) cont ← true L y danh sách các nút tương t như thu t toán 5.2 trang trư c. Thu t toán 5.3: Thu t toán tìm đư ng Bellman-Ford kèm chu n hoá CHƯƠNG 5. CÀI Đ T 5.3.4 5.3. LƯ I T L i phát âm Phân tích c u trúc âm ti t K H TN L p Syllable đư c dùng đ phân tích cú pháp âm ti t. Năm thành ph n c a âm ti t (âm đ u, âm đ m, âm chính, âm cu i, thanh đi u) đư c lưu trong m ng components. Hàm Syllable::parse() nh n m t chu i c a m t âm ti t, sau đó tách âm ti t này ra và đi n thông tin vào Syllable::components. H Tìm các ti ng phát âm tương t K H O A C N TT – Đ Vi c tìm các ti ng tương t cách phát âm đư c cài đ t trong l p Syllable và hàm FuzzyWordState::get_next(). L p Syllable s th c hi n các thao tác cơ b n liên quan đ n âm ti t, bao g m hai hàm match và apply. Syllable::match so sánh âm ti t v i m t m u âm ti t. M t m u âm ti t bao g m năm thành ph n như âm ti t. M i thành ph n xác đ nh nh ng giá tr đư c phép đ i v i thành ph n đó. Các thành ph n có th cho phép m t giá tr , ho c không quan tâm đ n giá tr c a nó, ho c không đư c t n t i thành ph n đó, ho c ph i có thành ph n đó. Các thành ph n đư c li t kê l n lư t theo th t : âm đ u, âm đ m, âm chính, âm cu i, thanh đi u. Ví d , [?,?,a,i,?] s kh p v i b t c âm ti t nào có âm chính là ‘a’ và âm cu i là ‘i’. [?,?,?,?,Hook] s kh p v i b t c âm nào dùng thanh h i. Các m u âm ti t này đư c t p h p l i đ t o nên t p nh m nh ng. M t t p nh p nh ng bao g m nhi u m u âm ti t. Ví d , ta có t p nh p nh ng [?,?,ư,t,?] và [?,?,ư,c,?] th hi n s nh p nh ng gi a nh ng âm ti t “ưc” và “ưt”. T p nh p nh ng có ki u là confusion_set. T t c các t p nh p nh ng đư c lưu vào m t m ng, đư c truy c p thông qua hàm 135 CHƯƠNG 5. CÀI Đ T 5.3. LƯ I T 5.3.5 C N TT – Đ H K H TN get_confusion_sets(). Hàm Syllable::apply() dùng đ áp m u vào âm ti t đã có. Các thành ph n tư ng minh trong m u s ghi đè các thành ph n tương ng trong âm ti t. Nhưng thành ph n quy đ nh không t n t i trong m u s b lo i b kh i âm ti t. Nh ng thành ph n không đư c quy đ nh trong m u s đư c gi nguyên. Các thành ph n quy đ nh t n t i s t o ra m t t p các âm ti t khác nhau, m i âm ti t tương ng v i m t giá tr có th có c a thành ph n đó. S d ng hai hàm trên, hàm FuzzyWordState::get_next() làm ph n vi c còn l i là g n k t match(), apply() và t p nh m l n đ tìm ra các âm ti t phát âm g n gi ng. Hàm l n lư t duy t qua các m u âm ti t trong t ng t p nh m l n. N u âm ti t đang xét kh p v i m t m u âm ti t trong t p nh m l n (match()), các âm ti t còn l i c a t p nh m l n s đư c áp vào âm ti t đang xét (apply()) đ t o ra các âm tương t . Âm ti t m i s l i đư c duy t qua t p nh m l n như âm ti t đã xét đ t o ra thêm các âm ti t tương t khác. Quá trình này s d ng l i khi không có âm ti t m i nào đư c phát sinh. Sau đó, các âm ti t s đư c so sánh v i t đi n ti ng đ l c b nh ng âm ti t không đúng. Danh t riêng K H O A M t danh sách 8000 tên riêng đư c s d ng đ t o m t t p các ch thư ng hình thành tên riêng. Nh ng ch liên ti p nhau n m trong danh sách này đư c coi là m t tên riêng. Hàm mark_proper_name() b sung nh ng nút P ROP vào lư i t cho nh ng tên riêng đư c tìm ra. Nh ng t vi t hoa sai chính t đư c b sung thêm vào lư i t d a vào l p UpperWordState. 136 CHƯƠNG 5. CÀI Đ T 5.3.6 5.4. B T L I CHÍNH T L i bàn phím B t l i chính t Đ 5.4 H K H TN Li bàn phím đư c cài đt thông qua các lp KeyRecover, CharInserter, CharEraser, CharTransposer và hàm im_recover(). Hàm im_recover(), g i đ n hai hàm vni_recover() và telex_recover() dùng đ ph c h i phím t hai ki u gõ trên. Các hàm này đư c s d ng trong hàm get_syllable_candidates(). Các ph n x lý bàn phím khác cũng đư c x lý trong hàm này. C N TT – Trình b t l i chính t bao g m hai l p chính là l p Text. L p Text đ i di n cho m t đo n văn b n trong toàn b văn b n. L p này th c hi n toàn b công đo n tìm l i chính t . Các chu i đư c s d ng đ giao ti p gi a l p này và các l p khác là UTF-8. Các bi n quan tr ng trong l p Text: • vspell tr đ n đ i tư ng VSpell qu n lý đ i tư ng này. K H O A • offset,length: v trí và đ dài c a đo n văn b n do đ i tư ng này x lý, xét trong toàn b văn b n c a vspell. Trong l p Text, hàm sentence_check() ti n hành ki m tra chính t m t câu. Hàm này th c hi n h u như toàn b công đo n b t l i chính t , mô t trong thu t toán 5.4 trang k ti p. Hàm syllable_check() ki m l i ti ng (thu t toán 5.5 trang 139). Hàm word_check() ki m l i t (thu t toán 5.6 trang 139). 137 CHƯƠNG 5. CÀI Đ T 5.4. B T L I CHÍNH T K H TN 1. Tách token. 2. Chu n hoá các ti ng. 3. G i syllable_check() đ ki m tra. N u có l i ti ng, g i ui_syllable_check() đ yêu c u ngư i dùng s a l i, sau đó k t thúc (tr v false — v n còn l i). H 4. Xây d ng lư i t . Đ 5. B sung lư i t : • Áp d ng separator. ng (tùy theo các thông s C N TT 6. Xây d ng DAG tương penalty . . . ). – • Đánh d u tên riêng. v trigram, 7. Tìm cách tách t t t nh t. • N u có chu n hoá, s d ng Bellman-Ford. • N u không có chu n hoá, s d ng PFS. K H O A 8. G i word_check() đ ki m tra. N u có l i, g i ui_word_check() đ yêu c u ngư i dùng s a l i, sau đó k t thúc (tr v false — v n còn l i). 9. K t thúc, tr v true — s ch l i. Thu t toán 5.4: Text::sentence_check() 138 CHƯƠNG 5. CÀI Đ T 5.4. B T L I CHÍNH T 1. Duy t l n lư t t ng ti ng trong câu. Th c hi n: K H TN (a) G i VSpell::in_dict(), ki m tra id xem ti ng đó có chưa. N u đã có, k t thúc (tr v true — không có l i). (b) G i StringArchive::in_dict(), ki m tra xem cid c a ti ng có trong t đi n ti ng không. N u có, phân tích ti ng, l y d ng ch thư ng, đúng quy cách b d u c a ti ng. Ki m tra xem ti ng m i có gi ng v i ti ng cũ hay không (l i b d u sai v trí). N u có, k t thúc (tr v true — không có l i). H (c) Tr v false — l i. Đ 2. N u tr v false, đưa ti ng vào danh sách ti ng g p l i. Ti p t c duy t các ti ng còn l i. – 3. Tr v true n u danh sách các ti ng g p l i là r ng. C N TT Thu t toán 5.5: Text::syllable_check() 1. Duy t l n lư t các t trong cách tách t đã có. K H O A 2. L y danh sách id c a các ti ng c a t — sylls2. 3. L y danh sách cid c a các ti ng c a t — sylls. 4. N u sylls không trùng kh p v i các ti ng trong câu (dùng cid) và sylls2 không có trong t đi n riêng c a VSpell, lưu t vào danh sách t g p l i. 5. Tr v true n u danh sách các t g p l i là r ng. Thu t toán 5.6: Text::word_check() 139 CHƯƠNG 5. CÀI Đ T 5.4. B T L I CHÍNH T K H O A C N TT – Đ H K H TN Ta th y Text là m t l p abstract. M t s hàm như ui_syllable_check(), ui_word_check() c n ph i đư c cài đ t trong l p d n xu t. Đây là nh ng hàm giao ti p v i ngư i dùng. Tùy môi trư ng s d ng mà các hàm này đư c cài đ t cho thích h p. Dù cài đ t theo cách nào, nhi m v c a nh ng hàm này v n như nhau: yêu c u ngư i dùng đưa ra quy t đ nh. Sau khi l p danh sách t đ ngh , Text s g i các hàm này. Các hàm này ph i li t kê danh sách t đ ngh và ch ngư i dùng quy t đ nh ch n t nào. L p VSpell là l p chính, đ i di n cho mô hình b t l i chính t , đư c dùng đ giao ti p v i chương trình s d ng b t l i chính t . L p này s d ng Text đ ti n hành b t l i chính t . L p VSpell qu n lý m t t đi n riêng c a chính nó, đư c b sung b i ngư i dùng. Do chương trình không th đ t đư c m t t đi n hoàn ch nh, t đi n này đư c dùng đ b sung cho t đi n đã có. Nh ng ký hi u, các t nư c ngoài . . . không đư c nh n di n b i chương trình cũng s đư c thêm vào t đi n này sau khi ngư i dùng đã ki m tra nh ng t đó và xác đ nh r ng nh ng t đó là chính xác. VSpell bao g m hai t đi n: t đi n t (VSpell:words) và t đi n ti ng (VSpell::syllables). Ngoài ra VSpell còn duy trì m t danh sách các separator (VSpell::sepaparators). Hàm check() ti n hành ki m l i chính t cho m t đo n văn b n (thu t toán 5.7 trang k ti p). L p VSpell không s d ng tr c ti p Text mà s d ng l p d n xu t t Text. Đ t o ra m t đ i tư ng Text, VSpell d a vào đ i tư ng thu c l p TextFactory. Đ i tư ng này có nhi m v t o ra đ i tư ng Text cho VSpell. 140 5.4. B T L I CHÍNH T K H TN CHƯƠNG 5. CÀI Đ T 1. Văn b n UTF-8 đư c lưu vào utf8_text. 2. L p sang VISCII, dùng Đ H (a) Chuy n văn b n t UTF-8 viet_to_viscii_force. (c) Duy t t ng câu. T o đ i tư ng Text m i (TextFactory::create()). Đ t offset,length cho đ i tư ng Text. G i Text::sentence_check(). N u tr v false, ng ng duy t các câu còn l i. C N TT i. ii. iii. iv. – (b) Tách câu (sentences_split()). (d) N u sentence_check() tr v true v i m i câu, d ng l p. K H O A 3. Tr v true. Thu t toán 5.7: VSpell::check() 141 CHƯƠNG 5. CÀI Đ T 5.4.1 5.4. B T L I CHÍNH T Separator K H TN Ph n trên có đ c p đ n “separator”. Separator t n t i vì b tách t c a chương trình không th nào hoàn ch nh. Separator giúp h tr trình tách t tách đúng hơn. Separator là nh ng d u hi u, ch ra r ng m t v trí nào đó trong câu là ranh gi i t , không th t n t i m t t đi ngang qua v trí đó. Ví d , chương trình tách t “ ông quan tài th t đ y ”. Ta s chen m t separator vào gi a “quan” và “tài”. Nh v y, chương trình s ch n ra m t cách tách t khác “ ông quan tài th t đ y ”. – Đ H Separator đư c s d ng trong ph n hi u ch nh lư i t . Sau khi đã hoàn t t t o lư i t , thu t toán 5.8 s duy t qua toàn b lư i t , lo i b b t c t nào vi ph m separator. C N TT 1. S p x p danh sách separator theo th t xu t hi n. 2. Duy t l n lư t t ng separator, b t đ u t 0. (a) Duy t l n lư t t t c các t trong lư i t . (b) Lo i b nh ng t c t ngang qua separator đang xét. K H O A Thu t toán 5.8: Text::apply_separators() 5.4.2 vspell-gtk Như đã nói, các l p trong VSpell, Text ch t p trung vào ph n x lý văn b n. Ph n giao ti p đư c tách riêng (n m trong hai hàm Text::ui_word_check() và Text::ui_syllable_check()). Chương trình vspell-gtk đư c t o ra nh m m c đích minh ho cách cài đ t hai hàm này. Chương trình là m t 142 CHƯƠNG 5. CÀI Đ T 5.4. B T L I CHÍNH T K H O A C N TT – Đ H K H TN b b t l i chính t đ c l p. Tuy nhiên, đ chương trình th c s h u d ng, trình b t l i chính t nên đư c tích h p v i các chương trình liên quan đ n x lý văn b n như AbiWord, OpenOffice, GEdit, Evolution . . . Chương trình có giao di n như trong hình 5.2. Sau khi nh p li u, ta nh n nút “Check”. Chương trình ki m l i hai giai đo n: ki m l i ti ng và ki m l i t . Ph n đư c ki m tra s đư c tô s m. Các t nhi u ti ng đư c g ch dư i. Nh ng t /ti ng b sai đư c tô đ m. T đang đư c s a s đư c tô đ . Nh n “Ignore” s b qua l i hi n t i, chuy n sang l i k , l n lư t xoay vòng l i. Nh n “Ignore all” s b qua hoàn toàn m t giai đo n ki m l i (ti ng ho c t ), chuy n qua giai đo n k (ho c k t thúc quá trình ki m tra). Đ s a l i, ta ch n t trong khung “Candidates” ho c t nh p t m i, sau đó nh n nút “Enter” bên c nh. Hình 5.2: Giao di n vspell-gtk 143 CHƯƠNG 5. CÀI Đ T 5.4. B T L I CHÍNH T K H TN vspell-gtk t o l p MyText d n xu t t Text. Các hàm ui_syllable_check() và ui_word_check() đư c cài đ t như trong thu t toán 5.9 và 5.10 trang k ti p. MyText có thêm vài hàm ph đ hi n th như show_wrong_syllables(), show_wrong_words() và show_words(). 1. Duy t l n lư t t ng ti ng b sai trong danh sách ti ng sai. 2. Hi n ti ng sai dùng hàm show_wrong_syllables(). ngh dùng danh sách ti ng Đ H 3. L p danh sách ti ng đ get_syllable_candidates(), hi n th lên màn hình. 4. Đ t processed, ignore_all, ignore là false. C N TT – 5. L p liên t c (như ng quy n x lý cho Gtk+) cho đ n khi bi n ignore ho c ignore_all ho c processed là true. (Khi các nút tương ng đư c nh n, giá tr các bi n này s b thay đ i). 6. N u ignore là true, quay l i t đ u (chuy n qua t b sai k ti p). 7. N u ignore_all là true, k t thúc (tr v true — “s ch l i” do ngư i dùng không mu n ki m tra l i ti ng n a). K H O A 8. N u processed là true. (a) L y ti ng do ngư i dùng ch n (ho c nh p m i). (b) Thay th ti ng b sai trong câu b ng ti ng c a ngư i dùng. (c) Thêm ti ng này vào t đi n ti ng c a VSpell. (d) K t thúc, tr v false — còn l i. Thu t toán 5.9: MyText::ui_syllable_check() 144 CHƯƠNG 5. CÀI Đ T 5.4. B T L I CHÍNH T K H TN 1. Duy t l n lư t t ng t b sai trong danh sách t sai. 2. Hi n t sai dùng hàm show_wrong_words(). 3. L p danh sách t đ ngh dùng t đư c dùng trong cách tách t đùng khi áp d ng mô hình ngôn ng . 4. Đ t processed, ignore_all, ignore là false. Đ H 5. L p liên t c (như ng quy n x lý cho Gtk+) cho đ n khi bi n ignore ho c ignore_all ho c processed là true. (Khi các nút tương ng đư c nh n, giá tr các bi n này s b thay đ i). – 6. N u ignore là true, quay l i t đ u (chuy n qua t b sai k ti p). C N TT 7. N u ignore_all là true, k t thúc (tr v true — “s ch l i” do ngư i dùng không mu n ki m tra l i t n a). 8. N u processed là true. (a) L y t do ngư i dùng ch n (ho c nh p m i). K H O A (b) Tìm ký t ‘|’. Các ký t này đ i di n cho separator. N u có, thêm nh ng separator này vào VSpell, k t thúc — tr v false. (c) Thay th t b sai trong câu b ng t c a ngư i dùng. (d) Thêm t này vào t đi n t c a VSpell. (e) K t thúc, tr v false — còn l i. Thu t toán 5.10: MyText::ui_word_check() 145 CHƯƠNG 5. CÀI Đ T 5.5. HU N LUY N 5.5 Hu n luy n 5.5.1 D li u hu n luy n K H TN D li u g c bao g m: danh sách t và các văn b n ti ng Vi c thu th p t m ng VnExpress1 . Nhi m v : • T o danh sách ti ng, chu n hoá danh sách ti ng. H • Ti n x lý ng li u. 5.5.2 D li u ngu n – Đ • Hu n luy n ngram, t o ra d li u ngram. C N TT D li u ngu n bao g m danh sách t và ng li u ti ng Vi t. D li u đư c lưu dư i d ng mã VISCII. Danh sách t K H O A Đây là m t t p tin văn b n lưu t t c các t đư c dùng trong ti ng Vi t, m i t m t dòng. Các ch cách b i m t kho ng tr ng. Ng li u hu n luy n Bao g m m t lo t các t p tin văn b n ti ng Vi t. M i dòng là m t đo n văn b n. 1 http://www.vnexpress.net 146 CHƯƠNG 5. CÀI Đ T 5.5.3 5.5. HU N LUY N Ti n x lý ng li u hu n luy n K H TN D li u thu đư c t VnExpress bao g m m t lo t các file html, chia thành nhi u thư m c. htmltidy đư c s d ng đ chuy n d li u html v d ng xhtml. Các file html c a VnExpress không hoàn toàn tuân theo chu n html, bao g m hai trư ng h p: • S d ng tag <vne> H • Không đóng tag <frame> C N TT – Đ Hai l i này đư c t đ ng phát hi n và s a ch a trư c khi chuy n d li u cho htmltidy. Sau khi ch y htmltidy, ta đư c d li u xhtml h p khuôn d ng. Phân tích các tài li u này cho th y ph n n i dung chính thư ng n m trong tag <vne>, ho c trong tag <table> v i thu c tính id là “CContainer”. XSLT đư c s d ng đ l c ra ph n n i dung n m gi a hai tag này (z.xslt). Trình convert.sh s th c hi n bư c htmltidy và xslt trên. Cách s d ng: convert.sh < input > output K H O A Sau bư c này, ta c n l c b các tag, lo i b các entity . . . đ đưa d li u v d ng văn b n thu n túy. Do s lư ng tag đư c đ nh nghĩa html r t nhi u nên ch x lý nh ng tag nào đư c s d ng trong VnExpress (thông qua chương trình gettags.pl). Các tag này đư c lo i b b ng html2text.pl. Các mã utf-8 đư c s d ng trong VnExpress (thông qua chương trình z.c) đư c chuy n v mã VISCII qua z.cpp. Các entity còn l i (l y b ng list-entity.pl) đư c x lý trong html2text.pl. html2text.pl s d ng các tag đ tách d li u thành các đo n. D li u sau cùng là các t p tin văn b n, m i dòng là m t đo n. 147 CHƯƠNG 5. CÀI Đ T 5.5.4 5.6. LINH TINH Hu n luy n d li u K H TN Chương trình wfst-train đư c dùng đ hu n luy n d li u. Thông tin nh p là danh sách t , danh sách ti ng, ngram (n u có). Thông tin xu t là ngram m i. Quy trình x lý c a trình hu n luy n đư c nêu trong thu t toán 5.11. Chương trình đư c l p đi l p l i nhi u l n. 1. Đ c t ng dòng. H 2. Tách câu. Đ 3. Táck token. 4. Xây d ng lư i t (Lattice::construct()). – 5. Tìm cách tách t t t nh t. C N TT 6. Th ng kê ngram cho câu. 7. X lý câu k ti p. K H O A Thu t toán 5.11: Quy trình hu n luy n 5.6 Linh tinh 5.6.1 X lý b ng mã Chương trình giao ti p b ng Unicode UTF-8. Tuy nhiên, đ ti n vi c x lý, n i b chương trình s d ng mã VISCII. Do VISCII không th bao quát h t Unicode, nh ng ký t Unicode không có trong VISCII s đư c thay b ng m t ký t đ c bi t (coi như là ký t không bi t). Sau khi x lý VISCII xong, 148 CHƯƠNG 5. CÀI Đ T 5.6. LINH TINH chu i so sánh th t s s là chu i Unicode. H u h t các l p s d ng VISCII. Hai l p s d ng c UTF-8 và VISCII là VSpell và Text. So sánh chu i K H TN 5.6.2 X lý ti ng Vi t C N TT 5.6.3 – Đ H Do m i chu i đ u đư c lưu thành strid. Vi c so sánh chu i không phân bi t hoa thư ng là không th th c hi n đư c. Do v y, ngoài strid “id” tham chi u đ n chu i g c, ta s d ng thêm “cid” tham chi u đ n chu i đư c dùng đ so sánh chu i. “cid” m c đ nh trong câu tham chi u đ n chu i đã chu n hoá. N u c n, “cid” s tham chi u đ n chu i chu n hoá, vi t thư ng. Khi c n thi t ph i so sánh chu i th t s , chương trình s dùng “id” đ truy ngư c đ n chu i g c, sau đó th c hi n phép so sánh chu i thông thư ng. M t s hàm đư c t o ra đ h tr vi c x lý ti ng Vi t, bao g m: K H O A • viet_toupper, viet_tolower, viet_isupper, viet_islower, viet_isalpha, viet_isdigit, viet_isxdigit, viet_isspace, viet_ispunct: Các hàm ti ng Vi t thay th cho các hàm g c (toupper, tolower . . . ) • viet_utf8_to_viscii(): Chuy n t UTF-8 sang VISCII. Tr v false n u không th chuy n đ i. • viet_utf8_to_viscii(): Chuy n t UTF-8 sang VISCII. Nh ng ký t không th chuy n đư c s đư c thay b ng ‘z’. • viet_viscii_to_utf8(): Chuy n t VISCII sang UTF-8. 149 K H TN Chương 6 H Đánh giá và k t lu n C u trúc d li u . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Lưu chu i . . . . . . . . . . . . . . . . . . . . . . . . . . 122 C N TT 5.1.1 – 5.1 Đ M cl c 5.1.2 5.1.3 Câu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.1.4 Lư i t 5.1.5 Cách tách t 5.1.6 Mô hình ngôn ng . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 . . . . . . . . . . . . . . . . . . . . . . . . 125 . . . . . . . . . . . . . . . . . . . . . 125 Ti n x lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 K H O A 5.2 T đi n . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.2.1 5.2.2 5.3 Tách token . . . . . . . . . . . . . . . . . . . . . . . . . 126 Tách câu . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Lư i t 5.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 T o lư i t . . . . . . . . . . . . . . . . . . . . . . . . . 126 T o lư i t Lattice . . . . . . . . . . . . . . . . . . . . . 126 Tìm t chính xác . . . . . . . . . . . . . . . . . . 130 Tìm t không phân bi t hoa thư ng . . . . . . . . 130 150 CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N Tìm t vi t hoa b vi t sai . . . . . . . . . . . . . 130 Tìm t phát âm tương t . . . . . . . . . . . . . . 130 T o lư i t DAG . . . . . . . . . . . . . . . . . . . . . . 131 B sung lư i t . . . . . . . . . . . . . . . . . . . . . . . 132 5.3.3 Tìm cách tách t t t nh t . . . . . . . . . . . . . . . . . . 132 5.3.4 L i phát âm . . . . . . . . . . . . . . . . . . . . . . . . . 135 K H TN 5.3.2 Phân tích c u trúc âm ti t . . . . . . . . . . . . . . . . . 135 Tìm các ti ng phát âm tương t . . . . . . . . . . . . . . 135 5.3.6 L i bàn phím . . . . . . . . . . . . . . . . . . . . . . . . 137 B t l i chính t . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Đ 5.4 Danh t riêng . . . . . . . . . . . . . . . . . . . . . . . . 136 H 5.3.5 5.4.2 vspell-gtk . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Hu n luy n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 C N TT 5.5 Separator . . . . . . . . . . . . . . . . . . . . . . . . . . 142 – 5.4.1 5.5.1 D li u hu n luy n . . . . . . . . . . . . . . . . . . . . . 146 5.5.2 D li u ngu n . . . . . . . . . . . . . . . . . . . . . . . 146 Danh sách t . . . . . . . . . . . . . . . . . . . . . . . . 146 Ng li u hu n luy n . . . . . . . . . . . . . . . . . . . . 146 Ti n x lý ng li u hu n luy n . . . . . . . . . . . . . . . 147 5.5.4 Hu n luy n d li u . . . . . . . . . . . . . . . . . . . . . 148 K H O A 5.5.3 5.6 Linh tinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 5.6.1 X lý b ng mã . . . . . . . . . . . . . . . . . . . . . . . 148 5.6.2 So sánh chu i . . . . . . . . . . . . . . . . . . . . . . . . 149 5.6.3 X lý ti ng Vi t . . . . . . . . . . . . . . . . . . . . . . . 149 151 CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N 6.1 6.1. TÓM T T Tóm t t Sau đây là tóm t t các đ c đi m mô hình đư c đ ngh : K H TN • Áp d ng mô hình tách t m d a trên ngram (bigram và trigram). • C u trúc d li u d a trên lư i t — m t d ng đ th có hư ng không chu trình. Nh đó có th áp d ng thu t toán tìm đư ng trên đ th có hư ng đ tìm ra cách t t t t t nh t. Đ H • S d ng lư i 2-t cho trigram, các thu t toán làm vi c trên bigram s v n làm vi c v i trigram thông qua lư i 2-t . – • Đ th đư c hi u ch nh đ t o ra s khác bi t gi a t g c và các t phát sinh b ng cách đi u ch nh giá tr các c nh n i đ n t phát sinh. C N TT • Lo i b kh năng cách tách t ch a ít t hơn có kh năng đư c ch n cao hơn cách tách t có nhi u t hơn b ng cách chu n hoá các cách tách t thông qua lư i t đ ng. K H O A • Áp d ng đ o ngư c l i đ ph c h i l i phát âm và l i bàn phím. L i bàn phím bao g m l i gõ thi u phím, dư phím, nh m phím, nh m th t hai l n gõ. Ngoài ra còn có l i do b gõ như VNI và TELEX. • S d ng soft-count đ hu n luy n ngram nh m t o ra mô hình ngôn ng t t hơn. 6.2 Th nghi m Chương trình đư c hu n luy n d a trên ng li u t các bài báo c a m ng VnExpress.net. Ng li u s d ng có kích thư c 12283822 byte, bao g m 152 CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N 6.2. TH NGHI M Đ H K H TN 2602105 ch , kho ng 379000 câu1 . Trình hu n luy n ch y trong vòng 18 phút, trung bình kho ng 350 câu m t giây. D li u xu t bao g m 76682 unigram, 561796 bigram, 1729882 trigram v i kích thư c t ng c ng 71084052 byte. Mô hình ngôn ng ngram-ti ng bao g m 76224 unigram và 324326 bigram (8489570 byte). D li u tên riêng bao g m 790 ti ng t o thành tên ngư i, rút trích t 7567 tên. T đi n t bao g m 73940 t , bao g m 12332 ti ng. Chương trình đư c th nghi m d a trên hai t p d li u. M t t p đư c rút ra t [Hoa02]. T p d li u th hai s d ng đo n đ u lu n văn này, sau đó phát sinh l i d a trên t p nh ng ti ng nh p nh ng. Các l i v nh p li u không đư c ki m tra đây mà ch y u t p trung vào l i phát âm. Chương trình đư c th nghi m v i nhi u tham s khác nhau, bao g m: – • S d ng trigram hay bigram (P). C N TT • Chu n hoá đ dài câu hay không (C). • B t l i ch t hay không (S). • Áp d ng heuristic phát sinh t d a trên ng c nh hay không (H). K H O A K t qu th nghi m tên t p d li u 1 đư c th hi n trong b ng 6.1 trang 155. K t qu th nghi m tên t p d li u 2 đư c th hi n trong b ng 6.2 trang 156. K t qu đư c phân thành ba nhóm: non-word, real-word và total. Nhóm non-word bao g m nh ng câu ph m c l i non-word l n real-word. Nhóm real-word bao g m nh ng câu ch ph m l i real-word. Nhóm total tính trung bình c hai trư ng h p. Ba k t qu PE, NE, CE là: • PE là t l b t đúng l i chính t , và trong danh sách t đ ngh có t đúng. 1 xem ph n 4.2.2 trang 85 đ bi t các quy t c tách câu 153 CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N 6.2. TH NGHI M • NE là s l n b t nh m l i chính t trong câu. K H TN • CE là t l b t đúng l i chính t , nhưng trong danh sách t đ ngh không có t đúng. K H O A C N TT – Đ H V i nhóm non-word, trong th c t khi ph m l i non-word, chương trình s yêu c u ngư i dùng s a h t l i trư c khi tìm l i real-word. Do chương trình ki m tra ch y t đ ng nên bư c yêu c u ngư i dùng s a l i non-word đư c b qua. Vi c này làm gi m m t ph n đ chính xác so v i th c t . K t qu này cho th y hi u su t c a chương trình ph thu c vào lo i văn b n c n ki m tra. V i t p d li u 1, xác su t b t l i đúng cao nh t ch có th đ t kho ng 53% trong khi v i t p d li u 2 là 88%. Đ chênh l ch này có th do t p d li u 1 s d ng văn phong khác so v i ng li u hu n luy n (văn phong báo chí). Ngoài ra do t p d li u 1 đư c dùng đ làm bài t p b t l i chính t nên đưa ra nh ng trư ng h p l i tương đ i khó. Vi c thay đ i các tham s cũng nh hư ng đáng k đ n đ chính xác. Vi c áp d ng chu n hóa đ dài câu, l ra s c i thi n k t qu , nhưng th c t l i gi m đ chính xác đáng k . Tham s S nhìn chung tăng PE, nhưng đ ng th i cũng tăng NE. Vi c tăng NE khi áp d ng S cho th y mô hình ngôn ng chưa th t s t t, chưa tìm ra chính xác câu đúng mà có khuynh hư ng tìm nh m. Áp d ng H kèm v i S giúp gi m b t NE ph n nào, nhưng đ ng th i cũng gi m PE. Cu i cùng, vi c s d ng trigram nhìn chung giúp tăng đ chính xác. Tuy nhiên s d ng trigram cũng làm gi m tính th c t c a chương trình vì d li u trigram l n hơn r t nhi u so v i bigram (kho ng 6–7 l n). Như v y, qua kh o sát, ta th y nên áp d ng trigram, b t l i ch t kèm heuristic. Đ chính xác real-word trong trư ng h p này là 42,91% và 86,62%. Ngoài ra t l NE cũng không quá cao. 154 C N TT – Đ H K H TN 155 6.2. TH B ng 6.1: K t qu th nghi m t p d li u 1 Tham s Non-word Real-word Total T C S H PE(%) NE(%) CE(%) PE(%) NE(%) CE(%) PE(%) NE(%) CE(%) 2.09 18.38 37.76 1.08 7.48 44.56 1.72 13.48 √ 50.14 42.62 2.09 17.27 31.29 1.05 6.80 37.52 1.71 12.56 √ 3.09 21.26 47.95 2.13 27.40 55.62 2.69 24.06 √ √ 62.07 53.05 2.81 16.77 40.65 1.91 19.42 47.36 2.37 17.99 √ 2.12 15.60 25.51 1.10 6.12 32.31 1.75 11.33 √ √ 37.88 34.82 2.10 15.60 21.58 1.07 6.16 28.88 1.73 11.37 √√ 3.52 20.45 43.10 2.52 23.79 49.69 3.14 21.96 √ √ √ 55.11 47.46 3.14 15.52 34.29 2.15 16.79 41.46 2.70 16.10 √ 2.10 16.71 26.19 1.08 5.78 33.54 1.73 11.79 √ √ 39.55 37.60 2.08 16.16 24.83 1.05 6.46 31.85 1.70 11.79 √ √ 61.11 2.98 23.39 43.99 2.18 29.21 53.24 2.66 26.07 √ √√ 59.26 2.64 16.05 42.91 1.85 17.45 51.75 2.25 16.69 √√ 2.13 14.48 19.73 1.09 6.12 26.19 1.75 10.72 √√ √ 31.48 28.13 2.12 14.48 19.05 1.06 6.12 24.04 1.73 10.72 √√√ 3.09 18.58 43.36 2.12 23.08 51.68 2.70 20.64 √ √ √ √ 58.70 55.73 2.74 15.17 41.01 1.82 16.91 48.92 2.30 15.97 K H O A CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N NGHI M C N TT – Đ H K H TN 156 6.2. TH B ng 6.2: K t qu t p th nghi m d li u 2 Tham s Non-word Real-word Total T C S H PE(%) NE(%) CE(%) PE(%) NE(%) CE(%) PE(%) NE(%) CE(%) 2.71 12.41 67.87 0.95 0.93 66.66 0.65 5.39 √ 64.74 64.74 2.71 12.41 67.76 0.95 0.93 66.59 0.65 5.39 √ 6.17 19.31 78.21 4.27 9.60 76.69 1.92 13.38 √ √ 74.31 73.97 5.86 14.40 78.23 3.97 8.03 76.57 1.80 10.51 √ 2.74 12.41 43.03 0.97 0.94 36.97 0.66 5.41 √ √ 27.50 24.40 2.72 12.41 46.28 0.98 0.77 37.75 0.66 5.31 √√ 8.59 45.78 52.99 6.37 27.21 46.80 2.78 34.43 √ √ √ 37.07 33.62 8.12 41.55 56.32 5.83 23.24 47.48 2.58 30.37 √ 2.77 3.79 50.77 0.95 0.82 50.84 0.66 1.98 √ √ 50.95 50.78 2.74 4.83 50.77 0.95 0.71 50.77 0.65 2.31 √ √ 4.81 5.61 86.46 2.67 11.02 88.40 1.35 8.92 √ √ √ 91.46 90.42 4.20 3.97 86.62 2.45 7.62 88.10 1.20 6.20 √√ 2.81 0.69 21.14 0.99 0.45 24.86 0.67 0.54 √√ √ 30.60 30.78 2.81 0.69 22.64 0.99 0.45 25.84 0.67 0.54 √√√ 5.30 12.59 81.28 3.56 14.50 82.99 1.62 13.76 √ √ √ √ 85.69 85.09 4.53 10.95 82.68 3.18 12.22 83.62 1.41 11.73 K H O A CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N NGHI M CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N 6.3 6.3. ĐÁNH GIÁ Đánh giá K H O A C N TT – Đ H K H TN So v i các phương pháp khác đã đư c áp d ng đ b t l i chính t ti ng Vi t, phương pháp đư c ti n hành m t cách có h th ng, d a trên ng li u hu n luy n s n có (t công trình Lu n án Ti n sĩ Ngôn ng h c c a TS. Đinh Đi n), b o đ m tính chính xác khi ho t đ ng. Phương pháp đư c dùng trong [TPLT98] không kh thi do chưa th c hi n tách t (dùng heuristic đ đánh giá các cách tách t ). Phương pháp đư c dùng trong [TTCV02] s d ng mô hình Markov n đ t o ng li u tách t t ng li u thô, do đó không b o đ m tính chính xác c a ng li u hu n luy n. Phương pháp đư c dùng trong chương trình b t l i chính t VietSpell c a tác gi Lưu Hà Xuyên ch s d ng heuristic, không tách t . Tuy nhiên, chương trình v n có m t s h n ch nh t đ nh. Do ch s d ng thông tin v xác su t xu t hi n c a m t chu i t liên t c khi tách t m nên k t qu có ph n h n ch . Trong nhi u trư ng h p ta có th kh nh p nh ng b ng t lo i, b ng thông tin cú pháp, ho c thông tin v ng nghĩa. Thông tin xác su t l ra ch là gi i pháp b tr cho các thông tin trên. Khi nh ng thông trên không hoàn ch nh, không bao quát h t ho c không th kh nh p nh ng toàn b , khi đó ta m i dùng th ng kê như m t gi i pháp d phòng. Chính vì ch s d ng ngram d a trên t , đôi khi chương trình s ch n l m cách tách t , d n đ n vi c thông báo t sai chính t trong khi t đó hoàn toàn đúng. Ph n ki m tra t vi t hoa v n còn là m t v n đ chưa th gi i quy t tr n v n do vi t hoa đúng quy cách đôi khi đòi h i ta ph i hi u ý nghĩa c a t vi t hoa. Đi u này hi n t i không th th c hi n đư c. 157 CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N 6.4 6.4. HƯ NG PHÁT TRI N Hư ng phát tri n K H O A C N TT – Đ H K H TN Vi c áp d ng mô hình ngôn ng đ b t l i chính t không ph i là l a ch n duy nh t. Ta có th áp d ng các mô hình khác đ b t l i chính t . Tuy nhiên, ph n này s ch đ c p đ n nh ng hư ng phát tri n d trên vi c áp d ng mô hình ngôn ng . Vi c đ u tiên có th nghĩ đ n đ c i thi n ch t lư ng b t l i chính t là làm giàu ngu n tri th c đư c s d ng. Trình b t l i chính t hi n th i ch s d ng d li u thô. Đây là m t trong y u t làm gi m ch t lư ng chương trình. Ta có th s d ng mô hình ngôn ng d a trên t lo i, đ ng th i áp d ng m ng ng nghĩa ho c thông tin cú pháp (đư c dùng trong các phương pháp M t đ ng nghĩa và Văn ph m ràng bu c). Đây là m t hư ng phát tri n lâu dài, đòi h i r t nhi u công s c. Ta có th c i thi n t c đ b ng cách c i ti n các heuristic đư c dùng đ hi u ch nh lư i t . Hai heuristic quan tr ng là heuristic phân bi t t g c và t phát sinh, và heuristic phân bi t các t phát sinh v i nhau (d a vào ng c nh t g c). Heuristic ch có th đư c c i thi n b ng cách rút trích thông tin th c t đ bi t đư c t nào thư ng đư c phát sinh hơn t nào (nói cách khác, nh ng t nào là l i sai thông dùng c a t nào). Heuristic ph n ánh cách tìm l i chính t c a con ngư i. đây vi c đánh giá nh ng t có kh năng sai chính t d a trên chu i ngram c a các ti ng không ph i là m t gi i pháp hoàn h o. Ta c n tìm ra nh ng phương pháp khác nh m phát hi n t có kh năng sai chính t t t hơn. Nh ng gi i pháp b t l i chính t c m ng c nh c a ti ng Anh có th là m t kh i đ u đ tìm cách gi i quy t. Ngoài ra b t l i chính t c m ng c nh cũng là m t cách ti p c n. V n đ c a b t l i chính t c m ng c nh là áp d ng trên m t cách tách t bi t trư c, không thay đ i. Hư ng phát tri n có th là hi u ch nh đ áp d ng b t l i chính t c m ng c nh trên lư i t , thay vì trên m t cách tách t c đ nh. 158 CHƯƠNG 6. ĐÁNH GIÁ VÀ K T LU N 6.4. HƯ NG PHÁT TRI N K H O A C N TT – Đ H K H TN M t cách khác đơn gi n hơn là áp d ng b t l i chính t c m ng c nh trên t ng cách tách t có th có trên lư i t r i đ nh lư ng đ phát hi n l i. Do s lư ng cách tách t trên lư i t là r t l n, có th ta ch c n xét n cách tách t t t nh t mà thôi. 159 K H TN Tài li u tham kh o [Cha98] Chao-Huang Chang. A new approach for automatic chinese spelling correction. March 01 1998. Nguy n Đ c H i và Nguy n Ph m H i Nhi. Phân tích cú pháp ti ng vi t và b t l i chính t . Lu n văn C nhân Tin h c. ĐH Khoa h c T nhiên HCM, 1999. K H O A [cHN99] Jim Austin, Victoria J. Hodge, and Yo Dd. An evaluation of phonetic spell checkers. November 21 2001. C N TT [AHD01] – Đ H [AGSV98] Eneko Agirre, Koldo Gojenola, Kepa Sarasola, and Atro Voutilainen. Towards a single proposal in spelling correction. COLING-ACL ’98, 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics, pages 463–463, 1998. [CL92] K. J. Chen and S. H. Liu. Word identification for madarin chinese sentences. Proceedings of the Fifthteenth International Conference for Computational Linguistics, 1992. [Dam64] F. J. Damerau. A technique for computer detection and correction of spelling errors. Communications of the Association for Computing Machinery, 7(3):171–176, 1964. 160 TÀI LI U THAM KH O TÀI LI U THAM KH O Dinh Dien, Hoang Kiem, and Nguyen Van Toan. Vietnamese word segmentation. NLPRS, 11 2001. [GLH03] Jianfeng Gao, Mu Li, and Chang-Ning Huang. Improved source-channel models for chinese word segmentation. 2003. [Gol95] Andrew R. Golding. A bayesian hybrid method for contextsensitive spelling correction. Proceedings of the Third Workshop on Very Large Corpora, pages 39–53, 1995. [GR99] Andrew R. Golding and Dan Roth. A winnow-based approach to context-sensitive correction. Machine Learning, Special issue on Machine Learning and Natural Language Processing, 34:107–130, 1999. [GS96] Andrew R. Golding and Yves Schabes. Combining trigrambased and feature-based methods for context-sensitive spelling correction. Proceedings of the 34th Annual Meeting of the Association for Computational Linguistics, 1996. C N TT TS. Lê Trung Hoa. L i chính t và cách kh c ph c. NXB Khoa h c Xã h i, 2002. K H O A [Hoa02] – Đ H K H TN [DKT01] [iiND03] Đinh Đi n, Nguy n Th ng Nh t, và Nguy n Thái Ng c Duy. Cách ti p c n th ng kê cho h d ch t đ ng vi t-anh. T p chí phát tri n KHCN, 6:27–33, 2003. [Knu73] D. E. Knuth. The Art of Computer Programming. Vol. 3: Sorting and Searching. Addison Wesley, 1973. [KSM97] Theppitak Karoonboonyanan, Virach Sornlertlamvanich, and Surapant Meknavin. A thai soundex system for spelling correc161 TÀI LI U THAM KH O TÀI LI U THAM KH O tion. Proceedings of the National Language Processing Pacific Rim Symposium, 1997. K H TN [LVHA94] F. Larlsson, A. Voutilainen, J. Heikkila, and A. Anttila. Constraint Grammar: a Language-Independant System for Parsing Unrestricted text. Berlin and New York: Mouton de Gruyter, 1994. Lidia Mangu and Eric Brill. Automatic rule acquisition for spelling correction. 1997. [McI82] M. Douglas McIlroy. Development of a spelling list. IEEE Transactions on Communications, COM-30(1.1):91–99, 1982. [Ofl96] Kemal Oflazer. Error-tolerant finite-state recognition with applications to morphological analysis and spelling correction. CL, 22(1):73–89, 1996. [Pal97] David Palmer. A trainable rule-based algorithm for word segmentation. Proceedings of the 35th Annual Meeting of the Association for Computational Linguistics, 1997. James Lyle Peterson. Computer programs for detecting and correcting spelling errors. Communications of the Association of Computing Machinery, 23(12):676–687, 1980. K H O A [Pet80a] C N TT – Đ H [MB97] [Pet80b] James Lyle Peterson. Computer Programs For Spelling Correction. Springer-Verlag, Inc., Berlin, Germany / Heidelberg, Germany / London, UK / etc., 1980. 162 TÀI LI U THAM KH O TÀI LI U THAM KH O Fuchun Peng and Dale Schuurmans. Self-supervised Chinese word segmentation. Lecture Notes in Computer Science, 2189:238–242, 2001. [PSG99] A Pratt, Padhraic Smyth, and Xianping Ge. Discovering chinese words from unsegmented text. August 22 1999. [Rav96] Mosur K. Ravishankar. Efficient Algorithms for Speech Recognition. PhD thesis, Carnegie Mellon University, 1996. K H TN [PS01] Đ H [RMBB89] R. Rada, H. Mili, E. Bicknell, and M. Blettner. Development an application of a metric on semantic nets. IEEE Transactions on Systems, Man and Cybernetics, 19(1):17–30, 1989. [Sto02] Andreas Stolcke. Srilm - an extensible language modeling toolkit. Proc. Intl. Conf. Spoken Language Processing, Denver, Colorado, 9 2002. Nguy n Văn Toàn và Nguy n Th Minh H ng. Tách t ti ng vi t. Lu n văn C nhân Tin h c. ĐH Khoa h c T nhiên HCM, 2001. K H O A [TH01] C N TT – [SSGC96] Richard W Sproat, Chilin Shih, William Gale, and Nancy Chang. A stochastic finite-state word-segmentation algorithm for Chinese. CL, 22(3):377–404, 1996. [TND03] Nguy n Văn Toàn, Văn Chí Nam, và Nguy n Thái Ng c Duy. Xây d ng WordNet ti ng vi t. H i th o qu c gia l n 6. M t s v n đ CNTT, truy n thông, ch đ x lý ngôn ng , 2003. [TPLT98] PTS. Phan Th Tươi, KS. Nguy n H a Phùng, KS. Huỳnh V Như Liên, và KS. Ph m Quy t Th ng. B t l i chính t t 163 TÀI LI U THAM KH O TÀI LI U THAM KH O đ ng cho ti ng vi t b ng máy tính. Đ tài nghiên c u khoa h c S Khoa h c Công ngh và Môi trư ng, 1998. K H TN [TTCV02] Nguy n Phương Thái, Nguy n Qu c To n, Lê Văn Cư ng, và Nguy n Văn Vinh. Ki m l i chính t ti ng vi t s d ng danh sách quy t đ nh. 2002. K H O A C N TT – Đ H [WGLL00] Hai-Feng Wang, Jianfeng Gao, Kai-Fu Lee, and Mingjing Li Li. A unified approach to statistical language modeling for chinese. June 2000. 164 H D li u ki m tra K H TN Ph l c A K H O A C N TT – Đ Th Kính không th gi i bày n i oan c a mình. M i ngư i ph i n l c lao đ ng. Bà c b l ng tai. Trong phòng h p, m i ngư i nói chuy n se s . Chi c t r t n ng, nhưng nhi u ngư i khiêng, tr nên nh b ng. C n chăm s kĩ m m ông bà. Con cãi cha m , trăm đư ng con hư. Con anh Tri u m i h c l p v lòng. Có v l là đi u không t t. Công vi c còn đang l d . B ép rư c khách, Ki u t v n. Khi m i kh i b nh, nên c ăn. B b t qu tang gian l n, thí sinh b m t. Không đư c u ng nư c lã. Chi c thuy n đã chìm ngh m. Lũ l n đã v . Chi c chõng tre đ t dư i g c d a. Ăn c đi trư c, l i nư c đi sau. M i h c, nó không hay tôi bư c vào. Vác n ng, ngư i công nhân ư t đ m m hôi. M nh v i l c , may áo thì th a, may qu n thì thi u. 165 (gi i,giãi) (n ,n ) (l ng,lãng) (se s ,se s ) (b ng,b ng) (m ,mã) (cãi,c i) (v ,v ) (l ,l ) (l d ,l d ) (v n,v n) (c ,c ) (b ,b ) (lã,l ) (ngh m,nghĩm) (lũ,l ) (chõng,ch ng) (c ,c ) (m i,mãi) (đ m,đ m) (l c ,l c ) PH L C A. D LI U KI M TRA K H O A C N TT – Đ H K H TN Cháu bé đang u ng s a. (s a,s a) H c sinh ng mũ chào th y giáo. (ng ,ngã) Trong nhà chưa t , ngoài ngõ đã hay. (ngõ,ng ) Sinh viên bãi khoá, h c sinh bi u tình. (bãi,b i) Câu văn này còn l ng c ng. (l ng c ng,lũng cũng) Nó b n b theo đu i ư c mơ. (b ,bĩ) Lan ni m n ti p b n. (n ,n ) T giã quê hương, tác gi luôn luôn nh đ n con sông. (giã,gi ) Đ n ngã b y, nó không bi t đi theo ng nào. (ngã,ng ) Nhà khoa h c k p con đ a b lên cái đĩa. (đ a,đĩa) Hai c u bé giành nhau thanh g nên gây g nhau. (g ,g ) Cháu bé m i nhìn đ chơi, m g i mãi không nghe. (m i,mãi) Bà c ng ngư i trên lưng gh , gh gãy, c b ngã. (ng ,ngã) Ông lão hơi ngà ngà, bư c đi l o đ o. (lão,l o) L c sĩ y m nh đ n n i vác n i m t bao cát n ng 120 kg. (n i,n i) Anh y thư ng nghĩ ng i c trong gi ngh ngơi. (nghĩ ng i,ngh ngơi) Ông giám đ c l n tránh câu tr l i vì s nh m l n. (l n,l n) Ngư i ch b cái cũi hư đ làm c i. (cũi,c i) Bà n i tr m thùng m ra xem. (m ,m ) Vì sĩ di n, nh c s không th a nh n s sai l m c a mình. (sĩ,s ) Nó x nư c trong ru ng ra con kinh c a x . (x ,xã) Cô y gi v b cành cây đ đ b m t. (b ,b ) Vào hang sâu, ngư i m khuyên nh con không nên r vào các th ch nhũ. (nh ,nhũ) Ông y c m th y l loi vì l v ông đã qua đ i. (l ,l ) Dù đư c khuyên gi i, nó v n nghĩ v v n. (v n,v n) Mây trôi l ng lơ, dòng nư c l ng l . (l ng lơ,l ng l ) Ăn h t n a con gà, ngư i l c sĩ ti p t c ăn n a. (n a,n a) K c n th n thư ng d n dò c n k . (k ,k ) Đ ng c lang này m i đào t m nh đ t cũ. (c ,cũ) Nên l ng tránh nh ng ngư i lãng m ng. (l ng,lãng) V thu c đ t c nh cây vĩ c m. (v ,vĩ) Ngư i vi n khách không thích nói chuy n vi n vông. (vi n,vi n) Sau chuy n l hành, nó m t l . (l ,l ) Có ti ng la b i h i trên bãi bi n. (b i,bãi) 166 PH L C A. D LI U KI M TRA K H O A C N TT – Đ H K H TN Ông sãi đang bư c s i trên sân chùa. (sãi,s i) S a xe xong, ba đi mua h p s a. (s a,s a) G p v n bĩ, chàng thanh niên y v n b n b ph n đ u th c hi n lí tư ng. (bĩ,b ) Nó nói d i, r đư c b n đi chơi, thích chí cư i rũ rư i. (r ,rũ) Ai b o v i anh năm nay không có bão? (b o,bão) Bã rư u không th làm b chu t. (bã,b ) Đòn b y không ph i là cái b y. (b y,b y) K t qu ch ng bõ công so v i công s c đã b ra. (bõ,b ) Dũng m c qu n ka ki. (ka,ca) Ba c a Tài m i mua m t chi c ghe. (ghe,ge) Ng c làm vi c trong ngành tin h c. (ngành,nghành) Chàng trai chiêm ngư ng b c tư ng. (chiêm,triêm) Bài làm còn nhi u ch sơ su t. (su t,xu t) Dòng nư c ch y xi t. (dòng,giòng) B n Dũng không thích m c áo hoa hòe. (hòe,ngòe) L tay trót đã nhúng chàm. (l ,l ) (trót,chót) Ngư i th săn b t đư c con cheo. (cheo,treo) C u bé bi t như ng cơm s áo. (s ,x ) Ngư i v y r t son s t. (son s t,xon x t) Không nên gièm pha ngư i khác. (gièm,dèm) Cô bé không bao gi gi u m đi u gì. (gi u,d u) Cháo bé khóc oe oe. (oe oe,hoe hoe) Anh Dũng chèo ghe ra bi n. (chèo,trèo) Bài làm c a Hùng y chang bài làm c a Dũng. (chang,trang) Chi c bàn đ t sát c a s . (sát,xát) M x dưa cho các con ăn. (x ,s ) Trăng tròn vành v nh. (vành v nh,dành d nh) Hoàn c nh gia đình y r t gieo neo. (gieo neo,deo neo) Duyên t sân n ng bư c vào nhà, hoa c m t. (hoa,oa,qua) Cu c s ng c a nàng Ki u th t ê ch . (ch ,tr ) Hành đ ng c a Tr nh Hâm th t đáng chê trách. (trách,chách) Vân Tiên n u s xôi kinh trong nhi u năm dài. (xôi,sôi) Bùi Ki m không bi t th nào là liêm s . (s ,x ,sĩ) Nên như ng nh n nhau đ tránh va ch m. (va,da,gia) 167 PH L C A. D LI U KI M TRA (giành,dành) (gia,da) (trung,chung) (chuy n,truy n) (chi,tri) (chong,trong) (cheo,treo) (tr m,ch m) (trót,chót) (x ,s ) (s m,x m) (sì,xì) (x ,s ) (sinh,xinh) (x ,s ) (x p,s p) (v a,d a) (dành,giành) (gi ,v ,d ) (gián,dán) (giày,dày) (v y,d y) (d c,gi c) (giao,dao) (quá,hoá) (quãng,ho ng) (oán,quán) (quĩ,h y,qu ) (qua,hoa) (hoang,ngoan) (hoà,quà) (hun,hung) (mút,múc) (mu ng,mu n) (mu t,mu c) K H O A C N TT – Đ H K H TN Ng c Dũng đã giành gi i nh t cu c thi. Ch coi tr ng vi c vinh thân thì gia. H i ngh t p trung th o lu n nh ng v n đ chung. Lan thích nghe k chuy n hơn đ c truy n. Anh hà ti n không ch u chi ti n đ có nhi u tri th c. H c sinh chong đèn h c bài trong đêm. Ngư i th săn đang c t con cheo, treo lên cành cây. C u bé tr m tr khen ng i ngư i th ch m nón. Nó trót h n v i b n đi chuy n tàu chót. Tùng x dưa đ chia s v i b n. Tr i s m t i, bà x m d n hàng vào. R m t bàn th y nhám sì, ngư i ch xì m t ti ng. Y tá ghi s lư ng thu c x vào s . Sau khi sinh con, ch y trong h t xinh. Khi x lí m t v n đ , ta ph i xem xét l ch s c a nó. Ôm x p báo quá n ng, c u bé té s p xu ng đ t. Nó v a u ng nư c d a xiêm v a nói chuy n. Không nên dành nhi u thì gi cho vi c giành quy n l i. H c sinh gi cu n v đ đ c ti p trang đ c d . Con gián căn nham nh t gi y có dán h . Đôi giày này đ r t dày. Sáng nào cũng v y, ông ta d y s m đ t p th d c. Giao du v i b n x u, tính t t c a nó b dao đ ng. Nó phóng nhanh quá, b c nh sát gi l i, hoá ra l i ch m. Đ n quãng đư ng v ng và t i quá, chú bé ho ng s . Ngư i khác oán ông ch quán tính giá th c ph m quá cao. Đ ch y t i, cô th quĩ qu quy t đã h y m t s ch ng t . Sáng hôm qua, cây mai đã n hoa. C u bé này r t hoang, không còn ngoan như ngày trư c. Anh em hoà thu n, đư c cha m cho quà. L ch s đã hun đúc nên nh ng anh hùng dân t c. Các em bé r t thích mút k o. Rau mu ng có nhi u ch t b . Đôi bàn tay ch y tr ng mu t. 168 PH L C A. D LI U KI M TRA K H O A C N TT – Đ H K H TN Hai chưn ông ta trong th t r n ch c. (chưn,chưng) M t g ng là lo i m t r t cay. (m t,m c) Cá đ lâu s b ươn. (ươn,ương) Ăn bánh ư t v i ch l a r t ngon. (ư t,ư c) Khay tr u c a m trông th t đ p m t. (khay,khai) Đôi môi em bé gái đ au. (au,ao) Tr i rét căm căm, anh y v n t p th d c. (căm căm, câm câm) Các h c sinh ti u h c thích c p kè nhau đi. (c p,c p) Hu , ngư i ta thư ng th di u nhân d p l t t. (di u,dìu) (d p,di p) Không nên hoàn toàn tin nh ng gì di n ra trong gi c chiêm bao. (chiêm,chim) Đàn gà l c m , kêu chiêm chi p. (chiêm chi p,chim chíp) Tép riu là lo i tép nh . (tép,t p) Ph i b o v b cõi do ông cha đ l i. (cõi,c i) V nông thông, ta th y nhi u cây rơm khô. (rơm,rôm) Ngư i b nh ch còn thoi thóp. (thoi thóp,thôi th p) Su t ngày, c u bé y ch chơi rong. (rong,rông) Ông n i tôi còn m t m u ru ng r c. (r c,r c) B n Thành r t thích ăn món mì nui. (nui,nuôi) Bé Di u làm vi c luôm thu m. (luôm thu m,l m th m) Su t ngày, cô gái ng i d t c i. (c i,c i,cư i) Ti ng hót con khư u r t du dương. (khư u,kh u) Đ ng nu i ti c nh ng ngày thơ m ng đã qua. (nu i,núi) Trái đ t có 24 múi gi . (múi,mu i) C u bé r t thích cư i ng a g . (cư i,c i) An táng cha già xong, anh b đ i tr v đơn v . (táng,tán) Ti ng tranh lu n át c ti ng g i gi im l ng c a ngư i ch t a. (át,ác) H c sinh căng l u d ng tr i đ vui chơi. (căng,căn) Bây gi chúng ta không còn dùng b c c c. (c c,c t) Toà nhà y có t t c năm t ng. (t ng,t n) May áo xong, còn th a ba t c v i. (t c,t t) Ti ng phèng la t căn nhà dài vang lên. (phèng,phèn) Heo kêu eng éc vì nó b ch c ti t. (eng éc,en ét) C già đang ng i b n th ng ngoài sân. (b n,b nh) Da ngư i b nh tr ng b ch. (b ch,b t) 169 PH L C A. D LI U KI M TRA K H O A C N TT – Đ H K H TN Tinh th n ông c h t s c tinh anh. (tinh,tin) Bánh ít lá gai Bình Đ nh r t n i ti ng. (ít,ích) (ti ng,ti n) Nó c m th y tiêng ti c chi c xe đ p đã m t. (tiêng,tiên) Đây là lo i s a đã ti t trùng. (ti t,ti c) Con trùn có l i, còn côn trùng có h i. (trùn,trùng) Theo b n, gi phút nào b n c m th y h nh phúc nh t? (phút,phúc) Con chu n chu n bay ngang qua chu ng b câu. (chu n,chu ng) Con chão chu c nh y qua cái b y chu t. (chu c,chu t) Bánh chưng này nhưn nhi u nhưng ít th t. (nhưn,nhưng) Ngư i thương binh thư ng b nh c nh i, nh t là nh ng lúc tr tr i. (nh c,nh t) Lãnh lương r i, m ghé ch mua lươn. (lương,lươn) Dáng cô giáo t m thư c, tà áo dài tha thư t. (thư c,thư t) Tr i nhi u mây, gió heo may l i v . (mây,may) Nó đư c báo tin vùng này có kho báu. (báo,báu) Anh ta l m b m vì b té b m tay. (b m,b m) Gi i pháp trung l p hóa đư c l p l i m t l n n a. (l p,l p) Nh ng ngư i bi t đi u đ u đư c quí tr ng. (đi u,đ u) Đương kim Th tư ng kiêm nhi m ch c B trư ng Ngo i giao. (kim,kiêm) Chúng tôi ng i dư i g c bàng đ bàn công vi c. (bàng,bàn) Ăn nói r t ho t bát, Ti n ph n bác đ i phương. (bát,bác) Chú bé ph c lăn nh ng ngư i xây d ng lăng vua T Đ c. (lăn,lăng) Đư ng b t c nên nó ph i đi đư ng t t. (t c,t t) Chí Phèo ng ng đ u, ng n ngơ nhìn m i ngư i. (ng ng,ng n) Ng c n i b t trong đám b n bè vì nó ti n b vư t b c. (b t,b c) L a đã bén vách nhà mà nó quên béng. (bén,béng) Nó nghe b n d a méc ba má, m t nó tái mét. (méc,mét) B t đư c con kên kên, nó đư c b n bè công kênh. (kên,kênh) Trong b a ti c nó th ch đãi b n h u, món xúp cua nh t th t. (th ch,th t) Tính ông y r t kín đáo, ai cũng kính n . (kín,kính) Tr i t i m ch, c nh chuà thêm t ch m t. (m ch,m t) Con sông biên gi i, nư c xanh biêng bi c. (biên,biêng) Ti c r ng th i ti t hôm nay không đư c thu n l i cho tr n đ u bóng đá. (ti c,ti t) Nhân dân hai nư c kíp xóa b m i thù truy n ki p. (kíp,ki p) Mu i rang trên b p đang n lép bép. (b p,bép) 170 171 K H O A C N TT – Đ H K H TN Kh i th trư ng chung châu Âu có n n "công ngh không khói" r t tiên ti n. (kh i,khói) Đ a bé ch m lên phía trư c đ vu t chòm râu ông n i. (ch m,chòm) N m trong chi c nóp, không còn nơm n p s mu i c n. (nóp,n p) Có con b con b ng, ch đèo bòng. (b ng,bòng) Gai góc n m la li t dư i g c cây. (góc,g c) Nó ng mu i, không còn ng i th y mùi thơm ngát phòng. (mu i,mùi) V hưu, ông y không còn thích đi săn hươu. (hưu,hươu) Bà y m i chi tiêu kho n phân n a kho ng ti n m i lãnh. (kho n,kho ng) Càng ngày tính nó càng càn r . (càng,càn) Vác cái thang n ng, c u bé th than. (thang,than) V p hòn đá, nó ngã chúi vào b i chu i. (chúi,chu i) Ch y đang ng i đan cái áo len cho con. (đang,đan) ...
View Full Document

This note was uploaded on 11/06/2010 for the course CS 0652043 taught by Professor Thanh during the Spring '10 term at Abu Dhabi University.

Ask a homework question - tutors are online