Skrivstöd. Varför bry sig om stavning? Hur används stavningskontroll? Christian Hardmeier

Relevanta dokument
Skrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord

Grundläggande Textanalys VT Språkgranskning (1) Eva Pettersson

TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

TDDD02 Språkteknologi för informationssökning / Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

Kursplaneöversättaren. Lina Stadell

språkgranskning, ht 2007

Grundläggande Textanalys VT Språkgranskning (1) Eva Pettersson

Språkgranskningsverktyg, vt 2009

Språkgranskningsverktyg, vt 2008

Statistisk grammatikgranskning

Grim. Några förslag på hur du kan använda Grim. Version 0.8

Maskinöversättning och språkgranskning, ht 2006

Grundläggande textanalys. Joakim Nivre

DAB760: Språk och logik

Introduktion till språkteknologi. Datorstöd för språkgranskning

Personlig anpassning av Microsoft Word Vers

BLOCK 1. 1A. Att komma igång

Programmering. Den första datorn hette ENIAC.

Stränglikhet Manchester United vs Manchester Utd. B A R A N S Ö L E N

ClaroDictionary med tal. ClaroDictionary utan tal

Grundläggande textanalys, VT2013

Tentamen Marco Kuhlmann

Personlig anpassning av Microsoft Word Vers

Innehåll. Grammatikkontroll i Granska. Problemställning. Datorstöd för skrivande. Vilka metoder finns? Granskas uppbyggnad

Lathund för Stava Rex

ClaroStava ett rättstavningsprogram

729G09 Språkvetenskaplig databehandling

Personlig anpassning av Microsoft Word Vers

Eva Ansell Ulrika Nilsson WORD 2008 MICROSOFT. för Mac

FYLL I DE ORD SOM SAKNAS I TEXTEN

Ryska pronomen. Pronomen är en sluten ordklass som består av många undergrupper. Pronomina kan fungera självständigt eller förenat

Språkteknologi och Open Source

Föreläsning 13. Dynamisk programmering

Maskinöversättning och språkgranskning F5 Allmänt om språkgranskning + ordkontroll

Flera övningar innehåller träning i att skilja på närliggande vokal- och konsonantljud för att eleven ska kunna koppla ihop varje språkljud med rätt

INNEHÅLLSFÖRTECKNING... 1 INLEDNING ORDBOKEN I VERKTYGSLISTEN ORDBOKEN... 3

Fonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har?

Lathund för SpellRight

Hur bestämmer man vilka fonem ett språk har? Fonologi. Kommutationstest. Hur bestämmer man vilka fonem ett språk har?

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Så här fungerar Stava Rex

Föreläsning 6. Slumptal Testa slumptal Slumptal för olika fördelningar Grafer Datastrukturen graf

Hjälper dig att kontrollera din text efter felstavningar och lättförväxlade ord. Manual

Vårdat, enkelt och begripligt!

Hammarbyskolan Reviderad februari 2009 Lokal kursplan i svenska/svenska som andra språk

Alternativa verktyg. ClaroRead PC

Innehåll GRAMMATIKKONTROLL I GRANSKA. Datorstöd för skrivande. Problemställning. Ola Knutsson

Missplel ett generellt verktyg för generering av stavfel

ViTal. Talsyntes. Användarhandledning

Svenskans struktur, 7,5 hp Tentamensexempel 1

Stava Rex. för Google Docs. Manual för Stava Rex för Google Docs

Innehåll. [dölj]

Automater. Matematik för språkteknologer. Mattias Nilsson

SALDO. En ruta kommer upp och du uppmanas att skriva in ett ord inte nödvändigtvis en lexikonform, det kan också vara en böjd form.

UPPGIFT 1 LAMELLER. Minsta antalet hål: 1. Första lamellen? Andra lamellen? Minsta antalet hål: 3

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Grundläggande Ordbehandling Microsoft Word

Språkteknologiska stöd. Förskolor. Stemming. Slå ihop till samma ord

Använd WordFinder från Mac App Store optimalt! Snabbguide med nyttiga tips och trix.

Vid fel och frågor Ta kontakt med förbundet. Logga in. Menyn

Virka C2C. LVAcrochet

Stavningskontroll. Metoder och tillämpningar inom språkteknologin. ht Allmänt om språkgranskning. Stavningskontroll.

