Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen

Ähnliche Dokumente
Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen. Suche mit regulären Ausdrücken. Dozentin: Wiebke Petersen 17.5.

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken

Einführung in die Computerlinguistik Satz von Kleene

Reguläre Ausdrücke IDE AUTUMN SCHOOL

Einführung in die Computerlinguistik Satz von Kleene

Einführung in die Computerlinguistik Satz von Kleene

Einführung in die Computerlinguistik formale Sprachen

Einführung in die Computerlinguistik formale Sprachen

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Digital Humanities: Übung 2

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Einführung in die Computerlinguistik formale Sprachen

Einführung in die Computerlinguistik deterministische und nichtdeterministische endliche Automaten

Automatentheorie und formale Sprachen rechtslineare Grammatiken

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

Einführung in die Computerlinguistik formale Sprachen

Digital Humanities: Übung 1

Einführung in die Computerlinguistik. Chomskyhierarchie. Dozentin: Wiebke Petersen Wiebke Petersen Einführung CL (SoSe 2010) 1

Reguläre Ausdrücke. Felix Döring, Felix Wittwer 14. November Python-Kurs

Formale Sprachen und Automaten

Lösungsvorschläge Blatt 4

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Grundlagen der Theoretischen Informatik

Einführung in die Computerlinguistik Satz von Kleene

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Einführung in die Computerlinguistik Einführung in Python (2)

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten

Reguläre Ausdrücke mit Java

Einführung in die Computerlinguistik

Einführung in die Computerlinguistik reguläre Sprachen und endliche Automaten

Reguläre Ausdrücke - eine Einführung -

Einführung in die Computerlinguistik Einführung in Perl (1)

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Einführung in die Computerlinguistik Einführung in Perl (2) reguläre Ausdrücke

Automatentheorie und formale Sprachen Pumping-Lemma für reguläre Sprachen

Die Nerode-Relation und der Index einer Sprache L

Reguläre Ausdrücke. Reguläre Ausdrücke = Regular Expressions = reg.exp./regexp/regexp = RE

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Das Pumping-Lemma Formulierung

Einführung in die Computerlinguistik Kontextfreie Grammatiken und. Kellerautomaten. Dozentin: Wiebke Petersen

Decision Tree Learning

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

/ Vortrag Unix-AG

Theorie der Informatik

Klausur zur Vorlesung Grundbegriffe der Informatik 31. August 2009 mit Lösunsgsvorschlägen

Formale Methoden 1. Gerhard Jäger 23. Januar Uni Bielefeld, WS 2007/2008 1/18

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Typ-3-Sprachen. Das Pumping-Lemma

Propädeutikum Programmierung in der Bioinformatik

Webengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13

Grundlagen der Theoretischen Informatik

Einführung in die Computerlinguistik reguläre Sprachen und endliche Automaten

Zentralübung zur Vorlesung Theoretische Informatik

Einführung in die Computerlinguistik reguläre Sprachen und endliche Automaten

Einführung in PERL 2 Reguläre Ausdrücke

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Übung zur Vorlesung Theoretische Information. Pumping Lemma

3 Regular expressions

Formale Methoden 2 LVA ,

Das Pumping Lemma der regulären Sprachen

Proseminar UNIX Tools. Ferdinand Beyer

Einführung in die Computerlinguistik Tokenizer und Textstatistik mit Perl

Einführung in die Computerlinguistik Tokenizer und Textstatistik mit Perl

Grenzen der Regularität

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

4. Übung zur Vorlesung Informatik III am

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q,

Theoretische Informatik. Alphabete, Worte, Sprachen

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

Formale Sprachen, Automaten, Prozesse SS 2010 Musterlösung - Übung 1 M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder

Theoretische Grundlagen der Informatik

Die mathematische Seite

Vorlesungsmitschrift zur Vorlesung Theoretische Informatik I vom 23. Juni Christian Franz

Effiziente Algorithmen 2

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Berechenbarkeitstheorie 7. Vorlesung

Automaten, Spiele, und Logik

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012)

