Labb 2: Syntax och ordklasstaggning

Slides:



Advertisements
Liknande presentationer
Allmän grammatik Lektion 1
Advertisements

Naturvårdsverket | Swedish Environmental Protection Agency
Ordklasser Substantiv Verb Pronomen Konjunktioner Adjektiv Adverb
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Labb 1 - Textbearbetning med reguljära uttryck
Att söka till högskolan
Grammatik Ordklasser.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Access med Sebastian och Robert
Varför grammatik? Vad är ordklasser?
ORDKLASSERNA I SVENSKA SPRÅKET
Svenska Grammatik.
Sökning och sortering Linda Mannila
SYNTAX Allmän Grammatik.
Ordklasser "Ordklass" är namn på en grupp av ord som fungerar på samma sätt, när du använder dem.
Grammatik.
5. Grafiska objekt Redan på övning fem av sex! Här handlar det om att rita själv, färglägga och att låta kreativiteten flöda. Något för dig? Ritverktyg.
Ordklasser.
Dcg-notation 21.2 G 2.3 M (BBS 8). dagens föreläsning extra argument i dcg-notation prolog-anrop i dcg-notation avslutande kommentarer om dcg.
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Programmeringsteknik för K och Media
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Repetition satsdelar Vilka frågor ställs för att få fram p, s, dio, io? p= Vad händer? (bakar) s= Vem/vad + p? (Sara) dio= Vem/vad+p+s (en kaka) io= Till.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Ordklasser Substantiv Verb Pronomen Konjunktioner Adjektiv Adverb
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Programmering B PHP Lektion 3
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
Tabeller.
ORDKLASSERNA I SVENSKA SPRÅKET
Johanna Ståhl, Pilängskolan, Lomma –
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Listor En lista är en föränderlig ordnad samling objekt.
ORDKLASSERNA I SVENSKA SPRÅKET
Känna till och ha provat metoder och verktyg för processledning
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
SPARKVIPA.
Logikprogrammering 21/10 Binära träd
Lemmatiserare för okända ord Boel Mattsson. Projektbeskrivning Att göra ett program som gissar grundformen (lemmat) för okända ord Begränsning till substantiv,
Ingenjörsmetodik IT & ME 2008
BVForum - en genomgång för revisorer Sören Thuresson.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Pontus Johansson 1 grammatiker 21.1 G 1 (BBS 7)
Svensk grammatik ORDKLASSER 1.
Ordföljd.
Johanna Ståhl, Pilängskolan, Lomma –
 Alla ord hör till en ordklass.  Till vilken ordklass ett ord hör beror på: - vad ordet betyder - hur det böjs - hur det används.
Ordklasser Svensk grammatik Johanna Ståhl, Pilängskolan, Lomma –
Grammatik.
Grammatik ‏ ‏قواعد اللغة (‏نحو‏) Cvl-Sandviken. Ordklasser Substantiv الأسماء Verb الفعل ‏ Pronomen الضمائر Adjektiv الصفة Prepositioner حروف الجر Räkneord.
Grammatik och språkriktighet
Grammatik - Språket om språket -.
ORDKLASSERNA I SVENSKA SPRÅKET
Ordföljd huvudsats.
Skriv stor bokstav och punkt i alla meningar. Kurs B: tala och skriva Skriv stor bokstav och punkt i alla meningar.
Morfologi – hur ord böjs och bildas
Johanna Ståhl, Pilängskolan, Lomma –
Måndag den 5 februari 2018.
IT Fördjupning Jon Wide
Grammatisk terminologi I
Ordföljd huvudsats.
Ordklasser och akademisk text
Artiklar Bestämd artikel.
Kursplan för svenskundervisning för invandrare
Svensk grammatik ORDKLASSER 1.
Presentationens avskrift:

Labb 2: Syntax och ordklasstaggning Att arbeta med grammatiskt analyserade data

Labb 2 Vilka ord finns i texten? Hur många ordtyper innehåller den? Arbete med grammatiskt analyserad text Vilka ord finns i texten? Hur många ordtyper innehåller den? Hur ser fördelningen mellan olika ordklasser ut? använda kommandoradsverktyg i Unix för att sammanställa lexikon och fraslistor utvärdera och analysera verktyg för lingvistisk analys.

Plan Verktyg för lingvistisk analys Grundläggande Unix Connexor Machinese Syntax Grundläggande Unix Unix-verktyg för textbehandling: grep, sed, cut, paste, sort, uniq, …

Verktyg för grammatisk analys ”Machinese Syntax” är ett program som analyserar ord med avseende på lemma (grundform) ordklass och morfologiska kategorier dependenser och dependensfunktioner Prova själv: http://www.connexor.eu/technology/machinese/demo/syntax/

