Tách cm ting

Một phần của tài liệu cách tiếp cận dựa trên ngữ liệu cho kiểm lỗi chính tả tiếng việt (Trang 46)

u

3.2.1. Tách cm ting

Do u vào là m t t p tin v n có th có nh d ng, công vi c u tiên là lo i b các i t ng “l ” nh hình nh, tham chi u, m c l c,… ch gi l i ph n text x lý.

Vi c tách thành c m ti ng có hai m c ích. M c ích th nh t là t o ti n cho b c tách ti n. M c ích th hai, quan tr ng h n, là tính các xác su t n- gram. Do các ti ng b ng n cách b i các d u câu xem nh không có m i liên h

i nhau, vi c tính xác su t n-gram trên c m ti ng v a làm gi m không gian x lý, a không làm gi m tính liên k t và s t ng quan gi a các ti ng v i nhau trong n b n.

Tuy nhiên, vi c tách c m có nh c m là s không x lý c các l i v u câu. ây không ph i là m c tiêu chính c a tài.

3.2.2. Tách ti ng

Do ph n c m ti ng ã tách c trên là m t chu i liên t c các ký t nên ch ng trình c n ph i tách nó thành t ng ti ng riêng bi t ti n x lý.

Quá trình tách v n b n u vào thành t ng ti ng ph i qua các giai n sau:

• Tách v n b n thành t ng n.

• Tách n thành t ng “c m ti ng”. C m ti ng là m t chu i ký t ch cái kh ng tr ng, d u g ch n i, không có các d u câu khác nh d u ch m, d y ph y, d u ngo c,… Vi c nh n ra ti ng Anh, l c ra các c m toàn ti ng Anh, t vi t t t, tên riêng, phiên âm,… có th c gi i quy t b ng các heuristic (chi ti t xin xem trong ph n k ti p).

• Các c m ti ng Vi t c tách thành t ng chu i ti ng riêng bi t. M i chu i ti ng ch g m các ký t ch cái (có d u ho c không d u).

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

chu n hoá cách b d u và các x lý khác nh so sánh, tìm ki m, thay th , c ng nh các v n v b ng mã ti ng Vi t,… c thu n l i và nhanh chóng, các chu i ti ng nên c chuy n thành m t d ng mã th ng nh t.

3.2.3. L c “nhi u”

Sau khi ã có các c m ti ng, b c ti p theo là l c ra nh ng nh ng t ti ng Anh, phiên âm, vi t t t, các ký t l , các ch s ,…

3.2.3.1. Nh n di n ti ng Anh

Trong các v n b n ti ng Vi t, vi c xu t hi n các t ti ng Anh là u th ng x y ra, nh t là trong các v n b n khoa h c. Vi c nh n ra âu là t ti ng Anh không xem chúng nh l i chính t là khá quan tr ng.

nh n ra ti ng Anh l n trong câu ti ng Vi t, h th ng s ph i kh nh p nh ng khi g p nh ng t mà c hai th ti ng u có. VD: “the”, “to”, “hi”, … Vi c này tho t nhìn có v khá ph c t p. Tuy nhiên, trong th c t , ti ng Anh l n vào ti ng Vi t th ng có hai lo i: tên riêng và thu t ng . Hai lo i này hi m khi gây nh p nh ng nên v n tr nên n gi n h n. Ch c n dùng t n ti ng Anh và Heuristic là có th gi i quy t c.

i v i nh ng c m toàn ti ng Anh, vi c gi i quy t c ng t ng t . Khi ó m này s c chuy n qua cho m t h ki m l i chính t ti ng Anh x lý.

3.2.3.2. Nh n di n t vi t t t

vi t t t có th c nh n ra b ng m t danh sách các t vi t t t và Heuristic. Thông th ng, các t vi t t t u là ch hoa, và ph âm chi m t l l n, ho c i kèm d u ch m. VD: CHXHCN, TS. , TW, NA,…

3.2.3.3. Nh n di n phiên âm

