INF2820 Datalingvistikk V2012. Jan Tore Lønning
|
|
- Kamilla Magnussen
- 7 år siden
- Visninger:
Transkript
1 INF2820 Datalingvistikk V2012 Jan Tore Lønning
2 LITT PYTHON 2
3 Hvorfor Pyhton NLTK Natural Language Tool Kit: Omgivelser for å eksperimentere med datalingvistikk Diverse datalingvistiske algoritmer Inkluderte språkdata, korpora Vekt på læring Python var først scripting language: Styre andre programmer, inkludert NLTK rutiner Gode redskaper for behandling av tekst string, list Intuitiv og lesbar syntaks som en pseudokode Read-eval-print -løkke for rask utvikling 3
4 Python syntaks def f(i): for j in [2,3,4]: i=j+i print i def g(i): for j in [2,3,4]: i=j+i print i Tilordning: a = 5 Python bruker indent som blokkavgrenser: Andre språk: begin-end, ( ) Hva tror du blir resultatet av kallene f(8) g(8) 4
5 Python datatyper integer float string: Hello world lister: [3, 4, 5] [ Hello, world ] [3, 4, c] Aksesseres med indekser mutable >>> a = "Hello world" >>> a 'Hello world' >>> len(a) 11 >>> a[0] 'H' >>> a[-1] 'd' >>> b = a[3:7] >>> b 'lo w' >>> type(b) <type 'str'> >>>c = 10 >>>e = [3,4,c,c+c,5*c] >>>e [3,4,10,20,50] >>>e[3] = 19 >>>e [3,4,10,19,50] >>>f = e[1:] >>>f [4,10,19,50] >>>e[3]=f >>>e [3,4,10,[4,10,19,50],50] >>>f[2]=0 >>>e? 5
6 Python er objektorientert Alt er objekter Har sine metoder Eksempler med strenger: Hello world,.split() world,.strip(, ) 6
7 DFA i Python if state in fa.finals: return True: else: return False def recognize(fa, streng): state = fa.start samme som while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Jurafsky & Martin, fig Enkel Python 7
8 DFA i Python - datastruktur class DFA: def init (self): self.edge = {} self.finals = [] f = DFA() Denne strukturen for visning på skjerm f.start Bedre = 0 praksis (mer tekst): f.finals.append(4) Rutiner i klassen som leser inn data og f.edge[(0,'b')] konstruerer = objektet 1 Legg funksjonen som metode i klassen f.edge[(1,'a')] = 2 f.edge[(2,'a')] = 3 f.edge[(3,'a')] = 3 f.edge[(3,'!')] = 4 Datastruktur def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Enkel Python 8
9 Rekursjon iterasjon def recognize3(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng)==0: return state in fa.finals elif (state, streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] return rec(fa, state, streng[1:], trace) def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Rekursiv Iterativ 9
10 PROSESSERING MED NFA 10
11 Søkerom 11
12 Breddeførst søk JFLAP Parallellsøk er noe tilsvarende 12
13 Dybdeførst søk m/ Backtracking Jurafsky og Martin 13
14 Husk: rekursiv DFA def recognize3(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng)==0: return state in fa.finals elif (state, streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] return rec(fa, state, streng[1:], trace) def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] Rekursiv Iterativ 14
15 NFA i Python - Backtracking def recognize3(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def recognize4(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng)==0: return state in fa.finals elif (state, streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] return rec(fa, state, streng[1:], trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng) == 0: return state in fa.finals else: states = [e[2] for e in fa.edges if state == e[0] and streng[0] == e[1] ] for state in states: if rec(fa,state, streng[1:], trace): return True return False DFA NFA uten ε-transisjoner 15
16 NFA i Python - Datastruktur class NFA: def init (self): self.edges = [] self.finals = [] f = NFA( ) f.start = 0 f.finals.append(4) f.edges= [ (0,'b',1), (1,'a',2), (2,'a',3), (3,'a',3), (3,'!',4) ] g=nfafromfile('template.nfa') def recognize4(fa, streng, trace=0): state = fa.start return rec(fa, state, streng, trace) def rec(fa, state, streng, trace): if trace > 0: print streng, state if len(streng) == 0: return state in fa.finals else: states = [e[2] for e in fa.edges if state == e[0] and streng[0] == e[1] ] for state in states: if rec(fa,state, streng[1:], trace): return True return False NFA uten ε-transisjoner 16
17 Python: list comprehension edges = [e for e in fa.edges if state == e[0] and streng[0] == e[1] ] { e fa. edges e[0] = state e[1] streng[0] } E = = edges = [] for e in fa.edges: if state == e[0] and streng[0] ==e[1]: edges.append(e) 17
18 Python: list comprehension states = [e[2] for e in fa.edges if state == e[0] and streng[0] == e[1] ] states = [e[2] for e in fa.edges if state==e[0] and streng[0]==e[1] ] states = [] for e in fa.edges: if state==e[0] and streng[0]==e[1]: states.append(e[2]) S { e[2] e E} = { e[ 2] e { e fa. edges e[0] = state e[1] streng[0] } S = = 18
19 Jurafsky og Martins algoritme Strengt tatt: nøytral mht. Dybde-først vs bredde-først Bruker løkke+agenda i stedet for rekursjon 19
20 Egenskaper ved algoritmene Både dybde-først m/backtracking breddeførst vil i verste fall ha eksponentielt tidsforbruk proporsjonalt med k n, der n= w, lengden av input k 2 er maks antall kanter fra en node merket med samme symbol Med epsilontransisjoner Kan risikere ikke terminerer! Men vi vet jo at hvis vi først lager DFA får vi linjært tidsforbruk! 20
21 En raskere algoritme En konfigurasjon består av: En mengde tilstander Resten av strengen Start: Q0 = E({q0}) (E er epsillontillukning) Oppdatering Gitt konfigurasjon: w_n = s w Qn={q1,, qk} La ny konfigurasjon være w_n+1 = w Qn+1=E(δN(q1,s) δn(q2,s) δn(qk,s)) Akseptering Konfigurasjonen w_n = ε Qn={q1,, qk} Aksepterer hvis minst en av q1,, qk er en sluttilstand. 21
22 NFA-anerkjenning i Python (uten ε) def recognize(fa, streng): state = fa.start while True: if len(streng)==0: return state in fa.finals elif (state,streng[0]) not in \ fa.edge.keys(): return False else: state = fa.edge[(state,streng[0])] streng = streng[1:] def recognize5(self, streng, trace=0): states = [self.start] while True: if trace > 0: print streng, list(states) if len(streng)==0: successtates = [s for s in states if s in self.finals] return len(successtates)> 0 elif len(states) == 0: return False else: states = set([e[2] for e in self.edges if e[0] in states and streng[0] == e[1] ]) streng = streng[1:] Deterministisk Ikke-deterministisk 22
23 Egenskaper Svarer til underveis å bygge de delene vi trenger av DFA-ene som svarer til denne NFA-en. Algoritmen er linjær i w =n. Men kvadratisk i antall tilstander: m O(n m**2) Terminerer 23
24 Implementasjonon av NFA-er Oppsummering: 1. DFA-algoritmen: Konstruer en ekvivalent DFA (Minimaliser denne) Bruk DFA-en 2. NFA-algoritmen: Som simulerer DFA underveis For 1: Teoretisk raskere Mot 1: DFA-en kan få 2 n tilstander der n er tilstander i NFA-en: Tar mye plass Kan i praksis ta lengre tid å slå opp i DFA-en Hvilken algoritme som er best: Er et empirisk spørsmål Avhenger av oppgaven 24
25 REGULÆRE UTTRYKK I PRAKSIS 25
26 Regulære uttrykk to tilnærminger Teoretisk Sett på så langt Oprinnelig (1950-tallet) J&M seksj 2.3 Tilstreber: Minst mulig notasjon for å definere klassen Formelt meget veldefinert Praktisk RegEx Unix (grep/egrep), Perl, Emacs, Tilstreber effektiv i bruk Spesialsymboler, div. forkortelser. MEN: kan inneholde muligheter som går ut over de regulære språkene! 26
27 Forskjeller til teoretiske RE Vi beskriver ikke et språk men søker etter substrenger av et språk Ankere ^ begynnelsen av linjen $ slutten av linjen Går ut over rene RE Muligheten til å referere tilbake til hele grupper: Går utover regulære språk Kan ikke uten videre bruke DFA som algoritme 27
28 Implementasjon av regex 3. Backtracking: En prøver å matche regex direkte mot (et segment av) strengen Leser regex fra venstre mot høyre (tilpasset for * + ) Ser om en kan utvide strengsegmentet til å matche neste symbol i regex Hvis ikke: backtrack gå tilbake på tidligere valg SØK: finn et delsegment av strengen som matcher OBS: Regex går også utover kontekstfrie språk 28
29 Implementasjon av regex Hvis ekte regulært uttrykk: Gjør om til NFA Bruk algoritme 1 eller 2 Hvis regex går utover regulære uttrykk er det vanlige Bruk algoritme av type 3 29
30 Ta med hjem: Gitt en NFA: N som beskriver et språk L=L(N) Da finnes det en DFA: D som beskriver samme språk, L=L(D) Skal vi implementere N, kan vi enten konstruere D (forrige gang) Eller prosessere direkte med N (som om det var D) Uansett er prosedyren Ikke flertydig Deterministisk Tidsforbruket er linjært i input 30
1/26/2012 LITT PYTHON. INF2820 Datalingvistikk V2012. Hvorfor Pyhton. Python syntaks. Python er objektorientert. Python datatyper.
INF2820 Datalingvistikk V2012 Jan Tore Lønning LITT PYTHON 2 Hvorfor Pyhton Python syntaks NLTK Natural Language Tool Kit: Omgivelser for å eksperimentere med datalingvistikk Diverse datalingvistiske algoritmer
DetaljerINF2820 Datalingvistikk V forelesning, 30.1 Jan Tore Lønning
INF2820 Datalingvistikk V2014 3. forelesning, 30.1 Jan Tore Lønning Idag Noen ord om Python Implementasjon av DFA J&Ms algoritme Oversatt til Python Rekursiv vs. Iterativ implementasjon Naiv NFA-algoritme
DetaljerINF2820 Datalingvistikk V2016. Jan Tore Lønning
INF2820 Datalingvistikk V2016 Jan Tore Lønning I dag Automater og regulære uttrykk Litt Python Implementasjon av DFA i Python Naiv NFA-algoritme Smart NFA-algoritme Pythonimplementasjon av smart NFA 1.
DetaljerINF2820 Datalingvistikk V2015. Jan Tore Lønning
INF2820 Datalingvistikk V2015 Jan Tore Lønning Idag Automater og regulære uttrykk Litt Python Implementasjon av DFA i Python Naiv NFA-algoritme Smart NFA-algoritme Pythonimplementasjon 30. januar 2015
DetaljerINF2820 Datalingvistikk V2017 Forelesning 3, 30.1 Jan Tore Lønning
INF2820 Datalingvistikk V2017 Forelesning 3, 30.1 Jan Tore Lønning I dag Regulære språk og endelige tilstandsmaskiner oppsummering Reg.ex. i praksis, særlig i Python Litt Python Algoritme for DFA med Python-implementasjon
DetaljerINF2820 Datalingvistikk V2018 Forelesning 3, 29. jan. Jan Tore Lønning
INF2820 Datalingvistikk V2018 Forelesning 3, 29. jan. Jan Tore Lønning Hva her vi lært? A. Deterministiske endelige tilstandsmaskiner (DFA) og hvordan de kan definer et (formelt) språk. B. Ikke-deterministiske
DetaljerINF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen
INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 31. januar 2011 2 SAMMENHENGER FSA OG REGULÆRE UTTRYKK 31. januar
Detaljer1/31/2011 SAMMENHENGER FSA OG REGULÆRE UTTRYKK. Regulære språk. Fra FSA til RE. Fra regulært uttrykk til NFA REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2
INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 31. januar 2011 2 Regulære språk Følgende er ekvivalente: a) L kan
DetaljerINF2820 Datalingvistikk V2014. Forelesning 4, 6.2 Jan Tore Lønning
INF2820 Datalingvistikk V2014 Forelesning 4, 6.2 Jan Tore Lønning I dag Oppsummering av endelige tilstandsteknikker Regulære uttrykk: teoretiske og praktiske Begrensninger ved regulære språk Noen egenskaper
DetaljerINF2820 Datalingvistikk V2015. Forelesning 4, 9.2 Jan Tore Lønning
INF2820 Datalingvistikk V2015 Forelesning 4, 9.2 Jan Tore Lønning I dag Oppsummering av endelige tilstandsteknikker Begrensninger ved regulære språk Regulære uttrykk: teoretiske og praktiske Noen egenskaper
DetaljerINF2820 Datalingvistikk V2015. Jan Tore Lønning
INF2820 Datalingvistikk V2015 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 26. januar 2015 2 ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 26. januar 2015
DetaljerINF2820 Datalingvistikk V2016. Jan Tore Lønning
INF2820 Datalingvistikk V2016 Jan Tore Lønning ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 25. januar 2016 2 Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En innretning som
DetaljerINF2820 Datalingvistikk V2016. Jan Tore Lønning
INF2820 Datalingvistikk V2016 Jan Tore Lønning ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 3. februar 2016 2 Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En innretning som
DetaljerINF2820 Datalingvistikk V2012. Jan Tore Lønning
INF2820 Datalingvistikk V2012 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 20. januar 2012 2 Non-Determinism Speech and Language Processing - Jurafsky and Martin
DetaljerINF2820 Datalingvistikk V2015. Jan Tore Lønning
INF2820 Datalingvistikk V2015 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 22. januar 2015 2 ENDELIGE AUTOMATER «FINITE STATE AUTOMATA» (FSA) 23. januar 2015
DetaljerINF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning
INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning ENDELIGE TILSTANDSMASKINER OG REGULÆRE SPRÅK, DEL 2 19. januar 2017 2 Sist uke: FSA Brukes om hverandre: Finite state automaton - FSA
DetaljerINF2820 Datalingvistikk V2014. Jan Tore Lønning
INF2820 Datalingvistikk V2014 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2 22. januar 2014 2 DFA deterministisk endelig maskin Q = {q0, q1, q2,, qn-1} Strengt
DetaljerINF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning
INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning ENDELIGE TILSTANDSMASKINER OG REGULÆRE SPRÅK 19. januar 2017 2 Fysisk modell En tape delt opp i ruter. I hver rute står det et symbol. En
DetaljerINF2820 Datalingvistikk V Gang Jan Tore Lønning
INF2820 Datalingvistikk V2015 6. Gang - 23.2 Jan Tore Lønning PARSING DEL 1 2 I dag Høyre- og venstreavledninger Recursive-descent parser (top-down) Begynne Shift-reduce parser (bottom-up) 25. februar
DetaljerINF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning
INF2820 Datalingvistikk V2017 9. Gang 13.3 Jan Tore Lønning I dag chart-parsing Fortsatt fra sist: Chart-parsing: hovedideer BU chart-parsing: algoritmen NLTKs ChartParser Enkel Python-implementasjon av
DetaljerINF2820 Datalingvistikk V2012. Jan Tore Lønning
INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 23. februar 2012 2 I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Parsing: ovenifra og ned
DetaljerINF2820 Datalingvistikk V2012
INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 24. februar 2012 2 1 I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Parsing: ovenifra og ned
DetaljerINF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning
INF2820 Datalingvistikk V2016 8. Gang 9.3 Jan Tore Lønning CHART-PARSING 2 I dag Bakgrunn Svakheter med andre parsere CKY og Chart Chart-parsing: hovedideer BU chart-parsing algoritmen Algoritmen uttrykt
DetaljerINF2820 Datalingvistikk V gang, Jan Tore Lønning
INF2820 Datalingvistikk V2014 8. gang, 6.3.2014 Jan Tore Lønning I dag Chart parsing Implementasjon CKY og Chart: Parsing vs anerkjenning 2 Chart alternativ datastruktur (S, [0, 1]) (VP, [0,1]) (Det, [1,2])
DetaljerINF2820 Datalingvistikk V Gang 19.3 del 1 Jan Tore Lønning
INF2820 Datalingvistikk V2018 10. Gang 19.3 del 1 Jan Tore Lønning I dag: to deler A. Active chart-parsing Fortsatt fra sist B. Tekstklassifisering 2 CHART-PARSING 3 I dag chart-parsing Chart-parsing:
DetaljerINF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen
INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK 26. januar 2011 2 Naturlige språk En mann kjøpte en bil av en mann som hadde
DetaljerINF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning
INF2820 Datalingvistikk V2015 14. Gang 4.5 Jan Tore Lønning CHART PARSING 2 I dag Svakheter ved tidligere parsere RD og SR: ineffektivitet CKY: CNF Chart parsing,,dotted items og fundamentalregelen Algoritmer:
Detaljer2/24/2012. Context-Free Grammars. I dag. Avledning. Eksempel: grammar1 PARSING. Jan Tore Lønning
INF2820 Datalingvistikk V2012 Jan Tore Lønning KONTEKSTFRIE GRAMMATIKKER OG PARSING 24. februar 2012 2 Context-Free Grammars Det mest sentrale verktøyet i datalingvistikk 24. februar 2012 3 2/24/2012 Speech
DetaljerFølger Sipsers bok tett både i stoff og oppgaver.
1 - hrj 1 Følger Sipsers bok tett både i stoff og oppgaver. Tirsdag forelesninger, nytt stoff Onsdag eksempler og utfyllende stoff Torsdag oppgaver fra uka før Start: kapittel 1 (2uker), 2 (2uker),3 (2uker),4
Detaljer3/5/2012. Chart alternativ datastruktur. Fundamentalregelen. Chart-parsing. Bottom-up FORMELL SPRÅKTEORI. Jan Tore Lønning
INF2820 Datalingvistikk V2012 Jan Tore Lønning CHART-PARSING FORMELL SPRÅKTEORI 5. mars 2012 2 Chart alternativ datastruktur NP Det Nom Fundamentalregelen NP Det Nom Nom Nom PP Nom Nom PP NP PP P NP Det
DetaljerINF2820 Datalingvistikk V gang, Jan Tore Lønning
INF2820 Datalingvistikk V2014 15. gang, 8.5.2014 Jan Tore Lønning Språk og grammatikk Språk (formelt): En endelig mengde A Ø En undermengde L A* Grammatikk: En endelig innretning som definerer L Klasser
DetaljerINF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning
INF2820 Datalingvistikk V2018 7. Gang 26.2 Jan Tore Lønning I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce
DetaljerInformasjon Eksamen i IN1000 høsten 2017
Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om
DetaljerINF2820 Datalingvistikk V2012. Jan Tore Lønning
INF2820 Datalingvistikk V2012 Jan Tore Lønning CHART-PARSING FORMELL SPRÅKTEORI 5. mars 2012 2 Chart alternativ datastruktur NP Det Nom Nom Nom PP NP PP P NP Det Nom, N P NP, PN 0 book 1 the 2 flight 3
DetaljerINF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning
INF2820 Datalingvistikk V2015 7. Gang 2.3 Jan Tore Lønning PARSING DEL 2 2 I dag Recursive-descent parser, kort repetisjon Shift-reduce parser (bottom-up) Algoritme for anerkjenning Eksempelimplementasjon
DetaljerINF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning
INF2820 Datalingvistikk V2016 8. Gang 9.3 Jan Tore Lønning CHART-PARSING 2 I dag Bakgrunn Svakheter med andre parsere CKY og Chart Chart-parsing: hovedideer BU chart-parsingalgoritmen Algoritmen uttrykt
DetaljerDagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk
Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk Regulære uttrykk og automataer Ulike typer språk Ulike representasjoner av regulære språk Endelige tilstandsmaskiner (FSM-er) Deterministiske
DetaljerINF2820 Datalingvistikk V2016. Jan Tore Lønning
INF2820 Datalingvistikk V2016 Jan Tore Lønning INF2820 Datalingvistikk 20. januar 2016 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Regulære språk OBS: Lov å
DetaljerSkanning del I INF /01/15 1
Skanning del I INF 5110-2015 21/01/15 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: Programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.
DetaljerINF 2820 V2018: Innleveringsoppgave 1
INF 2820 V2018: Innleveringsoppgave 1 Besvarelsene skal leveres i devilry innen fredag 9.2 kl 18.00 Det blir 5 sett med innleveringsoppgaver. Hvert sett gir inntil 100 poeng. Til sammen kan en få inntil
DetaljerMagnus Moan (Undertegnede) Enkle datastrukturer, trær, traversering og rekursjon
1 Enkle datastrukturer, trær, traversering og rekursjon Magnus Moan (Undertegnede) algdat@idi.ntnu.no Enkle datastrukturer, trær, traversering og rekursjon 2 Dagens plan Praktisk Enkle datastrukturer Stack
DetaljerDagens tema: Regulære språk og uttrykk
IN 2 Programmeringsspråk Dagens tema: Regulære språk og uttrykk Ulike typer språk (Kompendium 47: 23) Hvorfor er regulære uttrykk så interessante? Ulike representasjoner av regulære språk (Kompendium 47:
DetaljerAlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1
AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1 Ole Kristian Pedersen, Høst 2016 Agenda Introduksjon til Python for begynnere Intro til øving 1 Litt om lenkede lister Øvingssystemet
DetaljerINF2820 Datalingvistikk V Gang Jan Tore Lønning
INF2820 Datalingvistikk V2016 6. Gang - 24.2 Jan Tore Lønning PARSING DEL 1 2 I dag Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) Pythonimplementasjon:
DetaljerHva er syntaks? En overskrift i en norsk avis: Dagens tema Grundig repetisjon og utdyping:
Hva er syntaks? En overskrift i en norsk avis: Fanger krabber så lenge de orker Dagens tema Grundig repetisjon og utdyping: Er det i C lov å skrive for (;;) { while () { Syntaks kontra semantikk for å
DetaljerInformasjon Prøveeksamen i IN1000 høsten 2018
Prøveeksamen IN1000-INF1001-H18 Informasjon Prøveeksamen i IN1000 høsten 2018 Tid Fra tirsdag 6.11 kl. 14:15 til tirsdag 13.11 kl. 12:00 (Normal eksamenstid er 4 timer) Oppgavene Oppgave 2b og 2c er flervalgsoppgaver.
DetaljerINF 2820 V2016: Obligatorisk innleverinsoppgave 1
INF 2820 V2016: Obligatorisk innleverinsoppgave 1 OBS Korrigert eksemplene oppgave 2, 8.2 Besvarelsene skal leveres i devilry innen torsdag 18.2 kl 18.00 Filene det vises til finner du på /projects/nlp/inf2820/fsa
DetaljerTDT4110 IT Grunnkurs Høst 2015
TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst
DetaljerINF2820 Datalingvistikk V2014. Jan Tore Lønning
INF2820 Datalingvistikk V2014 Jan Tore Lønning INF2820 Datalingvistikk 19. januar 2014 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Endelige tilstandsteknikker
DetaljerSyntax/semantics - I INF 3110/ /29/2005 1
Syntax/semantics - I Program program execution Compiling/interpretation Syntax Classes of langauges Regular langauges Context-free langauges Scanning/Parsing Meta models INF 3/4-25 8/29/25 Program
DetaljerØvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth
Øvingsforelesning 2 - TDT4120 Grafer og hashing Benjamin Bjørnseth Informasjon Studasser algdat@idi.ntnu.no Program Presentasjon av øving 2 Grafer og traverseringsalgoritmer BFS, DFS Hashing Gjennomgang
DetaljerSkanning del I. Kapittel 2 INF 3110/ INF
Skanning del I Kapittel 2 18.01.2013 1 Skanning: innhold (begge forelesningene) Hva gjør en skanner? Input: programteksten. Output: Ett og ett token fra programteksten (sekvensielt). Regulære uttrykk/definisjoner.
DetaljerObjektorientert programmering i Python
Objektorientert programmering i Python IN1000 Høst 2019 uke 8 Siri Moe Jensen Læringsmål uke 8 Repetisjon fra forrige uke Definere en klasse, opprette og arbeide med objekter: How-to
DetaljerINF2820 Datalingvistikk V2015. Jan Tore Lønning
INF2820 Datalingvistikk V2015 Jan Tore Lønning INF2820 Datalingvistikk 21. januar 2015 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Endelige tilstandsteknikker
DetaljerINF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )
INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)
DetaljerINF2820 Datalingvistikk V Gang Jan Tore Lønning
INF2820 Datalingvistikk V2017 6. Gang - 20.2 Jan Tore Lønning I dag Kontekstfrie grammatikker og naturlige språk (fortsatt fra sist) Kontekstfrie grammatikker og regulære språk Grammatikker og trær i NLTK
DetaljerINF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning
INF2820 Datalingvistikk V2017 7. Gang 27.2 Jan Tore Lønning I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce
DetaljerINF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning
INF2820 Datalingvistikk V2016 Forelesning 4, 10.2 Jan Tore Lønning I dag Ord Begrensninger med regulære språk Regulære uttrykk i praksis Utvidete regulære uttrykk Frasestruktur og kontekstfrie grammatikker
DetaljerEtter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner
Etter uke 9 skal du Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 9 Kunne designe og implementere en programstruktur med flere klasser Kunne etablere og manipulere objekter i (sammensatte)
DetaljerAlgoritmer og Datastrukturer IAI 21899
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt
DetaljerINF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen
INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen CHARTPARSING (SEKSJ 13.4) FORMELLE EGENSKAPER VED SPRÅK (KAP. 16) 8. mars 2011 2 I dag Oppsummering fra sist: Dynamisk programmering CKY-algoritmen
DetaljerINF2820 V2017 Oppgavesett 5 Gruppe 21.2
INF2820 V2017 Oppgavesett 5 Gruppe 21.2 Denne uka er det først noen teoretiske oppgaver. Deretter er det en del praktiske arbeidsoppgaver som vil forberede deg til arbeidet med innleveringsoppgavesett
DetaljerKondisjonstest. Algoritmer og datastrukturer. Python-oppgaver - LF. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.
Algoritmer og datastrukturer Kondisjonstest Python-oppgaver - LF Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og
DetaljerINF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen
INF2820 Datalingvistikk V2011 Jan Tore Lønning & Stephan Oepen KONTEKSTFRIE GRAMMATIKKER OG PARSING 22. februar 2011 2 I dag Avledninger og normalformer Parsing: ovenifra og ned (top-down) Parsing: nedenifra
DetaljerINF2820 Datalingvistikk V2017 Forelesning 1.1, 16.1 Jan Tore Lønning
INF2820 Datalingvistikk V2017 Forelesning 1.1, 16.1 Jan Tore Lønning INF2820 Datalingvistikk 16. januar 2017 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time: Regulære
DetaljerLæringsmål uke 7. Introduksjon til objektorientert programmering. Paradigmet objektorientering. Objektreferanser. INF1001 Høst 2016 Uke 7
Læringsmål uke 7 Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 7 Forstå (mer av) hva som skjer bak kulissene når vi oppretter og bruker objekter Kunne manipulere referanser og vite
DetaljerKondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.
Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere
DetaljerØvingsforelesning 1 Python (TDT4110)
Øvingsforelesning 1 Python (TDT4110) Introduksjon, Kalkulasjoner Ole-Magnus Pedersen Oversikt Praktisk Info Repetisjon fra sist Oppgaver for øving 2 2 Praktisk Info Last opp øvinger på Blackboard før godkjenning
DetaljerObjektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål
Innhold uke 9 Mer komplekse strukturer Objektorientert programmering i Python IN1000 Høst 2018 uke 9 Siri Moe Jensen Referanser versus objekter (repetisjon) "Dot-notasjon" Spesielle metoder i egendefinerte
DetaljerINF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen
INF2820 Datalingvistikk V2012 Jan Tore Lønning & Stephan Oepen ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK 17. januar 2012 2 Naturlige språk En mann kjøpte en bil av en mann som hadde
DetaljerKap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).
Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/2-2008 Legger ut en oppgave til kap. 4 (se beskjed). tein Krogdahl Ifi, UiO Merk: Av de foilene som ble delt ut på papir på
DetaljerIN1000 Obligatorisk innlevering 7
IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en
DetaljerTypisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord
Scanning-I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte leksemer (tokens), og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med
DetaljerINF2820 Datalingvistikk V2014. Jan Tore Lønning
INF2820 Datalingvistikk V2014 Jan Tore Lønning ENDELIGE TILSTANDSTEKNIKKER OG REGULÆRE UTTRYKK I DATALINGVISTIKK 19. januar 2014 2 Naturlige språk En mann kjøpte en bil av en mann som hadde eid bilen i
DetaljerOppgave 1. Sekvenser (20%)
Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet
DetaljerTypisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord
Scanning - I Kap. 2 Hovedmål Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all nødvendig
DetaljerLøsnings forslag i java In115, Våren 1996
Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra
DetaljerINF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning
INF2820 Datalingvistikk V2016 7. Gang 2.3 Jan Tore Lønning I dag CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 2. mars 2016 2 Dynamisk programmering I en beregning kan det inngå delberegninger
DetaljerINF2820 Datalingvistikk V Gang Jan Tore Lønning
INF2820 Datalingvistikk V2015 5. Gang - 16.2 Jan Tore Lønning I dag Kontekstfrie grammatikker, avledninger og trær (delvis repetisjon) Kontekstfrie grammatikker og regulære språk Kontekstfrie grammatikker
DetaljerEKSAMEN med løsningsforslag
EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:
DetaljerINF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning
INF2820 Datalingvistikk V2017 8. Gang 6.3 Jan Tore Lønning I dag CKY-algoritmen fortsatt fra sist Python-implementasjon av CKY Chomsky Normal Form (CNF) Chart-parsing BU-algoritme for chart-parsing 3.
DetaljerINF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning
INF2820 Datalingvistikk V2016 7. Gang 2.3 Jan Tore Lønning I dag CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 1. mars 2016 2 Dynamisk programmering I en beregning kan det inngå delberegninger
DetaljerInnhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen
Innhold uke 10 Hva bruker vi klasser til? Objektorientert programmering i Python IN1000 Høst 2018 uke 10 Siri Moe Jensen Noen sentrale datastrukturer for programmering lenkede lister trær grafer Eksempler:
DetaljerINF3110 Programmeringsspråk
INF3 Programmeringsspråk Dagens tema Syntaks (Komp 47, kap 3 (og noe 4)) Repetisjon Regulære språk i klassisk BNF Regulære språk i utvidet BNF Regulære språk i jerbanediagrammer Regulære språk og automater
DetaljerINF 2820 V2015: Obligatorisk innleveringsoppgave 3
INF 2820 V2015: Obligatorisk innleveringsoppgave 3 Besvarelsene skal leveres i devilry innen fredag 17.4 kl 18.00 Filene det vises til finner du i o /projects/nlp/inf2820/cfg Del 1 RD Parsing Oppgave 1:
DetaljerInformasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.
IN1000-INF1001-2018 Informasjon Eksamen i IN1000 og IN1001 høsten 2018 Tid 30. november kl. 14.30 (4 timer) Faglærere vil besøke lokalet ca kl 15-16. Oppgavene Oppgave 1a-f er kortsvarsoppgaver som rettes
DetaljerScanning - I Kap. 2. Hva scanneren gjør
Scanning - I Kap. 2!! Hovedmål! Gå ut fra en beskrivelse av de enkelte tokens, og hvordan de skal deles opp i klasser! Lage et program (funksjon, prosedyre, metode) som leverer ett og ett token, med all
DetaljerINF2820 Datalingvistikk V2018 Forelesning 1 del 1, 15. jan. Jan Tore Lønning
INF2820 Datalingvistikk V2018 Forelesning 1 del 1, 15. jan. Jan Tore Lønning INF2820 Datalingvistikk 14. januar 2018 2 I dag: 1. Time: Datalingvistikk: motivasjon og eksempler Praktisk informasjon 2. Time:
DetaljerINF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning
INF2820 Datalingvistikk V2016 Forelesning 4, 10.2 Jan Tore Lønning I dag Ord Begrensninger med regulære språk Regulære uttrykk i praksis Utvidete regulære uttrykk Frasestruktur og kontekstfrie grammatikker
DetaljerINF 2820 V2018: Innleveringsoppgave 1 - løsningsforslag
INF 2820 V2018: Innleveringsoppgave 1 - løsningsforslag Oppgave 1: Endelige tilstandsmaskiner (20 poeng) Denne oppgaven kan gjøres i JFLAP. Du anbefales likevel å løse den med papir og penn først for å
DetaljerINF2820 Datalingvistikk V Gang Jan Tore Lønning
INF2820 Datalingvistikk V2016 5. Gang - 17.2 Jan Tore Lønning I dag Kontekstfrie grammatikker, avledninger og trær Kontekstfrie grammatikker og regulære språk Kontekstfrie grammatikker for naturlige språk
DetaljerHva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema
va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Henrik H. Løvold Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
Detaljer"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009
Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen
DetaljerMAT1030 Plenumsregning 1
MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte
DetaljerHjemmeeksamen 1 i INF3110/4110
Hjemmeeksamen i INF30/40 Innleveringsfrist: fredag 24. oktober kl. 500 Innlevering Hele besvarelsen skal leveres skriftlig på papir i IFI-ekspedisjonen innen fredag 24. oktober kl. 500. Merk besvarelsen
DetaljerINF1000 Eksamen 2014 (modifisert)
INF1000 Eksamen 2014 (modifisert) Oppgave 1 (4 poeng) a) Hva er verdien til tall etter at følgende kode er utført? tall = (5+3)*2 tall = tall+2 18. b) Anta at følgende programsetninger utføres. Hva skrives
DetaljerINF2820 V2017 Oppgavesett 5 arbeidsoppgaver
INF2820 V2017 Oppgavesett 5 arbeidsoppgaver Dette er oppgaver du kan arbeide med på egen hånd. Du kan også arbeide med dem i gruppa 28.2 (hvis du har innleveringsoppgave 2 under kontroll) og spørre gruppelæreren
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
DetaljerRepetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.
INF3 Programmeringsspråk INF3 Programmeringsspråk Dagens tema Syntaks (Komp 47, kap 3 (og noe 4)) Repetisjon Regulære språk i klassisk NF Regulære språk i utvidet NF Regulære språk i jerbanediagrammer
Detaljer