Maskinöversättning och språkgranskning, ht 2006 Föreläsning 2 Stavningskontroll evapet@stp.lingfil.uu.se 1
Föreläsningsöversikt Allmänt om språkgranskning Allmänt om stavningskontroll Stavningskontroll: feligenkänning Stavningskontroll: felkorrigering Hemuppgift 2
Språkgranskning Stavningskontroll Grammatikkontroll Stilkontroll Applikationer för svenska: Microsoft Word SCARRIE Granska (Stava) Skribent 3
Vad förväntas av det ideala stavningskontrollprogrammet? Känna igen och larma för alla felstavade ord Känna igen och acceptera alla rättstavade ord Ge ett korrekt rättningsförslag för alla felstavade ord 4
Mer realistiska förväntningar Känna igen och larma för de mest frekventa och lättidentifierade felstavningarna Känna igen och acceptera alla rättstavade ord, som är tillräckligt frekventa i språket Ge ett troligt rättningsförslag för alla felstavade ord (frekvens) 5
Stavningskontrollens två delar 1) Feligenkänning att hitta felen 2) Felkorrigering att ge ersättningsförslag 6
Feligenkänning i Microsoft Word
Felkorrigering i Microsoft Word
Feligenkänning Isolerade ord stavfel som resulterar i icke ord: och > coh Ord i kontext stavfel som resulterar i riktiga ord (real word errors): jag er dålig på att stava språk teknologi är kul bättre korrigeringsförslag: det är sårt att stava Word 2003 föreslår: såret, svårt, sårat, såt, sått 9
Feligenkänningsstrategier Lexikon Fullformslexikon vs stamlexikon Lexikonstorleken avgörande: För stort lexikon = många fel missas (låg täckning) För litet lexikon = många falska alarm (låg precision) Trigram av tecken Används mest inom OCR Ovanliga trigram antas utgöra felstavningar 10
Feligenkänning m.h.a. lexikon Problem: språket är produktivt omöjligt att lista alla ord i lexikonet Brist på täckning kan lura skribenten att faktiskt stava fel, t. ex. särskriva sammansättningar: jätte trött 11
Feligenkänning m.h.a. lexikon Kompletterande strategier: Morfologiska regler för t.ex. avledningar Sammansättningsregler Egennamnsigenkänning Samförekomst: Stoet slickade sitt fol > fel eller föl? Tillåt användaren att ägga till egna ord i lexikonet 12
Feligenkänning: sammansättningar Enklast strategi: ord = ord + ord dator + lingvistik = datorlingvistik Förfinad strategi: ord = förled + ord flicka + klänning = flickklänning äpple + paj kvinna + parti = kvinnoparti cigarr + rök = äppelpaj = cigarrök 13
Feligenkänning: sammansättningar Lösning: Lista alla fogeformer i lexikonet Problem: Sammansättningar bildas rekursivt och fogeformen kan ändras i flerledade sammansättningar: > kakdeg barnbokhylla/barnbokshylla pepparkaksdeg 14
Feligenkänning: sammansättningar Sms analys minskar antalet falska alarm Sms analys kan dock öka antalet missade fel! Missade fel i Word97: kotakt kontakt makelera makulera medalg medalj cykelsäll cykelställ särkskilt särskilt 15
Några frågeställningar kring feligenkänning Hur göra med sällsynta/fackspråkliga ord, som ligger nära felskrivningar av frekventa ord? verv/värv (verv = kraft, livfullhet, glöd enligt SAOL) boke/boken (boke = bokvirke) Dialektala ord? Hur sträng bör man vara? (mej, direktörn) 16
Feligenkänning: sammanfattning Måste ta hänsyn till kontexten: Real Word Errors Två strategier: Lexikon, vanligast Trigram, främst inom OCR Ordlistans storlek är avgörande: För stort lexikon > många fel missas För litet lexikon > många falska alarm Språket är produktivt kompletterande strategier behövs 17
Felkorrigeringens två delar 1) Ta fram ett antal korrigeringskandidater 2) Rangordna korrigeringskandidaterna 18
Felkorrigering: feltyper Kompetensfel Fonetiska fel: restaurang > resturang Homofonfel: > gått gott Performansfel Insättning språkteknologii Borttagning spåkteknologi Substitution sprokteknologi Transposition spårkteknologi 19
Felkorrigering: feltyper Kompetensfel eller performansfel? tunnt Feltyp ofta inte nödvändig att fastställa för att få fram lämpligt korrigeringsförslag, dock: Kompetensfel: hemta > hämta, hämtade Performansfel: hemta > heta, hetta, hemtam 20
Felkorrigering: empiriskt grundade iakttagelser De flesta felstavningar är performansfel (insättning, borttagning, substitution eller transposition) De flesta felstavningar påverkar inte ordets längd med mer än en bokstav Första bokstaven i ordet är sällan felaktig Tangenternas placering påverkar Bokstävernas frekvenser påverkar 21
Korrigeringsstrategier Minimum Edit Distance Likhetsnycklar N gramsbaserade tekniker Regelbaserade tekniker Probabilistiska tekniker Neurala nätverk 22
Minimum Edit Distance Stränglikhet Minsta antalet editeringsoperationer som behövs för att omvandla en sträng till en annan Editeringsoperationer: Insättning Borttagning Substitution (alt. borttagning + insättning) Transposition (alt. borttagning + insättning) 23
Minimum Edit Distance dist(0,0) = 0 dist(i,0) = i dist(j,0) = j dist(i,j) = min dist(i-1, j) + 1 (insättning) dist(i, j-1) + 1 (borttagning) dist(i-j, j-1)+ d(si, tj) (substitution) där i är strängen s fram till i:te tecknet, och j är strängen t fram till j:te tecknet, och d(si,tj) är 0 om si=tj och 1 i övriga fall 24
Minimum Edit Distance rängna regnar substitution + insättning + borttagning = 3 25
Minimum Edit Distance 26
Minimum Edit Distance 27
Minimum Edit Distance 28
Likhetsnycklar Strängar matchas mot nycklar Ord som stavas på liknande sätt har likadana eller nästan likadana nycklar 29
Likhetsnycklar: SOUNDEX SOUNDEX: Indexing on Sound Odell & Russel, 1918 (!) Fonetisk likhet Vokaler ignoreras Konsonanter grupperas tillsammans om de liknar varandra fonetiskt Användning: Flygbokningssystem (Davidson 1962) 30
Likhetsnycklar: SOUNDEX 1) Behåll det första tecknet 2) Ersätt efterföljande tecken enligt nedan: a, e, i, o, u, y, h, w: b, f, p, v: c, g, j, k, q, s, x, z: d, t: l: m, n: r: 0 1 2 3 4 5 6 3) Ta bort alla nollor 4) Ta bort alla på varandra följande dubbletter 5) Spara de tre första siffrorna 31
Likhetsnycklar: SOUNDEX disappoint disapont ---> D2153 ---> D2153 Ersättningsförslag för disapont: disband, disbands, disbanded, disbanding, disbandment, disbandments, dispense, dispenses, dispensed, dispensing, dispenser, dispensers, dispensary, dispensaries, dispensable, dispensation, dispensations, deceiving, deceivingly, despondent, despondency, despondently, disobeying, disappoint, disappoints, disappointed, disappointing, disappointedly, disappointingly, disappointment, disappointments, disavowing 32
N-gramsbaserade tekniker Stränglikhet: andelen gemensamma n gram (trigram) Likhet(i, j) = 2C/(n+n ) där n är antalet trigram i i och n är antalet trigram i j och C är antalet trigram gemensamma för i och j 33
N-gramsbaserade tekniker Hur lika är concider och consider? ##c #co con onc nci cid ide der er# r## ##c #co con ons nsi sid ide der er# r## C (antalet gemensamma trigram) = 7 n (antalet trigram i concider) = 10 n (antalet trigram i consider) = 10 Likhet(concider, consider) = 2C/n+n = 14/20 = 0,70 34
N-gramsbaserade tekniker Hur lika är concider och cider? ##c #co con onc nci cid ide der er# r## ##c #ci cid ide der er# r## C (antalet gemensamma trigram) = 6 n (antalet trigram i concider) = 10 n (antalet trigram i cider) =7 Likhet(concider, cider) = 2C/n+n = 12/17 = 0,71 35
N-gramsbaserade tekniker Modifierat likhetsmått: Likhet(i, j) = C/max(n, n ) Likhet(concider, consider) 0,70 Likhet(concider, cider) 0,60 36 = 7/10 = = 6/10 =
Felkorrigering: sammanfattning Två uppgifter Ta fram ersättningsförslag Rangordna ersättningsförslagen Kompetensfel vs performansfel Exempel på korrigeringsstrategier: Minimum Edit Distance Likhetsnycklar N gramsbaserad korrigering 37
Hemuppgift Antag att en skribent har skrivit in chuta. Antag vidare att ett stavningskontrollprogram har kommit fram till att det rör sig om en felstavning och att möjliga ersättningsförslag är skjuta och skuta. Hur skulle dessa ersättningsförslag rangordnas enligt det (modifierade) n-gramsbaserade måttet? Illustrera dina uträkningar! Hur skulle ersättningsförslagen rangordnas enligt Minimum Edit Distance? Illustrera genom att rita upp matriserna! Kommentera dina resultat. Är rangordningen lika bra för alla typer av skribenter? Skulle skjuta finnas med bland ersättningsförslagen om man istället hade använt sig av likhetsnycklar på samma sätt som i SOUNDEX? Varför/varför inte? 38
Referenser Karen Kukich, 1992, Techniques for Automatically Correcting Words in Text Daniel Jurafsky & James H. Martin, 2000 (avsnitt 5.1 5.6), Speech and Language Processing Roger Mitton, 1996, Spellchecking by Computer. http://www.dcs.bbk.ac.uk/~roger/spellchecking.html 39