IN1140: Introduksjon til språkteknologi. Forelesning #4

Like dokumenter
INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF INF1820. Arne Skjærholt. Terza lezione INF1820. Arne Skjærholt. Terza lezione

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF1820: Introduksjon til spra k-og kommunikasjonsteknologi

INF2080 Logikk og beregninger

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2018 Forelesning 3, 29. jan. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

Følger Sipsers bok tett både i stoff og oppgaver.

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

TMA4140 Diskret Matematikk Høst 2016

Turingmaskiner en kortfattet introduksjon. Christian F Heide

INF 2820 V2016: Obligatorisk innleverinsoppgave 1

Skanning del I INF /01/15 1

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF1820: Oppsummering

Skanning del I. Kapittel 2 INF 3110/ INF

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

INF 2820 V2018: Innleveringsoppgave 1

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2017 Forelesning 3, 30.1 Jan Tore Lønning

INF1820 INF Arne Skjærholt INF1820. Arne Skjærholt

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Turingmaskiner en kortfattet introduksjon. Christian F Heide

Dagens tema: Regulære språk og uttrykk

2/6/2012. Begrensninger ved regulære språk. INF2820 Datalingvistikk V2012. Formelle språk som ikke er regulære KONTEKSTFRIE GRAMMATIKKER.

1/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

IN1140: Introduksjon til språkteknologi. Forelesning #2

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.

Hjemmeeksamen 1 i INF3110/4110

INF3110 Programmeringsspråk

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V2015. Forelesning 4, 9.2 Jan Tore Lønning

IN2080. Oppgave 1. Oppgave 2. Eksamen. Vår Den nondeterministiske endelige automaten A er gitt ved (Q, Σ, δ, q 0, F ) der

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Typisk: Kan det være både nøkkelord og navn, så skal det ansees som nøkkelord

Løsningsforslag til obligatorisk oppgave 3 INF1800 Logikk og beregnbarhet, høsten 2009

Hva er syntaks? En overskrift i en norsk avis: Dagens tema Grundig repetisjon og utdyping:

Dagens tema Grundig repetisjon og utdyping: Syntaks kontra semantikk

IN1140: Introduksjon til språkteknologi. Forelesning #12

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

Scanning - I Kap. 2. Hva scanneren gjør

Inf1000 (Uke 10) HashMap og ArrayList

1/26/2012 LITT PYTHON. INF2820 Datalingvistikk V2012. Hvorfor Pyhton. Python syntaks. Python er objektorientert. Python datatyper.

UNIVERSITETET I OSLO

MAT1030 Forelesning 22

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

LF - Eksamen i INF1820

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

MAT1030 Diskret matematikk

Oppgave 1. Spørsmål 1.1 (10%) Gitt det regulære uttrykket: a((bcd)+(cd))*cd

Slides til 12.1 Formelt språk og formell grammatikk

Syntax/semantics - I INF 3110/ /29/2005 1

MAT1030 Forelesning 22

INF2220: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk

Generell rekursjon og induksjon. at(n) + bt(n 1) + ct(n 2) = 0

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning

UNIVERSITETET I OSLO

MAT1030 Diskret Matematikk

UNIVERSITETET I OSLO

MAT1030 Diskret Matematikk

Oppgaver til INF 5110, kapittel 5

MAT1030 Diskret matematikk

INF INF1820. Arne Skjærholt INF1820. Dagens språk: Russisk. dyes yataya l yektsiya. Arne Skjærholt. десятая лекция

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF1800 LOGIKK OG BEREGNBARHET

INF2080 Logikk og beregninger

INF1820: Introduksjon til språk-og kommunikasjonsteknologi

INF2820 Datalingvistikk V2016. Jan Tore Lønning

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. INF1080 Logiske metoder for informatikk

INF2820 Datalingvistikk V2015. Jan Tore Lønning

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

MAT1030 Diskret matematikk

INF2820 Datalingvistikk V2014. Forelesning 4, 6.2 Jan Tore Lønning

MNFIT-272 Kunstig intelligens Forelesning 4.

Oppgaver til INF 5110, kapittel 5 Fullt svar på oppgave 5.4, og en del andre oppgaver med svar

Oppgaver til INF 5110, kapittel 5, med svarforslag Gjennomgått torsdag 26. febr Dette er versjon fra 28/7

. Grammatiske problem med å beskrive ordklassen adverb og setningsleddet adverbial i norsk. Sverre Stausland Johnsen Universitetet i Oslo