Cho n nay, v n ch a có chu n th ng nh t v cách phiên âm ti ng n c ngoài, nên vi c nh n ra âu là ti ng phiên âm âu là ti ng sai chính t s g p tr ng i. Trong ph m vi tài này, chúng tôi ch dùng Heuristic x lý các phiên âm

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

ch n i, và không có kho ng tr ng gi a chúng. VD: Trê-b -sép, Lê-nin, công- c,… V i nh ng t phiên âm thông d ng nh “axit”, “baz ”, “vect ”,… thì có th dùng t n nh n ra chúng.

3.3. Ki m l i non-word

3.3.1. Phát hi n l i

Do b c ti n x lý ã l c b các chu i không là ti ng Vi t, nên vi c phát hi n l i non-word khá n gi n, ch c n m t t n ti ng. N u m t chu i ti ng không có trong t n, ho c không chu n hoá thành d ng mã c, ta xem nó là ti ng sai chính t và thông báo cho ng i dùng.

Công vi c còn l i là phát sinh các ti ng thay th ng i dùng có th thay th ngay mà không ph i nh p l i.

3.3.2. S a l i

phát sinh các ti ng thay th , h th ng s d a vào các nguyên nhân gây i tái t o l i ti ng úng. Nh ã các ph n trên, có hai nguyên nhân chính, ó là l i phát âm và l i nh p li u.

3.3.2.1. a l i phát âm

i phát âm tùy thu c vào t ng a ph ng trong c n c. Tuy nhiên, các i phát âm có quy lu t nh t nh, và c chia thành l i sai ph âm u, l i sai n, và l i sai d u. Do ó, chúng tôi l p m t danh sách t t c các thành ph n có th nh m l n v i nhau, t ó phát sinh ra các ti ng ng viên.

t ph n c a danh sách này có d ng nh sau:

d v ac at ? ~

ng ngh an ang ~ ?

s x in inh ~ .

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

Thu t toán c th nh sau:

c 1: Tách ti ng thành ba thành ph n: ph âm u, v n, và d u. c 2: V i m i thành ph n, tìm các thành ph n cùng lo i và d b phát âm nh m l n v i nó. c 3: T h p các thành ph n t o thành các ti ng thay th . Quá trình t p có th ph i tho ràng bu c v m c phát sinh, ví d nh : ti ng g c và ti ng phát sinh ch khác t i a m t ho c hai thành ph n.

c 4: Lo i b các ti ng thay th không có trong t n.

Thu t toán 1: Phát sinh ti ng ng viên d a vào l i phát âm

Ví d : Phát sinh cho ti ng g c “sãng”

• Tách thành t ng ph n: sãngà {s, ang, ~}

• Phát sinh ph n t ng t : {s}à {x}; {ang}à {an}; {~}à{?}

• h p: {s ng, sãn, s n, xãng, xãn, x ng, x n}

• Lo i b phát sinh không h p l , còn l i: {s ng, s n}

3.3.2.2. a l i nh p li u

Các l i nh p li u c x lý trong h th ng bao g m:

• Thi u m t ký t : trag (trang)

• m t ký t : tranng (trang)

• Thi u m t d u thanh: tât (t t, t t)

• Nh m m t ký t b i m t ký t khác: x t (c t)

• Nh m d u thanh b i d u thanh khác: t t (t t, t t)

• o v trí hai ký t li n k : rtang (trang)

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

a l i thi u m t ký t

i m t ký t có th c ph c h i b ng cách chèn l n l t các ký t vào các v trí khác nhau trong ti ng. Các ti ng h p l c t o ra t nh ng cách chèn trên s c gi l i. H th ng gi nh r ng m i ti ng gõ sai ch thi u t i a m t ký t .

a l i d m t ký t

i d m t ký t có th c ph c h i b ng cách th xoá l n l t các ký t i các v trí khác nhau trong ti ng. Các ti ng h p l c t o ra t nh ng cách xoá trên s c gi l i. H th ng gi nh r ng m i ti ng ch d t i a m t ký t .

