Skrivhjälpmedel
Stavningskontroll
Stavningskontroll kan göras med användning av en ordlista som orden i texten kontrolleras mot; finns ett ord inte i listan markeras det som ett möjligt stavfel. Stavningskontroll kan också göras statistiskt genom sökning efter osannolika bokstavskombinationer, men ordlistemetoden är vanligast.
För morfologiskt okomplicerade språk, som t.ex. engelska, räcker det med att programmet innehåller en ordlista med alla språkets ordformer som de är. För svenskan, som morfologiskt sett är mer komplicerad, kan det vara värt att bara lista ordens grundformer och sedan med regler ange hur orden kan böjas, avledas och sammansättas. Utan morfologiska regler kommer stavningskontrollen att resultera i irriterande många falska alarm för vanliga sammansättningar och avledningar.
Detta beror på att ett sådant program bara kan känna igen isolerade ord och inte produktiva sammansättningar och avledningar. Resultatet blir att sammansättningen jättetrött signaleras som en misstänkt felstavning medan särskrivningen jätte trött godkänns. I värsta fall kan det lura en osäker skribent att särskriva sammansättningar. Problemet visar på nödvändigheten att utveckla teknologi specifikt för det svenska språket, och inte bara överta engelskspråkig teknologi. En annan fördel med morfologiska regler är att antalet former i lexikon kan reduceras vilket gör att det inte krävs lika mycket minne. Orthografix och Stava är program med svensk stavningskontroll som hanterar svenska sammansättningar.
Missade fel
Ordlistan i ett program med stavningskontroll bör vara omfattande eftersom det minskar risken för att ett existerande ord inte finns med. Dock är det viktigt att inte lågfrekventa ord tillåts komma med, särskilt inte om de är korta. Då ökar nämligen risken dramatiskt att de ska råka sammanfalla med vanliga felstavningar och därför inte kunna detekteras. Om t.ex. ordet ten ('metallstång') finns med i ordlistan, kommer stavfel av men, sen, den och andra vanliga ord som råkar resultera i ten inte att upptäckas. Problemet är vanligare än man kan tro och beräknas gälla 40 % av alla stavfel.
Anta att någon vill skriva Stoet följdes av sitt föl men råkar stava fel på föl. Stavfelet kan yttra sig på något av följande sätt:
• ett icke-ord ( Stoet följdes av sitt fol )
• ett morfosyntaktiskt fel om det resulterar i ett ord med samma ordklass men med andra morfologiska egenskaper, t.ex. annat genus ( Stoet följdes av sitt fön )
• ett strukturellt fel om det resulterar i ett ord med annan ordklass, t.ex. ett verb ( Stoet följdes av sitt föla )
• ett semantiskt fel om det resulterar i ett ord med samma ordklass och med samma morfologiska egenskaper i kontexten ( Stoet följdes av sitt fel )
Ett program som enbart kontrollerar isolerade ord mot en ordlista kan bara detektera stavfel som resulterar i icke-ord; de andra tre kategorierna av fel undgår upptäckt. Exemplen visar tydligt att stavfelsproblematiken inte kan lösas på ett helt tillfredsställande sätt utan tillgång till kunskap om ordens språkliga kontext. Detta gäller inte bara detektion, utan i ännu högre grad korrektion av fel.
Felkorrigering
De flesta program för stavningskontroll försöker nämligen också korrigera upptäckta fel. Oftast görs detta genom att en lista med möjliga korrektionsförslag genereras. Det vanligaste sättet att ge förslag på ersättningsord är genom s.k. omvända editeringsoperationer. Metoden bygger på det faktum att över 80 % av alla stavfel skiljer sig från det avsedda ordet endast i en enda bokstav, som antingen försvunnit ( bokstav > bostav ), tillkommit ( > bokkstav ), förväxlats ( > båkstav ) eller bytt plats med bredvidstående bokstav ( > bkostav ) (Damerau 1964).
Korrektionsförslagen tas fram genom att man vänder på processen och genererar alla existerande ord som skiljer sig från stavfelet i en bokstav: boktav > oktav, bokstav . Långa ord är lättare att ge förslag på än korta, som kan generera många förslag: fol > fog, fon, for, fot, fox, fal, fel, fil, ful, föl, folk, foul, fiol. Metoden fungerar bra för tangentbordsfel, dvs. stavfel som uppkommit genom felaktiga tangentbordstryckningar, men sämre för fel som uppkommit på annat sätt och som behöver hanteras med andra tekniker, t.ex. fonetiska förväxlingar ( schargong i stället för jargong ) och kunskapsluckor ( ätade i stället för åt). Det finns stavningskontroller som är gjorda för personer med särskilda behov, t.ex. det svenska stavningsprogrammet Stava rätt som är särskilt anpassat för dyslektiker.
Det finns några metoder för att rangordna och välja mellan olika korrektionsförslag, men långt ifrån alla system använder sig av dem. Ett sätt är att beräkna hur sannolikt det är att ett visst fel uppstår, t.ex. är det mer sannolikt att en tangent på tangentbordet förväxlas med en intilliggande tangent än med en som ligger längre bort. Med den här metoden skulle fil rangordnas högre än fel som förslag till fol eftersom i ligger bredvid o på tangentbordet . Ett annat sätt är att använda en grammatikkontroll för att sortera bort eller lågranka vissa förslag som inte passar in i kontexten. T.ex. passar förslaget fil inte med sitt i kontexten Stoet följdes av sitt ... p.g.a. inkongruens i genus. Därför kan förslaget troligen förkastas trots sin höga rankning på basis av sannolika tangenttryckningar.
Om ett program bara innehåller stavningskontroll kan man räkna med att det enbart kontrollerar isolerade ord och därför inte tar hänsyn till kontexten vare sig vid detektion eller korrektion av ord. För att i någon mån kontrollera kontexten syntaktiskt behövs ett program som innehåller grammatikkontroll.