FL 6: Definite Clause Grammars (kap. 7)

Storlek: px
Starta visningen från sidan:

Download "FL 6: Definite Clause Grammars (kap. 7)"

Transkript

1 FL 6: Definite Clause Grammars (kap. 7) Teori Introducerar kontextfria grammatikor och några besläktade begrepp Introducerar definite clause - grammatikor, Prologs sätt att jobba med kontextfria grammatikor (och andra grammatikor likaså)

2 Kontextfria grammatikor Prolog erbjuder en speciell notation för att definiera grammatikor med, nämligen DCG:or eller definite clausegrammatikor Så vad är en grammatik? Vi ska besvara frågan genom att diskutera kontextfria grammatikor CFG:or är en mycket kraftig mekanism som kan hantera de flesta aspekter av syntaxen hos naturliga språk (ex. svenska/finska)

3 Ett exempel på en CFG s np vp np det n vp v np vp v det the det a n man n woman v shoots

4 Ingredienserna av en grammatik Pilsymbolen används för att definiera reglerna Symbolerna s, np, vp, det, n, v heter icke-terminala symboler De kursiverade symbolerna är de terminala symbolerna: the, a, man, woman, shoots s np vp np det n vp v np vp v det the det a n man n woman v shoots

5 En liten bit lingvistik De icke-terminala symbolerna i denna grammatik har en traditionell mening i lingvistik: np: noun phrase (nominalfras) vp: verb phrase (verbfras) det: determiner (determinerare) n: noun (substantiv) v: verb (verb) s: sentence (mening, i vissa fall sats)

6 Mera lingvistik I en lingvistisk grammatik motsvarar de icke-terminala symbolerna oftast grammatikaliska kategorier I en lingvistisk grammatik kallas de terminala symbolerna lexikala enheter, eller helt enkelt ord (en datavetare skulle kalla dem alfabetet)

7 Kontextfria regler Exempelgrammatiken består av nio kontextfria regler En kontextfri regel består av: En ensam icke-terminal symbol följd av följd av en ändlig sekvens av terminala eller icke-terminala symboler s np vp np det n vp v np vp v det the det a n man n woman v shoots

8 Vad täcker grammatiken? Betrakta följande sträng: the woman shoots a man Är denna sträng grammatikalisk enligt vår grammatik? Och om den är det, vilken syntaktisk struktur har den?

9 Syntaktisk struktur s vp np np det n v det n the woman shoots a man s np vp np det n vp v np vp v det the det a n man n woman v shoots

10 Parse trees (syntaxträd) Träd som representerar den syntaktiska strukturen av en sträng kallas ofta syntaxträd (parse trees) Syntaxträd är viktiga: De ger oss information om strängen De ger oss information om struktur

11 Grammatikaliska strängar Om vi får en sträng av ord och en grammatik, och det visar sig att vi kan konstruera ett syntaxträd, säger vi att strängen är grammatikalisk (med avseende på den givna grammatiken) Ex., the man shoots är grammatikalisk Om vi inte kan konstruera ett syntaxträd är den givna strängen ogrammatikalisk (igen med avseende på den givna grammatiken) Ex. a shoots woman är ogrammatikalisk

12 Genererat språk Språk som genereras av en grammatik består av alla de strängar som grammatiken klassificerar som grammatikaliska T. ex. a woman shoots a man a man shoots hör till språket som genereras av vår lilla exempelgrammatik

13 Igenkännare/Recogniser En kontextfri igenkännare (recogniser) är ett program som korrekt informerar oss om en sträng hör eller inte hör till det språk som genereras av en kontextfri grammatik Med andra ord är en igenkännare/ recogniser ett program som korrekt klassificerar strängar i grammatikaliska och ogrammatikaliska

14 Information om struktur Men varken i lingvistik eller datavetenskap är vi enbart intresserade av ifall en sträng är grammatikalisk eller ej Vi vill också veta varför den är grammatikalisk: vi vill veta dess struktur Syntaxträdet ger oss denna struktur

15 Analysprogram/Parser En kontextfri parser avgör korrekt ifall en sträng hör till det språk som genereras av en kontextfri grammatik Och det berättar oss också vad dess struktur är Alltså: En recogniser säger bara ja eller nej En parser ger oss också syntaxträdet

16 Kontextfritt språk Vi vet vad en kontextfri grammatik är, men vad är ett kontextfritt språk? Helt enkelt: ett kontextfritt språk är ett språk som kan genereras av en kontextfri grammatik Vissa mänskliga språk är kontextfria, vissa andra är inte det Engelska och italienska är antagligen kontextfria Holländska och Schweiz-tyska är inte kontextfria

17 Teori vs. praktik Detta om teorin, men hur jobbar vi med kontextfria grammatikor i Prolog? Anta att vi får en kontextfri grammatik Hur ska vi skriva en recogniser för den? Hur ska vi skriva en parser för den? Under denna föreläsning ska vi lära oss att definiera en igenkännare/ recogniser

18 CFG-igenkänning i Prolog Vi ska använda listor för att representera strängar [a,woman,shoots,a,man] Regeln s np vp kan tänkas som en konkatenering av en np-lista med en vp-lista så att resultatet blir en s-lista Vi vet hur vi kan konkatenera listor i Prolog: mha append/3 Så nu gäller det att implementera detta i Prolog

19 CFG-igenkänning mha append/3 s(c) :- np(a), vp(b), append(a,b,c). np(c) :- det(a), n(b), append(a,b,c). vp(c) :- v(a), np(b), append(a,b,c). vp(c) :- v(c). det([the]). det([a]). n([man]). n([woman]). v([shoots]).