Välkommen till ClaroStava svenska mac med tal artnr 12312

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Språkpsykologi/psykolingvistik

Lyssna Ljuda Läs 1(6) Lyssna Ljuda Läs ISLORMUA Lyssna Ljuda Läs ÅNBEKÄVWTPY Lyssna Ljuda Läs GÖJFDHXCZQ

TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

Uppgift 1 ( Betyg 3 uppgift )

Icke-linjära ekvationer

Skriftspråk i förändring möter förlegade skrivstöd

Målet är att ge maskiner förmågan att plocka ut information ur

MÖSG ht 2005 Maskinöversättningssystemet MATS

Majoritetsgranskaren ett sätt att förbättra grammatikgranskare genom att kombinera dem LINDA NORELIUS

FOR BETTER UNDERSTANDING. Snabbguide.

Lathund för Stava Rex

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Proloquo4Text Skriv. Tala. Kommunicera.

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

kl Tentaupplägg

Instruktioner till övningen som börjar på nästa sida

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Tips: På finns FAQ (vanliga frågor med svar) om SpellRight, liksom information om hur man kan uppdatera programmet.

Dolphin Guide Dokument

Programmering II (ID1019) :00-11:00

Anpassning av Windows 7 och Word 2010

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Använd WordFinder Pro för Mac optimalt! Snabbguide med nyttiga tips och trix.

Ett rimlexikon över det svenska språket. Rasmus Bååth och Staffan Åberg.

BRUKSANVISNING FÖR FD 100 -SERIENS KOPPLINGSUR

Lär dig engelska med bilder Mappia AB Facebook.se/mappia Twitter/mappiaab

Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, , 15 oktober 2001

Bilverkstäder. Stemming. Tvetydigheter tas bort. Slå ihop till samma ord. Språkteknologiska stöd vid sökning och kategorisering

(Termen grammatiskt läsande och skrivande kommer från det antika Grekland - grammatisk kunskap: förmågan att hantera bokstäverna)

En byggmodell över språket fonemet morfemet

Icke-linjära ekvationer

Innehåll. Informationssökning språkteknologiska hjälpmedel

SPRÅKLIG MEDVETENHET - förslag på övningar i F1:an

Annika Mårtensson Marianne Billström REVIDERAD! Nu med fokus på olika texttyper.

Pilen 2:1-2:2 O / OO. Steg 2:1 Dator Laborativ övning Arbetsblad. Steg 2:2 Dator Laborativ övning Arbetsblad

Snabbguide för användare SourceTech Telllus

Transkript:

Skrivstöd Christian Hardmeier (efter Joakim Nivre) 205-- Varför bry sig om stavning? Stavfel kan skapa missförstånd Stavfel kan dölja innehåll Stavning fungerar som bildningsmarkör Standardiserad stavning underlättar många uppgifter Slå upp ord i ordbok Identifiera svårlästa ord med OCR Språkteknologisk bearbetning i största allmänhet Hur används stavningskontroll? Interaktiv stavningskontroll = stavningskontrollen upptäcker fel medan man skriver Kan ge rättningsförslag Måste fungera i realtid (snabbt) Vi bestämmer, så stavningskontrollen måste inte vara 00% korrekt (särskilt inte rättningsförslagen) Automatisk stavningskontroll = stavningskontrollen körs på ett helt dokument, hittar fel och rättar dem Mycket svårare uppgift Kan kontrolleras av människor i efterhand

Detektering och rättning Två skilda uppgifter: Feldetektering = hitta felstavade ord Felrättning = rätta felstavade ord Det kan vara lätt att avgöra att atten är ett felstavat ord, men vad ska det vara? vatten? katten? arten? Observera att detektering är en förutsättning för rättning Orsaker till stavfel Skrivfel Mellanrumsfel Sammanskrivning = två ord blir ett en katt blir enkatt Särskrivning = ett ord blir två realisation blir reali sation Observera att resultatet kan bli riktiga ord rök fritt blir rökfritt kulglass blir kul glass Intilliggande tangenter tack blir rack därför att t och r är intill varandra på tangentbordet Orsaker till stavfel Kunskapsfel Kunskapsfel Att inte veta ett ords stavning (och kanske gissa) sykolog paralell Fonetiska fel Homofoner = två ord som låter likadant kol/kål bredden/brädden själ/skäl chiffer/skiffer Bokstavsutbyte = en bokstav (eller flera) ersätts med en som låter likadant syckel sjanger