Python für Linguisten

Einführung in die Computerlinguistik Tokenizer und Textstatistik mit Perl

Teil VII. Scientific Computing in Computer Science, Technische Universität München

Einführung in die Computerlinguistik Morphologie (morphembasiert mit Transduktoren)

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Übersicht. Einführung in Perl Operatoren - Richtigstellung Mustersuche II. Richtigstellung Operatoren (2) Richtigstellung Operatoren (1)

1. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Endliche Automaten Jörg Roth 101

Was bisher geschah. Modellierung von Aussagen durch Logiken. Modellierung von Daten durch Mengen

Formale Sprachen und Komplexität, SS 18, Prof. Dr. Volker Heun. Übungsblatt 4. Abgabe: bis Mo Uhr

Einführung in die Computerlinguistik Einführung in Python (3) Tokenizer und Textstatistik

Beispiel: A d zum Automaten, der OTTO im Text erkennt. Zur Erinnerung: der nichtdeterministische Automat sieht so aus:

Algorithmische Bioinformatik 1

Einführung in die Theoretische Informatik

Lösungsvorschläge zur Klausur zur Vorlesung Grundbegriffe der Informatik 7. September 2010

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Einstieg in die Informatik mit Java

Einführung in die Computerlinguistik Berechenbarkeit, Entscheidbarkeit, Halteproblem

Transkript:

Einführung in die Computerlinguistik Pumpinglemma für reguläre Sprachen Dozentin: Wiebke Petersen 24.11.2009 Wiebke Petersen Einführung CL (WiSe 09/10) 1

Pumping-lemma für reguläre Sprachen Lemma (Pumping-Lemma) Sei L eine unendliche reguläre Sprache, dann gilt für jedes genügend lange Wort z L, daÿ es so in Teilworte z = uvw (u, w Σ, v Σ + ) zerlegt werden kann, dass jedes der Worte uv i w L (i 0) ein Wort der Sprache L ist. Beweisidee: Wenn ein Wort länger ist, als der Automat Zustände hat, dann muÿ bei der Verarbeitung des Wortes ein Zustand zweimal besucht werden. Es gibt somit eine Schleife, die beliebig oft durchlaufen werden kann; das Wort kann in dem Schleifenbereich aufgepumpt werden. Wiebke Petersen Einführung CL (WiSe 09/10) 2

L = {a n b n : n 0} ist nicht regulär L = {a n b n : n 0}: L ist unendlich. Wäre L regulär, dann müÿte es für genügend lange Worte die geforderte pumpbare Zerlegung geben: aber Wiebke Petersen Einführung CL (WiSe 09/10) 3

L = {a n b n : n 0} ist nicht regulär L = {a n b n : n 0}: L ist unendlich. Wäre L regulär, dann müÿte es für genügend lange Worte die geforderte pumpbare Zerlegung geben: aber 1 das pumpbare Teilwort kann nicht nur aus a's bestehen, sonst würden beim Pumpen zuviele a's entstehen (aa(aa) 2 bbbb = aaaaaabbbb). Wiebke Petersen Einführung CL (WiSe 09/10) 3

L = {a n b n : n 0} ist nicht regulär L = {a n b n : n 0}: L ist unendlich. Wäre L regulär, dann müÿte es für genügend lange Worte die geforderte pumpbare Zerlegung geben: aber 1 das pumpbare Teilwort kann nicht nur aus a's bestehen, sonst würden beim Pumpen zuviele a's entstehen (aa(aa) 2 bbbb = aaaaaabbbb). 2 das pumpbare Teilwort kann nicht nur aus b's bestehen, sonst würden beim Pumpen zuviele b's entstehen. (aaaab(bb) 2 b = aaaabbbbbb). Wiebke Petersen Einführung CL (WiSe 09/10) 3