20 CFG-igenkänning mha append/3?- s([the,woman,shoots,a,man]). yes?- s(c) :- np(a), vp(b), append(a,b,c). np(c) :- det(a), n(b), append(a,b,c). vp(c) :- v(a), np(b), append(a,b,c). vp(c) :- v(c). det([the]). det([a]). n([man]). n([woman]). v([shoots]).

21 CFG-igenkänning mha append/3?- s(s). s(c) :- np(a), vp(b), append(a,b,c). np(c) :- det(a), n(b), append(a,b,c). vp(c) :- v(a), np(b), append(a,b,c). vp(c) :- v(c). det([the]). det([a]). n([man]). n([woman]). v([shoots]). S = [the,man,shoots,the,man]; S = [the,man,shoots,the,woman]; S = [the,woman,shoots,a,man]

22 CFG-igenkänning mha append/3?- s(s). S = [the, man, shoots, the, man] ; S = [the, man, shoots, the, woman] ; S = [the, man, shoots, a, man] ; S = [the, man, shoots, a, woman] ; S = [the, man, shoots] ; S = [the, woman, shoots, the, man] ; S = [the, woman, shoots, the, woman] ; S = [the, woman, shoots, a, man] ; S = [the, woman, shoots, a, woman] ; S = [the, woman, shoots] ; S = [a, man, shoots, the, man] ; S = [a, man, shoots, the, woman] ; S = [a, man, shoots, a, man] ; S = [a, man, shoots, a, woman] ; S = [a, man, shoots] ; S = [a, woman, shoots, the, man] ; S = [a, woman, shoots, the, woman] ; S = [a, woman, shoots, a, man] ; S = [a, woman, shoots, a, woman] ; S = [a, woman, shoots]. host-001:~ soini$ more CFG.pl s(c) :- np(a), vp(b), append(a,b,c). np(c) :- det(a), n(b), vp(c) :- v(a), append(a,b,c). np(b), vp(c) :- v(c). det([the]). det([a]). n([man]). n([woman]). v([shoots]). append(a,b,c).

23 CFG-igenkänning mha append/3 s(c) :- np(a), vp(b), append(a,b,c). np(c) :- det(a), n(b), append(a,b,c). vp(c) :- v(a), np(b), append(a,b,c). vp(c) :- v(c). det([the]). det([a]). n([man]). n([woman]). v([shoots]).?- np([the,woman]). yes?- np(x). X = [the,man]; X = [the,woman]

24 CFG-igenkänning mha append/3?- np(x). X = [the, man] ; X = [the, woman] ; X = [a, man] ; X = [a, woman].?- trace. true.

25 CFG-igenkänning mha append/3 [trace]?- np(x). Call: (6) np(_g1563)? creep Call: (7) det(_g1634)? creep Exit: (7) det([the])? creep Call: (7) n(_g1637)? creep Exit: (7) n([man])? creep Call: (7) lists:append([the], [man], _G1563)? creep Exit: (7) lists:append([the], [man], [the, man])? creep Exit: (6) np([the, man])? creep X = [the, man] ; Redo: (7) n(_g1637)? creep Exit: (7) n([woman])? creep Call: (7) lists:append([the], [woman], _G1563)? creep Exit: (7) lists:append([the], [woman], [the, woman])? creep Exit: (6) np([the, woman])? creep X = [the, woman] ;

26 CFG-igenkänning mha append/3 Redo: (7) det(_g1634)? creep Exit: (7) det([a])? creep Call: (7) n(_g1637)? creep Exit: (7) n([man])? creep Call: (7) lists:append([a], [man], _G1563)? creep Exit: (7) lists:append([a], [man], [a, man])? creep Exit: (6) np([a, man])? creep X = [a, man] ; Redo: (7) n(_g1637)? creep Exit: (7) n([woman])? creep Call: (7) lists:append([a], [woman], _G1563)? creep Exit: (7) lists:append([a], [woman], [a, woman])? creep Exit: (6) np([a, woman])? creep X = [a, woman]. [trace]?- notrace.

27 Problem med denna igenkännare Den använder sig inte av inputsträngen för att styra sökprocessen Mål som np(a) och vp(b) anropas med oinstantierade variabler Att flytta append/3-målen framåt i regeln är inte en speciellt bra lösning --- det bara senarelägger problemet --- det kommer att uppstå massor av anrop till append/3 med oinstantierade variabler

28 Differenslistor En mera effektiv implementation kan åstadkommas mha differenslistor Det här är en sofistikerad Prolog-teknik för att representera och bearbeta listor Exempel: [a,b,c]-[ ] [a,b,c,d]-[d] [a,b,c T]-T är lista [a,b,c] är lista [a,b,c] är lista [a,b,c] X-X är den tomma listan [ ]

29 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). En sats s består av en lista A minus en lista C så att första delen av denna A är en np, och resten av strängen kallar vi för B.

30 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). B-delen i sin tur ska representera en vp, och det som finns kvar av strängen kallar vi C.

31 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). Om vi vill att satsen har strukturen s np, vp ska resten C vara [].

32 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). np(a-c):- det(a-b), n(b-c). En nominalfras np består av en determinerare och ett substantiv (noun). Om np:n representeras som en differenslista A-C, ska A:s början vara determineraren.

33 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). np(a-c):- det(a-b), n(b-c). När vi plockar bort determineraren, har vi B-delen kvar. Den ska gå att matcha mot ett substantiv, n. C, det som återstår, ska i detta fall vara [].

34 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). np(a-c):- det(a-b), n(b-c). vp(a-c):- v(a-b), np(b-c). Verbfrasen vp analyseras på samma sätt: om vp:n representeras av differenslistan A-C, ska början av A gå att matcha mot ett verb v.