Detektering av icke-ord Detektering av icke-ord är väsentligen detsamma som ordigenkänning, dvs att dela upp en texts ord i riktiga ord och icke-ord Hur detekterar man icke-ord? med hjälp av ett lexikon (kunskapsbaserad metod) med hjälp av n-gram-analys (statistisk analys) Lexikon Idé: Ha en fullständig lista med ord och kolla textorden mot denna Om det inte finns i lexikonet, är det inte ett ord Två aspekter: Lexikonuppbyggnad = Hur skapar man lexikonet? Vad ska det innehålla? Lexikonuppslagning = Hur slår man upp ett möjligt ord i lexikonet (snabbt)? Lexikonuppbyggnad Inkluderar vi böjda ord, avledda ord, och sammansättningar? Både stava och stavade? Även stavning, fel och felstavning? Det gör uppslagningen snabbare Men det tar mera minnesutrymme och täcker inte nybildningar (tex snabbstavning) Lexikonet ska helst bara innehålla ord som är relevanta för användaren (domänspecifikt) För de flesta är memoisera ett felstavat ord, men i datalogi är det en teknisk term Utländska ord, egennamn och nya ord kommer alltid att vara ett problem Vi kan inte förutse ord innan människor har skapat dem

N-gram-analys Ett n-gram är här en sträng (sekvens) av n bokstäver ö ön bön böna -gram (unigram) 2-gram (bigram) 3-gram (trigram) 4-gram Vi kan använda information om n-gram för att definiera möjliga strängar i språket möj är en möjlig svensk sträng, men kvt är det inte Bigramtabeller Vi kan tex göra en bigramtabell för bokstäverna k, l, m (med exempel inom parentes) k l m k 0 (tackle) (Hackman) l (elk) (hello) (alms) m 0 0 (hammer) Rader visar första bokstaven, kolumner den andra Denna tabell tar inte hänsyn till position i ordet Positionell bigramtabell Vi kan få mer information genom att ta hänsyn till position i ordet Här är en tabell för ordslut: k l m k 0 0 0 l (elk) (hall) (elm) m 0 0 0 Vi kan ytterligare förfina detta genom att använda sannolikheter (frekvenser)

Rättning av isolerade ord Givet att vi har identifierat felstavade ord, hur kan vi rätta dem? Den vanligaste metoden är att rätta isolerade ord, dvs utan att ta hänsyn till kontexten Observera att detta bara fungerar för stavfel som resulterar i icke-ord Kunskap om typiska fel kan hjälpa oss att hitta bättre rättningsförslag Kunskap om typiska fel Ordlängd: de flesta felstavade ord är inom två teckens längd från det avsedda ordet När vi söker efter rättningsförslag, kan vi bortse från ord med större längdskillnader Position: första bokstaven i ett ord är sällan fel När vi söker efter rättningsförslag, kan vi i första hand fokusera på ord som börjar på samma bokstav Metoder för rättning Generering av rättningsförslag: regelbaserade metoder likhetsbaserade tekniker 2 Rangordning av rättningsförslag: sannolikhetsmodeller minsta redigeringsavstånd

Regelbaserade metoder Vi kan skriva regler för rättningsförslag: Ofta felskrivna ord: ohc och Regler baserade på böjning: mmning mning (jfr simma simning, rymma rymning) baserade på vanliga feltyper: CsC CaC [C = konsonant] Likhetsbaserade tekniker Skapa rättningsförslag genom att hitta liknande ord Sortera ord i grupper efter likhet Till exempel: Sortera först efter första bokstaven punt börjar med P 2 Tilldela varje bokstavsgrupp en siffra 0 for vokal, for b, p, f, v (bilabialer), osv punt P052 3 Ta bort alla nollor och upprepade siffror P052 P52 4 Leta efter riktiga ord i samma grupp pund ingår också i grupp P52 Rangordning av förbättringsförslag När vi har skapat en lista med förbättringsförslag, vill vi veta vilket av dem som passar bäst Vi gör detta genom att beräkna ett likhetsmått mellan det felstavade ordet och varje rättningsförslag