L = {a n b n : n 0} ist nicht regulär L = {a n b n : n 0}: L ist unendlich. Wäre L regulär, dann müÿte es für genügend lange Worte die geforderte pumpbare Zerlegung geben: aber 1 das pumpbare Teilwort kann nicht nur aus a's bestehen, sonst würden beim Pumpen zuviele a's entstehen (aa(aa) 2 bbbb = aaaaaabbbb). 2 das pumpbare Teilwort kann nicht nur aus b's bestehen, sonst würden beim Pumpen zuviele b's entstehen. (aaaab(bb) 2 b = aaaabbbbbb). 3 das pumpbare Teilwort kann nicht aus a's und b's bestehen, da beim Pumpen die Sortierung der a's und b's verloren ginge. (aaa(ab) 2 bbb = aaaababbbb). Wiebke Petersen Einführung CL (WiSe 09/10) 3

Suche nach allen Wortformen des Wortes Student Wiebke Petersen Einführung CL (WiSe 09/10) 4

Suche nach allen Wortformen des Wortes Student Student Studenten Studentin Studentinnen Wiebke Petersen Einführung CL (WiSe 09/10) 4

Suche nach allen Wortformen des Wortes Student Student Studenten Studentin Studentinnen 4 Suchstrings oder 1 regulärer Ausdruck: Wiebke Petersen Einführung CL (WiSe 09/10) 4

Suche nach allen Wortformen des Wortes Student Student Studenten Studentin Studentinnen 4 Suchstrings oder 1 regulärer Ausdruck: Student(ɛ+en+in+innen) Student(ɛ+en+in(ɛ+nen)) Wiebke Petersen Einführung CL (WiSe 09/10) 4

Wichtige Begrie zur Evaluation von Suchanfragen true positive (tp) true negative (tn) false positive (fp): Studentenwohnheim false negative (fn): Er traf einen Studenten. precision recall accuracy Wiebke Petersen Einführung CL (WiSe 09/10) 5

Wichtige Begrie zur Evaluation von Suchanfragen true positive (tp) true negative (tn) false positive (fp): Studentenwohnheim false negative (fn): Er traf einen Studenten. precision = recall accuracy tp tp+fp Wiebke Petersen Einführung CL (WiSe 09/10) 5

Wichtige Begrie zur Evaluation von Suchanfragen true positive (tp) true negative (tn) false positive (fp): Studentenwohnheim false negative (fn): Er traf einen Studenten. precision = recall = accuracy tp tp+fn tp tp+fp Wiebke Petersen Einführung CL (WiSe 09/10) 5

Wichtige Begrie zur Evaluation von Suchanfragen true positive (tp) true negative (tn) false positive (fp): Studentenwohnheim false negative (fn): Er traf einen Studenten. precision = recall = tp tp+fn accuracy = tp tp+fp tp+tn tp+fp+tn+fn Wiebke Petersen Einführung CL (WiSe 09/10) 5

Regex: Reguläre Ausdrücke in Perl-Notation (1) String (Sequenz von Symbolen): /Student/ /student/ /1234/ Wiebke Petersen Einführung CL (WiSe 09/10) 6

Regex: Reguläre Ausdrücke in Perl-Notation (1) String (Sequenz von Symbolen): /Student/ /student/ /1234/ Disjunktion: /(Student student)/ Wiebke Petersen Einführung CL (WiSe 09/10) 6

Regex: Reguläre Ausdrücke in Perl-Notation (1) String (Sequenz von Symbolen): /Student/ /student/ /1234/ Disjunktion: /(Student student)/ Zeichenklasse: /[aa]/ = /(a A)/ /[1-4]/= /[1234]/ = /(1 2 3 4)/ /[a-z]/: Kleinbuchstabe /[A-D]/= /[ABCD]/ Wiebke Petersen Einführung CL (WiSe 09/10) 6

Regex: Reguläre Ausdrücke in Perl-Notation (1) String (Sequenz von Symbolen): /Student/ /student/ /1234/ Disjunktion: /(Student student)/ Zeichenklasse: /[aa]/ = /(a A)/ /[1-4]/= /[1234]/ = /(1 2 3 4)/ /[a-z]/: Kleinbuchstabe /[A-D]/= /[ABCD]/ Negation: /[^a-z]/ kein Kleinbuchstabe /[^a]/ nicht `a' /[^a^b]/ = /[^ab]/ nicht `a' und nicht `b' Wiebke Petersen Einführung CL (WiSe 09/10) 6

