3 augusti 2001 GÖTEBORGS UNIVERSITET Utbildningsprogrammet i datalingvistik Robert Andersson LABORATION 3: Morfologisk analys i DCG Introduktion till lingvistik och datalingvistik XD1110 Inledning Den morfologiska strukturen hos (böjda) substantiv i svenska kan beskrivas med en enkel DCG n(n(Stam, Num, Best, Case)) --> n_stem(Stem, Num, Dekl), num(Num, Dekl), def(Def, Num, Dekl), case(Case, Dekl, Def). Enligt denna grammatik skulle ett substantiv som fiskarnas ges följande strukturella analys n(stem(fisk),num(plur),def(def),case(gen)) För att enkelt kunna använda denna grammatik för att parsa ord så representerar vi ett ord som en lista med teckenkoder. Till vår hjälp har vi de två predikaten analysera/0 och generera/0. De båda predikaten finns definierade i filen /users/ling/ra/publik/kurser/xd1110/lab3.pl. Den finns även att ladda ned från min hemsida på url http://www.ling.gu.se/~ra/. Relationsschema och en förklarande kommentar ges här %% analysera %% Läser in ett ord (som en sträng) från användaren och försöker sedan %% skriva ut en morfologisk analys för detta ord %% generera %% Skriver ut samtliga ord som grammatiken kan generera samt deras %% respektive morfologiska analys Dessutom behöver vi ange ett lämpligt morfologiskt lexikon (det vill säga en förkortning över de morfer som kan realisera olika typer av morfem) n_stem(n_stem(fisk)) --> "fisk". num(num(sing)) num(num(plur)) --> "". --> "ar". def(def(indef)) def(def(def)) --> "". --> "na". case(case(nom)) case(case(gen)) --> "". --> "s". Fråga: Varför måste morferna anges inom dubbla citationstecken? 1 Uppgift 1 Utvidga ovanstående grammatik så att även följande substantiv kan analyseras fisken äpplets kvinnans äpplena kvinnornas skon bilen bok husen böckerna En analys av ordet fisken | ?- analysera. Skriv in det ord du vill ha en morfologisk analys av |: fisken Ordet ger den morfologiska analysen n(n_stem(fisk),num(sing),def(def),case(nom)) yes Uppgift 2 Det är troligt att er morfologiska analysator övergenererar och till exempel tillåter följande något märkliga substantiv fiskna kvinnar böcken Fundera på hur man skulle kunna eliminera detta problem och modifiera grammatiken så att den undviker dessa problem. Ytterliggare ett problem är ordet hus som i genitiv troligtvis kommer att genereras som huss av er grammatik. Fundera även över detta och gör gärna ett försök att skriva en ny grammatik som undviker det här problemet. En testörning på en korrekt grammatik borde ge följande resultat | ?- generera. Dessa ord genereras av grammatiken kvinna kvinnas kvinnan kvinnans kvinnor kvinnors kvinnorna kvinnornas fisk fisks fisken fiskens fiskar fiskars fiskarna fiskarnas bil bils bilen bilens bilar n(n_stem(kvinn),num(sing),def(indef),case(nom)) n(n_stem(kvinn),num(sing),def(indef),case(gen)) n(n_stem(kvinn),num(sing),def(def),case(nom)) n(n_stem(kvinn),num(sing),def(def),case(gen)) n(n_stem(kvinn),num(plur),def(indef),case(nom)) n(n_stem(kvinn),num(plur),def(indef),case(gen)) n(n_stem(kvinn),num(plur),def(def),case(nom)) n(n_stem(kvinn),num(plur),def(def),case(gen)) n(n_stem(fisk),num(sing),def(indef),case(nom)) n(n_stem(fisk),num(sing),def(indef),case(gen)) n(n_stem(fisk),num(sing),def(def),case(nom)) n(n_stem(fisk),num(sing),def(def),case(gen)) n(n_stem(fisk),num(plur),def(indef),case(nom)) n(n_stem(fisk),num(plur),def(indef),case(gen)) n(n_stem(fisk),num(plur),def(def),case(nom)) n(n_stem(fisk),num(plur),def(def),case(gen)) n(n_stem(bil),num(sing),def(indef),case(nom)) n(n_stem(bil),num(sing),def(indef),case(gen)) n(n_stem(bil),num(sing),def(def),case(nom)) n(n_stem(bil),num(sing),def(def),case(gen)) n(n_stem(bil),num(plur),def(indef),case(nom)) 2 bilars bilarna bilarnas bok boks boken bokens böcker böckers böckerna böckernas sko skos skon skons skor skors skorna skornas hus hus huset husets hus hus husen husens äpple äpples äpplet äpplets äpplen äpplens äpplena äpplenas n(n_stem(bil),num(plur),def(indef),case(gen)) n(n_stem(bil),num(plur),def(def),case(nom)) n(n_stem(bil),num(plur),def(def),case(gen)) n(n_stem(bok),num(sing),def(indef),case(nom)) n(n_stem(bok),num(sing),def(indef),case(gen)) n(n_stem(bok),num(sing),def(def),case(nom)) n(n_stem(bok),num(sing),def(def),case(gen)) n(n_stem(böck),num(plur),def(indef),case(nom)) n(n_stem(böck),num(plur),def(indef),case(gen)) n(n_stem(böck),num(plur),def(def),case(nom)) n(n_stem(böck),num(plur),def(def),case(gen)) n(n_stem(sko),num(sing),def(indef),case(nom)) n(n_stem(sko),num(sing),def(indef),case(gen)) n(n_stem(sko),num(sing),def(def),case(nom)) n(n_stem(sko),num(sing),def(def),case(gen)) n(n_stem(sko),num(plur),def(indef),case(nom)) n(n_stem(sko),num(plur),def(indef),case(gen)) n(n_stem(sko),num(plur),def(def),case(nom)) n(n_stem(sko),num(plur),def(def),case(gen)) n(n_stem(hus),num(sing),def(indef),case(nom)) n(n_stem(hus),num(sing),def(indef),case(gen)) n(n_stem(hus),num(sing),def(def),case(nom)) n(n_stem(hus),num(sing),def(def),case(gen)) n(n_stem(hus),num(plur),def(indef),case(nom)) n(n_stem(hus),num(plur),def(indef),case(gen)) n(n_stem(hus),num(plur),def(def),case(nom)) n(n_stem(hus),num(plur),def(def),case(gen)) n(n_stem(äpple),num(sing),def(indef),case(nom)) n(n_stem(äpple),num(sing),def(indef),case(gen)) n(n_stem(äpple),num(sing),def(def),case(nom)) n(n_stem(äpple),num(sing),def(def),case(gen)) n(n_stem(äpple),num(plur),def(indef),case(nom)) n(n_stem(äpple),num(plur),def(indef),case(gen)) n(n_stem(äpple),num(plur),def(def),case(nom)) n(n_stem(äpple),num(plur),def(def),case(gen)) yes Inlämning Minimalt ska ni lämna in en grammatik som tillåter substantiven i uppgift 1 samt de modifieringar som krävs för att eliminera de problematiska formerna i uppgift 2. Ni ska också lämna in en fundering om vad som kan göras för att ta hand om huss-problemet. Alternativt kan ni lämna in en grammatik som dessutom löser problemet. 3