Grundläggande textanalys, VT2012

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

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

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.

DAB760: Språk och logik

Föreläsning 2 5/6/08. Reguljära uttryck 1. Reguljära uttryck. Konkatenering och Kleene star. Några operationer på språk

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Matematik för språkteknologer

Två-nivåmodellen, TWOL. 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01

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

Föreläsning 7: Syntaxanalys

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater

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

Grundläggande textanalys. Joakim Nivre

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

729G09 Språkvetenskaplig databehandling

Alfabeten, strängar och språk. String

Kontextfria grammatiker

Datorlingvistisk grammatik

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

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

TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

Morfologi och automatisk morfologisk analys och generering. Varför är morfologi viktigt? Vad är ett ord (idag vs. i dag)

Föreläsning 7: Syntaxanalys

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

10. Mängder och språk

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

Morfologi, särdrag, lexikon och syntax. När är det bra med morfologi? Vad är ett ord? Morfem. Stam och affix

Tekniker för storskalig parsning

1 Inledning 1. 4 Utvärdering 7. 5 Diskussion 7

Grundläggande textanalys, VT2013

Automater. Matematik för språkteknologer. Mattias Nilsson

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

Varför är morfologi viktigt? Morfologisk analys och generering. Vad är ett ord (idag vs. i dag) Kan man inte lägga alla ord i en lexikonfil?

Vektorgeometri för gymnasister

Grundläggande textanalys, VT2013

Vektorgeometri för gymnasister

Tekniker för storskalig parsning: Grundbegrepp

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Fil: /home/lah/undervisning/sprakteknologi/ohbilder/oh1_kv.odp. Tjänster

Grundläggande textanalys, VT2013

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Läsanvisningar och övningsuppgifter i MAA150, period vt Erik Darpö

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}:

TDDA94 LINGVISTIK, 3 poäng tisdag 19 december 2000

Övning 5 - Tillämpad datalogi 2013

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

H1009, Introduktionskurs i matematik Armin Halilovic

Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och oändlighet

FL 6: Definite Clause Grammars (kap. 7)

Modul 1: Komplexa tal och Polynomekvationer

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk

Programmering för språkteknologer II, HT2011. Rum

729G09 Språkvetenskaplig databehandling

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Moment Viktiga exempel Övningsuppgifter I Ö5.1b, Ö5.2b, Ö5.3b, Ö5.6, Ö5.7, Ö5.11a

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.

Föreläsning 15: Faktorförsök

Partiell parsning Parsning som sökning

Grundläggande datalogi - Övning 9

Föreläsning 8. NDAB02 Statistik; teori och tillämpning i biologi

Källkodning. Egenskaper hos koder. Några exempel

Övning: Träna skrivning!

Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då

Snabba tips på hur du kan plugga till XYZ och KVA

Programmering för språkteknologer II, HT2011. Rum

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

Grammatiska morfem kan också vara egna ord, som t ex: och på emellertid

Där a = (1, 2,0), b = (1, 1,2) och c = (0,3, 1) Problem 10. Vilket är det enda värdet hos x för vilket det finns a och b så att

DIAGONALISERING AV EN MATRIS

PCP-satsen på kombinatoriskt manér

Lösningsförslag till skrivningen i Vektorgeometri (MAA702) måndagen den 30 maj 2005

Kap Inversfunktion, arcusfunktioner.

Definition. Mängden av reguljära uttryck på alfabetet Σ definieras av. om α och β är reguljära uttryck så är (α β) ett reguljärt uttryck

Livet i Bokstavslandet Läsebok åk 1

Matematisk statistik för D, I, Π och Fysiker

Numerisk Analys, MMG410. Exercises 2. 1/33

Datum: 24 okt Betygsgränser: För. finns på. Skriv endast på en. omslaget) Denna. Uppgift. Uppgift Beräkna. Uppgift Låt z. Var god. vänd.

Grundläggande textanalys, VT2012

och kallas ytintegral AREAN AV EN BUKTIG YTA

Ord och morfologi. Morfologi

TDDC74 Lab 04 Muterbara strukturer, omgivningar

2+t = 4+s t = 2+s 2 t = s

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

Asymptotisk komplexitetsanalys