a l i thi u d u thanh

i thi u d u thanh c s a b ng cách l n l t k t h p ti ng v i các d u thanh. Các ti ng h p l c t o ra t nh ng cách k t h p trên s c gi l i.

a l i d d u thanh

i d d u thanh c s a b ng cách th xoá b d u thanh trong ti ng. Ti ng h p l c t o thì s c gi l i.

a l i nh m ký t

i nh m ký t c t o ra khi ng i dùng gõ sai phím. L i này có th c ph c h i b ng cách duy t l n l t t ng ký t trong ti ng g c, thay th ký t c b ng ký t khác, và gi a l i các ti ng h p l c t o ra.

Tuy nhiên cách làm trên có h n ch là s l ng ch cái trong ti ng Vi t khá nhi u, vi c thay th s chi m nhi u th i gian, và t o ra quá nhi u ti ng ng viên không c n thi t.

Thông th ng phím gõ sai s n m g n v i phím úng. Trong các bàn phím thông d ng hi n nay, m i ti ng có 6 ti ng lân c n. Bên c nh ó, các ký t d ng có u m và không có d u m c ng c xem là lân c n v i nhau (VD: ‘o’ – ‘ , ‘ ’

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

– ‘â’). T ó, chúng tôi t o ra danh sách các phím và phím lân c n s a các l i ng sai phím này. Phím g c Phím lân c n Phím g c Phím lân c n a q w s z â n h j m b b h n v g o p l k i c d f v x p l o d e r f c x s q w s a e r d s w ê r t f d e f r t g v c d s w e d x z a g t y h b v f t y g f r h y u j n b g u i j h y i o k j u v f g b c j u i k m n h w e s a q k i o l m j x s d c z l o p k y u h g t m j k n z a s x ng 2: Phím g c và các phím lân c n a l i nh m d u thanh

i nh m d u thanh c s a b ng cách l n l t thay th các d u thanh khác vào ti ng và gi a l i ti ng phát sinh phù h p. Do l ng d u thanh ít nên không c n x lý gì thêm.

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

a l i o v trí hai ký t li n k

i o v trí c ph c h i b ng cách th hoán v l n l t hai ký t k nhau trong ti ng và gi a l i các ti ng phát sinh phù h p làm ngh thay th . H th ng gi nh r ng trong ti ng ch có t i a hai ký t b nh m v trí.

a l i thi u kho ng tr ng

ng t nh l i thi u ký t , l i thi u kho ng tr ng c x lý b ng cách th chèn kho ng tr ng vào t ng v trí trong ti ng. Tuy nhiên có m t m khác bi t, là vi c s a l i này s t o ra hai ti ng ng viên i cùng nhau. Do ó, cách chèn nào t o ra c hai ti ng u h p l s c gi a l i làm ng viên s a l i.

3.3.2.3. Các l i khác

i v i h nh n d ng ti ng nói ti ng Vi t, l i th ng g p là l i phát âm. Cách x lý c ng gi ng nh ã nói trên.

i v i h OCR, l i ch g m lo i nh m m t ký t b i m t ký t khác. Hai ký t nh m l n th ng có hình d ng khá gi ng nhau. V n này không khó gi i quy t, nh ng không c xem xét trong lu n v n này.

3.4. Ki m l i real-word

Không nh l i non-word, vi c phát hi n l i real-word r t khó kh n do không th dùng t n mà ph i xem xét n ng c nh c a câu v n. Các mô hình ki m l i chính t c m ng c nh c dùng x lý lo i l i này.

Nh ã c p trong Ch ng 1 T ng quan, sau khi tham kh o các mô hình ã c áp d ng thành công cho các ngôn ng n c ngoài, chúng tôi quy t nh ch n ph ng pháp tính xác su t n-gramti ng d a theo h th ng CInsunSpell làm mô hình chính x lý các l i real-word.

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

3.4.1. Phát hi n l i b ng bigram

3.4.1.1. Ý t ng chính