35 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). np(a-c):- det(a-b), n(b-c). vp(a-c):- v(a-b), np(b-c). Det som återstår listan B-C ska gå att matcha mot en np. Resten C ska enligt denna regel bli [].

36 CFG-igenkänning mha differenslistor s(a-c):- np(a-b), vp(b-c). np(a-c):- det(a-b), n(b-c). vp(a-c):- v(a-b), np(b-c). vp(a-c):- v(a-c). Vår lilla grammatik tillåter också en annan form av vp, verbet ensamt (för intransitiva verb). Då ska hela A-C gå att matcha mot detta v.

37 CFG-igenkänning mha differenslistor det([the W]-W). det([a W]-W). n([man W]-W). n([woman W]-W). v([shoots W]-W). Lexikonet representeras likaså med differenslistor; varje enskilt ord är en lista [ordet W]-W

38 CFG-igenkänning mha differenslistor s(a-c) :- np(a-b), vp(b-c). np(a-c) :- det(a-b), n(b-c). vp(a-c) :- v(a-b), np(b-c). vp(a-c) :- v(a-c). det([the W]-W). det([a W]-W). n([man W]-W). n([woman W]-W). v([shoots W]-W).?- s(s-[ ]). S = [the,man,shoots,the,man]; S = [the,man,shoots,a,man];.

39 CFG-igenkänning mha differenslistor?- s(s-[]). S = [the, man, shoots, the, man] ; S = [the, man, shoots, the, woman] ; S = [the, man, shoots, a, man] ; S = [the, man, shoots, a, woman] ; S = [the, man, shoots] ; S = [the, woman, shoots, the, man] ; S = [the, woman, shoots, the, woman] ; S = [the, woman, shoots, a, man] ; S = [the, woman, shoots, a, woman] ; S = [the, woman, shoots] ; S = [a, man, shoots, the, man] ; S = [a, man, shoots, the, woman] ; S = [a, man, shoots, a, man] ; S = [a, man, shoots, a, woman] ; S = [a, man, shoots] ; S = [a, woman, shoots, the, man] ; S = [a, woman, shoots, the, woman] ; S = [a, woman, shoots, a, man] ; S = [a, woman, shoots, a, woman] ; S = [a, woman, shoots].

40 Sammandrag så här långt... Igenkännaren som använder sig av differenslistor är mycket mera effektiv än den som använder sig av append/3 Den är tyvärr inte lika lätt att förstå rent intuitivt, och det kan vara mödosamt att hålla reda på alla de variabler som representerar de olika differenslistorna. Vi skulle gärna ha en igenkännare som var lika enkel som den första och lika effektiv som den andra. Detta är möjligt mha DCG:or

41 Definite Clause-Grammatikor Vad är DCG:or? Helt enkelt en användarvänlig notation att skriva grammatikor med som gömmer de underliggande differenslistvariablerna Tre exempel följer...

42 DCG:or: första exemplet s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots].

43 DCG:or: första exemplet s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots].?- s([a,man,shoots,a,woman],[ ]). yes?-

44 DCG:or: första exemplet s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots].?- s(s,[]). S = [the, man, shoots, the, man] ; S = [the, man, shoots, the, woman] ; S = [the, man, shoots, a, man] ; S = [the, man, shoots, a, woman] ; S = [the, man, shoots] ; S = [the, woman, shoots, the, man] ; S = [the, woman, shoots, the, woman] ; S = [the, woman, shoots, a, man] ; S = [the, woman, shoots, a, woman] ; S = [the, woman, shoots] ; S = [a, man, shoots, the, man] ; S = [a, man, shoots, the, woman] ; S = [a, man, shoots, a, man] ; S = [a, man, shoots, a, woman] ; S = [a, man, shoots] ; S = [a, woman, shoots, the, man] ; S = [a, woman, shoots, the, woman] ; S = [a, woman, shoots, a, man] ; S = [a, woman, shoots, a, woman] ; S = [a, woman, shoots].

45 DCG:or: andra exemplet s --> s, conj, s. s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots]. conj --> [and]. conj --> [or]. conj --> [but]. Vi har tillagt en rekursiv regel i grammatiken... Vilka och hur många meningar kommer den här grammatiken att generera? Vad gör Prolog med denna DCG?

46 DCG:or: andra exemplet s --> s, conj, s. s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots]. conj --> [and]. conj --> [or]. conj --> [but].?- s([the, woman, shoots, and, the, woman, shoots], S). ERROR: Out of local stack Exception: (1,763,388) s([the, woman, shoots, and, the, woman, shoots], _G1555)? Unknown option (h for help) Exception: (1,763,388) s([the, woman, shoots, and, the, woman, shoots], _G1555)? Unknown option (h for help) Exception: (1,763,388) s([the, woman, shoots, and, the, woman, shoots], _G1555)? alternatives [1,763,388] s([the, woman, shoots, and, the, woman, shoots], _G1569) [1,763,387] s([the, woman, shoots, and, the, woman, shoots], _G1569) [1,763,386] s([the, woman, shoots, and, the, woman, shoots], _G1569) [1,763,385] s([the, woman, shoots, and, the, woman, shoots], _G1569) [1,763,384] s([the, woman, shoots, and, the, woman, shoots], _G1569)...

47 DCG utan vänsterrekursiva regler s --> simple_s, conj, s. s --> simple_s. simple_s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots]. conj --> [and]. conj --> [or]. conj --> [but].?- s([a, woman, shoots, and, a, woman, shoots], []). true ; false. Did anybody call for a doctor??