1 Inledning. 1.1 Programförklaring. 1.2 Innehållet. 1.3 Beteckningskonventioner - 1 -

Algoritmer, datastrukturer och komplexitet

TAMS65 - Föreläsning 11 Regressionsanalys fortsättning Modellval

abbcba a) A regular expression over

Lexikon: ordbildning och lexikalisering

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

Diskret matematik: Övningstentamen 1

K2 Något om modeller, kompakthetssatsen

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Fö relä sning 2, Kö system 2015

Tentamen 1 i Matematik 1, HF1903 Torsdag 22 augusti Skrivtid: 14:00-18:00 Examinator: Armin Halilovic

Föreläsning 13: Multipel Regression

Föreläsning 1 Datastrukturer (DAT037)

Transkript:

Grundläggande textanalys, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv12/gta/ (Tack till ofia Gustafson-Capkovâ för material.)

Repetition 2

Exempel parvspråket parvspråket består av ett godtyckligt antal pip sammanbundet med - och avslutas med!. Exempel: pip! pip-pip! pip-pip-pip! Hur ser det reguljära uttrycket för sparvspråket ut? 3

Exempel parvspråket parvspråket består av ett godtyckligt antal pip sammanbundet med - och avslutas med!. Exempel: pip! pip-pip! pip-pip-pip! Hur ser det reguljära uttrycket för sparvspråket ut? Lösning: Ordet börjar med: pip 4

Exempel parvspråket parvspråket består av ett godtyckligt antal pip sammanbundet med - och avslutas med!. Exempel: pip! pip-pip! pip-pip-pip! Hur ser det reguljära uttrycket för sparvspråket ut? Lösning: Ordet börjar med: pip Ordet fortsätter med 0 eller flera -pip : pip(-pip)* 5

Exempel parvspråket parvspråket består av ett godtyckligt antal pip sammanbundet med - och avslutas med!. Exempel: pip! pip-pip! pip-pip-pip! Hur ser det reguljära uttrycket för sparvspråket ut? Lösning: Ordet börjar med: pip Ordet fortsätter med 0 eller flera -pip : pip(-pip)* Ordet avslutas med! : pip(-pip)*! var: pip(-pip)*! 6

Exempel parvspråket Hur ser den deterministiska finita automaten för sparvspråket ut? Lösning: Automaten ska tillåta: pip p I i P p T 7

Exempel parvspråket Hur ser den deterministiska finita automaten för sparvspråket ut? Lösning: Automaten ska tillåta: pip Automaten ska tillåta: pip(-pip)* p I i P p T - 8

Exempel parvspråket Hur ser den deterministiska finita automaten för sparvspråket ut? Lösning: Automaten ska tillåta: pip Automaten ska tillåta: pip(-pip)* Automaten ska acceptera: pip(-pip)*! p I i P p T -! F 9

Exempel parvspråket Hur ser typ3-grammatiken för sparvspråket ut? Lösning: pi I ip P pt T - T! 10

Exempel parvspråket Hur ser typ3-grammatiken för sparvspråket ut? Lösning: pi I ip P pt T - T! Om vi vill tillåta piip piip-pip!, osv. Hur ska grammatiken se ut då? 11

Exempel parvspråket Hur ser typ3-grammatiken för sparvspråket ut? Lösning: pi I ip I ii P pt T - T! Lägg till den här regeln 12

Idag - Chomsky hierarki - Icke-deterministiska automater - ökning i automater - The pumpning lemma (sv. Pumpsatsen) - Tvånivåmorfologi 13

Chomsky hierarki 14

Chomsky hierarki - typ 3 reguljärt språk ändlig automat Regler: A xa A x 15

Chomsky hierarki - typ 2 ammanhangsfritt språk Regel: A β där : β är en godtycklig sträng Α måste innehålla någon icke-terminal 16

