Blockseminar Einführung in die Korpuslinguistik Seminarleitung: Yvonne Krämer, M.A. REGULAR EXPRESSIONS RegExp Was ist ein regulärer Ausdruck? = Regular Expressions = reg.exp./regexp/regexp = RE Ein regulärer Ausdruck beschreibt ein bestimmtes Textmuster in einer abgekürzten oder unterspezifizierten Weise. Dazu sind eine Reihe von Metazeichen definiert. (Lemnitzer/Zinsmeister 2010: 89) Mit regulären Ausdrücken lassen sich Variationen erfassen und komplexe Suchanfragen formulieren. 1
Metazeichen Zeichenklassen [abc] [a-z] [a-za-z] [a-zöüäß0-9] Findet eines der Zeichen a,b,c Findet einen beliebigen Kleinbuchstaben Findet einen Klein- oder Großbuchstaben von a/a bis z/z Findet einen beliebigen Kleinbuchstaben (inklusive Umlaute) oder eine Ziffer Metazeichen Platzhalter/Wildcard. Steht für ein beliebiges Zeichen Alternation Gruppierung () Negation ^ Steht für alternative Muster Fasst Inhalte zusammen, markiert den Einzugsbereich Schließt Zeichen aus 2
Metazeichen Quantoren/Operatoren? + * {n,m} Voranstehendes Zeichen kommt 0- oder 1-mal vor Voranstehendes Zeichen kommt mindestens 1-mal bis -mal vor Voranstehendes Zeichen kommt 0-mal bis -mal vor Voranstehendes Zeichen kommt n- bis m-mal vor Metazeichen Spezielle Zeichen \r \n \t \s bzw. \S \w bzw. \W \d bzw. \D Zeilenschaltung (r: Mac; n: Unix) Ist man nicht sicher, welche Art der Zeilenschaltung im Dokument vorhanden ist, macht man einfach eine Klasse daraus: [\r\n] Tabulator Jede Art von Leerzeichen bzw. jede Art von Nicht-Leerzeichen (Tabulator, Zeilenschaltung ) Jeder Wort -Buchstabe bzw. Nicht- Wort -Buchstabe (also a-z, A-Z, 0-9, _ und wenige mehr) Zahlen bzw. Nicht-Zahlen 3
Escape/Maskieren Will man innerhalb eines regulären Ausdrucks nach Zeichen suchen, die auch als Metazeichen definiert sind, so maskiert man das entsprechende Zeichen mit einem Backslash. Beispiele:. Findet eine beliebiges Zeichen \. Findet das Zeichen. ( Gruppiert die nachfolgenden Zeichen \( Findet öffnende Klammern Beispielabfragen Tokio oder Tokyo? Alternation: (Tokio Tokyo) oder Tok(i y)o Zeichenklasse: Tok[iy]o Fiktive Variante Tokiio Tok[ii]o oder Tok[iii]o oder Tok[i ii]o? Gibt es ein Wort, das mit X, Y oder Z beginnt und nur 2 a) (X Y Z). b) [XYZ]. oder 3 Buchstaben hat? a) (X Y Z).. b) [XYZ].. c) (X Y Z).? d)[xyz].? 4
Beispielabfragen Welche Wörter enden auf das Suffix lich?.+(lich) Wie finde ich zusätzlich emphatische Varianten? z.b. Tor und Toooor und TOOOORRRR (T t)(o O)+(r R)+ Beispielabfragen http:\/\/(www\.)?.+?\.com Dieses Suchmuster findet Internetadressen der Art http://www.webpage.com \d\d\d\d-\d+-\d+ Dieses Suchmuster findet Datumsangaben der Art 2015-07-10 5
Bis wohin wird gesucht? Bei TIGERSearch und CQP bezieht sich das Suchmuster auf ein Wort. Syntax und Mächtigkeit können variieren finden auch in Programmiersprachen, diversen Werkzeugen oder beim Suchen & Ersetzen ggf. mit unterschiedlicher Syntax und Mächtigkeit Anwendung. Pattern matching Den Abgleich des Musters mit dem vorliegenden Material nennt man pattern matching. Wichtig ist beim Formulieren von regulären Ausdrücken, dass man sich nicht nur fragt, mit welchem Muster finde ich, was ich suche, sondern vor allem auch: Was findet dieses Muster außerdem alles und wie muss es ggf. eingeschränkt werden? (Perkuhn/Keibel/Kupietz 2012: 36) Intendierte Tatsächliche Treffermenge Precision und Recall RegExp in der CWB Über Query Mode = Simple Query:. ist kein Metazeichen, stattdessen steht? für ein beliebiges Zeichen Suche nach speziellen Zeichen (z.b. /d) ist möglich Alternation und Zeichenklassen werden folgendermaßen ausgedrückt: [s,z] = s oder z [u,] = mit oder ohne u [this,that] = this oder that z.b. color/colour: colo[u,]r Siehe: CQPweb tutorial # 03: wildcards in queries 6
RegExp in der CWB Über Query Mode = CQP syntax: Die Metazeichen entsprechen (größtenteils) den eingangs erwähnten. Suchabfragen werden wie folgt strukturiert: [word= ] [lemma= ] [pos= ] Innerhalb der wird die Suchanfrage ggf. mit regulären Ausdrücken spezifiziert. Weiterführende Literatur http://www.regular-expressions.info/quickstart.html Wikipedia: Regulärer Ausdruck http://regexp-evaluator.de/tutorial/ http://www.bubenhofer.com/korpuslinguistik/kurs/ RegExp 7
Aufgaben/Übungen der Socken oder die Socke? der oder das Virus? Parfüm oder Parfum? das Joghurt bzw. Yoghurt oder der Joghurt bzw. Yoghurt? Lösungen z.b.: [word="(der die)"] [word="sock(e en)"] z.b.: [word="(der das)"] [word="virus"] z.b.: [word="parf(u ü)m"] z.b.: [word="(der das)"] [word="[yj]o(g gh)urt"] 8
Aufgaben/Übungen Finden Sie die 5 häufigsten attributiven Adjektive und die 5 häufigsten adverbialen bzw. prädikativen Adjektive die auf bar enden. Welche Arten von Zahlenangaben finden sich in Zeitungstexten? Welche Zahl ist die häufigste und welche Art von Zahlenangabe ist die häufigste? Finden Sie Wörter mit Vokalen, die sich mindestens doppeln. Lösungen z.b.: [lemma=".+(bar)" & pos="adja"] [lemma=".+(bar)" & pos="adjd"] z.b.: \d+ z.b.: [word=".+(a{2,5}) (o{2,5}) (e{2,5}) (i{2,5}) (u{2,5}).+"] 9