48 DCG utan vänsterrekursiva regler s --> simple_s. s --> simple_s, conj, s. simple_s --> np, vp. np --> det, n. vp --> v, np. vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots]. conj --> [and]. conj --> [or]. conj --> [but].?- s(s, []). S = [the, man, shoots, the, man] ; S = [the, man, shoots, the, woman] ; S = [the, man, shoots, a, man] ; S = [the, man, shoots, a, woman] ; S = [the, man, shoots] ; S = [the, woman, shoots, the, man] ;... S = [a, woman, shoots, a, woman] ; S = [a, woman, shoots] ; S = [the, man, shoots, the, man, and, the, man, shoots...] ; S = [the, man, shoots, the, man, and, the, man, shoots...] ; S = [the, man, shoots, the, man, and, the, man, shoots...] ; S = [the, man, shoots, the, man, and, the, man, shoots...] Action (h for help)? abort % Execution Aborted

49 DCG:or är inte magi! Lärdom: DCG:or är en bekväm notation, men du kan inte skriva arbiträra kontextfria grammatikor som DCG:or och köra dem utan problem DCG:or är vanliga Prolog-regler men maskerade Så var på din vakt mot vänsterrekursion! Ett flertal av reglerna måste få vara rekursiva, så de (försöker) generera oändliga strängar

50 DCG:or är inte magi! host-001:~ soini$ more DCG4.pl s --> simple_s. s --> simple_s, conj, s. % ej vansterrekursiv simple_s --> np, vp. % grundstrukturen for en sats np --> det, n. vp --> v, np. % transitiva verb vp --> v. det --> [the]. det --> [a]. n --> [man]. n --> [woman]. v --> [shoots]. conj --> [and]. conj --> [or]. conj --> [but]. % intransitiva verb

51 DCG:or är inte magi! host-001:~ soini$ swipl -s DCG4.pl % /Users/soini/DCG4.pl compiled 0.00 sec, 23 clauses?- listing. s(a, B) :- simple_s(a, B). s(a, D) :- simple_s(a, B), conj(b, C), s(c, D). simple_s(a, C) :- np(a, B), vp(b, C). conj([and A], A). conj([or A], A). conj([but A], A). np(a, C) :- det(a, B), n(b, C). vp(a, C) :- v(a, B), np(b, C). vp(a, B) :- v(a, B). det([the A], A). det([a A], A). n([man A], A). n([woman A], A). v([shoots A], A). true. Den interna representationen är normal Prologkod med differenslistor.

52 DCG:or: tredje exempel Vi ska definiera en DCG för ett formellt språk Ett formellt språk är helt enkelt en mängd av strängar Formella språk är objekt som datavetare och matematiker definierar och studerar Naturliga språk är språk som (normalt) används av människor för att kommunicera Vi ska definiera språket a n b n

53 DCG:or: tredje exempel Vi ska definiera det formella språket a n b n?- s([a,a,a,b,b,b],[ ]). yes?- s([a,a,a,a,b,b,b],[ ]). no s --> []. s --> l,s,r. l --> [a]. r --> [b].

54 DCG:or: tredje exempel Vi ska definiera det formella språket a n b n?- s(x,[ ]). X = [ ]; X = [a,b]; X = [a,a,b,b]; X = [a,a,a,b,b,b]. s --> []. s --> l,s,r. l --> [a]. r --> [b].

55 Sammandrag Vi har diskuterat vad grammatikor och kontextfria grammatikor är Vi har introducerat Prolog-tekniken differenslista Vi har visat att differenslistor kan användas för att beskriva grammatikor Definite Clause-grammatikor (DCG) är en användarvänlig Prolog-notation för programmering mha differenslistor

Datorlingvistisk grammatik

Datorlingvistisk grammatik Datorlingvistisk grammatik Kontextfri grammatik, m.m. http://stp.lingfil.uu.se/~matsd/uv/uv11/dg/ Mats Dahllöf Institutionen för lingvistik och filologi Februari 2011 Denna serie Formella grammatiker,

Läs mer

Frasstrukturgrammatik

Frasstrukturgrammatik 729G09 Språkvetenskaplig databehandling (2016) Frasstrukturgrammatik Marco Kuhlmann Institutionen för datavetenskap Korpusdata 1 Folkpensionen folkpension NOUN 2 dobj 2 får få VERB 0 root 3 man man PRON

Läs mer

Reguljära uttryck Grammatiker Rekursiv nedåkning Allmänna kontextfria grammatiker. Syntaxanalys. Douglas Wikström KTH Stockholm

Reguljära uttryck Grammatiker Rekursiv nedåkning Allmänna kontextfria grammatiker. Syntaxanalys. Douglas Wikström KTH Stockholm Syntaxanalys Douglas Wikström KTH Stockholm popup-help@csc.kth.se Reguljära uttryck Reguljära uttryck förutsätter att en mängd bokstäver är givna, ett så kallat alfabet, som oftast betecknas med Σ. Uttryck

Läs mer

Föreläsning 7: Syntaxanalys

Föreläsning 7: Syntaxanalys DD2458, Problemlösning och programmering under press Föreläsning 7: Syntaxanalys Datum: 2007-10-30 Skribent(er): Erik Hammar, Jesper Särnesjö Föreläsare: Mikael Goldmann Denna föreläsning behandlade syntaxanalys.

Läs mer

729G09 Språkvetenskaplig databehandling

729G09 Språkvetenskaplig databehandling 729G09 Språkvetenskaplig databehandling Modellering av frasstruktur Lars Ahrenberg 2015-05-04 Plan Formell grammatik språkets oändlighet regler Frasstrukturgrammatik Kontextfri grammatik 2 Generativ grammatik

Läs mer

Föreläsning 3: rekursion

Föreläsning 3: rekursion Föreläsning 3: rekursion Teori Introducera rekursiva definitioner i Prolog Fyra exempel Visa att det kan finnas diskrepanser mellan Prolog-programmets deklarativa och procedurala betydelse! Rekursiva definitioner