Chomsky hierarki - typ 2 ammanhangsfritt språk Ex: () ( ) pushdown automat (, ε / ( ), ( /ε 1 ), (/ ε 2 ε, ε/ε 3 a, b / c - betyder att om man läser a och hittar b på stacken(minnet) så ersätter man b med c 17

Chomsky hierarki - typ 2 ammanhangsfritt språk Ex: () ( ) pushdown automat (, ε / ( ), ( /ε 1 ), (/ ε 2 ε, ε/ε 3 indata: (()) stack: 18

Chomsky hierarki - typ 2 ammanhangsfritt språk Ex: () ( ) pushdown automat (, ε / ( ), ( /ε 1 ), (/ ε 2 ε, ε/ε 3 indata: (()) stack: ( 19

Chomsky hierarki - typ 2 ammanhangsfritt språk Ex: () ( ) pushdown automat (, ε / ( ), ( /ε 1 ), (/ ε 2 ε, ε/ε 3 indata: (()) stack: (( 20

Chomsky hierarki - typ 2 ammanhangsfritt språk pushdown automat (, ε / ( ), ( /ε 1 ), ( / ε 2 ε, ε/ε 3 indata: (()) stack: ( 21

Chomsky hierarki - typ 2 ammanhangsfritt språk pushdown automat (, ε / ( ), ( /ε 1 ), ( / ε 2 ε, ε/ε 3 indata: (()) stack: 22

Chomsky hierarki - typ 2 ammanhangsfritt språk pushdown automat (, ε / ( ), ( /ε 1 ), ( / ε 2 ε, ε/ε 3 indata: (()) stack: 23

Chomsky hierarki - typ1 ammanhangskänslig grammatik. α β där : α, och β är godtyckliga α måste innehålla någon icke-terminal - β måste ha minst samma längd som α Motsvarande automat är en turingmaskin med begränsad storlek på indatan. 24

Chomsky hierarki - typ0 Restriktionsfria språk Regel: α β Där : α, och β är godtyckliga α måste innehålla någon icke-terminal Exempel: ε abnc bna abn bnb bbn bnc bc Genererar: {abc, aabbcc,...} Motsvarande automat är en turingmaskin 25

Chomsky hierarki (presenterades 1959) Enkelt pråk Grammatik maskin Exempel regulärt regulär ändlig automat m* sammanhangsfritt sammanhangsfri pushdown automat m n u n sammanhangskänsligt sammanhangskänslig linjär-bunden automat m n u n! n Rekusiv enumerbart orestriktiv turingmaskin vilken funktion som helst Komplext 26

Icke deterministiska finita automater 27

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: a 1 2 b 3 a 4 c indata: ab 28

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: a 1 2 b 3 a 4 c indata: a b Vi väljer övergången 1 a 2. 29

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: a 1 2 b 3 a 4 c indata: ab Vi hamnar i finalståndet s3 och strängen ab accepteras av automaten. 30

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Vad händer om vi väljer 1 a 4? a 1 2 b 3 a 4 c Indata: ab 31

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Vad händer om vi väljer 1 a 4? a 1 2 b 3 a 4 c Indata: a b Vi väljer övergången 1 a 4 32

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Vad händer om vi väljer 1 a 4? a 1 2 b 3 a 4 c Indata: a b Vi har ingen övergång som innehåller b så nu har vi hamnat i en återvändsgränd. Vad gör vi nu? 33

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Vad händer om vi väljer 1 a 4? a 1 2 b 3 a 4 c Indata: a b Vi har ingen övergång som innehåller b så nu har vi hamnat i en återvändsgränd. Vad gör vi nu? Vi inför en backup. 34

Icke deterministiska finita automater Backup - När vi kommit till ett tillstånd där vi kan välja vilken övergång vi ska använda, sparar vi följande information: - vilket tillstånd vi är i när vi kan göra ett val, - vilken symbol vi läser från indata-tapen. 35

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Med backup a 1 2 b 3 a 4 c Indata: ac Backup: 36

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Med backup a 1 2 b 3 a 4 c Indata: a c Backup: <1, a> 37

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Med backup a 1 2 b 3 a 4 c Indata: a c Backup: <1, a> Vi kan inte läsa c så vi backar i automaten. 38

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Med backup a 1 2 b 3 a 4 c Indata: a c Backup: <1, a> Vi kan inte läsa c så vi backar i automaten. Enligt <1, a> ska vi backa till 1 39

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Med backup a 1 2 b 3 a 4 c Indata: ac Backup: <1, a> Vi kan inte läsa c så vi backar i automaten. Enligt <1, a> ska vi backa till 1 och låta a vara läst. 40

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Med backup a 1 2 b 3 a 4 c Indata: a c Backup: <4, a> Nu testar vi övergången 1 a 4 istället. 41

Icke deterministiska finita automater En automat där en symbol kan leda till mer än ett tillstånd. Exempel: Med backup a 1 2 b 3 a 4 c Indata: ac Backup: <4, a> Det gick och automaten accepterar ac 42

ökning i automater - depth-first-search Tekniken vi använde för att vandra i automaten kallas för depth-first-search. Depth-first-search innebär följande: - Följ en väg så långt du kan i automaten - Om du fastnat i automaten och inte befinner dig i ett finaltillstånd så backar du i automaten och prövar en annan väg. 43

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. 44

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata: ab 45

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata : a b Backup: 2, 4 // Lägg till tillstånden 2, 4 46

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata : a b Backup: 4 //Välj att gå till det första tillståndet, 2, i // backup 47

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata : ab Backup: 4, 3 //Lägg till tillståndet 3 i backup 48

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata : a b Backup: 3 //Välj att gå till det första tillståndet, 4, i // backup 49

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata : a b Backup: 3 //Vi kan inte läsa c så vi lägger därför inte till // något tillstånd 50

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata : a b Backup: //Välj att gå till det första tillståndet, 3, i // backup 51

ökning i automater- breadt-first-search En annan teknik man kan använda för att söka i en auomat kallas för breadth-first-search och den innebär följande: - para alla övergångar du kan komma till - När du läst färdigt innehållet i tapen undersöker du följande: om du befinner dig i ett finaltillstånd så accepterar automaten indatan annars inte. Exempel: a 1 2 b 3 a 4 c Indata : ab Backup: 52

ökning svagheter Med depth-first-search kan vi hamna i en oändlig loop. 53

ökning svagheter Breadth-first-search kan vara minneskrävande om automaten har många övergångar och vi behöver spara undan alla möjligheter. Exempel: T a a a a U X Y 54

ökning svagheter För att angripa problemen med oändlig loop och krävande minneshantering har man arbetat med olika algoritmer. Till exempel: - Dynamisk programmering - Första gången nånting beräknas, sparar man undan resultatet så att det kan hämtas vid ett senare tillfälle - Virterbi-algoritmen 55

Finita automater - Fakta - Deterministiska och icke-deterministiska finita automater har samma komplexitet - Varje icke-deterministisk finit automat kan skrivas om till en deterministiska automat - En icke-deterministisk finit automat är ofta färre tillstånd än en än en deterministisk automat och är därför ofta enklare. 56

Pumping Lemma 57

Hur vet man att ett språk är reguljärt? - Ett reguljärt språk har begränsat minne och man kan inte till exempel beskriva språk som detta: {mu, mmuu, mmmuuu,...} m n u n dvs, där n > 0 Hur kan vi då avgöra att reguljärt språk? m n u n inte är ett 58

Hur vet man att ett språk är reguljärt? - Ett reguljärt språk har begränsat minne och man kan inte till exempel beskriva språk som detta: {mu, mmuu, mmmuuu,...} m n u n dvs, där n > 0 Hur kan vi då avgöra att reguljärt språk? m n u n inte är ett Jo, med hjälp av The pumping lemma (sv. pumpsatsen). 59

The pumping lemma Låt L vara ett reguljärt språk som innehåller oändligt många strängar. Då finns strängarna x,y och z där: y ϵ -, dvs y är skilt från den tomma strängen x y n z L -, för n > 0 - Vi kan pumpa y N gånger utan att ramla ut ur språket Automaten för L ser ut så här: y 3 x 1 2 z 60

The pumping lemma Vad händer när man pumpar? y x 1 2 3 z pumpa en gång : xyz 61

The pumping lemma Vad händer när man pumpar? y x 1 2 3 z pumpa en gång pumpa två gånger : xyz : xyyz 62

The pumping lemma Vad händer när man pumpar? y x 1 2 3 z pumpa en gång pumpa två gånger pumpa tre gånger : xyz : xyyz : xyyyz 63

The pumping lemma Vad händer när man pumpar? y x 1 2 3 z pumpa en gång pumpa två gånger pumpa tre gånger pumpa n gånger : xyz : xyyz : xyyyz : x yy...y z n 64

The pumping lemma Vad händer när man pumpar? y x 1 2 3 z pumpa en gång : xyz pumpa två gånger : xyyz pumpa tre gånger : xyyyz pumpa n gånger : x yy...y z = x y n z n 65

The pumping lemma Man kan ersätta x, y och z med andra strängar. Exempel: x=ϵ y=bb z=ab ϵ bb ab 1 2 3 66

The pumping lemma Man kan ersätta x, y och z med andra strängar. Exempel: x=ϵ y=bb z=ab ϵ pumpa 0 gånger: ab bb ab 1 2 3 67

The pumping lemma Man kan ersätta x, y och z med andra strängar. Exempel: x=ϵ y=bb z=ab ϵ pumpa 0 gånger: ab pumpa 1 gång : bbab bb ab 1 2 3 68

The pumping lemma Man kan ersätta x, y och z med andra strängar. Exempel: x=ϵ y=bb z=ab ϵ pumpa 0 gånger: ab pumpa 1 gång : bbab pumpa 2 gånger: bbbbab bb ab 1 2 3 69

The pumping lemma Man kan ersätta x, y och z med andra strängar. Exempel: x=ϵ y=bb z=ab ϵ bb pumpa 0 gånger: ab pumpa 1 gång : bbab pumpa 2 gånger: bbbbab pumpa 3 gånger: bbbbbbab ab 1 2 3 70

The pumping lemma Man kan ersätta x, y och z med andra strängar. Exempel: x=ϵ y=bb z=ab ϵ bb ab 1 2 3 pumpa 0 gånger: ab pumpa 1 gång : bbab pumpa 2 gånger: bbbbab pumpa 3 gånger: bbbbbbab... Automaten accepterar språket (bb)*ab 71

The pumping lemma - Tillämpning Exempel: Är m n u n där n>0 reguljärt? 72

The pumping lemma - Tillämpning Exempel: Är m n u n där n>0 reguljärt? Vi tittar på följande sträng: mm...muu...u n n 73

The pumping lemma - Tillämpning Exempel: Är m n u n där n>0 reguljärt? Vi tittar på följande sträng: mm...muu...u n n Fall1: pumpa m m n u n Om är reguljärt, då kan vi pumpa antalet m N gånger utan att vi ramlar ut ur språket. Detta medför dock att vi får en sträng med olika många m och u, vilket innebär att vi ramlar ut ur. m n u n 74

The pumping lemma - Tillämpning Exempel: Är m n u n där n>0 reguljärt? Vi tittar på följande sträng: mm...muu...u n n Fall2: pumpa u m n u n Om är reguljärt, då kan vi pumpa antalet u N gånger utan att vi ramlar ut ur språket. Detta medför dock att vi får en sträng med olika många m och u, vilket innebär att vi ramlar ut ur. m n u n 75

The pumping lemma - Tillämpning Exempel: Är m n u n där n>0 reguljärt? Vi tittar på följande sträng: mm...muu...u n n Fall3: pumpa både m och u m n u n Om är reguljärt, då kan vi pumpa antalet m och u N gånger utan att vi ramlar ut ur språket. Men vi kan inte kontrollera att vi pumpat m och u lika många gånger vi ramlar ut ur språket. 76

Men naturliga språk? m n u n Men om inte är ett reguljärt språk, vad säger det då om naturliga språk som engelska och svenska? 77

Men naturliga språk? m n u n Men om inte är ett reguljärt språk, vad säger det då om naturliga språk som engelska och svenska? var: Det avgör att engelska och svenska inte är ett reguljärt språk. eftersom det beskriver depentenser (beroenden) mellan olika delar av en sats. 78

Men naturliga språk? Men om inte är ett reguljärt språk, vad säger det då om naturliga språk som engelska och svenska? var: Det avgör att engelska och svenska inte är ett reguljärt språk. eftersom det beskriver depentenser (beroenden) mellan olika delar av en sats. Exempel: m n u n The cat 1 died 1 79

Men naturliga språk? Men om inte är ett reguljärt språk, vad säger det då om naturliga språk som engelska och svenska? var: Det avgör att engelska och svenska inte är ett reguljärt språk. eftersom det beskriver depentenser (beroenden) mellan olika delar av en sats. Exempel: m n u n The cat 1 died 1 The cat 1 the dog 2 chased 2 died 1 80

Men naturliga språk? Men om inte är ett reguljärt språk, vad säger det då om naturliga språk som engelska och svenska? var: Det avgör att engelska och svenska inte är ett reguljärt språk. eftersom det beskriver depentenser (beroenden) mellan olika delar av en sats. Exempel: m n u n The cat 1 died 1 The cat 1 the dog 2 chased 2 died 1 The cat 1 the dog 2 the rat 3 bit 3 chased 2 died 1 81

Men naturliga språk? Men om inte är ett reguljärt språk, vad säger det då om naturliga språk som engelska och svenska? var: Det avgör att engelska och svenska inte är ett reguljärt språk. eftersom det beskriver depentenser (beroenden) mellan olika delar av en sats. Exempel: m n u n The cat 1 died 1 The cat 1 the dog 2 chased 2 died 1 The cat 1 the dog 2 the rat 3 bit 3 chased 2 died 1 (The N ) n (verb) n 82

Men naturliga språk? Men om inte är ett reguljärt språk, vad säger det då om naturliga språk som engelska och svenska? var: Det avgör att engelska och svenska inte är ett reguljärt språk. eftersom det beskriver depentenser (beroenden) mellan olika delar av en sats. Exempel: m n u n The cat 1 died 1 The cat 1 the dog 2 chased 2 died 1 The cat 1 the dog 2 the rat 3 bit 3 chased 2 died 1 (The N ) n (verb) n (The N ) n (transitivt verv) n 1 (transitivt verb) 1 83

pråklig komplexitet m n u n - pråket kan beskrivas med kontextfria regler: mu m u reglerna kallas för typ 2- grammatik, dvs grammatiken är mer komplex än typ 3- grammatik 84

pråklig komplexitet m n u n - pråket kan beskrivas med kontextfria regler: mu m u reglerna kallas för typ 2- grammatik, dvs grammatiken är mer komplex än typ 3- grammatik - Kan man beskriva naturliga språk med kontextfria regler, eller behöver man en kontextkänslig grammatik, typ 1- grammatik? 85

pråklig komplexitet m n u n - pråket kan beskrivas med kontextfria regler: mu m u reglerna kallas för typ 2- grammatik, dvs grammatiken är mer komplex än typ 3- grammatik - Kan man beskriva naturliga språk med kontextfria regler, eller behöver man en kontextkänslig grammatik, typ 1- grammatik? Det kan bli problem med kontextfria regler, men det enda exempel som citeras i litteraturen är från en schweizertysk dialekt, sid 572 i Jurafsky och Martin. Det språket kan beskrivas som a n b m c n d m 86

Tvånivåmorfologi 87

Tvånivåmorfologi - Översikt Tvånivåmorfologi är en morfologisk parsning där man arbetar med följande: - ett lexikon som innehåller följande: rotmorfem affix (prefix, suffix, etc) specifikation som beskriver i vilken ordning rotmorfem och affix förekommer 88

Tvånivåmorfologi - Översikt Tvånivåmorfologi är en morfologisk parsning där man arbetar med följande: - ett lexikon som innehåller följande: rotmorfem affix (prefix, suffix, etc) specifikation som beskriver i vilken ordning rotmorfem och affix förekommer - en regelkomponent som innehåller morfologiska och ortografiska regler, till exempel hur man bildar en pluralisform från ett visst rotmorfem 89

Tvånivåmorfologi och transduktorer En transduktor kopplar samman två olika strängar: - en ytnivå. - en lexikal nivå - I tvåmorfologi består nivåerna av följande: - ytnivå som motsvarar grafordet - den lexikala nivån motsvarar grundform + morfologisk analys Exempel: ytnivå : cats lexikal nivå: cat + N + Pl 90

Transduktorer vs Automater - I en automat har vi ett alfabet, men I en transduktor har vi istället följande alfabet: Σ = är en ändlig mängd, alfabetet för indata = är en ändlig mängd, alfabetet för utdata 91

Transduktorer vs Automater - I en automat har vi ett alfabet, men I en transduktor har vi istället följande alfabet: Σ = är en ändlig mängd, alfabetet för indata = är en ändlig mängd, alfabetet för utdata - Varje övergång i en automat har en symbol, i en transduktor har varje övergång två symboler. Exempel: Istället för att skriva: <,x,t> kriver vi : <,x:y,t> där x är en symbol från Σ Och y är en symbol från 92

Transduktor: Lexikal nivå mellannivå f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N +Pl ^s# lexical nivå: fox+n+g mellannivå : 93

Transduktor: Lexikal nivå mellannivå f f x 1 f 2 f 3 x 4 ε 5 6 +g # +N +Pl ^s# lexical nivå: f ox+n+g mellannivå: f 94

Transduktor: Lexikal nivå mellannivå f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N +Pl ^s# lexical nivå: fo x+n+g mellannivå: fo 95

Transduktor: Lexikal nivå mellannivå f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N +Pl ^s# lexical nivå: fox +N+g mellannivå: fox 96

Transduktor: Lexikal nivå mellannivå f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N +Pl ^s# lexical nivå: fox+n +g mellannivå: fox 97

Transduktor: Lexikal nivå mellannivå f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N +Pl ^s# lexical nivå: fox+n+g mellannivå: fox# 98

Transduktor: Lexikal nivå mellannivå Transduktorn ger oss följande resultat: Lexical nivå fox+n+g fox+n+pl mellannivå fox# fox^s# # - talar om när strängen är slut ^ - talar om när nästa morfem börjar 99

Transduktor: mellannivå ytnivå f o x 1 f 2 o 3 x 4 ε 5 6 ^ s s 7 # ε # ε mellannivå: fox^s# ytnivå : 100

Transduktor: mellannivå ytnivå f o x 1 f 2 o 3 x 4 ε 5 6 ^ s s 7 # ε # ε mellannivå: f ox^s# ytnivå : f 101

Transduktor: mellannivå ytnivå f o x 1 f 2 o 3 x 4 ε 5 6 ^ s s 7 # ε # ε mellannivå: fo x^s# ytnivå : fo 102

Transduktor: mellannivå ytnivå f o x 1 f 2 o 3 x 4 ε 5 6 ^ s s 7 # ε # ε mellannivå: fox ^s# ytnivå : fox 103

Transduktor: mellannivå ytnivå f o x 1 f 2 o 3 x 4 ε 5 6 ^ s s 7 # ε # ε mellannivå: fox^ s# ytnivå : fox 104

Transduktor: mellannivå ytnivå f o x 1 f 2 o 3 x 4 ε 5 6 ^ s s 7 # ε # ε mellannivå: fox^s # ytnivå : foxs 105

Transduktor: mellannivå ytnivå f o x 1 f 2 o 3 x 4 ε 5 6 ^ s s 7 # ε # ε mellannivå: fox^s# ytnivå : foxs 106

Transduktor: mellannivå ytnivå Transduktorn ger oss följande resultat: mellannivå fox# fox^s# ytnivå fox foxs # - talar om när strängen är slut ^ - talar om när nästa morfem börjar 107

Transduktor: mellannivå ytnivå Vi fick följande resultat: mellannivå fox# fox^s# ytnivå fox foxs foxs är felstavat. # - talar om när strängen är slut ^ - talar om när nästa morfem börjar 108

Transduktor: mellannivå ytnivå Vi fick följande resultat: mellannivå fox# fox^s# ytnivå fox foxs foxs är felstavat. Orsaken till att foxs är felstavat beror på att det inte alltid räcker att endast sätta ihop morfem till ett ord. 109

Transduktor: mellannivå ytnivå Vi fick följande resultat: mellannivå fox# fox^s# ytnivå fox foxs foxs är felstavat. Orsaken till att foxs är felstavat beror på att det inte alltid räcker att endast sätta ihop morfem till ett ord. För att korrigera fox behöver vi en transduktor som lägger till e efter x. 110

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε ε : e 1 2 3 4 6 a:a b:b r: r t:t w:w y:y # : # # : # 111

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : fox^s# ytnivå : 112

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : f ox^s# ytnivå : f 113

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : fo x^s# ytnivå : fo 114

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : fox ^s# ytnivå : fox 115

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : fox^ s# ytnivå : fox 116

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : fox^ s# ytnivå : foxe 117

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : fox^s # ytnivå : foxes 118

Transduktor: E-insättning (förenklad) a:a b:b r: r t:t w:w y:y s:s x:x z:z ^ : ε 5 s:s # : # ^ : ε 1 2 3 4 ε : e 6 a:a b:b r: r t:t w:w y:y # : # # : # mellannivå : fox^s# ytnivå : foxes# 119

Transduktor: E-insättning (förenklad) Vi fick följande resultat: mellannivå fox^s# ytnivå foxes# För att ta bort # kan man antingen göra det i samma transduktor eller använda en transduktor som tar bort #. 120

Transduktor: E-insättning (förenklad) Vi fick följande resultat: mellannivå fox^s# ytnivå foxes# För att ta bort # kan man antingen göra det i samma transduktor eller använda en transduktor som tar bort #. E-insättning är ett exempel på en ortografisk regel. 121

Ortografiska regler En ortografisk regler används när man behöver korrigera tavningen i ett ord. Exempel på regler: E-insättning Lägger till ett e sist i morfem som slutar p -s, x, z, -ch, -sh och före +s. Exempel: fox +s foxes E-borttagning tyst e som tas bort före -ing och -ed Exempel: make+ing making Konsonantdubblering dubblerar en konstant före -ing/-ed Exempel: beg+ing begging Y-ersättning ersätter y med ie före -s -i, -ed Exempel: try+s tries K-insättning lägger till k på verb som slutar med vokal + c. Exempel: panic panicked 122

Kaskadkoppling Vi har nu följande transduktorer: - Lexikal mellannivå f o 1 f 2 o 3 x 4 ε 5 6 +g # - E-insättning. Exempel: fox^s# foxes# x +N +Pl ^s# Kan vi sätta ihop dem till en transduktor? 123

Kaskadkoppling Vi har nu följande transduktorer: - Lexikal mellannivå f o 1 f 2 o 3 x 4 ε 5 6 +g # - E-insättning. Exempel: fox^s# foxes# x +N +Pl ^s# Kan vi sätta ihop dem till en transduktor? Ja, det kan vi. Tekniken kallas för kaskadkoppling. 124

Kaskadkoppling Lexikal nivå fox+n+pl f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N ^s# Mellannivå: fox^s# E-insättning Ytnivå: foxes 125

Kaskadkoppling Lexikal nivå fox+n+pl f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N ^s# Mellannivå: fox^s# Först körs den här transduktor. E-insättning Ytnivå: foxes 126

Kaskadkoppling Lexical nivå fox+n+pl f o x 1 f 2 o 3 x 4 ε 5 6 +g # +N ^s# Mellannivå: fox^s# Därefter körs den här. E-insättning Ytnivå: foxes 127

Kaskadkoppling -generellt Lexikal nivå En stor transduktor som kan hantera många strängar på lexikal nivå och som kan genera många strängar på mellannivå Mellannivå Många transduktorer för de ortografiska reglerna: Transduktor 1 Transduktor 2... Transduktor n Ytnivå 128

Tvånivåmorfologi ammanfattning - Tvånivåmorfologi är en morfologisk parsning baserat på transduktorer. Man arbetar med: - Ett lexikon som innehåller rotmorfem och affix samt regler för i vilken ordning dessa förkommer. 129

Tvånivåmorfologi ammanfattning - Tvånivåmorfologi är en morfologisk parsning baserat på transduktorer. Man arbetar med: - Ett lexikon som innehåller rotmorfem och affix samt regler för i vilken ordning dessa förkommer. - En regelkomponent som innehåller morfologiska och ortografiska regler (hur bildar man en pluralform från ett visst rotmorfem) 130

Tvånivåmorfologi ammanfattning - Tvånivåmorfologi är en morfologisk parsning baserat på transduktorer. Man arbetar med: - Ett lexikon som innehåller rotmorfem och affix samt regler för i vilken ordning dessa förkommer. - En regelkomponent som innehåller morfologiska och ortografiska regler (hur bildar man en pluralform från ett visst rotmorfem) - Via transduktorer kan med göra följande: - generera en ytform utifrån de ingående morfemen - acceptera en ytform och returnera den morfologiska analysen 131

Nästa gång - Preprocessing - Tokenisering - Meningssegmentering - Laboration 1 132