Utdata från analysprogram

Lemman Grundform som representerar ett ords samtliga böjningsformer (ung. uppslagsord i lexikon) Normalt väljs den oböjda (eller minst markerade) formen Lemma: dyka dyka, dyker, dök, dykte, dykt, dykas, dyks, döks, dyktes och dykts Lemman är beroende av ordklass bilar (bil om substantiv, bila om verb)

Lemman i Machinese Syntax

Automatisk ordklasstaggning Uppgift: att tilldela varje ord i en korpus en kategori som visar dess ordklass ev. med morfologisk information. Indata: textfil och resursdata (lexikon med ”taggar”, regler, …) Utdata: texten med en ordklasstagg för varje ord.

Morfologiska särdrag i svenska För substantiv: genus, kasus, numerus, bestämdhet För verb: tempus, diates, modus För adjektiv: genus, numerus, bestämdhet För (vissa) pronomen: person, kasus, numerus

Utdata från analysprogram

Hur svårt är ordklasstaggning? Homonymi svenska: var, runda, trumpet, fyrar, att, lurar… Homonymi engelska: can, book, import, snow, to, till… I Brown-korpusen (1 miljon ord) är över 40 procent av alla löpord mångtydiga vad gäller ordklass.

Hur svårt är ordklasstaggning? Enklast möjliga metod Välj den vanligaste ordklassen för varje ord Engelska: ca 9 av 10 textord får rätt ordklass Svenska: ca 7 av 10 textord får rätt ordklass Bästa tillgängliga system 94-98% beroende på texttyp

Syntaktisk parsning Parsning innebär att, automatiskt eller för hand, tilldela en mening en syntaktisk beskrivning (eller struktur) Hur hänger orden i meningen ihop? Labb 3 Parsning med frasstrukturgrammatik Dependensgrammatik Bygger på relationer mellan ord som speglar ”beroendeförhållanden”

Dependenser i grafiskt format det subj obj attr Den gamla hunden äter frukost . main

Utdata från analysprogram

Hur ska man tolka utdata? Tabbar mellan varje ”kolumn” Ordposition (med nummer) Ordform (som ordet ser ut i texten) Lemma (grundform) Funktionell dependens (syntaktisk funktion och position för styrande ordet) Ordklass & morfosyntaktiska särdrag a) huvudord/bestämningar b) ordklasskategori c) särdrag

I labben är inte alla delar centrala…   6 %NH N SG NOM obj:>4 frukost 5 %MV V PRES main:>0 äta äter 4 subj:>4 hund hunden 3 %>N A NOM attr:>3 gammal gamla 2 %>N DET SG NOM det:>3 den Den 1 Ordklass & morfologi Funk. dependens Stam/ Lemma Ordform Ord- pos.

Ordklasstaggar i Machinese Syntax V – verb N – substantiv PRON - pronomen A – adjektiv ADV - adverb PREP – preposition (på, i, under…) CC – samordnande konjunktion (och, men) CS – underordnande konjunktion (medan, att)

Ordklasstaggar i Machinese Syntax NUM – numeral (räkneord) DET – artikel (det, de , den , en, ett) AD – perfekt particip-form av verb, fungerar ofta som adjektiv (skjuten, upprörd, sluten) NDE – presens particip-form av verb, fungerar ofta som adjektiv NEG-PART – negativt adverb (inte, ej) INTERJ – interjektion (hejsan!) INFMARK – infinitivmärke (att)

Morfologiska kategorier Kasus: NOM – nominativ (grundform) GEN – genitiv ACC – ackusativ (objektsform) Numerus SG – singularis PL – pluralis

Morfologiska kategorier Komparering (adj/adv) <Cmp> - komparativ (dyrare) <Sup> - superlativ (dyrast) Tempus och modus PRES – presens PAST – preteritum (imperfekt) INF – infinitiv IMP - imperativ

Användning av taggade data Korpuslingvistik Frekvensdata för lexikala enheter (dvs lemman) Hitta tendenser i hur ord fördelar sig på olika grammatiska funktioner Hitta tendenser i vilka ord som tenderar att vara subjekt resp. objekt till olika verb Språkteknologi Frågebesvarande system Översättning producera välformade översättningar …