Läs mer

Kontextfria grammatiker

Kontextfria grammatiker Kontextfria grammatiker Kontextfria grammatiker 1 Kontextfria grammatiker En kontextfri grammatik består av produktioner (regler) på formen S asb S T T # Vänsterledet består av en icke-terminal (variabel)

Läs mer

Matematik för språkteknologer

Matematik för språkteknologer 1 / 21 Matematik för språkteknologer 3.3 Kontext-fria grammatiker (CFG) Mats Dahllöf Institutionen för lingvistik och filologi Februari 2014 2 / 21 Dagens saker Kontext-fria grammatiker (CFG). CFG kan

Läs mer

Centrala begrepp i prolog och logikprogrammering. Annamaris lista

Centrala begrepp i prolog och logikprogrammering. Annamaris lista Centrala begrepp i prolog och logikprogrammering Annamaris lista Databas med fakta och regler: Ett prolog-system består av en databas av fakta, och regler som gäller för dessa fakta. Fakta har formen av

Läs mer

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Syntaktisk parsning (Jurafsky & Martin kapitel 13) Syntaktisk parsning (Jurafsky & Martin kapitel 13) Mats Wirén Institutionen för lingvistik Stockholms universitet mats.wiren@ling.su.se DH2418 Språkteknologi DA3010 Språkteknologi för datorlingvister Föreläsning

Läs mer

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk Modellering med kontextfri grammatik Kontextfri grammatik - definition Kontextfri grammatik (CFG) definition modellering av frasstruktur andra exempel Dependensgrammatik Trädbanker Varianter av kontextfri

Läs mer

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA Automatateori (2) Idag: Sammanhangsfria språk Dessa kan uttryckas med Grammatik PDA Grammatik = språkregler Ett mer kraftfullt sätt att beskriva språk. En grammatik består av produktionsregler (andra ord

Läs mer

Logikprogrammering. Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl!

Logikprogrammering. Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl! Logikprogrammering Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl! Learn Prolog Now! SWI Prolog Gratis Prolog-tolk Lesser GNU Public

Läs mer

Inlämningsuppgift MiniPlotter

Inlämningsuppgift MiniPlotter LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap EDAA01 Programmeringsteknik fördjupningskurs Inlämningsuppgift MiniPlotter I den här uppgiften ska ett program som ritar grafer av matematiska funktioner

Läs mer

Tekniker för storskalig parsning: Grundbegrepp

Tekniker för storskalig parsning: Grundbegrepp Tekniker för storskalig parsning: Grundbegrepp Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning: Grundbegrepp 1(17)

Läs mer

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin DD1361 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning 4 Per Austrin 2015-11-20 Idag Rekursiv medåkning, fortsättning Olika klasser av språk och grammatiker Parsergeneratorer Sammanfattning

Läs mer

Parsning = analys. Parsningsalgoritmer. Användningsområden. L1: Introduktion

Parsning = analys. Parsningsalgoritmer. Användningsområden. L1: Introduktion Parsning = analys Maskinell analys av naturligt språks strukturer Uppgiften som en parser löser är 1. Acceptera en sträng som grammatisk, samt oftast 2. Ge en strukturell representation av strängen som

Läs mer

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH Objektorienterad modellering och diskreta strukturer 13. Problem Sven Gestegård Robertz Datavetenskap, LTH 2014 Rekaputilation Vi har talat om satslogik och härledning predikatlogik och substitution mängder

Läs mer

Lite mer psykologi. L2: Automater, Sökstrategier. Top-down. Kimballs sju principer

Lite mer psykologi. L2: Automater, Sökstrategier. Top-down. Kimballs sju principer Lite mer psykologi Perception: yntaktiskt bearbetning: emantisk bearbetning PERON() & LIKE(, y) L2: Automater, ökstrategier Korttidsminnet D4510 Parsningsalgoritmer Höstterminen 200 Långtidsminne Anders

Läs mer

Dependensregler - Lathund

Dependensregler - Lathund Dependensregler - Lathund INTRODUKTION I textprogrammet TeCST är det möjligt för en skribent att skriva, redigera och klistra in text för att få ut läsbarhetsmått och få förslag på hur texten kan skrivas

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Grundläggande datalogi - Övning 9

Grundläggande datalogi - Övning 9 Grundläggande datalogi - Övning 9 Björn Terelius January 30, 2009 Ett formellt språk är en (oftast oändlig) mängd strängar. Språket definieras av en syntax som är en samling regler för hur man får bilda

Läs mer

Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg

Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg Föreläsning 5: Modellering av frasstruktur 729G09 Språkvetenskaplig databehandling Lars Ahrenberg 2014-05-05 1 Översikt Introduktion generativ grammatik och annan syntaxforskning Att hitta mönster i satser

Läs mer

PROV I MATEMATIK Automatateori och formella språk DV1 4p

PROV I MATEMATIK Automatateori och formella språk DV1 4p UPPSALA UNIVERSITET Matematiska institutionen Salling (070-6527523) PROV I MATEMATIK Automatateori och formella språk DV1 4p 19 mars 2004 SKRIVTID: 15-20. POÄNGGRÄNSER: 18-27 G, 28-40 VG. MOTIVERA ALLA

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Partiell parsning Parsning som sökning

Partiell parsning Parsning som sökning Språkteknologi: Parsning Parsning - definition Parsningsbegrepp Chartparsning Motivering Charten Earleys algoritm (top-down chartparsning) Partiell parsning (eng. chunking) med reguljära uttryck / automater

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin DD1361 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning 3 Per Austrin 2015-11-13 Huvudkoncept hittils: Snabb repetition Formellt språk en mängd strängar Reguljära språk den klass av formella

Läs mer

729G09 Språkvetenskaplig databehandling

729G09 Språkvetenskaplig databehandling 729G09 Språkvetenskaplig databehandling Föreläsning 2, 729G09, VT15 Reguljära uttryck Lars Ahrenberg 150409 Plan för föreläsningen Användning av reguljära uttryck Formella språk Reguljära språk Reguljära

Läs mer

b) S Ø aa, A Ø aa» bb, B Ø aa» bc, C Ø ac» bc» 2. Låt L vara språket över 8a< som nedanstående NFA accepterar.

