Laborationer
På denna sida hittar du instruktioner till kursens laborationer. Till varje laboration anges även det centrala innehållet som du förväntas kunna efter laborationen.
Allmän Information
Laborationerna ska göras i par. Om du vill göra laborationerna individuellt ska du kontakta kursledaren. Vi har tyvärr generellt inte de resurser som krävs för att handleda och ge äterkoppling på individuella laborationer.
Instruktioner: Lämna in era laborationsrapporter i er Lisam. Läs även kursens Regler för inlämningsuppgifter. Innan första laborationen behöver ni anmäla er i Webreg.
Återkoppling: Till varje laboration finns ett antal handledningstimmar schemalagda där ni kan få hjälp med och återkoppling på ert arbete från laborationsassistenterna. Om ni lämnar in er laboration vid första inlämningsdatumet får ni även skriftlig återkoppling. Utöver detta kan ni alltid få återkoppling från examinator via epost, chatt eller videomöte.
Resultat av labbarna finns på Webreg.
Information om Notebooks
I denna kurs använder vi Jupyter notebooks för laborationerna. Notebooks låter er skriva och exekvera Python-kod i en webbläsare och gör det väldigt enkelt att blanda kod och text. Ni kan använda notebooks på IDA-servern via ThinLinc, eller alternativt arbeta i en molntjänst som heter Google Colab om ni har, eller vill skaffa, ett Google-konto.
Hur ni jobbar med en notebook. Varje notebook består av ett antal så kallade celler som kan innehålla text eller kod. Under laborationen skriver ni egen text eller kod utifrån instruktionerna. När ni ”kör” en kodcell (t.ex. genom att trycka Shift+Enter) exekverar ni koden i denna cell. Kodens utdata kommer då att visas direkt under cellen.
Hur ni kommer igång med Google Colab. Klicka på Colab-länken som finns för varje labb, sen klickar ni på “Copy to Drive”. Börja med att köra den första cellen för att hämta filarna från IDA-servern. Sen kan ni använda Colab som andra Jupyter notebooks. När ni är klara med labben och vill hämta filen för inlämningen klick på File > Download .ipynb.
Testa notebooken och lämna in den. När ni är klara med en notebook bör ni trycka på Kernel > Restart & Run All för att köra alla celler i den och verifiera att allting fungerar som det ska och det inte uppstår några fel. Efter detta kan ni ladda ner notebooken och lämna in den.
L0: Hantera Text
I denna laborationsserie kommer vi att använda Python. Denna ”uppvärming” repeterar några grundläggande koncept från tidigare kurser och presenterar elementära programmeringstekniker för att hantera text: läsa in text från en fil samt extrahera och räkna rader, löpord, unika ord och ordförekomster.
- Laboration L0: Hantera text (ingen inlämning)
- Notebook med exempelsvar
- Laboration L0: Colab
Material
L1: Textsegmentering och Statistisk Korpusanalys
Textsegmentering är uppgiften att dela upp en text i lingvistiskt meningsfulla enheter, såsom stycken, meningar och ord. I del 1 av denna laboration kommer ni att implementera en enkel textsegmenterare med hjälp av reguljära uttryck. Ni kommer även att jämföra er tokenisering med en manuellt skapad guldstandard.
I del 2 testar ni att skapa en egen liten korpus och köra en enkel statistisk analys på den, med hjälp av tokeniseraren från del 1.
Föreläsningsbilder
Material
- Dokumentation av Python-modulen re, som tillhandahåller reguljära uttryck.
- RegexOne, en tutorial med uppgifter.
- Regex101, en webbsida där ni kan interaktivt testa mönster på era texter.
- RegExr, en webbsida där ni kan testa mönster och se exempel på komplexa reguljära uttryck.
- Regex Golf, ett lekfullt sätt att träna sina regex-färdigheter på.
Mål
Efter denna laboration ska du kunna förklara och använda följande koncept:
- tokenisering
- undersegmentering, översegmentering
- precision, täckning
- statistisk korpusanalys, Zipf’s lag
Efter denna laboration ska du kunna utföra följande procedurer:
- dela upp en text i token med hjälp av reguljära uttryck
- jämföra en automatisk tokenisering med en guldstandard
- räkna tokens i en korpus och jämföra fördelningen med statistiska lag
L2: Lingvistiskt Annoterad Text (1)
I den här laborationen kommer ni att lära er olika tekniker för att undersöka lingvistiskt uppmärkt text. Med detta menas text som på något sätt – antingen för hand eller med hjälp av automatiska metoder – annoterats med lingvistisk information såsom ordklasser eller dependensträd.
- Laboration L2: Zip med labben och alla nödvändiga filer för lokal körning (obs: Python 3.10.12)
- Laboration L2: Colab
Föreläsningsbilder
Material
Mål
Efter denna laboration ska du kunna förklara och använda följande koncept:
- tabulerade data
- ordklasstaggar
- generatorfunktioner
Efter denna laboration ska du kunna utföra följande procedurer:
- läsa in och bearbeta lingvistiska data representerade i ett tabulerat format
- utföra enkla frekvensanalyser baserade på ordklasstaggar på en text
L3: Lingvistiskt Annoterad Text (2)
I den här laborationen kommer ni att ta steget från lingvistiska annotationer på ordnivå till syntaktiska annotationer i form av så kallade dependensträd. Ni kommer bl.a. se hur man kan använda dessa annotationer för att ta ut satsdelar från en text.
- Laboration L3: Zip med labben och alla nödvändiga filer för lokal körning (obs: Python 3.10.12)
- Laboration L3: Colab
Föreläsningsbilder
Material
Mål
Efter denna laboration ska du kunna förklara och använda följande koncept:
- dependensträd, huvud, dependent
- grammatiska relationer
- transitivitetstyper
Efter denna laboration ska du kunna utföra följande procedurer:
- läsa in och bearbeta lingvistiska data representerade i ett tabulerat format
- utföra enkla dependensanalyser på en text
L4: Kollokationer
En kollokation är en sekvens av två eller flera ord som samförekommer oftare än vad man skulle förvänta sig av slumpen; ett exempel på en kollokation i svenskan är sparka boll. Kollokationer har många tillämpningar inom korpuslingvistik och språkteknologi och spelar bland annat en central roll inom andraspråksinlärning och automatisk översättning. I denna laboration ska ni ta fram de starkaste kollokationerna i en lingvistiskt uppmärkt text.
- Laboration L4: Zip med labben och alla nödvändiga filer för lokal körning (obs: Python 3.10.12)
- Laboration L4: Colab
Föreläsningsbilder
Material
- Artikel Fasta fraser i svenskan
Mål
Efter denna laboration ska du kunna förklara och använda följande koncept:
- kollokation
- pointwise mutual information
- lexicographer’s mutual information
Efter denna laboration ska du kunna utföra följande procedurer:
- utföra enkla kvantitativa analyser på en text
- extrahera de starkaste kollokationerna från en text
L5: Hyponymer och interbedömarreliabilitet
En hyponym är ett ord vars betydelse innefattas av ett annat ords betydelse; detta andra ord kallas hyperonym. I denna laboration ska ni implementera en enkel metod för att hitta hyponymer i en lingvistiskt uppmärkt text. Den specifika korpus som ni kommer att jobba med är samma som i laboration L4: automatiskt uppmärkta meningar ur nyhetsartiklar från Göteborgsposten.
Föreläsningsbilder
Material
- Wikipedia-artikel Cohen’s kappa
- Artikel Automatic Acquisition of Hyponyms from Large Text Corpora
Mål
Efter denna laboration ska du kunna förklara och använda följande koncept:
- hyponym, hyperonym
- interbedömarreliabilitet
- Cohen’s Kappa
Efter denna laboration ska du kunna utföra följande procedurer:
- använda automatiska metoder för att hitta hyponymer i en lingvistiskt uppmärkt text
- beräkna Cohens kappa för att validera en annotering
Reflektion om AI-hjälp
Om ni har använt AI (ChatGPT, Copilot, Gemini, etc) för programmeringshjälp i samband med labbarna ska ni skriva en reflektion om detta. Texten skulle vara kring en sida lång och svara på dessa frågor:
- Vad använde du AI till?
- Vad fungerade bra?
- Vad kunde du inte lösa med AI-hjälp?
- Tycker du att du hade lärt dig mer eller mindre utan AI-hjälp?
Vi ber er att vara helt öppen kring er användning. Det var ju tillåtit att använda AI, och anledningen till den här inlämningen är att vi vill lära oss mer om hur vi kan bäst bädda in sådana verktyg i kurserna.
- Inlämning: 5/6.