INF 2820 V2018: Innleveringsoppgave 1 - løsningsforslag

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Obligatorisk oppgavesett 1 MAT1120 H16

INF1800 Forelesning 6

Transkript:

IN1140: Introduksjon til språkteknologi Forelesning #4 Samia Touileb Universitetet i Oslo 13. september 2018

Tema for i dag 2 Regulære uttrykk Endelige tilstandsmaskiner ( Finite State Automata, FSA)

Definisjon 3 Regulære uttrykk: Standard notasjon for å karakterisere tekst sekvenser Blir brukt for å spesifisere tekst strenger i all slags type tekst processering og informasjon ekstraksjon Regulære utrykk kan også bli implementert ved bruk av endelige tilstandsmaskiner (Finate-State Automata, FSA) Veldig viktig i NLP Har mange variasjoner: finate-state transducers, hidden Markov models, N-gram grammars...

Oversikt 4 Såkalt endelig tilstand (finite-state) -teknologi er kjapp og effektiv nyttig for et antall språkteknologiske oppgaver Regulære uttrykk og endelige tilstandsmaskiner er matematisk ekvivalente, men gir oss forskjellig innfallsvinkel på oppgaver

Oversikt 5 Perioden rett etter 2 verdenskrig ca 1960: viktig for datalingvistikk Automata-teori basert på Turings arbeid (1936) om algoritmisk beregning Kleene: (1951, 1956): endelige automata og regulære uttrykk. Beviste ekvivalens Chomsky (1956): endelige tilstandsmaskiner som beskrivelser av naturlige språk Formell språkteori: algebra og mengdelære for å definere formelle språk

Noen applikasjonseksempler 6 Tokenisering (oblig1) Tekstprosessering (finne, erstatte) Finne alle telefonnumre i en tekst, feks: Du kan også ringe Kundeservice på 815 22 040 Du kan også ringe Kundeservice på 815 22 041 Du kan også ringe Kundeservice på 815 22 501 Finne flere tilgrensende instanser av samme ord i en tekst Bestemme språket i en setning/tekst: spansk eller polsk? Sytuacja na Bliskim Wschodzie jest napieta, szczegolnie po wczorajszym ataku

Noen applikasjonseksempler 7 Validere felter i en database (datoer, e-postadresser, URL er) Søk i et korpus etter lingvistiske mønstre samle statistikk Tildele ordklasse til disse, selv om de ikke fins i ordboken. F.eks.: conurbation, cadence, disproportionality, Thatcherization

Noen applikasjonseksempler 8 Utstrakt bruk innenfor: informasjonshenting ( information extraction ), f.eks. navn på personer og firmaer automatisk morfologisk analyse

Regulære uttrykk 9

Regulære uttrykk 10 Et regulært uttrykk er en beskrivelse av en mengde strenger Finnes en rekke UNIX-verktøy (grep, sed), editorer (emacs) og progammeringsspråk (perl, python, java) som har funksjonalitet for regulære uttrykk Som alle formalismer har ikke regulære uttrykk noe språklig (lingvistisk) innhold, men kan snarere brukes til å referere til lingvistiske enheter

11

Regulære uttrykk (RU) 12 To slags tegn ( characters ): Bokstaver ethvert teksttegn er et RU og refererer til seg selv Meta-tegn spesialtegn som lar deg kombinere RU på forskjellige måter Eksempel: /a/ refererer til a /a*/ refererer til ɛ (null) eller a eller aa eller aaa eller... MERK: // (i feks /a/) er ikke en del av et RU. Brukes som notasjon for å gjøre det tydelig hva er RU og hva ikke er RU

Regulære uttrykk 13 Regulære uttrykk består av: Strenger bestående av tegn: /b/, /IN1140/, /informatikk/ Disjunksjon: vanlig disjunksjon: /spise ete/, /penge(r ne)/ tegnklasser:/[dd]en/, /m[ae]nn/, /bec[oa]me/ rekker ( ranges ): [A-Z], [a-z], [0-9] Negasjon: Bruk av ^ [^b] [^A-Z0-9] a\^b ser etter sekvensen a^b i en streng feks: se etter a^b nå e\^ ser etter sekvensen e^ i en streng feks: se etter e^ nå