b) S Ø aa, A Ø aa» bb, B Ø aa» bc, C Ø ac» bc» 2. Låt L vara språket över 8a< som nedanstående NFA accepterar. Salling, 070-6527523 TID : 9-14 HJÄLPMEDEL : Inga BETYGSGRÄNSER : G 18p, VG 28p SKRIV TYDLIGT OCH MOTIVERA NOGA! PROV I MATEMATIK AUTOMATEORI & FORMELLA SPRÅK DV1, 4 p 20 MARS 2002 1. Språket L över alfabetet

Läs mer

Grammatisk teori II Attributvärdesgrammatik

Grammatisk teori II Attributvärdesgrammatik Grammatisk teori II Attributvärdesgrammatik 1. Lexikon and syntaktiska regler Inom lingvistisk teori delas den mentala representationen av språket upp i två centrala komponenter: lexikon och syntaktiska

Läs mer

KODNING AV MAXIMALA GRAMMATISKA ENHETER Manual

KODNING AV MAXIMALA GRAMMATISKA ENHETER Manual KODNING AV MAXIMALA GRAMMATISKA ENHETER Manual Jens Allwood Maria Björnberg Alexandra Weilenmann Version 1, januari 1999 1. Principer för kodning av maximala grammatiska enheter När man kodar maximala

Läs mer

10. Mängder och språk

10. Mängder och språk Objektorienterad modellering och diskreta strukturer 10. Mängder och språk Sven Gestegård Robertz Institutionen för datavetenskap, LTH 2013 Rekaputilation Vi har talat om satslogik, predikatlogik och härledning

Läs mer

FL 5: Aritmetik. Teori

FL 5: Aritmetik. Teori FL 5: Aritmetik Teori Introducerar Prologs inbyggda operationer för aritmetik Tillämpar dessa på enkla listhanteringsproblem, mha ackumulatorer Ser på svansrekursiva predikat och förklarar varför de är

Läs mer

Föreläsning 7: Syntaxanalys

Föreläsning 7: Syntaxanalys DD2458, Problemlösning och programmering under press Föreläsning 7: Syntaxanalys Datum: 2009-10-27 Skribent(er): Carl-Fredrik Sundlöf, Henrik Sandström, Jonas Lindmark Föreläsare: Fredrik Niemelä 1 Syntaxanalys

Läs mer

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15 TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd

Läs mer

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det? Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap Parsning TDP007 Konstruktion av datorspråk Föreläsning 6 Peter Dalenius Institutionen för datavetenskap 2017-02-14 2 Analys av källkod Lexikalisk analys Bildar tokensutifrån källkodens text. Syntaktisk

Läs mer

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet Formell logik Kapitel 1 och 2 Robin Stenwall Lunds universitet Kapitel 1: Atomära satser Drömmen om ett perfekt språk fritt från vardagsspråkets mångtydighet och vaghet (jmf Leibniz, Russell, Wittgenstein,

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

Konvertering från sträng. Winstrand Development

Konvertering från sträng. Winstrand Development 1 Winstrand Development Konvertering mellan strängar och datatyper När vi arbetar med de inbyggda datatyperna (int, double etc.) går det lätt att konvertera värdet till en sträng mha metoden.tostring()

Läs mer

Grammatik för språkteknologer

Grammatik för språkteknologer Grammatik för språkteknologer Introduktion http://stp.lingfil.uu.se/~matsd/uv/uv11/gfst/ Mats Dahllöf Institutionen för lingvistik och filologi Oktober 2011 Lärandemål Efter avslutad kurs skall studenten

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik

Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik Först några definitioner: Alfabet = en ändlig mängd av tecken. Ex. {0, 1}, {a,b}, {a, b,..., ö} Betecknas ofta med symbolen Σ Sträng =

Läs mer

Deklarativ programmering

Deklarativ programmering Deklarativ programmering TDP007 Konstruktion av datorspråk Föreläsning 7 Peter Dalenius Institutionen för datavetenskap 2014-03-03 Deklarativ programmering Program skrivet i ett deklarativt språk logikspråk,

Läs mer

Grundläggande syntaktiska funktioner och roller

Grundläggande syntaktiska funktioner och roller UPPSALA UNIVERSITET Inst. för lingvistik Niklas Edenmyr Grammatik, 5p. SYNTAKTISKA FUNKTIONER/SATSDELAR Grundläggande syntaktiska funktioner och roller o Exemplen nedan kan få illustrera två grundläggande

Läs mer

12. Relationer och funktioner

12. Relationer och funktioner Objektorienterad modellering och diskreta strukturer 12. Relationer och funktioner Sven Gestegård Robertz Datavetenskap, LTH 2014 Laboration 4 Syntaxanalys Grammatik för (vår delmängd av) satslogiska uttryck

Läs mer

Korpuslingvistik vt 2007

Korpuslingvistik vt 2007 Korpuslingvistik vt 2007 Metoder för annotering II och utvärdering Beata B. Megyesi bea@stp.lingfil.uu.se 1 Annotation: Morfo-syntaktisk analys teckenkodning meningssegmentering tokenisering morfologisk

Läs mer

Introduktion till programmering SMD180. Föreläsning 8: Listor

Introduktion till programmering SMD180. Föreläsning 8: Listor Introduktion till programmering Föreläsning 8: Listor 1 1 Listor = generaliserade strängar Strängar = sekvenser av tecken Listor = sekvenser av vad som helst Exempel: [10, 20, 30, 40] # en lista av heltal

Läs mer

Koreanska (SOV) kiho-ka saca-l l cha-ass-ta Keeho-NOM lejon-ack sparka-pret-ind Keeho sparkade lejonet/ett lejon.

Koreanska (SOV) kiho-ka saca-l l cha-ass-ta Keeho-NOM lejon-ack sparka-pret-ind Keeho sparkade lejonet/ett lejon. UL UNIVERITET Inst. för lingvistik Niklas Edenmyr Grammatik, 5p. VT2003 RÅKTYOLOGI Vad är (språk)typologi? o Inom typologin är man intresserad av att jämföra den språkliga (strukturella) variationen hos

Läs mer

Kompilatorer och interpretatorer

Kompilatorer och interpretatorer 1 of 6 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@oru.se) Tentamen i Kompilatorer och interpretatorer för Dataingenjörsprogrammet m fl lördag 7 november

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3 Föreläsning 2 Semantik 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 27 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 2.1 Innehåll Innehåll 1 Lite mer syntax 1 2 Strukturer