lý thuy t, trigram s t t h n bigram. M t câu h i c t ra là t i sao i dùng bigram mà không dùng trigram? Lý do chính chúng tôi ch n bigram là vì khi dùng trigram, v i l ng ng li u quá ít i, các xác su t PF và PB s r t th p nên không th dùng phát hi n l i m t cách chính xác. Qua th nghi m c a chúng tôi, bigram khi c k t h p v i m t vài c i ti n nh và các heuristic tách

v n cho ra k t qu kh quan.

Ý t ng chính ây là, phát hi n l i, h th ng s dùng m t “c a s ” bigram “ o” liên k t gi a các ti ng trong c m cùng. N u v trí nào có s liên k t quá l ng l o thì n i ó b xem nh có l i chính t . Cách làm này c ng phù

p v i cách tu duy c a con ng i. Khi c qua m t câu ki m l i chính t , con ng i s ch chú ý t i nh ng ch “khác th ng”, ti n hành “phát sinh t ” nh ng ch ó tìm t thay th h p lý h n.

i ci là m t ti ng, WIN_bi = {c1, C, c2} là m t c a s có kích th c 3. Trong ó, C là ti ng ang c xem xét.

PF_bi(c1, C) là xác su t i cùng nhau c a các ti ng trong bigram <c1, C>, i là “xác su t tr c” c a WIN_bi. T ng t nh v y, PB_bi(C, c2) là xác su t i cùng nhau c a các ti ng trong bigram <C, c2> và c g i là “xác su t sau” c a WIN_bi.

PF_bi(c1, C) c tính theo công th c sau:

) x , N(x C) , N(c C) , PF_bi(c 2 1 1 1 =

Trong ó, N(c1, C) là s l n xu t hi n c a bigram <c1, C> trong ng li u hu n luy n. N(x1, x2) là t ng s bigram trong ng li u hu n luy n.

Cách ti p c n d a trên ng li u cho ki m l i chính t ti ng Vi t

Thu t toán:

c 1: Kh i ta c a s WIN_bi = {c1, C, c3) t u v n b n.

c 2: PF_bi nh h n ng ng F_bi và PB_bi nh ng ng B_bi thì tìm ng viên thay th . N u tìm c thì xem C là ti ng sai chính t .

c 4: D ch chuy n c a s t i m t ti ng r i tr l i b c 2.

Thu t toán 2: Phát hi n l i b ng bigram

Thu t toán trên có m t m khác v i thu t toán g c trong CInsunSpell, ó là khi các xác su t PF và PB nh h n ng ng, h th ng không v i k t lu n ngay ó là n i b l i chính t . B i vì, trong u ki n th c t c a chúng tôi, ng li u không th l n bao trùm h t t t c các bigram th ng có. Nên s x y ra tr ng h p, là PF_bi và PB_bi th p nh ng ti ng C v n là úng chính t . Thêm vào ó, dù ng li u l n, v n có tr ng h p ti ng C n m gi a hai liên k t l ng l o nh ng l i không ph i ti ng sai chính t , b i vì ti ng sai th c s là ti ng li n sau nó, chính ti ng li n sau này là nguyên nhân làm gi m xác su t PB_bi c a ti ng

ang xét.

gi i quy t hai v n trên, chúng tôi dùng ph ng án tìm ng viên thay th cho ti ng C ang b nghi ng . N u tìm c ng viên th a u ki n v xác su t thì lúc ó C m i b xem là sai chính t .

3.4.1.2. t h p v i trigram

ây, l i này sinh m t v n , ó là bigram không m nh kh ng nh chính xác vùng b l i nên h th ng có th ph m nhi u l i tích c c. Do ó, chúng tôi quy t nh t n d ng trigram làm m t b l c tr c khi x lý b ng bigram.

Một phần của tài liệu cách tiếp cận dựa trên ngữ liệu cho kiểm lỗi chính tả tiếng việt (Trang 46)

Tải bản đầy đủ (PDF)

(116 trang)