Regulære uttrykk 14 Regulære uttrykk består av (forts.): Tellere opsjonalitet (0 eller 1):? /woodchucks?/ (fanger begge woodchucks og woodchuck ) /colou?r/ (fanger begge colour og color ) hvilket som helst antall (0 eller flere): Kleene * /baaa*!/ (fanger baa!, baaa!, baaaa!, baaaaaaaaaaa! ) /[0-9][0-9]*/ Minst en: + /baaa+!/ (fanger baaa!, baaaa!, baaaaaaaaaaa! ) /[0-9]+ kroner/

Regulære uttrykk 15 Regulære uttrykk består av (forts.): wildcard for et hvilket som helst tegn:. /beg.n/ (alt som finnes mellom beg og n) begin beg n begun brukes ofte sammen med stjerne: hva som helst : /beltedyr.*beltedyr/ beltedyr er en familie av gomlere som er i utgangspunktet en ren søramerikansk gruppe, og Sør-Amerika pluss de sørlige delene av Nord-Amerika er de eneste stedene hvor beltedyr finnes vilt i dag

Regulære uttrykk 16 Regulære uttrykk består av (forts.): Ankere: spesielle tegn som forankrer det regulære uttrykket til spesifikt sted i strengen/teksten ^ - begynnelsen av linjen /^Den/ matcher Den bare i begynnelsen av en linje ^ har tre mulige bruk: Matche begynnelsen av en linje Indikerer negasjon innefor firkantede parenteser ([]) altså tegnklasser Bare karakteren ^ $ - slutten av linjen /der\.$/ matcher der. på slutten av en linje /^Det hvite huset\.$/? Matcher kun en linje som inneholder frasen Det hvite huset.

Regulære uttrykk 17 Regulære uttrykk består av (forts.): Ankere \b og \B \b matcher en word boundary (altså ordgrense) /\bthe\b/ matcher ordet the men ikke other \B matcher en non-boundary

Regulære uttrykk 18 Disjunksjon, gruppering, og presedens: Ser etter katter og hunder i en tekst: Kan ikke bruk [ og ] for å søke for katter eller hunder Må bruke disjunksjon: /katter hunder/ Ser etter guppy og guppies : Kan vi si /guppy ies/? Nei! Vil matche strengene guppy og ies Sekvensen guppy har presedens over disjunksjonen Må derfor bruke ( og ), (gruppering) /gupp(y ies)/

Regulære uttrykk 19 Kleene (cleany) * operator: Vi vil fange repetisjoner av en instans, feks: Kolone 1 Kolone 2 Kolone 3. Hva vil /Kolone [0-9]+ */ fange? Kolone 1 etterfulgt av uendelig mange mellomrom (feks. Kolone 1... ) Må bruke () : /(Kolone [0-9]+ *)*/ Her har () presedens over *

Regulære uttrykk 20 Kleene (cleany) * operator: Vi har /[a-z]*/ Setningen once upon a time Hva vil /[a-z]*/ fange? ingenting? o? on? onc? once? once? once u?... once RU matcher alltid lengste strengen, de er kallt greedy

Regulære uttrykk 21 Presedens av RU operatorer: 1 Parentes () 2 Tellere (counters) + -? {} 3 Sekvenser og ankere the ^my end$ 4 Disjunksjon

Regulære uttrykk 22 Nyttige forkortelser: RU = Eksempel \d [0-9] Lag av 5 \D [^0-9] Blå himmel \w [A-Za-z0-9] Dag \W [^A-Za-z0-9]!!!!! \s [ \r\t\n] \S [^\s] På Fløyen

Regulære uttrykk 23 Nyttige forkortelser: RU Matcher * null eller flere + en eller flere? null eller en. wildcard, matcher hva som helst {n} n forekomster {n,m} fra n til m forekomster {n,} minst n forekomster