Regex: Reguläre Ausdrücke in Perl-Notation (2) Zähler:?: Eine oder keine Instanz des Vorangegangenen (/colou?r/) *: beliebig viele Instanzen d.v. +: beliebig viele, aber mindestens eine Instanz d.v. {n}: genau n Instanzen d.v. {n,}: mindestens n Instanzen d.v. {n,m}: mindestens n und höchstens m Instanzen d.v. Wiebke Petersen Einführung CL (WiSe 09/10) 7

Regex: Reguläre Ausdrücke in Perl-Notation (2) Zähler: Anker:?: Eine oder keine Instanz des Vorangegangenen (/colou?r/) *: beliebig viele Instanzen d.v. +: beliebig viele, aber mindestens eine Instanz d.v. {n}: genau n Instanzen d.v. {n,}: mindestens n Instanzen d.v. {n,m}: mindestens n und höchstens m Instanzen d.v. /^/: Zeilenbeginn /$/: Zeilenende /\b/: Wortgrenze Wiebke Petersen Einführung CL (WiSe 09/10) 7

Regex: Reguläre Ausdrücke in Perl-Notation (2) Zähler: Anker: sonstige:?: Eine oder keine Instanz des Vorangegangenen (/colou?r/) *: beliebig viele Instanzen d.v. +: beliebig viele, aber mindestens eine Instanz d.v. {n}: genau n Instanzen d.v. {n,}: mindestens n Instanzen d.v. {n,m}: mindestens n und höchstens m Instanzen d.v. /^/: Zeilenbeginn /$/: Zeilenende /\b/: Wortgrenze /./: beliebiges Zeichen (wildcard) /\n/: Zeilenumbruch /\s/: whitespace (Leerzeichen, Tabulator,... ) / /: Leerzeichen /\t/: Tabulator geschützte Zeichen: \.,\?,\$,... Wiebke Petersen Einführung CL (WiSe 09/10) 7

Präzendenzhierarchie Klammern: ( ) Zähler:?, *, +, {n} Strings und Anker: tor, ^, $, \b Disjunktion: Greedy Perl-Regex Quantoren sind greedy, das heiÿt, sie matchen immer den längstmöglichen String. (Beispiel: [a-z]* Computerlinguistik) Disjunktion nicht kommutativ: eagerness Disjunktionen in Perl-Regex werden von links nach rechts abgearbeitet (eagerness= der erste Match von links nacht rechts gewinnt). (Beispiel: m(o? a) m(a o?)) Wiebke Petersen Einführung CL (WiSe 09/10) 8

Anfangsbeispiel Student(ɛ+en+in(ɛ+nen)) Wiebke Petersen Einführung CL (WiSe 09/10) 9

Anfangsbeispiel Student(ɛ+en+in(ɛ+nen)) /\s(student((en)? in(nen)?))\s/ Wiebke Petersen Einführung CL (WiSe 09/10) 9

Anfangsbeispiel Student(ɛ+en+in(ɛ+nen)) /\s(student((en)? in(nen)?))\s/ Problem: Zeilenanfang, Zeilenende, Satzende Wiebke Petersen Einführung CL (WiSe 09/10) 9

Anfangsbeispiel Student(ɛ+en+in(ɛ+nen)) /\s(student((en)? in(nen)?))\s/ Problem: Zeilenanfang, Zeilenende, Satzende /( ^)Student(en in(nen)?)?(\. $)/ Wiebke Petersen Einführung CL (WiSe 09/10) 9

Anfangsbeispiel Student(ɛ+en+in(ɛ+nen)) /\s(student((en)? in(nen)?))\s/ Problem: Zeilenanfang, Zeilenende, Satzende /( ^)Student(en in(nen)?)?(\. $)/ Problem: Aufeinanderfolgen zweier Treer Studentin Student Wiebke Petersen Einführung CL (WiSe 09/10) 9

