Fredrik Engberg
fredreng@stp.ling.uu.se
1 Inledning1
Grammatifix är ett program för språkgranskning av svenska som har utvecklats av Lingsoft. Det är en vidareutveckling av den i Office 2000 inbygda språkkontrollen, SWEGC. Programmet kan identifiera följande typer av fel:
Man påpekar att Grammatifix, för bästa resultat, ska tillämpas på text där stavfel redan har rättats. Det går att använda valfritt program för stavningskontroll, men Lingsoft hävdar (föga förvånande) att deras egen produkt, Orthografix, är ''bäst anpassad till Grammatifix''.
Den verkligt intressanta delen i systemet är grammatikkontrollen, som är baserad på en restriktionsgrammatik för svenska, SWECG. (Se Birn 1998 om just SWECG, och Karlsson et al 1995 om själva restriktionsgrammatikformalismen.) Kontrollen av interpunktion m m (punkt 3 ovan) sker med finite state-tekniker, medan stilkontrollen helt enkelt undersöker om något ord i texten är försett med en viss stilmarkör i lexikonet och i så fall flaggar bruket av ordet som ett stilfel (Birn 1999b). I det följande ges en närmare beskrivning av grammatikkontrollen, baserad på Birn 1999a.2
2 Grammatikkontroll
2.1 Feltyper
Följande typer av grammatiska fel kan identifieras av programmet (nedklippt version av uppställning i Birn 1999a)3:
Som vi ser rör det sig i huvudsak om två typer av fel, dels kongruensfel i nominalfraser, dels felaktiga verbformer. Arppe et al (1998) menar att nominalfrasfelen, enligt deras erfarenhet, är de vanligaste grammatiska felen överhuvudtaget i svenska.
2.2 Feligenkänning
Indata till grammatikkontrollen är meningar där orden har taggats och (i görligaste mån) disambiguerats morfologiskt med den svenska restriktionsgrammatiken SWECG. Orden tilldelas inte några syntaktiska taggar av SWECG innan de når feligenkänningen utan innehåller endast information om ordklass och böjning. Arppe et al (1998) påpekar att det inte är mödan värt att försöka göra en mera fullständig analys av ogrammatiska meningar, särskilt som frasgränserna antagligen kommer att hamna fel. (Man kan ju anta att SWECG använder bl a kongruenssärdrag för att lokalisera frasgränser.)
När en mening når grammatikkontrollen tilldelas varje ord två taggar, @ERR och @OK. Sedan tillämpas disambigueringsregler som kan utesluta @OK-läsningen av vissa ord, så att de blir entydigt taggade med @ERR.4 Sist i regelmängden finns en default-regel av innebörden att alla ord som (fortfarande) är taggade @OK entydigt ska vara taggade @OK. Nu är varje ord taggat med antingen @ERR eller @OK.
Birn (1999a) ger följande exempel på hur en regel för specieskongruens i nominalfraser skulle kunna se ut:
(@w =s! (@ERR) (-2 GEN)
(-1 A-DEF)
( 0 N-DEF))
Detta ska tolkas som att varje ord, @w, entydigt ska
vara taggat @ERR ifall @w är ett substantiv i
bestämd form (N-DEF) som omedelbart föregås (-1) av ett
svagt böjt adjektiv (A-DEF), och som två steg till vänster (-2)
har en genitiv (GEN). Varje regel är kopplad till ett meddelande
som talar om för användaren vilken typ av fel det rör sig om och
eventuellt föreslår en korrigering.
2.3 Utveckling av felgrammatiken
Arbetet med felgrammatiken har skett i två steg. Först har man konstruerat regler som visserligen täcker in nästan alla fel men som dessutom ger en mängd falska alarm. Sedan har man försökt få ner mängden falska alarm genom att formulera striktare kontextvillkor för reglerna.
I detta arbete har man använt en korpus på 1,6 miljoner ord (mestadels tidningstext) som delats in i fem delar. Först har man tillämpat den ursprungliga, alltför generella felgrammatiken på den första delen av korpusen. Grammatiken finner då 739 fel, av vilka 459 (62 %) är falska alarm. Genom förfinade kontextvillkor minskar man sedan de falska alarmens antal till 37. Resultatet av detta arbete är en modifierad felgrammatik. Denna tillämpas nu på nästa del av korpusen, varpå man återigen försöker eliminera så många falska alarm som möjligt. Därigenom får man en ny regelmängd som tillämpas på den tredje delen av korpusen o s v.
En utvärdering på hela korpusen (NB: samma korpus som använts för att justera reglerna) ger 850 riktiga och 95 felaktiga flaggningar. Det svarar mot en precision på 90 %. Några uppgifter om täckning (recall) har jag inte funnit, men Arppe et al (1998) påpekar att man, i linje med vad som är allmänt känt om användares önskemål, har prioriterat stor precision framför stor täckning.
2.4 Begränsningar
Grammatifix använder ingen information om ords subkategorisering eller selektionsrestriktioner, och detta av två skäl. För det första vore det ett stort och krävande arbete att sammanställa sådan information. För det andra, även om man hade tillgång till informationen, skulle det bli svårt att undvika falska alarm eftersom det finns ett så stort antal korrekta konstruktioner (Arppe et al 1998).
Ordföljd kontrolleras bara i bisatser, där man genom att ta hänsyn endast till en relativt liten kontext kan identifiera felplacerade satsadverbial och negerade konstituenter (Arppe et al 1998). Att hitta ordföljdsfel i en huvudsats måste vara mycket svårt, eftersom det ofta skulle kräva en funktionell analys av satsen och det kanske inte finns mycket mer än just ordföljden att gå på när man ska göra den funktionella analysen.
Litteratur