Läs mer

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet Žƒ ƒ Ž Ž ˆ ƒ ƒ ƒ Žƒ ƒ Ž ˆ Œ ŽŽ ƒ Backcode Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet Innehållsförteckning 12-05-29 Inledning... 3 Användarhandledningen... 4 Klasser... 4 Metoder...

Läs mer

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Vad är syntax? Olika språksyn

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Vad är syntax? Olika språksyn Syntax Språkteknologi DH2418 Ola Knutsson knutsson@csc.kth.se Innehåll Grundläggande begrepp Två perspektiv på syntax Frasstrukturgrammatiker Olika frastyper och regler för dessa Dependensgrammatik Olika

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program

Läs mer

Övning 5 - Tillämpad datalogi 2013

Övning 5 - Tillämpad datalogi 2013 /afs/nada.kth.se/home/w/u1yxbcfw/teaching/13dd1320/exercise5/exercise5.py October 1, 2013 1 0 # coding : latin Övning 5 - Tillämpad datalogi 2013 Automater, reguljära uttryck, syntax Sammanfattning Idag

Läs mer

TDDI16: Datastrukturer och algoritmer

TDDI16: Datastrukturer och algoritmer TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några

Läs mer

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010 Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2010 Tentamen TDDB53 TENTAMEN TDDB53 (provkod TEN2) den 7 april 2010 kl 8 12 Jour: Emil Nielsen, tel 070 499 89 88 Hjälpmedel:

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Olika språksyn. Vad är syntax?

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Olika språksyn. Vad är syntax? Syntax Språkteknologi DH2418 Ola Knutsson knutsson@csc.kth.se Grundläggande begrepp Två perspektiv på syntax Frasstrukturgrammatiker Innehåll Olika frastyper och regler för dessa Dependensgrammatik Olika

Läs mer

DAB760: Språk och logik

DAB760: Språk och logik DAB76: Språk och logik /4: Finita automater och -7 reguljära uttryck Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Deklarativ programmering

Deklarativ programmering Kursens mål Deklarativ programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2008-02-26 redogöra för och använda reguljära uttryck använda XML för att definera

Läs mer

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin DD36 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning Per Austrin 26--3 Kursavsnittet syntax/formella språk Teori om formella språk verktygslåda för strängmatchning: Ändliga automater och

