bild
Skolan för
elektroteknik
och datavetenskap

Språkteknologi

Laboration 1: Stavningskontroll och böjningsregler

I denna labb ska du testa rättstavningsprogrammet Stava och experimentera med konstruktion av suffixregler till Stava. Stava finns tillgängligt som Unixkommando (stava) på Nadas datorer. Programmet har också ett webbgränssnitt som kan användas av användare från alla länder och i alla miljöer. I denna kurs används en speciell version av Stava som kan ge lite mer information om vad som händer inuti programmet.

  • Testa webbgränssnittet http://www.nada.kth.se/stava/ med några olika texter på nätet och på fil. Denna testfil
    innehåller några tidningstexter. Rättstava gärna något eget dokument också. Tänk på att det måste vara en textfil, för du kan inte stoppa in ett Worddokument direkt i Stava.

    Testa olika inställningar på väljarna, till exempel

    • med rättstavningsförslag,
    • utan extraordlistor med namn, datatermer och förkortningar,
    • med presentation av hela texten.
  • Titta på manualen till Stava: http://www.nada.kth.se/stava/manual.html för att se vilka inställningsmöjligheter som finns. Använd nu testversionen av stava som ligger på http://www.nada.kth.se/stava/teststava.html och se till att visa härledningar är valt, vilket visar hur Stava bildar sammansättningar och böjningar.
    • Kör testversionen
      • på några (regelbundet) böjda ord,
      • på några sammansatta ord,
      • på några (regelbundet) böjda sammansatta ord.
    • Hitta ett treledssammansatt substantiv i bestämd form plural. Vilken suffixregel används? Vad betyder den? Läs om hur suffixreglerna byggs upp på http://www.nada.kth.se/stava/suffixregler.html.
  • Programmet genstava som anropas från http://www.nada.kth.se/stava/genstava.html är ett bra hjälpmedel när man utvecklar och finjusterar suffixregler till Stava. Man skickar en suffixregel till programmet och får som svar alla ordformer som Stava skulle godkänna med den suffixregeln. Därigenom kan man se vilka felaktiga ord som skulle godkännas av regeln.
    • Vad betyder följande regel? Hur många ord genereras av den? Vilken ordklass har orden?
      (dj|mm)@ a, ande, ~anden, ~ade
    • Ord som slutar på -alitet, till exempel serialitet och fundamentalitet godkänns inte av Stava. Hitta på två regler som fixar detta. (Ledning: både adjektiv- och adverbformerna av dessa substantiv finns i ordlistan.)
    • Kolla med genstava vilka ord som genereras av dina regler men inte borde genereras. Tänk på att vissa ord som genereras kanske aldrig har använts men ändå borde anses korrekta (eller åtminstone rättstavade - om skribenten skrivit ordet är det inte Stavas sak att underkänna det) eftersom det är skapat på ett regelbundet sätt. Alltså, antalet studenter på kursen som själva använt orden "hortikulturalitet" och "bronkialitet" är nog få, men till skillnad från till exempel "uttalitet" är de bildade på det sätt som avsågs.
    • Fixa reglerna så att Stava inte accepterar de felaktiga orden men fortfarande accepterar alla korrekta ord. Försök till exempel att hitta någon böjningsform som finns i ordlistan och som är gemensam för många felaktiga ord men inte för korrekta. Extra svårt är kanske att se till att ordet gammalitet inte genereras, men det går.
    • Testa reglerna med testversionen av Stava genom att skriva in dem i rutan för nya regler.
  • Redovisa genom att visa upp svaren på frågorna ovan samt reglerna som du konstruerat.

Teoretisk uppgift

Till varje laboration finns en teoriuppgift knuten. Syftet är att uppmuntra till tidigare inläsning av stoffet. Varje teoriuppgift skall redovisas på papper (ca. 100 ord) vid aktuellt labbtillfälle. Hur bonuspoängen fungerar beskrivs i KursPM. Teoriuppgifterna är inte obligatoriska utan skall ses som ett stöd för att utveckla de teoretiska kunskaperna i språkteknologi.

Fråga: Hur kan ett stavningskontrollprogram (t ex Stava) kontrollera sammansättningar med godtyckligt många sammansättningsled?

Förslag till fördjupningsuppgift

Om man automatiskt ska plocka ut de informationsbärande orden ur ett dokument för att senare kunna söka på dem vill man ofta återföra orden på grundform. Modifiera modulen suffix.c i Stava så att den för varje ord i inmatningen skriver ut dess grundform.

Du kommer dels att behöva ändra funktionen CheckSuffix och dels se till att huvudmodulen stavaapi.c anropar CheckSuffix för varje ord i inmatningen.

Källkoden till dessa moduler finns under /info/sprakt10/stava.

Copyright © Sidansvarig: Viggo Kann <viggo@nada.kth.se>
Uppdaterad 2011-08-18