Utbildningsprogrammet i datalingvistik Göteborgs Universitet VT 2004 LexMorf - ett morfologiskt lexikon Ett examensarbete av: Liselott Abrahamsson Johanna Sundkvist Handledare: Sylvana Sofkova Hashemi
Abstract LexMorf is a morphological lexicon implemented with a finite-state-tool called LEXC. To capture irregularities in the language, rules are implemented in TWOLC. The main function of LexMorf is to look up a word in LEXC to get its morphosyntactic information together with the grammatical base form. LexMorf can also be used with two different interfaces, a perl-program called lookup and a web application. Lookup can either tag a text file or a single word with its morphosyntactic information. The web application is used for looking up a word. The words in LexMorf come from a previous FST-lexicon created at the department of Linguistics at the university of Göteborg and from a morphological system called FM. 2
Innehållsförteckning 1 INLEDNING... 5 1.1 SYFTE... 5 2 VETENSKAPLIG BAKGRUND... 5 2.1 ETT LEXIKONS UPPBYGGNAD... 5 2.2 MORFOLOGI FÖR SVENSKA... 7 2.2.1 Substantiv... 7 2.2.2 Verb... 9 2.2.3 Adjektiv... 10 2.2.4 Pronomen... 11 2.2.5 Egennamn... 11 2.3 EXISTERANDE LEXIKON... 11 2.3.1 Svenska Akademiens Ordlista och Svensk Morfologisk Databas... 11 2.3.2 Lexin... 12 2.3.3 Finite-State lexikonet vid Institutionen för lingvistik... 13 2.3.4 Functional morphology... 14 2.4 VALENS... 16 2.4.1 Allmänt om valens... 16 2.4.2 Lexin... 16 2.4.3 Examensarbete vid Uppsala Universitet... 16 2.4.4 Formaliserat verbvalenslexikon... 17 2.4.5 SIMPLE/PAROLE... 17 2.5 FINITE-STATE-TEKNOLOGI... 18 2.5.1 Xerox Finite State Tool... 19 2.6 PERL-INTRODUKTION... 23 2.6.1 Perl och CGI... 25 3 METOD... 27 3.1 UPPSÖKNING AV KÄLLOR... 27 3.2 UPPBYGGNAD AV LEXIKONETS GRUNDSTOMME... 28 3.3 ORDEN... 28 3.4 GRÄNSSNITT... 29 4 IMPLEMENTATIONSDOKUMENTATION... 29 4.1 ANVÄNDARDOKUMENTATION... 29 4.2 UPPBYGGNAD AV LEXIKONETS GRUNDSTOMME... 29 4.2.1 Substantiv... 30 4.2.2 Verb... 34 4.2.3 Adjektiv... 37 4.2.4 Pronomen... 38 4.2.5 Determinerare... 38 4.2.6 Adverb... 39 4.2.7 Egennamn... 39 4.2.8 Övriga ordklasser... 39 4.2.9 Omskrivningseglerna... 40 4.3 ORDEN... 42 4.4 ÖVERSIKT ÖVER FÖRDELNINGEN AV BÖJNINGSKLASSER OCH ORD... 48 Ordklass... 48 4.5 GRÄNSSNITT... 48 4.5.1 Lookup... 49 4.5.2 Webb-gränssnittet... 51 5 RESULTAT... 54 5.1 HINDER PÅ VÄGEN... 56 6 SLUTKOMMENTAR... 57 3
6.1 FORTSATT ARBETE... 57 6.1.1 Ord från det tidigare FST-lexikonet... 57 6.1.2 Ord från SUC... 57 6.1.3 Valensfunderingar... 59 6.1.4 Sammansättningar... 60 6.1.5 Utökning av webb-gränssnittet... 61 LITTERATURREFERENSER... 62 APPENDIX... 64 4
1 Inledning När vi fick höra talas om att det fanns önskemål om att Finite-State-lexikonet som används av grammatikstödet FiniteCheck skulle utökas med till exempel morfologisk information valde vi att anta utmaningen och göra ett försök. Eftersom en av oss har ett brinnande intresse för lexikografi och morfologi och den andra tycker om att arbeta med Finite-State-metoder kändes detta som en utmärkt kombination! Det vore dessutom roligt att göra ett examensarbete som kan användas i praktiken, gärna inom flera användningsområden. Eftersom det nuvarande FST-lexikonet innehåller fullformer av orden vore ett alternativ att bygga upp ett helt nytt lexikon med grundformer och morfologiska böjningsklasser. Sedan är det i så fall önskvärt att automatiskt lägga in ord från till exempel det tidigare FST-lexikonet, men även från andra källor som kan passa. 1.1 Syfte Syftet med detta examensarbete är att skapa ett morfologiskt lexikon med hjälp av Finite-State-verktyg. Valet av Finite-State metoder grundar sig främst på att vi ska bygga ut lexikonet i grammatikstödet FiniteCheck. FiniteCheck är utvecklat på institutionen för lingvistik vid Göteborgs universitet och är implementerat med hjälp av Finite-State-verktyg. Tanken är även att lexikonet ska kunna användas i andra tillämpningar. Förutom att vara användbart till att slå upp ord är förhoppningen att lexikonet ska kunna användas på olika sätt i undervisning av till exempel morfologi. Det är också bra om det kan konverteras till andra format, till exempel kod i programmeringsspråket prolog, vilket kan vara användbart för datalingvister på olika sätt. 2 Vetenskaplig bakgrund I detta kapitel ges en bakgrund som behandlar allmän lexikonuppbyggnad, svensk morfologi, existerande lexikon, valens, verktyg och metoder för finita automater samt en introduktion till programmeringsspråket Perl. I avsnittet om existerande lexikon behandlas både morfologiska lexikon och underliggande arbeten till detta examensarbete. 2.1 Ett lexikons uppbyggnad Termerna lexikologi och lexikografi kan vara förvirrande och svåra att hålla isär. Lexikologi kan beskrivas som studiet av lexikonets struktur och funktion (Järborg, 1996). Det är alltså en gren av deskriptiv lingvistik som arbetar med teorier och metoder för att beskriva lexikal information och då framför allt betydelser (Van Eynde et al., 2000). Lexikografi är en tillämpning av lexikologi där man presenterar lexikaliska enheter (Järborg, 1996). Denna gren ägnar sig alltså åt design och kontruktion av lexikon för praktisk användning (Van Eynde et al., 2000). Van Eynde (2000) påpekar att lexikografin är styrd av ändamålet ett lexikon byggs för ett särskilt syfte och innehållet i lexikonet styrs av de krav som finns för den praktiska användningen. Detta examensarbete är inriktat på lexikografi snarare än lexikologi, eftersom det här handlar om att konstruera ett lexikon. 5
Svensén (1987) beskriver vilka lexikografiska kategorier som vanligen finns med i en ordboksartikel i ett lexikon: Formella kategorier som grafisk form, uttal och böjning. Kombinatoriska egenskaper som ordklass och valens. Semantiska kategorier, alltså betydelser. Encyklopediska kategorier, det vill säga information av icke-språklig natur som illustrationer och etiketter för ämnesområde. Vilka av dessa kategorier som finns med styrs av lexikonets syfte och användarkrav. Detta gäller även urvalet av ord som anpassas till ändamålet. Strävan är även att uppnå en representativitet som till exempel speglar frekvensen hos språkbrukarna, vilket innebär att varje ord eller uttryck i ordboken bör förekomma tillräckligt ofta i språket. När det gäller grammatisk form på orden brukar de vanligaste uppslagsformerna vara nominativ singular för substantiv, till exempel blomma. För adjektiven anges normalt nominativ singular i okomparerad form, till exempel glad. Adverben står i okomparerad form, till exempel snabbt, och för verben anges formen presens infinitiv aktivum, till exempel ropa. Den böjningsinformation som ges i lexikonet styrs av syftet, användarnas förväntade kompetens och vad utrymmet tillåter. Detta gäller både vilka typer av ord som får böjningsuppgifter och vilka böjningsuppgifter som ges (se kapitel 2.2 om svensk morfologi). Något som hör tätt ihop med böjningen är ordklasstillhörighet och i substantivens fall även genus, vilket också oftast anges i en ordbok. Två andra viktiga termer i samband med lexikonuppbyggnad är mikro- och makrostruktur (Svensén, 1987). Med mikrostrukturen menas de enskilda ordboksartiklarnas struktur och innehåll. När man ska bestämma sig för vad som ska vara en ordboksartikel brukar man ta hjälp av termen lemma, som av Allén definieras som: en grupp ordformer inom en ordklass vilka kan hänföras till antingen en och samma flexikonsserie eller flera konvergerande serier vars divergenser visar fri variation (Allén, 1970: XVIII) Den tar alltså fasta på böjning och variation och som exempel ges de båda flexionsserierna sticka, stack, stuckit och sticka, stickade, stickat. De sammanfaller ( konvergerar ) bland annat i formen sticka, men det handlar inte om fri variation eftersom de har olika betydelser och därför bildar serierna två olika lemman. Däremot bildar serierna simma, sam, summit och simma, simmade, simmat ett enda lemma, eftersom skillnaderna ( divergenserna ) i bland annat formen simma uppvisar fri variation. Två homografer som tillhör olika ordklasser blir alltså automatiskt två olika lemman, vilket gäller till exempel bar (substantiv för matställe och adjektiv för naken ). Detsamma gäller homografer inom en ordklass som böjs olika, till exempel substantivet bål som antingen kan böjas bålbålen ( en kroppsdel ) eller bål-bålet ( brasa ). 6
Makrostrukturen innebär sedan hur de olika ordboksartiklarna placeras i förhållande till varandra, där den enklaste strukturen förstås är alfabetisk sortering. Ordförklaringar och sammansättningsmarkeringar förekommer också oftast i ett lexikon, men dessa fenomen beskrivs inte vidare här, eftersom de inte kommer att läggas in i LexMorf. För mer information se (Svensén, 1987). Valens kan också finnas med i en ordboksartikel, och detta ämne diskuteras vidare i kapitel 2.4. 2.2 Morfologi för svenska Den minsta betydelsebärande enheten i språket kallas morfem. Morfemen fyller endast en grammatisk funktion, de kan till exempel beteckna flertal, ägande och bestämdhet. Den del av grammatiken som beskriver hur lexikonord och böjningsmorfem kan kombineras med varandra kallas morfologi. (Jörgensen et al.,1986) I detta kapitel beskrivs svensk morfologi för ordklasserna substantiv, verb, adjektiv, egennamn och pronomen. Indelning och böjningsinformation kommer från (Teleman et al., 1999) och (Jörgensen et al., 1986). Orden i ordklasserna konjunktioner, subjunktioner, interjektioner och prepositioner får däremot ingen böjning. 2.2.1 Substantiv Subtantiven böjs i numerus (singularis eller pluralis), species (obestämd eller bestämd form) och kasus (nominativ eller genitiv) (Teleman et al., 1999). De delas traditionellt upp i fem böjningskategorier, eller deklinationer som de också brukar kallas, men man kan även dela in dem i fler. Substantiven får ingen numerusändelse i singular, de delas därför in i olika deklinationer efter pluralmorfemen. Ibland kombineras pluralmorfemet med förändringar i ordets stam, till exempel hand-händer, mus-möss, toffel-tofflor (Jörgensen et al., 1986). Lexikonet i detta examensarbete delar in sina substantiv i fem deklinationer och det är främst den formalismen som förklaras nedan. Indelningen nedan är inte entydig, reglerna för pluralböjningen är nämligen mycket komplicerade och man kan därför inte enbart genom att utgå från substantivets form och genustillhörighet säga vilken deklination de tillhör (Teleman et al., 1999). Deklination ett Får pluralsuffixet -or, som till exempel flicka-flickor, ros-rosor. Första deklinationen innehåller nästan utelutande utrala ord men det finns några få undantag som prismor och panoramor. Flertalet av orden är två-eller flerstaviga med stamslut på obetonat -a som faller bort i pluralis, till exempel gata-gator, veranda-verandor, snara-snaror, men det finns även några fåtal med stamslut på konsonant, till exempel ros-rosor, våg-vågor. Stamslut på obetonat -el eller -er gör att -e faller bort i pluralis, till exempel toffel-tofflor, åder-ådror. Deklination två Får pluralsuffixet -ar, som till exempel pojke-pojkar, gård-gårdar. Andra deklinationen innefattar även den till största delen utrala ord. En del av orden är tvåstaviga med stamslut på obetonat -e, till exempel påse-påsar, gubbegubbar, stolpe-stolpar, men det finns också en mängd enstaviga ord som tillhör 7
den här deklinationen, till exempel båt-båtar, häst-hästar, grind-grindar. Endast två ord i denna deklination får så kallade omljud, vilket är när stamvokalen förändras för pluralformerna, moder-mödrar och dotter-döttrar. Det blir också stamförändringar för ord som slutar på obetonat e eftersom det faller i plural, men även för andra obetonade slutstavelser som -el, -er och en faller e när man lägger till pluralmorfemet, till exempel cykel-cyklar, åker-åkrar, fröken-fröknar. Ibland dubbleras dessutom -m och -n efter kort betonad vokal före suffixvokalen, till exempel dröm-drömmar, stam-stammar. Deklination tre Får pluralsuffixet er eller -r, som till exempel sång-sånger, bild-bilder, sko-skor. Flertalet av orden tillhörande den här deklinationen har genus utrum men hit hör också en grupp neutrala ord. Deklination tre är den mest omfattande eller den med mest skiftande karaktär på orden. Många utrala ord får även en vokalväxling i plural, de vokalväxlingar som sker är a:ä, å:ä, o:ö, till exempel som i strandstränder, tång-tänger, son-söner. Orden get, nöt, bok, fot, rot, gnet och fotnot får en förlängning av slutkonsonanten och en förkortning av den föregående vokalen vilket ibland resulterar i en vokalväxling. De neutrala orden i den här deklinationen har antingen tryck på slutstavelsen eller stamslut med trycksvagt -a eller -um som faller i pluralis, till exempel geni-genier, drama-dramer. För ord där stammen slutar på -el, -er eller -en faller den obetonade vokalen, detta gäller för både utrala och neutrala ord, till exempel orakel-orakler, möbel-möbler. -n och -m dubbelskrivs efter kort betonad vokal framför pluralsuffixet, som i vän-vänner. De substantiv som enbart får -r som pluralsuffix är bland annat utrala ord med enstaviga stammar, till exempel klo-klor, ko-kor, sko-skor, ord med stammar som slutar på obetonat -e, framför allt sådana på -ie och -je, som i linje-linjer, radieradier och stammar som slutar på annan obetonad vokal, framför allt på -u och -o, till exempel bastu-bastur, radio-radior. Även avledda ord med avledningssuffixen -else och -arie har enbart -r som pluralmorfem, som exempelvis rörelse-rörelser, kommissarie-kommissarier. Ibland tilldelas ord som har det här pluralmorfemet en egen deklination. Den här indelningen gör bland annat SAG (Teleman et al., 1999). Deklination fyra Får pluralsuffixet -n som till exempel äpple-äpplen, rike-riken. De flesta ord i den här deklinationen är neutrala med stamslut på obetonad vokal, som piano-pianon, hjärta-hjärtan, eller med enstaviga stammar som slutar på lång vokal, till exempel bo-bon, strå-strån. Hit hör också avledda substantiv med avledningssuffixen -ande, -ende, -e eller -sle, som exempelvis yttrande-yttranden, bete-beten, hängsle-hängslen (Teleman et al., 1999). Deklination fem Får inget pluralsuffix, som till exempel träd-träd, studerande-studerande. Hit hör de flesta neutrala ord med stamslut på konsonant, till exempel ägg, skåp, vapen. Även utrala ord som bildas med avledningssuffixen -ande, -are eller er, som i ordförande, målare och musiker och utrala ord med omljud i pluralis, till exempel man-män, gås-gäss tilldelas den här deklinationen (Jörgensen et al, 1986). 8
Vissa skolor har även en egen deklination för ord som tilldelas pluralmorfemet s. SAG gör bland annat på det här sättet (Teleman et al., 1999). De flesta av orden som får s i plural är inlånade utrala subtantiv som happenings och walkietalkies, men det finns även en del svenska ord som tillhör den här gruppen till exempel schlagers och strebers. 2.2.2 Verb Verben böjs efter finithet (finita eller infinita verb), modus (indikativ, imperativ eller konjunktiv), tempus (presens eller preteritum) och diates (aktiv eller passiv). Verben delas in i böjningsklasser eller konjugationer som de kallas för verb. Indelningen görs efter hur verbstammen ser ut och hur preteritum bildas. Verben delas in i två huvudtyper svaga verb och starka verb. De svaga verben bildar preteritum med suffix och de starka med vokalväxling i stammen. De svaga verben delas i sin tur in i tre konjugationer beroende på stamslutets fonologiska form. Verbens stamform är densamma som imperativformen eftersom denna bildas utan suffix. Man får då följande indelning: Första konjugationen Orden i den här konjugationen är svaga verb som har ett trycksvagt a som stamslut, som till exempel rita och dua. Preteritum bildas här med ändelsen de : ritade, duade (Jörgensen et al, 1986). Andra konjugationen Andra konjugationen tilldelas svaga verb med stamslut på konsonant som kan vara antingen tonanade eller tonlös. Om konsonanten är tonande bildas preteritum med de, som i ringa-ringde, döma-dömde. Om konsonanten är tonlös bildas preteritum med te : köpa-köpte, löpa-löpte. Det kan även förekomma vokalväxlingar som i välja-valde eller svälja-svalde (Jörgensen et al, 1986). Tredje konjugationen Tredje konjugationen innehåller svaga verb vars stam slutar på lång tryckstark vokal. Här bildas preteritum med -dde samtidigt som stamvokalen blir förkortad, som till exempel sy-sydde, tro-trodde (Jörgensen et al, 1986). Fjärde konjugationen Fjärde konjugationen innehåller starka verb vars stammar kan uppträda i maximalt fyra varianter: presens, preteritum, konjunktiv och supinum. Preteritum bildas utan tillägg av något preteritummorfem och orden får ofta en vokalväxling i stammen: bita-bet, falla-föll. Ibland blir det en tredje avljudsvokal i preteritum particip och supinum: finna fann funnen funnit. Förutom de två huvudtyperna finns även ett antal oregelbunda verb. De oregelbundna verben har böjningsformer som tillhör mer än en av de regelbundna konjugationerna som till exempel dö dog dött och se såg sett (Jörgensen et al, 1986). Samma verb kan ibland böjas enligt flera olika konjugationer i böjningsformer, även kallat alternativ böjning, till exempel slukar slukade/slök slukat (Jörgensen et al, 1986). 9
2.2.3 Adjektiv Adjektivets böjning är beroende av det substantiv eller pronomen som det bestämmer. Man säger att adjektivet kongruensböjs, vilket innebär att adjektivets form påverkas av substantivets genus, numerus och species, till exempel som attributiv: ett stort träd, de stora träden, en stor bil och som predikativ: trädet är stort, träden är stora och bilen är stor. Det finns även vissa oböjliga adjektiv som lila och stackars (Jörgensen et al, 1986). När adjektivet bestämmer ett substantiv som är huvudord i en indefinit nominalfras eller då det står predikativt säger man att adjektivet har stark böjning. Vid stark böjning får adjektiv som bestämmer ett utralt substantiv i obestämd form singularis inget suffix, är substantivet neutralt blir suffixet t och om det står i pluralis blir suffixet a. Exempel: en grön skjorta, två gröna skortor, skjortan är grön, skjortorna är gröna (Jörgensen et al, 1986). Om adjektivet istället bestämmer ett substantiv som är huvudord i en definit nominalfras säger man att adjektivet har svag böjning. Vid svag böjning används suffixet a både i singularis och pluralis, till exempel: den gröna skjortan, det gröna huset, de gröna cyklarna, Kalles gröna skjorta. Undantaget är bestämningar till substantiv i maskulinum, då ändelsen blir -e i singularis, till exempel: den glade pojken, de glada pojkarna. Ändelsen a kan utebli om adjektivet slutar på betonad vokal, som i det blå(a) huset. Om föregående stavelse innehåller ett obetonat a ersätts a av e, till exempel: de mörkhyade människorna (Jörgensen et al, 1986). De flesta adjektiv kan också böjas i tre komparationsformer positiv (ful), komparativ (fulare) och superlativ (fulast). Komparationen visar skillnad i grad av den egenskap som betecknas av adjektivet. För många adjektiv ersätts komparativformen med mer + positiv och superlativformen med mest + positiv. Det är bara positiv och i viss utstäckning superlativformen som kongruensböjs (Teleman et al., 1999). Orden kan kompareras enligt två deklinationer: Första deklinationen Den första deklinationen tilldelas de flesta svenska adjektiv, och det är även hit man för nya adjektiv om de suffixböjs. Suffixet i komparativ är are och i superlativ ast. Exempel: kort kortare kortast, glad gladare gladast. För adjektiv som slutar på obetonat el, -en eller er faller det obetonade e-et före are och ast (Teleman et al., 1999). Andra deklinationen Andra deklinationen tilldelas rätt få men vanliga adjektiv. I andra deklinationen är suffixet i komparativ re och i superlativ st. Stammen är enstavig och stamvokalen växlar från positiv till komparativ och superlativ, även kallat omljud, enligt följande: u : y, å : ä, o : ö. Exempel: tung tyngre tyngst, lång längre längst. Vissa adjektiv i den här deklinationen saknar morfologiskt samhörig positivform, som till exempel gammal äldre äldst och dålig sämre sämst (Teleman et al., 1999). 10
2.2.4 Pronomen Man kan urskilja fyra huvudgrupper av pronomen utifrån deras funktionella och semantiska egenskaper i satsen: definita (jag, ni), interrogativa (vem, vad), kvantitativa (allting, allihop) och relationella (annan, samma). I fråga om böjning delar sig pronomen i två huvudtyper, subtantivistiska och adjektivistiska. Substantivistiska pronomen fungerar framför allt som huvudord i nominalfraser, vanligtvis utan bestämningar. De skiljer sig från substantiv och adjektiv främst genom sin böjning, de böjs nämligen inte på samma sätt i numerus som substantiven och inte som adjektiven när det gäller genus och numerus. Hit hör till exempel: definita: jag, ni, hon, sig, varandra interrogativa: vem, vad kvantitativa: alllihop, allting, ingenting, någonting. (Teleman et al., 1999) Adjektivistiska pronomen böjs som obestämda adjektiv i genus och numerus (all, allt, alla) och/eller i genus som adjektiv i bestämd form (samme, samma). Adjektivistiska pronomen kan stå som attribut, kongruensböjda med ett substantivistiskt huvudord. Exempel: definita: den, denna interrogativa: vilken, hurdan kvantitativa: all, en, sådan, sista, ena, enda relationella: samma, sådan, sista, ena, enda (Teleman et al., 1999) Jämfört med substantiv och adjektiv har pronomen en mera oregelbunden böjning; hon, hennes; de, deras; min, mitt; någon, några. 2.2.5 Egennamn Svenska egennamn böjs i kasus, de får i genitiv suffixet s. 2.3 Existerande lexikon Här behandlas några existerande lexikon. Det är ingen uttömmande uppräkning av samtliga lexikon som finns, utan den är begränsad till två morfologiska lexikon och de arbeten som ligger till grund för LexMorf. De underliggande lexikonen är ett finite-state-lexikon som har utarbetats vid institutionen för lingvistik vid Göteborgs Universitet och ett morfologiskt system som kallas FM. Dessutom beskrivs Lexin kortfattat, eftersom det användes vid skapandet av det nyss nämnda FST-lexikonet. 2.3.1 Svenska Akademiens Ordlista och Svensk Morfologisk Databas Sedan 1986 har arbete pågått med att utforma en maskinläsbar version av Svenska Akademiens ordlista (SAOL) vid Göteborgs Universitet (Berg et al., 1988). Där finns inte bara alla huvudord, utan även alla böjningsformer. Syftet var att utveckla en ordlista till stavningskontroller som behöver kunna slå upp såväl böjda som oböjda ord från texter. Önskemålet var från början att böjningsformerna skulle kunna genereras automatiskt givet huvudordet och den böjningsinformation som finns i SAOL. På grund av det stora antalet sammansatta och härledda ord blev dock denna metod omöjlig att använda. För att få hög 11
korrekthet valde man istället den mycket tidsödande metoden att tagga varje ord för hand med en siffra som står för den böjningsgrupp ordet tillhör. Efter grupptilldelningen genererades ordens respektive böjningsformer automatiskt. Detta gick till så att ordens stammar bestämdes genom en eller flera operationer på grundformen. På ordet dröm tillämpas till exempel en operation som dubblerar sista konsonanten i stammen så att pluralformen blir drömmar. Varje böjningsgrupp fick ett paradigm med ändelser som lades till dessa stammar. 133 000 grundord bildade på det här sättet sedan 885 000 ordformer. 1999 påbörjades arbete med att vidareutveckla SAOL i maskinläsbar form genom att skapa en fullformsdatabas med namnet Svensk Morfologisk Databas (SMDB) (Berg et al., 2001), något som internt kallas uppblåsningen av SAOL. SMDB lagrar inte bara uppslagsorden i SAOL utan även samtliga böjningsformer och ordledsmarkeringar. Dessutom har alla grafiska ordformer tilldelats en morfosyntaktisk tagg. Förutom skapandet av fullformer från stam och gruppändelser som beskrivs ovan genereras alltså även en morfosyntaktisk beskrivningstagg, som består av ett antal attribut-värdepar där positionen anger vilken kategori som avses. Ett substantiv i utrum, singular, nominativ och obestämd form som till exempel dröm får då taggen NCUSNI. Antalet böjningsgrupper är ca 300 stycken och genereringssystemet omfattar ca 4000 olika regler. Istället för att försöka hålla nere antalet regler har man prioriterat möjligheten att söka i databasen efter speciella företeelser som en viss regel tar hand om, till exempel substantivformer med flyktig vokal. Meningen är att SMDB ska uppdateras kontinuerligt mot SAOL så att nya ord som läggs till där även läggs till i databasen och lemman som tas bort ur ordlistan även tas bort ur databasen. I SMDB finns även tillgång till frekvensuppgifter i korpusar i Språkbanken vid Göteborgs Universitet där man bland annat kan se vilka ord och vilka böjningsformer av ett ord som är vanligast. Detta är också en hjälp vid beslut av vilka ord som ska uteslutas, eftersom man kan se hur många förekomster det finns i korpusarna och på så sätt eliminera dem ur SAOL och SMDB om de används mycket sällan eller aldrig. SMDB kan även användas till annotering av korpusar i Språkbanken. Varje graford tilldelas en tagg för morfosyntaktisk beskrivning samt lemmatillhörighet, drömmar får till exempel lemmatillhörigheten dröm (se kapitel 2.1 för definition av lemma). Genom att annotera en text kan man hitta nyordskandidater, alltså ord som förekommer ofta i texten, men som inte finns med i SMDB. 2.3.2 Lexin Lexin är ett projekt med språklexikon för invandrare som initierades av Skolöverstyrelsen 1979 och numera handhas av myndigheten för skolutveckling. Det svenska ordmaterialet har dessutom givits ut i form av en svensk-svensk ordbok i Lexin-serien med titeln Svenska ord - med uttal och förklaringar. Denna upplaga innehåller ett urval om cirka 28 500 ord (se http://wwwlexikon.nada.kth.se). Varje uppslagsord är försett med bland annat uttalsinformation, helt utskrivna böjningsformer, förklaring, valensinformation 12
och språkexempel. En skillnad mot de flesta andra svenska ordböcker är att verben står i presensform. 2.3.3 Finite-State lexikonet vid Institutionen för lingvistik Vid Institutionen för lingvistik vid Göteborgs universitet har man tidigare utarbetat ett FST-lexikon (här kallat det tidigare FST-lexikonet ) i samband med utvecklingen av ett grammatikstöd som använde sig av just finite-state-tekniker (Sofkova Hashemi, 2003). Lexikonet baseras på två källor Lexin (se avsnitt 2.3.2 och 2.4.2) och SveLex. Från början hade man bara tillgång till Lexin, som man valde mycket för att det innehöll valensinformation (Sofkova Hashemi, 2003). All information i Lexin användes dock inte, bland annat innehåller det nya lexikonet ingen information om valens som Lexin gjorde. Lexikonets textfiler gjordes om till ett stort reguljärt uttryck. Man skapade också en ny fil med ett lemma på varje rad med utgång från Lexins data som man också gjorde om till ett reguljärt uttryck. Varje ord i lexikonet representerades av en transduktor med strängen på undersidan och dess taggar på översidan. Sedan lades de 100 000 tusen vanligaste orden från det korpusbaserade Sve-Lex till i lexikonet. Orden lades in och taggades automatiskt. För att resultatet av sammanslagningen skulle bli mer kompakt och effektivt kompilerade man det nu i LEXC i stället för XFST. Det nya lexikonet är också ett fullformslexikon (Sofkova Hashemi, 2003). Nedan följer ett exempel från (Andersson et al., 1999). För mer information om syntaxen i LEXC se kapitel 2.5.1: LEXICON Root Noun ; Verb ; LEXICON Noun bil:0 NCUSN@IS; bilen:0 NCUSN@DS; LEXICON Verb bilar:0 V@IPAS; LEXICON NCUSN@DS 0:%[nn% utr% sin% def% nom%] #; LEXICON NCUSN@IS 0:%[nn% utr% sin% ind% nom%] #; LEXICON V@IPAS 0:%[vb% prs% akt%] #; Sublexikonen har fått namn efter Parole-taggarna då orden i lexikonet har genererats automatiskt från Sve-Lex, som använder dessa taggar. Orden tilldelas 13
en tagg från SUCs taggset som innefattar 23 kategoriklasser och 29 särdragsklasser. SUC Stockholm Umeå Corpus är en korups utvecklad vid Stockholms och Umeås universitet som innehåller ca en miljon ord. För mer information om SUC se (Ejerhed et al., 1992). En förteckning över SUC-taggarna och vad de betyder finns i Appendix C. LEXC-formatet skapades från textfilerna genom ett Perl-script. Efter att man har kompilerat lexikonet kan man slå upp ord och få tillbaka dess tagg som innehåller information om ordklass och andra särdrag. Interaktionen med lexikonet sker med hjälp av ett program lookup som också är skrivet i Perl. Lookup kan läsa in en textfil och göra en analys av varje ord, se kapitel 4.5.1 för en mer utförlig beskrivning (Sofkova Hashemi, 2003). Som resultat av att skriva lookup bilar i prompten i LEXC får man tillbaka ordets tagg - [vb prs akt]. Skulle bilar finnas även som substantiv får man även den taggen som svar. Skriver man i stället lookdown [vb prs akt] får man alla verb som tilldelats den här taggen i lexikonet (se även kapitel 2.5.1). 2.3.4 Functional morphology Aarne Ranta och Markus Forsberg har implementerat en funktionell formalism i programmeringsspråket Haskell för att definiera morfologi, ett system som här kallas FM funktionell morfologi (Forsberg et al., 2002). Målet är att kunna generalisera och hitta mönster i morfologi med ett domänspecifikt språk inbäddat i Haskell och genom det här systemet kan man sedan automatiskt generera olika format såsom XML och XFST. FM är ett försök att göra en abstraktion på en högre nivå än reguljära uttryck, som annars ofta används till morfologibeskrivningar. Korrekthet är viktigare än full täckning, vilket betyder antingen en korrekt analys eller ingen analys alls, gissningar när det gäller okända ord är alltså inte tillåtet i systemet. Detta stöds av det faktum att lexikonet innehåller ett fast antal ord som inte automatiskt utökas när nya ord påträffas. För svenska finns för närvarande ett lexikon med ca 1 500 ord med ca 20 000 böjningsformer. I lexikonet står orden i grundform tillsammans med sin böjningsklass. Det finns 34 olika böjningsklasser för de öppna ordklasserna, dels s1-s5 för de fem substantivdeklinationerna och v1-v3 för de tre verbkonjugationerna, dels klasser för ord som böjs mer oregelbundet. Ett exempel är snyckel för ord där -e före -l eller -n försvinner när pluralformerna läggs till ordet, till exempel nyckel-nycklar. Ett annat exempel är vau för starka verb som har vokalförändringen A-U i preteritum och supinum, till exempel finna-fannfunnit. När man kör programmet med kommandot morpho_sw kan man med olika flaggor få olika output. Om man använder läget utan flagga kan man skriva in ett böjt ord och få ut information om ordet. Skriver man till exempel hoppar får man som output: [ <hoppar> # hoppa Verb - VF (Pres Ind Act) -] Från detta kan man utläsa att hoppar kommer från grundformen hoppa och att det står i presens, indikativ, aktiv form. Med flaggan -s får man ut hela böjningstabellen eller böjningstabellerna för ordet, till exempel för ordet gässen: 14
gås Subst Utr SF Sg Indef Nom: gås SF Sg Indef Gen: gås SF Sg Def Nom: gåsen SF Sg Def Gen: gåsens SF Pl Indef Nom: gäss SF Pl Indef Gen: gäss SF Pl Def Nom: gässen SF Pl Def Gen: gässens Här kan man utläsa att gässen kommer från grundformen gås som är ett utralt substantiv, och man kan även se ordets övriga möjliga böjningar samt morfologiska taggar. Som nämnts ovan kan även alla ord i lexikonet med dess respektive böjningar genereras i olika format. Använder man till exempel flaggan -LEXC genereras LEXC-format med den böjda formen på vänstersidan och grundform plus tagginformation på högersidan (se kapitel 2.5.1 för syntaxen i LEXC): LEXICON Root! category Verb tycker:tycka+vf+pres+ind+act # ; tycks:tycka+vf+pres+ind+pass # ; tyckes:tycka+vf+pres+ind+pass # ; tycke:tycka+vf+pres+conj+act # ; tyckes:tycka+vf+pres+conj+pass # ; tyckte:tycka+vf+pret+ind+act # ; tycktes:tycka+vf+pret+ind+pass # ; tyckte:tycka+vf+pret+conj+act # ; tycktes:tycka+vf+pret+conj+pass # ; tyck:tycka+vf+imper # ; tycka:tycka+vi+inf+act # ; tyckas:tycka+vi+inf+pass # ; tyckt:tycka+vi+sup+act # ; tyckts:tycka+vi+sup+pass # ; tyckande:tycka+vi+ptpres+nom # ; tyckandes:tycka+vi+ptpres+gen # ;... FM går att ladda ned från http://www.cs.chalmers.se/~markus, där det även finns en länk till Svenska Ord som är ett webb-gränssnitt till systemet. Där kan man antingen slå upp ord, etikettera ord i en text eller lägga till ord till lexikonet. 15
2.4 Valens Något som skulle vara önskvärt att lägga in i lexikonet är valensinformation, vilket till exempel skulle vara användbart vid syntaktisk parsning. I detta kapitel förklaras därför vad valens är och dessutom beskrivs en del tidigare arbeten inom detta område. 2.4.1 Allmänt om valens Att lägga in valensinformation i lexikonet innebär att orden markeras med vilka komplement de kan ta. Enligt Thaning (2001) beskriver Svenska Akademiens Grammatik valens som de semantiska eller syntaktiska krav som ett ord (särskilt substantiv, adjektiv och verb) har på sin omgivning. Det vanligaste är dock att prata om valens hos verben, eftersom det är dessa man utgår ifrån vid en valensanalys. Verben bestämmer helt enkelt huruvida subjekt och objekt ska finnas, hur många objekt som krävs och även vilka ord eller fraser som kan ingå i dess objekt. Verbens valens handlar alltså om deras potential att ingå i relationer med andra led i satsen (Thaning, 2001). Om ett verb inte tar några objekt kallas det intransitivt. Ett exempel är sova, eftersom man inte kan säga jag sover någon. Ett verb som kräver ett objekt kallas transitivt och exempel på det är gilla, eftersom man kan säga jag gillar någon, men inte bara jag gillar. Slutligen kan ett verb ta två objekt och kallas då ditransitivt. Det typiska exemplet är att ge någon något. Ett verb kan också ha flera olika transitiviteter. Ett exempel är visa, eftersom man kan säga antingen jag visar något (transitivt) eller jag visar någon något (ditransitivt). 2.4.2 Lexin I Lexin har verben markerats med de vanligaste syntaktiska sammanhang där de kan förekomma (Lexin, 1992). (För mer information om Lexin se även kapitel 2.3.2.) Det kan vara subjekt och objekt, men även betydelsetermer som TID, SÄTT och PLATS. På det här sättet presenteras verbens vanligaste kombinationsmöjligheter utan att språkexempel behöver anges. Personer markeras med versaler (A,B,C osv) och saker eller abstrakta företeelser markeras med gemener (x,y,z osv). Övriga markeringar är PREP för preposition, INF för infinitiv, PRED för predikativ, / för alternativ samt parentes för optionalitet. Ett verb som tycka om får beskrivningen (A tycker om B/x/att+INF), vilket ger följande tre möjligheter: Någon tycker om någon, någon tycker om något och någon tycker om att göra något. Ett verb som bo beskrivs med (A bor PLATS) och uppträda får beskrivningen (A uppträder SÄTT). Systemet är i första hand syntaktiskt, så att ett verb som äta får ingen markering om att det ska stå med ett konkret objekt och gala får ingen markering om att dess subjekt ska vara ett djur. Däremot görs som ovan nämnts skillnad mellan personer och saker. 2.4.3 Examensarbete vid Uppsala Universitet I sitt examensarbete på Språkteknologiska programmet vid Uppsala Universitet har Sten Thaning beskrivit verbvalens i en textkorpus med ett kontrollerat språk som används av Scania (Thaning, 2001). Syftet var även att sedan kunna lägga till verbvalensen till en lexikalisk databas och omvandla den till valensregler som kan användas vid till exempel parsning eller maskinöversättning. Thaning gick igenom korpusen, och när ett verb påträffades plockades kontexten ut ur materialet. Verben och deras kontexter analyserades sedan manuellt med 16
avseende på valensinformation, och resultatet blev en lista med verben och deras olika valenskonstruktioner. För varje verb beskrivs bundna led (obligatoriska och optionella) med hjälp av mönsterord och fria led (adverbial) beskrivs med koder. Ett exempel på detta är lemmat klippa av som tilldelas mönsterordet PLUNDRA och tilläggsleden MRST. Mönsterordet PLUNDRA beskriver transitiva verb, vilket ger koden NP_NP som står för någon klipper av något. Tilläggsleden MRST står för Measure (måttenheter), Loc (rumsadverbial), Manner (egenskap hos verbets aktion) och Temp (tidsadverbial), vilka är optionella och kan förekomma ett eller flera tillsammans. Istället för tilläggsled kan bundna led förekomma. Dessa är inte optionella och kan vara av typen NP, Formellt subjekt (det), ADJ, ADV, bisats eller PP. Sammanlagt använder Thaning sig av 105 mönsterord, varav 68 stycken endast används av ett verb. Tilläggsleden bildar 64 möjliga kombinationer, av vilka 48 förekommer bland de analyserade verben. 2.4.4 Formaliserat verbvalenslexikon Maria Toporowska Gronostaj har i sin doktorsavhandling beskrivit hur ett formaliserat verbvalenslexikon skulle kunna skapas (Toporowska Gronostaj, 1996). Det främsta syftet med valensstrukturer i lexikonet är att underlätta konstruering av syntaktiskt och semantiskt korrekta uttryck. Gronostaj (1996: 153-154) förklarar att verbet ses som det styrande elementet i valensstrukturen och fyllnadsleden som de underordnade, vilka tillsammans bildar den valensram som utgör en principiell sammanfattning av verbets naturliga syntaktiska omgivning(ar). Fyllnadsleden är verbbundna eftersom de dels impliceras av verbet, dels ingår i olika syntaktiska relationer med verbet. Fyllnadsleden delas in i fyra huvudkategorier: Valenssubjekt, valensobjekt, valensadverbial och predikatsfyllnad. Subjektet innehar en särställning bland fyllnadsleden. Om verbet bara kräver ett fyllnadsled realiseras det alltid som valenssubjekt. Valensobjektet kan realiseras som direkt objekt, indirekt objekt, prepositionsobjekt, reflexivt objekt, infinitiv eller satskonstruktion. Med dessa kategorier beskrivs verbs kombinatoriska egenskaper och de valensstrukturer som verbet implicerar. Valensstrukturerna normaliseras, generaliseras och kodas sedan med hjälp av 37 valensramar. En sådan valensram innehåller till exempel typen syntaktiskt envalenta verb, alltså sådana som vanligtvis kallas intransitiva, samt ett subjekt. Den kodas SS V och ett exempel är Guldet glittrar. En annan valensram är den med syntaktiskt trevalenta verb, där det ditransitiva verbet ge placeras. Kodningen av meningen Barnen ger honom en present. blir då SS V IO OO som står för subjekt, verb, indirekt objekt och direkt objekt. 2.4.5 PAROLE och SIMPLE Maria Toporowska Gronostaj är också en av skaparna av det svenska PAROLElexikonet som ingår i ett projekt för de tolv EU-språken. Det innehåller morfologisk och syntaktisk information för ca 20 000 svenska ord. SIMPLElexikonen är en utvidgning av PAROLE där även semantiska data för orden finns inbäddade (se http://spraakbanken.gu.se för information om SIMPLE och PAROLE). Med ett morfologiskt lager beskrivs böjningen för orden och i det syntaktiska lagret kodas subcategorization, alltså vilka attribut och komplement orden kan ta. För substantivet bild anges till exempel att det kan följas av en prepositionsfras som i uttrycket bild av något. För de ca 3 000 verben finns det 177 olika beskrivningar som täcker intransitiva, transitiva och ditransitiva verb. Den relevanta information som gäller verbens argument ges av objekten 17
Construction och Position. Dessa anger speciella koder som står för bland annat argumentens position och eventuell optionalitet. En del av representationen för verbet avskeda ges nedan. (Koderna är som synes mycket komplicerade och svårförståeliga, därför visas endast en del av koden för verbet här med Description, men utan Position ). På det här sättet anges alltså att avskeda är ett transitivt verb där subjekt och objekt måste vara animata substantiv (animatheten beskrivs längre ner i koden, det vill säga i den här utelämnade delen). CATGRAM="VERB" AUTONOMIE="YES" USYN_L="US935_1006"> <UMG NIEME="0" APPELLATION="avskedar" MF="VB_711"> <LIB>avskedar</LIB> <RADG NIEME="1"> <LIB>avskeda</L IB> </RADG> </UMG> </UM_S> <USYN ID="US935_1006" DESCRIPTION="D01P11DO"> </USYN> <DESCRIPTION ID="D01P11DO" EXEMPLE="A arrestera B" UM_REPRESENTANTE="arrestera" SELF="S1SVB" CONSTRUCTION="CASE1P1OBJA"> I exemplet står det A arrestera B, vilket i hög utsträckning liknar LEXIN s märkning av verb som beskrivs i kapitel 2.4.2 ovan. 2.5 Finite-State-teknologi Finita automater används till fonologi och att generera och analysera morfologin för naturliga språk, men också till tokenisering, taggning och andra språkmanipuleringar. Fördelen med finita automater är att de använder väldigt lite minne, är robusta och effektiva. Finita automater kompileras till nätverk, vilket underlättas av till exempel Finite-State verktyg (Karttunen et al., 2000). Exempel på ett sådant verktyg är Xerox Finite State Tool (se avsnitt 2.5.1). Automater representerar ett reguljärt språk eller en relation mellan två reguljära språk (ett övre och ett undre). Automaten består av ett antal olika tillstånd, därav ett unikt starttillstånd och ett antal finala tillstånd. Från varje tillstånd utgår noll eller fler bågar som leder till andra tillstånd. Bågarna är utmärkta med antingen en 18
symbol eller ett par av symboler beroende på om automaten känner igen ett språk eller relationen mellan två språk (Karttunen et al., 2000). Varje sträng i språket som automaten känner igen kodas som en stig av bågar från starttillståndet till ett finalt tillstånd. Språket eller relationen som en automat känner igen denoteras av reguljära uttryck. En automat som känner igen reguljära relationer kallas transduktor. Transduktorer kan läsa relationen åt båda hållen och kan därför både generera och analysera strängar (Karttunen et al., 2000). 2.5.1 Xerox Finite State Tool Xerox Finite State Tool (XFST) är ett kompilator som gör det möjligt att manipulera och definiera finite-state nätverk och är det verktyg som används till att bygga lexikonet för det här examensarbetet. Man kan skapa nätverk från textfiler, reguljära uttryck och andra nätverk genom ett antal olika operationer. Användaren kan också se, undersöka och modifiera strukturen och innehållet i nätverken med hjälp av XFST (Karttunen et al., 2000). Xerox har också utvecklat två moduler i XFST. Den ena är ett programmeringsspråk och en kompilerare som speciellt underlättar lexikonuppbyggnad som kallas Finite State Lexikon Compiler (LEXC). Den andra är ett deklarativt språk- Two Level Compiler (TWOLC) där man bland annat kan skriva omskrivningsregler som beskriver fonologiska och ortografiska förändringar som sker i naturliga språk (Karttunen et al., 2000). Reguljära Uttryck i XFST Det vanligaste formella metaspråket för att definiera finita automater är reguljära uttryck. De grundläggande operationerna för reguljära uttryck i XFST är union, konkatenation, iteration, komplement, intersektion, komposition, subtraktion, krossprodukt, optionalitet och ignoring. Det finns också förlängda operationer som containment, restriktion och replacement. För mer utförlig förklaring se (Karttunen et al., 2000). Uttryck och operationer i XFST: (Stora bokstäver representerar reguljära uttryck)? Representerar vilken symbol i alfabetet som helst.?* Universiella språket \b Undantag, vilken symbol som helst förutom b ~A Komplementet till språket A, ekvivalent med [?* - A] 0 Tomma stängen, ekvivalent med [] $A Alla strängar som innehåller språket A, ekvivalent med [?* A?*] *A Iteration, Språket A noll eller flera gånger A+ Iteration, Språket A en eller flera gånger (A) Optionalitet Binära operatorer A B Konkatenation, Språket A ihopsatt med språket B A B Union, Språket A och språket B A & B Intersektion, Snittet mellan språken A och B A / B Ignorera 19
A.o. B Komposition A B Subtraktion, Språket A minus språket B A -> B Replacement, Språket A skall ersättas med språket B Finite State Lexicon Compiler Finite State Lexicon Compiler (LEXC) är ett deklarativt programmeringsspråk och kompilerare för finita automater och transduktorer och används för att definiera lexikon för naturliga språk. Eftersom LEXC i huvudsak används av lexikografer och inte programmerare har det en relativt enkel syntax. LEXC:s syntax är designad för att underlätta definitionen för uppbyggnaden av morfologin för naturliga språk och alla dess undantag och för att kunna generera ett ords många olika former. LEXC organiserar sitt arbetande minne i tre register: källregistret, regelregistret och relsultatregistet till skillnad från XFST som organiserar sitt minne i en stack. Detta är vikigt att komma ihåg när man arbetar så att man hämtar sin information från rätt register. Om man till exempel vill göra en analys av ett ord och har läst in både lexikonet och regler och kompilerat till ett nätverk frågar alltid LEXC om svaret skall baseras på källan (lexikonet) eller på resultatet (lexikonet + regler). Svaret kan förstås bli helt annorlunda beroende på vilket register man väljer (Karttunen et al., 2000). Källfilerna skrivs i vanliga textfiler och kompileras sedan till finita nätverk. I sin LEXC-fil definierar man först ett Root-lexikon. I det lexikonet listas alla lexikon som inte anropas någon annanstans i lexikonfilen, oftast är det i de lexikonen ordingångarna står: Lexicon Root Verb; Substantiv; Lexikon Verb hoppa V1; Lexicon Substantiv flicka S1UTR; Ingångarna i dessa lexikon kan antingen länkas vidare till andra lexikon eller vara färdiga där de står. För att länka vidare skriver man lexikonets namn efter ingången följt av ett semikolon. Om man vill avsluta ingången skriver man istället ett #-tecken före semikolonet: Lexikon V1; %[verb%]:0 # ; %[verb%]:r # ; %[verb%]:t # ; Lexicon S1UTR %[subst%]:0 # ; %[subst%]:an # ; %[subst%]:or # ; 20
I LEXC kan man definiera sin egen terminologi, ofta vill man till exempel urskilja vad som är en tagg. I exemplet ovan används hakparenteser ( [, ] ), det är även vanligt att använda + för detta ändamål. I LexMorf används ^-symbolen för att visa var böjningarna börjar (se kapitel 4.2.9). De lexikala ingångarna kan representera en relation mellan två former, de olika formerna skrivs då med ett kolon mellan som i äta:åt. Kolonet visar vilken sida i transduktorn respektive form representerar, äta står i den undre språket och åt i det övre. Gör man en analys av åt får man alltså tillbaka äta. Detta underlättar för böjning av oregelbundna verb som då kan skrivas direkt i lexikonet, till exempel springa:sprang. Man kan även använda sig av kolonet om man vill tilldela ord taggar i lexikonet, då får man en mer utförlig analys av ordet (se exemplet ovan). Om det står en nolla på någon sida av kolonet betyder det att den sidan av relationen inte tilldelas något i det lexikonet. Mer regelbundna företeelser som vokalbortfall och liknande är lättare och mer produktivt att skriva regler för i TWOLC, vilket beskrivs i avsnittet nedan. Ingångarna kan även vara finita subnätverk som blivit definierade tidigare, vilket är en av fördelarna med att använda reguljära uttryck - ett lexikon kan till exempel hänvisa till ett annan lexikon (Karttunen et al., 2000). Vissa symboler som hakparenteser, plustecken, nollor och liknande används i reguljära uttryck och behöver därför föregås av escape-symbolen % om man vill att de inte skall läsas som reguljära uttryck (se exemplet ovan). För att kunna använda lexikonet för analys eller generering måste man först kompilera det. Om man har skrivit regler i TWOLC måste de också läsas in och kompileras ihop med lexionet. För lexikonet i exemplet ovan behövs regler för vokalbortfall, se avsnittet om TWOLC nedan för en mer utförlig beskrivning. Det finns sedan olika operationer man kan använda sig av beroende på vad man vill göra med lexikonet. Vill man få en analys av ett ord skriver man lookup följt av ordet i promten i LEXC: lexc > lookup flickan flicka[subst] Om man istället vill generera ett ord skriver man lookdown följt av grundordet och eventuellt dess taggar och får då tillbaka ordet i dess fullformer som i exemplet nedan: lexc > lookdown hoppa[verb] hoppa hoppade hoppat För att lista alla grundord i ett lexikon med deras böjningsformer och eventuella taggar kan kommandot check-all användas. För en mer utförlig beskrivning av de olika operationerna se (Karttunen et al., 2000). 21
Two-Level Compiler Two-Level Compiler (TWOLC) är ett deklarativt språk som är designat för att kunna definiera de alteneringsregler som krävs för bland annat fonologiska och ortografiska beskrivningar. Det kan till exempel behövas regler för vokalbortfall eller vokalväxling som inträffar i olika böjningsklasser (se kapitel 2.2 om svensk morfologi). Källfilerna skrivs i vanliga textfiler och kompileras sedan till finita nätverk som antingen kan sparas som binära filer eller i tabulär form. Reglerna är tvåsidiga vilket gör att översidan i en regel motsvarar undersidan i lexikonets språk och undersidan i regeln motsvarar det övre språket i lexikonet (se även avsnittet om LEXC ovan). Reglerna arrangeras horisontellt och appliceras parallellt, därför spelar det ingen roll i vilken ordning man skriver sina regler. TWOLC-reglerna denoterar alltid reguljära relationer av samma längd, vilka är slutna under komplement, intersektion och subtraktion till skillnad från reguljära uttryck. Att de är slutna betyder att de efter de olika operatorerna som nämns ovan fortfarande är reguljära relationer (Karttunen et al., 2000). I en TWOLC-fil finns det två sektioner, en alfabetssektion och en regelsektion. I alfabetssektionen definierar man först ett alfabet överst på sidan (detta är obligatoriskt). Alfabetet består alltid av par av symboler, till exempel a:a. Skulle man bara skriva ett a tolkas detta automatiska som a:a. I alfabetsdelen kan man också definiera olika mängder ( sets på engelska) som innehåller symboler från alfabetet. Dessa mängder kan sedan användas i reglerna, om man till exempel har en regel som gäller för alla vokaler är det lättare att göra en mängd av dem och sedan anropa sin mängd i reglerna i stället för att behöva skriva samtliga vokaler direkt i regeln (Karttunen et al., 2000). I regelsektionen skriver man sina regler. Reglerna måste alltid börja med ett namn inom citationstecken. Det är även lämpligt att skriva kommentarer till regeln så man vet varför man skrev den, speciellt om man bygger ett stort lexikon eftersom man då får ganska många regler att hålla reda på. Regeln i sig består av en vänster- och en högersida som binds samman av en TWOLC-operator. De olika operatorerna är i TWOLC: <=>, till exempel a:b <=> l_r; =>, till exempel a:b => l_r; <=, till exempel a:b <= l_r; /<=, till exempel a:b /<= l_r; Den första operatorn är den mest restriktiva och säger att om symbolparet a:b finns måste det stå mellan ett l och ett r och om det finns ett lexikalt a måste det realiseras på ytan som ett b. Den andra operatorn säger att om det finns ett symbolpar a:b måste det stå mellan ett l och ett r och den tredje att om ett lexikalt a står mellan ett l och ett r måste det realiseras som ett b i yt-strängen. Den fjärde och sista operatorn säger att ett lexikalt a aldrig realiseras som ett b om det står mellan ett l och ett r (Karttunen et al., 2000). 22