Anfangsbeispiel Student(ɛ+en+in(ɛ+nen)) /\s(student((en)? in(nen)?))\s/ Problem: Zeilenanfang, Zeilenende, Satzende /( ^)Student(en in(nen)?)?(\. $)/ Problem: Aufeinanderfolgen zweier Treer Studentin Student /\bstudent(en in(nen)?)?\b/ Wiebke Petersen Einführung CL (WiSe 09/10) 9

Gruppenübung zur Suche mit regulären Ausdrücken Bilden Sie Gruppen von 3-5 Personen. Pro Gruppe bilden Sie zwei Teilgruppen. Aufgabe der Teilgruppen: 1. Teilgruppe erstellt einen Perl-Regex, der auf die zu suchenden Strings matcht (manchmal ist es nicht vermeidbar, dass Teile des Kontextes der zu suchenden Strings mitmatchen) 2. Teilgruppe überlegt sich Strings, die von dem Perl-Regex nicht erfaÿt oder fälschlicherweise erfaÿt werden. Nach jeder Teilaufgabe wechseln Sie die Rollen (Aufgaben auf der kommenden Folie). Beachten Sie, dass sich die meisten der Aufgaben mit den behandelten Mitteln nicht vollständig lösen lassen. Suchen Sie eine optimale Lösung. Wiebke Petersen Einführung CL (WiSe 09/10) 10

Gruppenübung zur Suche mit regulären Ausdrücken Erstellen Sie Perl-Regexe für die folgenden Aufgaben: 1 Suche aller Vorkommnisse der Wortform ein 2 Suche aller Vorkommnisse von Wortformen des Wortes ein 3 Suche aller Nomina in einem deutschen Text 4 Suche aller Abkürzungen in einem deutschen Text 5 Suche wohlgeformter Email-Adressen (http://de.wikipedia.org/wiki/e-mail-adresse) 6 Überpfüfung, ob ein Password die folgenden Bedingungen erfüllt: (a) bsteht aus mindestens 6 Zeichen, (b) enthält mindestens 2 Buchstaben (c) enthält mindestens einen Groÿbuchstaben, (d) enthält mindestens 1 Zier, (e) enthält mindestens ein Sonderzeichen Testen Sie Ihre Perl-Regexe mit einem der folgenden Tools: http://regexpal.com/ http://www.myregextester.com/ http://regex.larsolavtorvik.com/ Wiebke Petersen Einführung CL (WiSe 09/10) 11

Hausaufgabe (Abgabe: 1.12.2009) (für BN: 3 und entweder 1.1 oder 1.2) 1 Erstellen Sie einen Perl-Regex, der folgendes ndet: 1 Nomina in einem deutschen Text 2 Abkürzungen in einem deutschen Text Beschreiben Sie genau, in welchen Fällen Ihr Perl-Regex zu falsch positiven oder falsch negativen Treern führt. 2 Lösen Sie Aufgabe 6 von der vorangegangenen Folie 3 Geben Sie zu den folgenden Perl-Regexen formale reguläre Ausdrücke nach der Denition auf Folie 7 aus EinfCl_3.pdf an: 1 /(ab){3}/ 2 /[aa]+/ 3 /[Ee]in(e(n r m s)?)?/ 4 Wiederholung: Geben Sie einen endlichen Automaten an, der die durch den Regex /[aa]+/ beschriebene Sprache akzeptiert. Nennen Sie ein Wort, das akzeptiert wird und begründen Sie, warum es von dem Automaten akzeptiert wird. Geben Sie die Übergangstabelle für den Automaten an. Wiebke Petersen Einführung CL (WiSe 09/10) 12

Nützliches Material Übungstutorium: http://www.regenechsen.de/phpwcms/index.php?regex_allg Überblick: http://regexlib.com/cheatsheet.aspx Literatur: Jerey E. F. Friedl: Reguläre Ausdrücke. O'Reilly, 2. Auage 2007. Wiebke Petersen Einführung CL (WiSe 09/10) 13