Läs mer

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Lambdas (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Funktioner En funktion (i programmeringstermer) är en operation som tar ett eller flera argument,

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

MÖNSTER OCH TALFÖLJDER

MÖNSTER OCH TALFÖLJDER MÖNSTER OCH TALFÖLJDER FÖRELÄSNINGENS INNEHÅLL OCH SYFTE Genomgång av viktiga matematiska begrepp, uttryck och symboler med anknytning till mönster och talföljder. Skälet till att välja detta innehåll

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Matematik för språkteknologer

Matematik för språkteknologer 1 / 27 Matematik för språkteknologer 2.3 (Relationer och funktioner) Mats Dahllöf Institutionen för lingvistik och filologi Februari 2014 2 / 27 Dagens nya punkter Relationer Definitioner Egenskaper hos

Läs mer

Ord, lexem, ordformer (repetition) Ord och morfem (repetition) Fraser/konstituenter (repetition) Grammatisk analys i språkteknologin

Ord, lexem, ordformer (repetition) Ord och morfem (repetition) Fraser/konstituenter (repetition) Grammatisk analys i språkteknologin Datorlingvistisk grammatik OH-serie 1: introduktion http://stp.lingfil.uu.se/~matsd/uv/uv09/dlg/ LEKTION 1: innehåll Kursformalia Grammatik formell grammatik. Metod och data (lite). Språkteknologisk relevans.

Läs mer

Lingvistik IV Konstituenter och frasstruktur

Lingvistik IV Konstituenter och frasstruktur Lingvistik IV Konstituenter och frasstruktur Dagens föreläsning kommer att ta upp: Konstituenter (Fraser och satser) Fraser Frasstrukturer 1. Konstituenter När vi tittar på hur en mening är uppbyggd kan

Läs mer

Inlämningsuppgift: Pronomenidentifierare

Inlämningsuppgift: Pronomenidentifierare 1 (7) Inlämningsuppgift: Pronomenidentifierare 2D1418 Språkteknologi landes@bredband.net johnne@kth.se 1 2 (7) 1 Uppgiften... 3 2 Algoritmen i korthet... 3 3 Representation av data... 3 4 Indikatorer...

Läs mer

Grammatik för språkteknologer

Grammatik för språkteknologer Grammatik för språkteknologer Fraser http://stp.lingfil.uu.se/~matsd/uv/uv12/gfs/ Språkteknologiska grammatikkomponenter Tokenisering urskilja graford. Ordklasstaggning och annan taggning tilldela dem

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP MÄLARDALENS HÖGSKOLA CD5560 Formella språk, automater och beräkningsteori Användarmanual för simulatorn JFLAP Innehållsförteckning Att komma igång med JFLAP... 3 Att köra en sträng... 5 Att köra flera

Läs mer

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo Programmering och algoritmiskt tänkande Tema 3, föreläsning 1 Jody Foo Tema 3: Översikt Objektorienterad programmering: fortsättning Tema 1 och 2: Exempel på att använda och skapa algoritmer Tema 3: strukturera

Läs mer

Kompilatorer och interpretatorer

Kompilatorer och interpretatorer 1 of 8 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Kompilatorer och interpretatorer för Dataingenjörsprogrammet m fl

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Grim. Några förslag på hur du kan använda Grim. Version 0.8

Grim. Några förslag på hur du kan använda Grim. Version 0.8 Grim Några förslag på hur du kan använda Grim Ingrid Skeppstedt Nationellt centrum för sfi och svenska som andraspråk Lärarhögskolan Stockholm Ola Knutsson IPlab Skolan för datavetenskap och kommunikation,

Läs mer

i=1 c i = B och c i = a i eller c i = b i för 1 i n. Beskriv och analysera en algoritm som löser detta problem med hjälp av dynamisk programmering.

i=1 c i = B och c i = a i eller c i = b i för 1 i n. Beskriv och analysera en algoritm som löser detta problem med hjälp av dynamisk programmering. Algoritmer och Komplexitet ht 8 Övning 3+4 Giriga algoritmer och Dynamisk programmering Längsta gemensamma delsträng Strängarna ALGORITM och PLÅGORIS har den gemensamma delsträngen GORI Denlängsta gemensamma

Läs mer

PROMETHEUS. Ett typat, objektorienterat programmeringsspråk av Tim Andersson.

PROMETHEUS. Ett typat, objektorienterat programmeringsspråk av Tim Andersson. PROMETHEUS Ett typat, objektorienterat programmeringsspråk av Tim Andersson. Linköpings universitet TDP019 Projekt: Datorspråk Examinator: Anders Haraldsson, IDA Tim Andersson timan976@student.liu.se Utskriftsdatum:

Läs mer

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar

Läs mer

729G04 Programmering och diskret matematik. Python 3: Loopar

729G04 Programmering och diskret matematik. Python 3: Loopar 729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel

Läs mer

7, Diskreta strukturer

7, Diskreta strukturer Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2015 Modeller Matematiska modeller Kontinuerliga modeller Kontinuerliga funktioner

Läs mer

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >

Läs mer

Syntax S NP VP. AdjP. sleep. ideas. DH2418 Språkteknologi Johan Boye. Syntax

Syntax S NP VP. AdjP. sleep. ideas. DH2418 Språkteknologi Johan Boye. Syntax Syntax S NP VP AdjP NP JJ AdjP JJ NP N V sleep AdvP Adv Colorless green ideas furiously DH2418 Språkteknologi Johan Boye Syntax Frågor vi vill besvara: Vilka sekvenser av ord tillhör språket? Vilka relationer

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

Datorlingvistisk grammatik

Datorlingvistisk grammatik Datorlingvistisk grammatik Svenskans satser m.m. http://stp.lingfil.uu.se/~matsd/uv/uv11/dg/ Mats Dahllöf Institutionen för lingvistik och filologi Januari 2011 Satser Satserna utgör den mest mångfacetterade

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

Språkets struktur och funktion, 7,5 hp

Språkets struktur och funktion, 7,5 hp Språkets struktur och funktion, 7,5 hp Ellen Breitholtz, ellen@ling.gu.se, Cajsa Ottesjö, cajsao@ling.gu.se ht 2010 Schema, planering Torsdag 4/11: Introduktion, historisk översikt Att läsa: Handout Tisdag

Läs mer

Sista delen av kursen

Sista delen av kursen Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning

Läs mer

Föreläsning [ ] i programmeringsparadigm. Om multiparadigm-språket OZ och en tjock bok.

Föreläsning [ ] i programmeringsparadigm. Om multiparadigm-språket OZ och en tjock bok. Föreläsning [14.. 15] i programmeringsparadigm. Jag har ju delat ut Lite grann om syntax, semantik och syntaxanalys. Några ex finns på Nadas kursexpedidition. Labben "Danska räkneord" ska göras med en

Läs mer

12. Relationer och funktioner

12. Relationer och funktioner Objektorienterad modellering och diskreta strukturer 12. Relationer och funktioner Sven Gestegård Robertz Institutionen för datavetenskap, LTH 2013 Laboration 4 Syntaxanalys Grammatik för (vår delmängd

Läs mer

Om semantisk följd och bevis

Om semantisk följd och bevis Matematik, KTH Bengt Ek december 2017 Material till kursen SF1679, Diskret matematik: Om semantisk följd och bevis Logik handlar bla om studiet av korrekta slutledningar, dvs frågan om när det är riktigt

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

Föreläsning 5 5DV086 - Programspråk

Föreläsning 5 5DV086 - Programspråk Föreläsning 5 5DV086 - Programspråk Petter Ericson (pettter@cs.umu.se) Umeå University 6 februari, 2015 Haskell-frågor? Haskell-tips do-syntax State-monaden Dagens plan Programspråksteori Varför? Vad?

Läs mer