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 2011 3
Regulære språk Følgende er ekvivalente: a) L kan beskrives med et regulært uttrykk. b) Det fins en NFA som anerkjenner L. c) Det fins en DFA som anerkjenenr L. Ekvivalensen av (b) og (c) sist. Fra (a) til (b) forholdsvis greit å se. Fra (b/c) til (a) er litt vanskeligere å vise Litt notasjon: Hvis R er et regulært uttrykk, er L(R) språket beskrevet av R. Hvis M er en FSA, så er L(M) språket anerkjent av M. 31. januar 2011 4
Fra regulært uttrykk til NFA til til til JFLAP-algoritme litt annerledes: legger til flere ε-kanter 31. januar 2011 5
Fra FSA til RE Hvorfor ikke bare reversere forrige algoritme? Kryssende løkker! 31. januar 2011 6
Legg til ny start og sluttilstand Fjern 1 og 1 tilstand 31. januar 2011 7
Ved fjerning av tilstand k: For alle tilstander i og j: new(i,j) := old(i,j) + old(i,k) old(k,k)*old(k,j) 31. januar 2011 8
Fra DFA til RE: 1. Lag ny begynner- og sluttilstand 2. 3. Fjern i tur og orden alle indre tilstander. Ved fjerning av tilstand k: For alle gjenværende tilstander i og j: new(i,j) := old(i,j) + old(i,k) old(k,k)* old(k,j) til Ikke nødvendig å kunne konstruksjonen. Men vite at det er mulig! 31. januar 2011 9
EGENSKAPER VED REGULÆRE SPRÅK 31. januar 2011 10
Konsekvenser Hvis L er regulært, så er A*-L regulært. Legg til trap state. Reverser aksepterende tilstander Hvis L og M er regulære, så er L M regulært. L M = A*-((A*-L) (A*-M)) 31. januar 2011 11
Språk som ikke er regulære Notasjon: w = n er antall symboler i strengen w. Gitt en DFA over alfabetet A, kalt M. Anta at L(M) er uendelig. M har et visst antall tilstander n. La w L(M) og w >n. Når M leser w, må det finnes en tilstand s som w er innom to forskjellige steder i w. ( pigeon hole principle ), mao: w kan skrives på formen xyz der y >0 og M er i samme tilstand etter xy som etter x (og etter xyy ) Da må xy n z L(M) for alle n. (Pumpelemmaet for regulære språk). 31. januar 2011 12
Eksempler, A={a,b,c} Regulære L = {w w > 10 000 000} L = {w w inneholder sekvensen abc} L = {w w inneholder 118 a- er} Ikke-regulære L={w w w A*} L={w w R w A*} L={a n b n } 31. januar 2011 13
som Kari kjente en mann Et barn så løp by Kontekstfrie frasestruktur-grammatikker (CF P-SG) S NP VP NP DET N VP IV VP TV NP NP NP som VP NP NP PP PP P NP NP kari ola N barn by mann fra På BNF (Backus-Naur Form) S ::= NP VP NP ::= DET N NP som VP NP PP kari ola VP ::= IV TV NP PP ::= P NP N ::= barn by mann
Chomsky&Miller (1963): 31. januar 2011 15
PROSESSERING MED NFA 31. januar 2011 16
Søkerom 31. januar 2011 17
Breddeførst søk JFLAP Parallellsøk er noe tilsvarende 31. januar 2011 18
Dybdeførst søk m/ Backtracking Jurafsky og Martin 31. januar 2011 19
Jurafsky og Martins algoritme Strengt tatt: nøytral mht. Dybde-først vs bredde-først 31. januar 2011 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 epsillontransisjoner Kan risikere ikke terminerer! Men vi vet jo at hvis vi først lager DFA får vi linjært tidsforbruk! 31. januar 2011 21
En raskere algoritme En konfigurasjon består av: En mengde tilstander Resten av strengen Oppdatering Gitt konfigurasjon: w_n = s w Qn={q1,, qn} La ny konfigurasjon være w_n+1 = w Qn+1=E(δN(q1,s) δn(q2,s) δn(qk,s)) (E er epsillontillukning) Akseptering Konfigurasjonen w_n = ε Qn={q1,, qn} Aksepterer hvis minst en av q1,, qn er en sluttilstand. 31. januar 2011 22
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. Terminerer 31. januar 2011 23
REGULÆRE UTTRYKK I PRAKSIS 31. januar 2011 24
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! 31. januar 2011 25
Regular Expressions and Text Searching Everybody does it Emacs, vi, perl, grep, etc.. Regular expressions are a compact textual representation of a set of strings representing a language. 1/31/2011 Speech and Language Processing - Jurafsky and Martin 26
Example Find all the instances of the word the in a text. /the/ /[tt]he/ /\b[tt]he\b/ 1/31/2011 Speech and Language Processing - Jurafsky and Martin 27
Errors The process we just went through was based on two fixing kinds of errors Matching strings that we should not have matched (there, then, other) False positives (Type I) Not matching things that we should have matched (The) False negatives (Type II) 1/31/2011 Speech and Language Processing - Jurafsky and Martin 28
Errors We ll be telling the same story for many tasks, all semester. Reducing the error rate for an application often involves two antagonistic efforts: Increasing accuracy, or precision, (minimizing false positives) Increasing coverage, or recall, (minimizing false negatives). 1/31/2011 Speech and Language Processing - Jurafsky and Martin 29
Forkortelser 31. januar 2011 30
Generalisert * 31. januar 2011 31
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 31. januar 2011 32