Labb 2: Syfte Utifrån text som analyserats av Machinese Syntax ska ni skapa olika typer av lexikon/ordlistor. Med hjälp av dessa filer kan man besvara frågor som Vilka ord finns i texten? Vad räknas som ord? Hur många ordtyper innehåller den? Hur ser fördelningen mellan olika ordklasser ut? Använd kommandoradsverktyg i Unix för att skapa stamlexikon med graford och ordklass frekvensordlistor över lemma/stam och ordklass fraslistor för givna mönster/fraser, t.ex, nominalfraser bestående av "DET A N".

Labb 2: Syfte Utvärdering av automatisk ordklassanalys och språkliga kategorier som ges som utdata. Analysera prestanda: vad görs rätt och vad blir fel?

Unix kommandoradsverktyg ls – lista alla filer i arbetskatalogen cd – byt katalog rm – ta bort en fil/katalog mv – byt namn på en fil/katalog man – läs manualen för ett kommando man cut 25

Unix kommandoradsverktyg Textverktyg grep skriv ut rader som matchar ett RU sed sök och ersätt med RU tr byt ut eller ta bort tecken sort sortera rader uniq ta fram unika rader cut klipp ut kolumner paste sätt ihop kolumner wc räknar rader, ord och tecken man visa manual för olika kommandon och verktyg 26

Verktyg – grep Textfilter Söker igenom en text rad för rad och skriver ut alla rader som innehåller den eftersökta strängen. grep ’sökuttryck’ textfil grep ’Karlsson’ textfil Eva Karlsson 22 22 22 Sven Karlsson 33 33 33 … 27

Grep Ggrep En version av grep som kan tolka utökade reguljära uttryck (URU). ggrep –E ’RU’ textfil Andra flaggor: -E använd utökade RU (Extended) -i matcha både små och stora bokstäver -w matcha ord dvs. strängar med ordgräns på varje sida. Motsvarar \b’reg. uttr.’\b -v inversen. Skriver ut varje rad som inte matchar sökuttrycket. 28

Verktyg – grep > ggrep -E ’coh’ textfil Bill coh Bull coh Maja. > ggrep -E ’Bill’ textfil Bill coh Bull > ggrep -E ’B.ll’ textfil Bill coh Bull 29

Sed Stream editor ”sök och ersätt” > gsed -r ’substitutionsuttryck’ textfil Substitutionsuttryck: s/sökuttryck/ersättningssträng/ Sökuttryck: ett reguljärt uttryck Ersättningssträng: en vanlig textsträng > sed ’s/coh/och/’ textfil Bill och Bull jagade Pelle och Maja. 30

Verktyg - sed Alla rader skrivs ut > sed ’s/coh/och/’ textfil Bill och Bull jagade Pelle och Maja. Ex. s/[0-9]/X/g g – alla förekomster på raden byts ut i – sökning på små och stora bokstäver 31

Sed forts. s/([KC]arlsson)/<NAME>\1<\/NAME>/g Astrid Lindgrens berömda barnbok ”<NAME>Karlsson</NAME> på taket” går på export. Ersättningsfältet kan innehålla referenser till sökuttrycket. ’/’ specialtecken i substitutionsuttryck 32

Omdirigering i Unix < - läs från en fil > - skriv till en fil > ! - skriv över innehållet i en fil >> - skriv sist i en fil | - pipe, skicka utdata från ett kommando som indata till ett annat

Omdirigering i Unix, exempel grep 'hej' fil.txt > hejrader.txt grep '^A' fil.txt > ordnat.txt grep '^B' fil.txt >> ordnat.txt tr 'U' 'u' < fil.txt | grep 'under' tr 'U' 'u' < fil.txt > temp.txt grep 'under' temp.txt rm temp.txt

UNIX pipes > cat textfil.txt Bill coh Bull jagade Pelle, Maja coh deras vän Måns. > cat textfil | grep ‘de’ > cat textfil | grep ‘de’ | sed ‘s/coh/och/g’ och deras vän Måns. 35

Machinese Syntax textformat %>N PRON SG GEN attr:>4 jag min 3 %NH N SG NOM obj:>2 väska 4 %MV V PAST main:>0 packa packade 2 %NH PRON SG NOM subj:>2 Jag 1 Ordklass & morfologi Funk. dependens Stam / lemma Ordform Ord- pos. Fem tab-separerade (‘\t’) kolumner Sista kolumnen indelad med mellanslag Vad är FDG? Hur det fungerar, funktionell dependensgrammatik Beskriv och förklara tabellen. 1\tJag\tjag\tsubj:>2\t%NH PRON SG NOM\n

Att välja kolumner med cut Kommandot cut plockar kolumner ur en textfil. Om inte annat anges, antar att kolumner avdelas med tab-tecken. De kolumner man vill ha anges med flaggan –f : cut –f1 text cut –f1,3 text cut –f2-4 text Flaggan –d används för att specificera ett annat avdelningstecken än ’\t’. cut -d ’#’ –f2