Regulære uttrykk 24 Det som trenger backslash : Men også /\[/, og /\\/... RU Eksempel \* I*N*1*1*4*0 \. Dr. Nesehorn \? Dr. Nesehorn? \n ny linje \t tab

Regulære uttrykk 25 Et eksempel: Finne alle forekomster av og i en tekst /og/ Problem: Og det ble kveld, og det ble morgen... /[Oo]g/ Problem: Togets rutetider /\s[oo]g\s/ eller /\b[oo]g\b/ Minimere antall falske positiver (uriktig matchet, feks Toget) og falske negativer (uriktig utelukket, feks Og)

Regulære uttrykk 26 Substitusjon (python format): re.sub( color, colour, text) re.sub( versjon 2.4, versjon 2.5, text)

Regulære uttrykk 27 ELIZA (Weizenbaum 1966): User: ELIZA: User: ELIZA: User: ELIZA: User: ELIZA: Men are all alike in what way? They re always bugging us about something can you think of an example? Well, my boyfriend made me come here your boyfriend made you come here. He says I am depressed much of the time i m sorry to hear that you are depressed. s/.* I am (depressed sad).* / I am sorry to hear that you are \1/ s/.* (all always).* / Can you think of an example /

Prøv hjemme med og uten Python 28 Beskriv strengene som aksepteres av følgende regulære uttrykk /ab+a/ /(ab)*/ /([^aeiou][aeiou])/ /\sdis[a-z]+\s/

Endelige tilstandsmaskiner 29

FSA er 30 Ethvert regulært uttrykk kan implementeres som en endelig tilstandsmaskin (og vice-versa) Måte å beskrive et spesielt formelt språk, nemlig regulære språk

FSA er 31 Hva er en endelig tilstandsmaskin (FSA)? Abstrakt beregningsmaskin Består av en mengde tilstander (noder i en graf), og en mengde transisjoner (kanter i en graf) Tre typer tilstander: vanlig, start og slutt

FSA er 32 Brukes for å gjenkjenne/akseptere strenger: Antar en tape, der input-symbolene leses av celle etter celle Maskinen starter i starttilstanden For hvert symbol på tape en, forsøkes tilsvarende transisjon i maskinen Dersom ingen mulig transisjon: avvis Når strengen er ferdig lest, sjekk om tilstanden er sluttilstand Ja: aksepter, nei: avvis

En liten digresjon 33

Formell definisjon 34 En endelig tilstandsmaskin er definert ved: Q = {q0, q 1, q 2,..., q n 1 }: en endelig mengde tilstander Σ: et endelig alfabet q0 : en starttilstand F : mengden av sluttilstander, F Q δ(q i, i): en funksjon som gitt en tilstand q i og et inputsymbol i Σ, returnerer en ny tilstand q Q

Kan også spesifiseres ved en transisjonstabell: 35

36 For saueprat-eksempelet: Q = {q 0, q 1, q 2, q 3, q 4 } Σ = {a, b,!} F = {q4 } δ(q, i) er gitt ved transisjonstabellen

37 FSA som gjenkjenner strenger på formen [ab]+ Feks a, b, ab, ba, aab, bab, aba, bba, etc. FSA definert som: a b S 0 S 1 S 1 S 1 S 1 S 1 Hva blir Q (endelig mengde tilstander), Σ (endelig alfabet), og F (mengden av sluttilstander)? Hvordan ser automaten ut?

Svar 38 Q = {S 0, S 1 } Σ = {a, b} F = {S 1 }

39 FSA for enkle (engelske) substantivfraser d for artikler ( determiners ), a for adjektiver og n for substantiver the car the green car the fast green car ḋ a n S 0 S 1 ø ø S 1 ø S 1 S 2 S 2 ø ø ø Hva med fast cars eller cars?

FSA for enkle (engelske) substantivfraser: 40

41 Eksempel 1: Eksempel 2:

Ikke-deterministiske FSAer 42 En FSA er ikke-deterministisk dersom: For minst en tilstand (node) og ett symbol finnes det mer enn en transisjon som passer (to transisjoner med samme symbol) Disse valgene kan involvere tomme (ɛ-)transisjoner b a! S 0 S 1 ø ø S 1 ø S 1,S 2 ø S 2 ø ø S 3 S 3 ø ø ø

Ikke-deterministiske FSAer 43 Enhver ikke-deterministisk FSA kan gjøres deterministisk Strategier: Backup: Hver gang må foreta et valg: marker hvor langt du har kommet og hvilken tilstand Look-ahead: Se framover i input en Parallellisme: Utforske alternative ruter samtidig

44 Hvorfor endelige ( finite )? Antall tilstander er bestemt på forhånd (transisjonstabellen) Derfor bruker maskinen begrenset minne Hva den gjør ved hvert skritt bestemmes av transisjonstabellen Tilstanden ved ethvert tidspunkt reflekterer prosesseringsrekkefølgen

45 1. Tegn en endelig tilstandsmaskin som gjenkjenner følgende språk: {s s inneholder minst tre 1 ere} (altså strenger av 0 og 1 med minst tre 1 ere ) Alfabetet er: 0 og 1. Tilstandsmaskine må være deterministiske. 2. Angi transisjonstabellen for maskinen.

Svar 46 0 1 q0 q0 q1 q1 q1 q2 q2 q2 q3 q3: q3 q3