Göm menyn

729G09 Språkvetenskaplig databehandling

Laboration 2


 

729G09 Laboration 2

 

Laboration 2 : Bearbetning av formaterad, lingvistiskt uppmärkt text

 

Inledning

I denna laboration kommer ni använda texter som fått en automatisk lingvistisk analys av verktyget Machinese Syntax från det finska företaget Connexor. Texterna är formaterade i XML (Extended Markup Language).

Efter Laboration 2 ska du kunna:

  • använda kommandoradsverktyg och skript för att extrahera och sammanställa data från lingvistiskt uppmärkt text, t.ex. i form av olika ord- och fraslistor,
  • utvärdera verktyg för lingvistisk analys kvalitativt.

 

Data och resurser

Ni kommer att jobba med en text som är uppmärkt med hjälp av Machinese Syntax: lab2text.xml. Ni kan jämföra den uppmärkta texten med ursprungstexten (lab2text.txt). Sätt er in i hur utdata från Machinese Syntax representeras genom att studera:

Var finns resurserna?

Texter och andra resurser ni behöver för denna labb kopieras från katalogen ~729G09/www-pub/vt15/Lab2.

 

Verktyg för övningar och inlämningsuppgifter

Följande texter beskriver de Unix-verktyg ni behöver för att bygga lexikon och fraslistor.

  • cut, paste, sort och uniq - extrahera textkolumner, räkna frekvenser och sortera.
  • grep - verktyg för att söka i text med reguljära uttryck
  • sed - verktyg för att utföra "sök och ersätt" i text
  • Skript i Unix en kort introduktion till hur man skriver skript.

Pythonmodulen xml.etree.ElementTree kan användas för att extrahera data ur XML-filer.

För övningarna kan du använda och modifiera scriptet extractXmlData.py. För inlämningsuppgifterna extractWordData.py.

 

Förberedelser

Gör först övningarna för att lära dig hur data kan extraheras och manipuleras från en XML-formaterad fil. Filen som används till inlämningsuppgifterna är relativt stor medan övningarna görs på filen ovningsdata.xml som är lätt att överblicka.

Om du känner dig osäker på att arbeta i Linux-miljö och vill se grundläggande kommandon kan du hitta dem gär:

Övningsuppgifter

För övningarna används en fil där fingerade personer är listade med fingerade resultat på från någon slags tävling. Filen heter ovningsdata.xml.

  1. Studera XML-filen och skriptet extractXmlData.py. Se vad resultatet blir när du kör skriptet från kommandoraden (anropa med python).
  2. Ändra skriptet så att det i stället skriver ut namn och rank.
  3. Ändra skriptet så att det skriver ut namn, rank och resultat (i den ordningen). Spara resultatet på en fil.
  4. Använd cut på utdata från föregående övning för att plocka ut enbart namnen.
  5. Använd cut på samma fil för att plocka ut namn och resultat.
  6. Använd cut och sort för att plocka ut namnen och få dem skrivna i bokstavsordning.
  7. Använd cut, paste och sort för att få ut en tabell där ranken står först följt av namn och resultat.
  8. Spara utdata från föregående uppgift på en fil och använd sed för att ändra ordningen till namn - resultat - rank.
  9. Använd grep för att plocka ut personer vars namn börjar på M.
  10. Använd grep för attplocka ut de tre personer som hade bäst resultat.
  11. Använd valfria kommandon och uniq -c för att ta fram data över hur många personer i listan som har en viss ålder.

 

Inlämningsuppgifter

Utifrån den upptaggade texten ska ni skapa lexikon/ordlistor för ordtyper. Med hjälp av dessa filer kan man besvara frågor som "Vilka ord finns i texten?", "Hur många ordtyper innehåller den?" eller "Hur ser fördelningen mellan olika ordklasser ut?". Uppgift 1 och 2 ska redovisas genom att ni lämnar in skript och lexikonfiler/fraslistor till era handledare

Uppgift 1

Uppgiften är att granska den lingvistiska informationen i filen lab2text.xml, särskilt lemma och ordklass.

  1. Vilka fel gör Machinese Syntax vad gäller lemma och ordklass? Hitta minst 3 ord med felaktigt identifierade lemman och minst 3 ord med felaktiga ordklasser.
  2. Undersök om det finns någon systematik i de fall när Machinese Syntax misslyckas med ordklass- eller lemmabestämning. Är vissa typer av ord svårare att bestämma än andra och i så fall vilka?

Tips! Du kan extrahera relevant information med antingen cut eller genom att modifiera Pythonscriptet extractWordData.py.

Uppgift 2

Skapa lexikon/ordlistor för ordtyper (varje rad ska vara unik) på varsin fil enligt a), b) och c). Tänk på att även få med konstruktioner som "det här" och "till och med" vilka analyseras som ett ord av Machinese Syntax.

  1. Skapa en lista över alla graford med lemma och tillhörande ordklass i bokstavsordning enligt följande exempel. Varje rad ska vara unik:
  2. ...

    bilar bil N

    bilarna bil N

    bildade bilda V

    bildar bilda V

    ...

  3. Skapa en lista över alla stammar i bokstavsordning med tillhörande ordklass och frekvens (i den ordningen):
  4. ...

    bil N 15

    bilda V 3

    billig A 2

    bo N 2

    bo V 5

    ...

  5. Skapa en lista över alla ordklasser med frekvens:
  6. ...

    A 432

    ADV 212

    N 1502

    V 542

    ...

Uppgift 3

Skapa tre filer med "fraser", dvs ordsekvenser som följer givna mönster:

Fraslistorna kan göras genom att skapa bigram (resp. trigram) med ordklasser och låta graforden vara med på samma rad. Därefter kan ni använda kommandot "grep" för att söka efter ett visst mönster: tvåordsfraser greppas i bigramsfilen, och nominalfraser med tre ord måste sökas bland trigrammen.

  1. En fil med nominalfraser (NP) som utgörs av "DET N", t.ex. "ett vapen", "en kaka"...
  2. En fil med treordiga nominalfraser av typen "det gröna huset", "en vit anka", "några lekande barn" ... Fundera på vilka ordklasser som kan fungera som framförställda attribut och undersök hur dessa anges av Machinese syntax.
  3. En fil med nominalfraser av de två typerna ovan vilka utgör subjekt i sina satser, dvs vars substantiv har tilldelats funktionen 'subj' av systemet.
Uppgift 4 (VG-fråga)

Jämför verktygets ordklasser och morfologiska särdrag med dem i kursboken (Svensk universitetsgrammatik för nybörjare). Vilka skillnader finns det? Finns alla morfologiska särdrag från kursboken med i verktygets uppmärkning? Diskutera vilka för- och nackdelar som kan finnas med den uppdelning av ordklasser och morfologiska särdrag som görs av Machinese Syntax jämfört med kursboken. Redovisningen ska omfatta en dryg A4-sida (ca 500 ord).

Inlämning och examination

Uppgifterna 1-3 måste vara godkända för att bli godkänd på labben. För G krävs inskickade ordlistor och skript av rimlig kvalitet samt en godkänd felanalys där det framgår att ni kan använda begrepp som ordklass, lemma och morfologiska särdrag på ett korrekt sätt.

För att kunna få VG krävs även utförligare analys av de grammatiska kategorierna med tydlig koppling till litteraturen i uppgift 3.

Redovisningarna med era svar, skript och resulterande lexikonfiler/fraslistor skickas via e-post till Per. Ange kurskod och Lab2 samt era namn i ämnesraden.

För senaste inlämningsdag se sidan Inlämningsdatum.


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