729G49 Språk och datorer
Laborationer (LAB1)
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.
Laborationsassistenter på denna kurs:
- Daniel Holmer: danho69
- Jenny Kunz: kunje68
Å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.
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. Innan ni gör detta bör ni läsa kursens Regler för inlämningsuppgifter.
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
Textsegmentering är uppgiften att dela upp en text i lingvistiskt meningsfulla enheter, såsom stycken, meningar och ord. I 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.
Laboration L1: Textsegmentering (första inlämningsdatum: 2024-04-09)
Material
- Slides: Textsegmentering
- Reguljära uttryck, kompakt introduktion av Pontus Haglund
- Dokumentation av Python-modulen re, som tillhandahåller reguljära uttryck
- 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å
Innehåll
Efter denna laboration ska du kunna förklara och använda följande koncept:
- tokenisering
- undersegmentering, översegmentering
- precision, täckning
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
L2: Lingvistiskt uppmärkt 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: Lingvistiskt uppmärkt text 1 (första inlämningsdatum: 2024-04-16)
Material
- Slides: Lingvistiskt uppmärkt text 1
- Notebook med förklaring av generatorfunktioner
- Notebook med generatorfunktioner: Colab-version
- Wikipedia-artikel Zipfs lag
Innehåll
Efter denna laboration ska du kunna förklara och använda följande koncept:
- tabulerade data
- generatorfunktioner
- frekvensanalys
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 på en text
L3: Lingvistiskt uppmärkt 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: Lingvistiskt uppmärkt text 2 (första inlämningsdatum: 2024-04-23)
Material
- Slides: Lingvistiskt uppmärkt text 2
- Wikipedia-artikel Dependency Grammar
Innehåll
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: Kollokationer (första inlämningsdatum: 2024-04-30)
Material
Innehåll
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.
Laboration L5: Hyponymer (första inlämningsdatum: 2023-05-14)
Material
- Slides: Hyponymer och interbedömarreliabilitet
- Wikipedia-artikel Cohen’s kappa
- Artikel Automatic Acquisition of Hyponyms from Large Text Corpora
Innehåll
- hyponym, hyperonym
- Cohens kappa
- 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
Sidansvarig: Marcel Bollmann
Senast uppdaterad: 2024-04-23