Föreläsningsöversikt Metoder och tillämpningar inom språkteknologin, ht 2006 Språkgranskning evapet@stp.lingfil.uu.se Allmänt om språkgranskning Stavningskontroll Grammatikkontroll Stilkontroll Några exempel på språkgranskningssystem 1 2 Språkgranskning Tre delar: Stavningskontroll Grammatikkontroll Stilkontroll Stavningskontroll Applikationer för svenska Microsoft Word SCARRIE Granska (Stava) Skribent 3 4
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 ersättningsförslag för alla felstavade ord 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, om de är tillräckligt frekventa i språket Ge ett troligt ersättningsförslag för alla felstavade ord (frekvens) 5 6 Stavningskontrollens två delar Feligenkänning i Microsoft Word 1) Feligenkänning - att hitta felen 2) Felkorrigering - att ge ersättningsförslag 7 8
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 9 10 Feligenkänningsstrategier Lexikon 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 (Optical Character Recognition, d.v.s. scanning) 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 Ovanliga trigram antas utgöra felstavningar 11 12
Feligenkänning m.h.a. lexikon Feligenkänning: sammansättningar Kompletterande strategier: Tillåt användaren att lägga till egna ord i lexikonet Morfologiska regler för t.ex. avledningar Sammansättningsregler Egennamnsigenkänning Samförekomst: Stoet och dess fol -> fel eller föl? Enklast strategi: ord = ord + ord dator + lingvistik = datorlingvistik Förfinad strategi: ord = förled + ord flicka + klänning = flickklänning äpple + paj = äppelpaj kvinna + parti = kvinnoparti cigarr + rök = cigarrök 13 14 Feligenkänning: sammansättningar Dock! Sammansättningar bildas rekursivt och fogeformen kan ändras i flerledade sammansättningar: kakdeg ---> pepparkaksdeg barnbokhylla/barnbokshylla Feligenkänning: sammansättningar Sammansättningsanalys minskar antalet falska alarm Sms-analys kan dock öka antalet missade fel! kotakt makelera medalg cykelsäll kontakt makulera medalj cykelställ särkskilt särskilt 15 16
Några frågeställningar kring feligenkänning Felkorrigeringens två delar 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) 1) Ta fram ett antal korrigeringskandidater 2) Rangordna korrigeringskandidaterna 17 18 Felkorrigering: feltyper Kompetensfel (man vet inte hur ett ord stavas) Fonetiska fel: restaurang ---> resturang Homofonfel: gott ---> gått Performansfel (man slarvar) Insättning språkteknologii Borttagning spåkteknologi Substitution sprokteknologi 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 Transposition spårkteknologi 19 20
Hur ska man få fram sina korrigeringskandidater? 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 Minimum Edit Distance Vanlig metod för felkorrigering Bygger på stränglikhet Minsta antalet editeringsoperationer som behövs för att omvandla en sträng till en annan: Insättning språkteknologii Borttagning spåkteknologi Substitution sprokteknologi Transposition spårkteknologi 22 Minimum Edit Distance Minimum Edit Distance felstavning: r ä n g n a Substitution: ersättningskandidat: r e g n a r r ä n g n a r e g n a r 23 24
Minimum Edit Distance Minimum Edit Distance Insättning: r ä n g n a Borttagning: r ä n g n a r e g n a r r e g n a r 25 26 Minimum Edit Distance r ä n g n a r e g n a r substitution + insättning + borttagning = 3 Stavningskontroll: sammanfattning Vanligaste strategin för stavningskontroll: lexikonuppslagning Ordlistans storlek är avgörande: För stort lexikon -> många fel missas För litet lexikon -> många falska alarm Felkorrigering i två steg: Ta fram ersättningsförslag 27 Rangordna ersättningsförslagen Vanlig korrigeringsstrategi: Minimum Edit Distance 28
Grammatikkontroll Grammatikkontroll Grammatikkontroll behövs för: Stavningskontroll, när felet resulterar i s.k. Real Word Errors : Jag er dålig på att stavar vi är tjära dator lingvistik Grammatikfel: Vi är kär samhällets utvecklingen 29 30 Grammatikkontrollens delar Feldetektering (detection) Fel i nominalfrasen: *det tidiga 1800-talen Feligenkänning (recogntion) Numerusinkongruens: determinerare - huvudord Feldiagnos (diagnosis) 1) Substantivet står i plural istf singular 2) Determineraren står i singular istf plural Felkorrigering (correction) 1) det tidiga 1800-talet 2) de tidiga 1800-talen 31 Vad förväntas av det ideala grammatikkontrollprogrammet? Känna igen och larma för alla grammatiska fel Känna igen och acceptera alla grammatiskt korrekta strukturer Ge ett korrekt rättningsförslag för alla ogrammatiska strukturer och kontextuellt felaktiga ordformer 32
Mer realistiska förväntningar Endast larma för riktiga grammatikfel, även om inte alla fel upptäcks Fokusera på typiska och/eller frekventa feltyper: Korpusundersökning Anpassning till olika typer av skribenter, t.ex. dyslektiker eller andraspråksinlärare 33 Problem inom grammatikkontroll Hur kan man känna igen så många fel som möjligt utan att få för många falska alarm? Långa och komplexa strukturer svåra att hantera *De i paragraf 5 stadgade undantaget Undantag från normalfallet svåra att känna igen *Strindbergs stora rummet Strindbergs Röda Rummet 34 Fler problem inom grammatikkontroll Grammatikkontroll I dagsläget begränsat till meningsnivå. Kan alltså inte hantera pronomenreferens o dyl. Jag träffade en flicka igår. Han var mycket söt. Hur sträng bör man vara? Jag insåg att det här går inte Vilka fel ska prioriteras? Hur pass vanligt är felet? (korpusundersökning) Hur pass lätt är felet att hitta automatiskt? Hur pass viktigt är det att felet upptäcks? (målgrupp) Hur göra med dialektala uttryck? Denna boken (skånska m.fl.) 35 36
Grammatikkontroll Hur hittar systemet grammatiska fel? Två huvudstrategier: Grammatikbaserad kontroll fullständig syntaktisk analys Fenomenbaserad kontroll - lokala felregler för förutsedda fel Grammatikbaserad grammatikkontroll Fullständig syntaktisk analys Kan hantera strukturer där två av varandra beroende ord inte står intill varandra, t.ex. Problemet med den kommunala fördelningen från inkomstskatter för säsongsanställda är svår att lösa Svaga punkter: Robusthet (inte alltid möjligt att hitta en syntaktisk analys) 37 Effektivitet (resurskrävande) 38 Fenomenbaserad grammatikkontroll Lokala felregler för förutsedda fel Begränsat till grammatiska felaktigheter mellan ord som står nära varandra: kunnat kommit Exempel på regel i den svenska grammatikkontrollen i Microsoft Word: om ett substantiv i bestämd form föregås av en genitivform, så ska substantivet istället stå i obestämd form 39
Stilkontroll Stilkontroll Genomsnittlig ord- och meningslängd Minusord ålderdomliga vardagliga/talspråkliga byråkratiska Vissa syntaktiska konstruktioner passiv Konsekvenskontroll 41 ska skall, mej - mig 42 Critique Några språkgranskningssystem Första praktiska grammatikbaserade språkkontrollsystemet (1980-talet) IBM Engelska och franska Föregångare till språkkontrollen i den engelska versionen av Microsoft Word 43 44
Critique CORRie 25 grammatiska feltyper, fördelade på fem kategorier: Numerusinkongruens: many book, he go Fel pronomenform: Fel verbform: Skiljeteckenfel between you and I seems to been, had expect Sammanblandningar av ord: who s whose 85 stilistiska fel 45 Utvecklat för holländska Fem generella feltyper Insättning: Borttagning: Substitution: Transposition: Feature mismatch: tåget har har gått, hus bil tåget redan gått the well performance jag tror att tåget går inte idag den lilla huset, männen är glad 46 Språkgranskningssystem för svenska Grammatifix Grammatifix, Lingsoft SCARRIE, Uppsala universitet Modifierad variant, ScaniaChecker, används på Scania Granska, Nada, KTH Skribent, Norstedts Ordbok Utvecklat av Lingsoft i Finland Används i den svenska versionen av Microsoft Word Stavfel hanteras separat (Orthografix) 47 48
Grammatifix: Feltyper 43 feltyper fördelade på tre kategorier: Grammatiska fel (26) Främst verbkedjor och kongruens inom nominalfraser Stilbrott på ordnivå (3) Byråkratiska ord: hemställan, vederlag Talspråkliga ord: dej, redaktörn Ålderdomliga ord: särla, tillförne Brott mot skrivkonventioner (14) Parenteser, datumformatering, interpunktion m.m. 49 Grammatifix Syntaktisk analys med SWECG (Swedish Constraint Grammar) i fyra huvudsteg: Tokenisering (ett ord per rad) Morfologisk analys (alla möjliga analyser från lexikon) Morfologisk disambiguering (välj den rätta analysen) Syntaktisk disambiguering (feligenkänningsregler tittar på de omgivande orden och letar efter grammatikfel) 50 Grammatifix: Förbehandling Tokenisering (ett ord per rad) Ca 150 fraser Ca 5 000 förkortningar *dessa entreprenöriella faktorer hade än_så_länge dämpat explosionen $. 51 Grammatifix: Morfologisk analys Hämta alla möjliga analyser från lexikon "<*dessa>" "denna" <**c> <DEM> <MD> DET UTR/NEU DEF PL NOM @DN "denna" <**c> <DEM> PRON UTR/NEU DEF PL NOM "<entreprenöriella>" "<faktorer>" "faktor" N UTR INDEF PL NOM "<hade>" "ha" <AUX> V ACT PAST "<än_så_länge>" "än_så_länge" <COLLOCATION> ADV "<dämpat>" "dämpa" V ACT SUPINE "dämpa" <PCP2> A NEU INDEF SG NOM "<explosionen>" "explosion" N UTR DEF SG NOM "<$.>" "$." CLB <PUNCT> 52
Grammatifix: Morfologisk analys av okända ord Morfologisk analys av ord som saknas i lexikonet: Ca 60 regler baserade på suffix (efterled) Okända ord som inte matchas av någon regel antas vara substantiv "<entreprenöriella>" "entreprenöriella" <NON-SWETWOL> A UTR/NEU DEF SG NOM "entreprenöriella" <NON-SWETWOL> A UTR/NEU DEF/INDEF PL NOM 53 Grammatifix: Morfologisk disambiguering Välj den rätta analysen m.h.a. regler: "<*dessa>" "denna" <**c> <DEM> <MD> DET UTR/NEU DEF PL NOM @DN "<entreprenöriella>" "entreprenöriella" <NON-SWETWOL> A UTR/NEU DEF/INDEF PL NOM "<faktorer>" "faktor" N UTR INDEF PL NOM "<hade>" "ha" <AUX> V ACT PAST "<än_så_länge>" "än_så_länge" <COLLOCATION> ADV "<dämpat>" "dämpa" V ACT SUPINE "<explosionen>" "explosion" N UTR DEF SG NOM "<$.>" "$." CLB <PUNCT> 54 Grammatifix: Syntaktisk disambiguering Felregler letar efter felaktigheter i den analyserade texten, t.ex. För ett ord sätt fel om: ordet själv är ett substantiv i bestämd form och det andra ordet till vänster är en genitiv och det första ordet till vänster är ett adjektiv i bestämd form unionens snabba utvidgningen Kontrollera ordformen utvidgningen. Om ett substantiv styrs av en genitiv, t.ex. unionens, bör det stå i obstämd form 55 Granska Grundar sig på tidigare forskningsprojekt: Plita Stava Lokal syntaktisk analys Omfattande analys endast om meningen verkar vara felaktig 56
Granska Fokus på tre feltyper: Särskrivna sammansättningar Han orkade inte flytta sten bumlingarna Inkongruens i nominalfrasen ett villa Inkongruens i predikativ Äktenskapet är baserad på kärlek Granska: Uppbyggnad Tokeniserare Taggare Lexikon: SUC, SAOL Statistik: SUC Regelmatchare Grafiskt gränssnitt 57 58 SCARRIE Scandinavian Proof-Reading Tools Svenska, norska och danska Korrekturläsningsverktyg för tidningsskribenter Stavnings- och grammatikkontroll Stor empirisk felundersökning: SCARRIE Error Corpora Database (ECD) Ca 9 000 autentiska fel från SvD och UNT Fel med korrigering utförd av korrekturläsare 59
SCARRIE: ECD Hierarkisk feltypologi i fyra nivåer Ca 500 feltyper Fem feltyper på översta nivån: Stavfel (SE) 43% Interpunktionsfel (PU) 17% Stil, mening och referens (SP) 16% Grammatiska fel (GP) 15% Grafiska fel (GR) 9% 61 SCARRIE: Vanliga grammatiska feltyper Nominalfrasen 41% Numerusinkongruens framförställt attribut-huvud (GPNPAG01): en upptrappad psykologiska krigföring Verbvalens 17% Infinitivmärke saknas (GPVVIP01): Vi kommer också jobba med OS-arenan Prepositionsfras 11% Fel preposition (GPPPPR04): prognoserna över arbetslöshetens utveckling 62 SCARRIE: Uppbyggnad Stavningskontroll baserad på CORRie: Lexikonuppslagning Sammansättningsregler Grammatikkontroll: Partiell grammatisk analys med Uppsala Chart Parser (UCP) Chart scanner: ReportChart Letar igenom den grammatiska analysen efter felsärdrag 63 SCARRIE: Grammatikkontroll Hanterar ca 30 feltyper i enlighet med feltypologin (utöver stavfel) Exempel på feltyper som hanteras: Fel i nominalfrasen: En eventuellt segerfest får vänta Pronomenkasus: Och ingen kan väl klandra de som deltog? Fel i verbkedjan: Om människor börja tro på förändring Ordföljdsfel: Jag undrar vad gör de små busungarna Särskrivna sammansättningar: Upplands kusten 64
ScaniaChecker ScaniaChecker Variant av SCARRIE som anpassats till att hantera Scanias kontrollerade språk Används av Scanias skribenter som skrivstöd Minusord används för att uppnå konsistens vid val av terminologi fotkontakt, golvkontakt, fotströmställare, fotomkopplare Ersätt med: golvströmställare Varför vill ett företag som Scania ha språkgranskning? En mängd tekniska manualer produceras årligen och för dessa vill man ha: Enhetlig terminologi Enhetlig stil Enhetlig grammatik som gör texten lättförståelig Försteg till maskinöversättning 65 66 Grammatikkontroll: Sammanfattning Behövs för både stavningskontroll och grammatikfel Två strategier: Grammatikbaserad kontroll Fenomenbaserad kontroll Språkgranskningssystem för svenska: Critique, CORRie Språkgranskningssystem för andra språk: Grammatifix, SCARRIE, Granska, Skribent 67