Göm menyn

729G09 Språkvetenskaplig databehandling

Laboration 3, VT 2015


 

Laboration 3: Frasstrukturgrammatik

Syfte

Syftet med denna laboration är att ge övning i att modellera frasstruktur med kontextfri grammatik för ett litet fragment av svenska. Specifikt kommer ni att skapa regler för enkla huvudsatser och bisatser, och olika varianter av verbfraser i svenska.

Datorn används här som ett redskap för att kontrollera att de grammatiska regler ni skriver fungerar tillsammans som ni har tänkt. Systemet som används heter parse.pl och körs från kommandoraden. Systemet tar en eller flera meningar som indata och levererar noll, en eller flera frasstrukturträd som utdata, beroende på hur många analyser som grammatiken genererar. Mer detaljer om parsern finns här.

Förberedelser

  • Läs kurslitteraturen om frasstrukturgrammatik:
    • Elementa i Generativ Grammatik, särskilt kapitlen 4-7
    • Svensk universitetsgrammatik för nybörjare, kapitel 6 och 8,
    • Föreläsningsanteckningar från föreläsning 5 (frasstrukturgrammatik) och lektion 3.

Genomförande

Skapa en arbetskatalog och kopiera filerna i katalogen ~729G09/www-pub/vt15/Lab3/ till arbetskatalogen.

Du ska nu ha fem stycken filer:

  • parse.pl
  • parseThisOne.pl
  • grammatik
  • testmeningar
  • meningar

Du gör parsern exekverbar genom att ställa dig i arbetskatalogen och skriva:

> chmod u+x parse.pl
> chmod u+x parseThisOne.pl

Du kan testa att det fungerar genom att skriva:

> parse.pl grammatik testmeningar 1-2
> parseThisOne.pl grammatik 'linda skrattade'

Grammatikfilen

I filen grammatik finns en uppsättning frasstrukturregler och ett lexikon som ser ut på följande sätt:


 

# Regler

S -> NP VP
NP -> DT NN
NP -> EN
VP -> IV
VP -> TV NP

# Lexikon

DT: {en, ett, ingen, inget}
EN: {rocky, linda}
NN: {bil, cykel, bilen, cykeln}
IV: {skrattade, försvann}
TV: {har, ser}


Grammatiken är skriven på liknande sätt som i boken Elementa i generativ grammatik. Du kan dock inte använda parenteserna (, ), {, } för att ange optionalitet eller alternativ i regler. Den enda symbolen förutom kategorisymbolerna som kan förekomma i reglerna är således omskrivningssymbolen '->'.

I lexikonet listas alla ord av en viss ordklass som en mängd. Ordklassymbolen följs av ett kolon (:) och ett mellanslag och mängden omsluts med parentestecknen { }. Orden i mängden ska separeras med ett kommatecken (,).

Rader som börjar med #-tecknet är kommentarer och läses inte av parsern.

I den givna grammatiken används kategorisymbolerna med följande tänkta tolkningar:

S   huvudsats
NP   nominalfras
VP   verbfras
DT   artikel (determinerare)
EN   egennamn
NN   substantiv (nomen)
IV   intransitivt verb
TV   transitivt verb

För att lösa uppgifterna behöver du definiera flera kategorier. Kategorierna kan svara mot vanliga ordklasser och fraskategorier men också mot underindelningar som behövs för att knyta ord till vissa kontexter och utesluta dem från andra kontexter där de inte kan förekomma. För att underlätta läsningen av trädstrukturerna är det bra om kategoribeteckningarna inte skiljer sig åt för mycket i storlek.

Utdata från parsern

Parsern ger upplysning om hur många analyser den genererat för varje mening i indata. Analyserna visas i form av frasstrukturträd i följande format, här för meningen 'rocky har ingen bil':

S{
--NP{
----EN[rocky]
----}
--VP{
----TV[har]
----NP{
------DT[ingen]
------NN[bil]
------}
----}
--}

Här säger alltså trädet att meningen (S) består av en nominalfras (NP) och en verbfras (VP). Den senare består av ett transitivt verb (TV) och en nominalfras (NP) etc.

 

Uppgifter

Uppgift 1

Skriv regler och lexikon så att de grammatiska satserna nedan accepteras och analyseras korrekt. De ogrammatiska, som är märkta med en asterisk (*) ska slås ut, dvs. grammatiken ska inte kunna generera meningen som en ordsekvens av kategorin 'S'.

Grammatiska satser

  1. rocky ligger på soffan
  2. han är faktiskt trött
  3. linda vill köpa en ny soffa
  4. rocky vill inte göra nånting
  5. hon hittar en soffa på blocket
  6. rocky tycker inte att den soffan är snygg
  7. han menar att den inte passar till deras tapeter
  8. han säger att han inte vill ha den
  9. soffan finns i en villa i bromma
  10. de måste hyra en skåpbil
  11. linda och rocky åker till bromma
  12. de köper soffan för femhundra spänn och linda betalar
  13. linda är glad men rocky surar
  14. han säger att hon kommer ångra att hon betalade femhundra spänn för en jävla soffa