Sannolikhetsmodeller Två typer av sannolikheter: Transitioner = sannolikhet för att en bokstav följs av en annan Vad är sannolikheten att ett a följer ett p i svenska? Att k följer c? Detta är inget annat än n-gram-analys! Förväxlingar = sannolikhet för att en bokstav av misstag ersätts med en annan Vad är sannolikheten att g förväxlas med j? Förväxlingar Det är svårt att uttömmande undersöka alla orsaker till fel, men vi kan observera hur ofta människor gör olika förväxlingar Ett sätt är att bygga en förväxlingsmatris korrekt r s t r 2 22 skrivet s 4 5 t 37 Hur är ett felstavat ord relaterat till originalet? Operationer Inskott = en bokstav är tillagd Strykning = en bokstav är struken Substitution = en bokstav ersätter en annan Transposition = två bokstäver har bytt plats Exempel: pund pundd (inskott) pund pun (strykning) pund punt (substitution) pund pudn (transposition)

Minsta redigeringsavstånd För att rangordna rättningsförslag, kan man beräkna det minsta redigeringsavståndet = det minsta antalet operationer som krävs för att ändra ett ord till ett annat Till exempel kan vi ändra munk till haiku i 5 steg: munk muk (strykning) 2 muk huk (substitution) 3 huk hku (transposition) 4 hku hiku (inskott) 5 hiku haiku (inskott) Men är detta det minsta antalet operationer? Beräkning av redigeringsavstånd Skapa en graf över alla möjliga operationer För att beräkna minsta redigeringsavståndet, skapar vi en riktad graf med noder (cirklar) och bågar (pilar) Olika bågar: Horisontella bågar motsvarar strykningar Vertikala bågar motsvarar inskott Diagonala bågar motsvarar substitutioner (inklusive substitution av samma bokstav) Stryk x Skjut in y Ersätt x med y Beräkning av redigeringsavstånd Exempel Antag att användaren skriver fire Vi vill beräkna avståndet till fri (som en möjlig rättelse) Vi skapar en graf över alla sätt att göra om fire till fri Varje operation har en kostnad f i r e f 0 r 0 i 0

Beräkning av redigeringsavstånd Finn vägen med lägst kostnad Vi vill ta oss från övre vänstra till nedre högra hörnet så billigt som möjligt Den enkla naiva metoden: Kolla alla vägar och se vilken som är billigast Detta är mycket ineffektivt Antalet väger växer exponentiellt Den smartare metoden: Gå igenom noderna i pilarnas riktning Lagra den minsta kostnaden för varje nod Lägg till operationens kostnad för varje ny nod Detta kallas dynamisk programmering Rättning i kontext Kontextberoende rättning = rätta ord med hänsyn till sammanhanget Enda sättet att rätta stavfel som ser ut som riktiga ord Mycket nära grammatikkontroll = rätta grammatiska fel Grammatikkontroll Syntaktiska fel = fel i hur ord sätts samman till meningar, tex ordföljd, kongruensfel Lokala fel: 2 ords avstånd Studien utfördes huvudsakligen uv Margareta Pettersson Ett substantiv på en prepositions plats Långdistansfel: längre avstånd Barnen som träffade tomten på dagis blev mycket glad Kongruensfel mellan subjektet Barnen och adjektivet glad

Mer om grammatikkontroll Semantiska fel = fel där strukturen är okej men betydelsen konstig De åt glas med chokladsås glas och glass är båda substantiv men bara det senare passar i kontexten Det finns många metoder för grammatikkontroll Två av de vanligaste: N-gram-modeller Regelbaserade modeller N-gram-modeller Vi kan titta på bigram av ord Vad är sannolikheten för ett ord givet föregående ord? Efter dessa är det mer sannolikt att se tider än timer När ett förväxlingsbart ord (tider) har högre sannolikhet i kontexten, kan vi markera timer som ett möjligt fel Detta kräver dock att vi har tillräckligt mycket text för att skatta dessa sannolikheter på ett tillförlitligt sätt OBS: Mer om n-gram på första laborationen Regelbaserade modeller Vi kan skriva regler för att matcha typiska fel Han brukade att komma sent Matcha verb som brukade och kunde följda av att Stryk att i detta mönster Se tex http://wwwlanguagetoolorg/

Sammanfattning Detektera stavfel Lättast för icke-ord (lexikon eller n-gram) Andra fel kräver grammatisk (och semantisk) analys Generera rättningsförslag Regler för vanliga fel Ordna ord i likhetsgrupper Rangordna rättningsförslag Förväxlingssannolikheter Redigeringsavstånd