Exempel cut Endast kolumn fem Alla utom fjärde kolumnen cut –f5 labbtext.fdg > kolumn5.txt Alla utom fjärde kolumnen cut –f1-3,5 labbtext.fdg Dela vid mellanslag (-d delimiter) cut –d ‘ ‘ –f2 kolumn5.txt > kolumn5-2.txt Praktiskt med automatisk tab-indelning Intressant att kunna dela vid mellanslag, kolon etc.

Slå ihop kolumner: paste Kommandot paste sätter ihop två eller fler filer till en ny fil Omvänd operation i jämförelse med cut Separerar kolumner med tab om inte –d används. Exempel: paste kolumn2.txt kolumn1.txt > kolumn2-1.txt Tips: cut och paste går i vissa fall ersätta med sed om man vill… Exempel kommer sedan

Sortera rader: sort Kommandot sort sorterar textrader Sorterar från början i teckenordning Flaggor: -d Sortera i alfabetisk ordning, bara bokstäver, siffror och blanktecken används -n Sortera efter siffror i början på raden -r Omvänd sorteringsordning (reverse) -k Specificera vilken kolumn som ska sorteras på, startkolumn och slutkolumn kan anges Skillnaden mellan default-beteende och flaggan –d endast signifikant vid teckenmängder (fildata) utanför alfanumeriska tecken… Utan –f så sorteras stora bokstäver först, gemener sedan

Exempel sort Alfabetiskt sortering, ingen skillnad på gemener och versaler, baklänges sort –d –f –r fil.txt > sorterad-text Två filer i nummerordning sort –n fil1 fil2 > sorterad-fil1-2 Vad tar mest plats på kontot? du –ka | sort –nr | head Sista exemplet: Hur quota fungerar @ ida du : disk usage, skriver ut användning och filnamn -k visa i kilobyte (över quota rapporteras i kb) -a visa alla filer på kontot Sortera numeriskt, omvänd ordning dvs störst filer först Head, visa de första intressanta raderna 2012 labbtext4.fdg … 2 nytext4.txt Vilken ska bort?

Vid duplicerade rader: uniq Kommandot uniq kan användas för att ta bort eller räkna duplicerade rader Förutsättning: raderna intill varandra, dvs filen måste vara sorterad! Exempel: uniq plural.txt > singular.txt sort indata | uniq –c > frekvensfil

Räkna ord: wc Räknar rader, ord och tecken i en fil wc artikel.txt 350 5109 29195 Filen innehåller 350 rader, 5109 ord och 29195 tecken.

Fler Unix-verktyg cat – visa allt innehåll i en fil less – gå igenom innehållet i en fil q – avsluta /pattern – sök framåt ?pattern – sök bakåt more – ungefär som less head/tail – se början/slutet av en fil

Fler Unix-verktyg cd – byt katalog rm – ta bort en fil/katalog mv – byt namn på en fil/katalog man – läs manualen för ett kommando man cut

Bigram och trigramsfiler Bigram = två på varandra följande ord ”Den gamla hunden äter frukost” den gamla gamla hunden hunden äter äter frukost Lista 1: den gamla hunden äter frukost Lista 2: gamla hunden äter frukost

Köra många kommandon på en gång med skript Skriv in kommandona i en fil (kommando.sh): cut –f 2 indata > kolumn2 cut –f 1,3 indata > kolumn13 paste kolumn2 kolumn13 > kolumner213 rm kolumn2 kolumn13 Ändra rättigheter för filen: chmod u+x kommando.sh chmod 755 kommando.sh Kör filen: kommando.sh

Uppgift 1 & 2 Uppgift 1: Uppgift 2: skapa lexikon (ordlistor) m.h.a. cut, paste, sort och uniq utvärdera lemma och ordklassbestämning Uppgift 2: ta ut olika typer av flerordsfraser Skapa egna bigram och trigram filer Använd ordklasser och sökmönster utvärdera morfologiska särdrag När det gäller 2), enkla greppar, antingen para ihop ordklasser för sig, eller använd andra tecken vid paste för att bygga ihop.

Uppgift 3 Frivillig VG uppgift Jämför ordklasskategorier och morfologiska särdrag från Machinese Syntax med Nusvensk grammatik Vilka skillnader finns det? Finns alla morfologiska särdrag med i verktygets uppmärkning? För- och nackdelar med olika uppdelningar av ordklasser och morfologiska särdrag. Tips: fördela arbetet inom gruppen System intressantast, inte ”flest fel vinner”.