Ogrammatiska satser

  1. *rocky köper
  2. *linda vill köper soffan
  3. *rocky finns soffan
  4. *de hyra en skåpbil
  5. *de köper soffan inte
  6. *linda säger att

Rekommenderat arbetssätt

En möjlighet är att utvidga regler och lexikon med vad som behövs för varje ny mening. Ett mer systematiskt sätt är att gå igenom alla meningarna och identifiera fraser av olika typer i dem. Börja med de enklaste typerna:

  • adjektivfras,
  • nominalfras,
  • prepositionsfras

innan ni går vidare till att analysera satser och verbfraser. Om man skriver in t.ex. en nominalfras som argument till parseThisOne.pl kommer parsern att visa en analys för den, om grammatiken tillåter det.

Parsern är ett hjälpmedel, men inte nödvändig för att lösa uppgiften. Rita gärna upp den struktur du tycker att en sats eller fras ska ha, innan du använder parsern. Var också uppmärksam på strukturen hos de träd som genereras. Bara för att ett träd genereras behöver det ju inte vara en korrekt syntaktisk analys. Ni bör få med alla rimliga syntaktiska tolkningar av meningarna, men det är möjligt att det sker till priset av en eller annan mindre rimlig analys. Vid alla fall när er grammatik ger mer än en analys ska ni kommentera detta i er redovisning, beskriva skillnaden och diskutera om alla analyser är korrekta. Obs! Tänk på att det är skillnad mellan syntaktiskt rimliga tolkningar och semantiskt rimliga tolkningar.

Uppgift 2

Kompaktera dina regler med hjälp av optionalitets- och alternativsymboler, dvs () resp. { }, så som beskrivs i Elementa i Generativ Grammatik, kapitel 7. Denna uppgift måste du lösa på papper. Exempel på reduktioner du kan göra är:

  • Om en bestämning (BEST) är möjlig men inte nödvändig för ett huvudord (HO) kan reglerna
    • HP -> BEST HO, och
    • HP -> HO,
    slås ihop till HP -> (BEST) HO
  • Om två bestämningar (BEST1, BEST2) inte båda kan förekomma tillsammans, men stå i samma position relativt till ett huvud (HO), som i reglerna
    • HP -> HO BEST1
    • HP -> HO BEST2
    kan dessa regler slås ihop till HP -> HO {BEST1,BEST2}

För en liknande uppgift (med facit), se övning 1 och 2 i avsnitt 7.3 sid 59 i Elementa i generativ grammatik.

Uppgift 3 (VG-uppgift)

De regler ni har skrivit hanterar förmodligen inte kongruensböjningen i svenska nominalfraser på ett bra sätt. De kan acceptera både en ny soffa och *en ny bord. Adjektiven ska även kongruensböjas då de står predikativt (t.ex. soffan är ny - sofforna är nya - *soffan är nya, eller soffan måste vara röd - *soffan får inte vara gula). Ge någon principiell lösning på hur ni skulle lösa problemet med att få med ovanstående utökningar till grammatiken. Ni behöver inte skriva en fullständig grammatik, men visa genom exempel på nya regler och kategorier, dvs. vilken typ av information som måste finnas med i lexikon och grammatik för att ovanstående utvidgningar ska fungera.

För godkänt

För att få godkänt ska följande villkor vara uppfyllda:

  • Ingen mening ska få mer än två analyser. De allra flesta ska ha endast en analys.
  • Alla syntaktiskt rimliga analyser av en mening ska vara med. Om en mening får två analyser ska ni förklara varför och ange om meningen har olika betydelser som svarar mot analyserna
  • Ingen av de ogrammatiska meningarna ska få någon analys som kategori S
  • Ord och fraser får inte vara uppenbart felkategoriserade.
  • Alla frasregler, utom samordningar, bör ha ett huvudord av en kategori som är giltig för den frastypen.

För betyget VG

För betyget VG krävs även att VG-uppgiften är löst och lösningen redovisad med utförlig diskussion.

Redovisning

Redovisningen består av följande punkter:

  1. Er grammatik (regler och lexikon).
  2. Anteckna antalet analyser ni får med er grammatik för varje grammatisk mening 1-14. Redovisa med en lista som innehåller meningens nummer, meningen själv och antalet analyser.
  3. För de meningar som får mer än en analys redovisar ni de olika frasstrukturträden och hur de kan tolkas. Om ni anser någon analys vara inkorrekt, motiverar ni varför den är det och varför ni ändå måste få med den.
  4. För betyget VG ska ni även lämna in en lösning till Uppgift 3.
  5. Skicka lösningarna per epost till Lars med en ämnesrubrik som anger labgrupp och att det gäller Lab3-729G09. Uppgift 1 redovisas i en textfil (.txt). Uppgift 2 och 3 kan alternativt redovisas på papper eller med utskrifter. I så fall lägger ni lösningarna i ett labomslag signerat av alla i gruppen och sedan alltihop i IN-korgen för 729G09 som står på ett skåp i norra tvärkorridoren hus E övervåningen.

För laborationens deadline, se sidan med deadlines.


Sidansvarig: Lars Ahrenberg
Senast uppdaterad: 2015-04-02