• Keine Ergebnisse gefunden

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

reguläre Ausdrücke

Dozentin: Wiebke Petersen

31.5.2010

(2)

Perl: In- und Output in Dateien

Einlesen aus einer Datei

open(INPUT, "<le.ext");

önet die Datei file.ext zum Lesen.

Mit

$line =<INPUT>;

schreiben Sie die erste Zeile der Datei in die Variable $line.

Mit

close(INPUT);

schlieÿen Sie die Datei.

Schreiben in eine Datei

open(OUTPUT, ">le.ext");

önet die Datei file.ext zum Schreiben.

Mit

print OUTPUT "text";

schreiben Sie text in die Datei.

Mit

close(OUTPUT);

schlieÿen Sie die Datei.

(3)

reguläre Ausdrücke in Perl

1 #! p e r l −w

2 p r i n t " P l e a s e e n t e r password : " ; 3 $password = <STDIN>;

4 chomp( $password ) ;

5 # While the e n t e r e d l i n e doesn ' t c o n t a i n "42"

6 w h i l e ( $password !~ /42/) { 7 p r i n t " Access d e n i e d . \ n" ;

8 p r i n t " P l e a s e e n t e r password : " ; 9 $password = <STDIN>;

10 chomp( $password ) ; 11 }

12 p r i n t " C o r r e c t password ! Welcome . " ;

reguläre Ausdrücke in Perl werden wie folgt eingeschlossen: /regex/

!~ fordert, dass der reguläre Ausdruck nirgendwo im String matcht

(4)

Schalter und Ersetzen

Schalter

/regex/g

führt die Suche nach regex wiederholt bis zum Ende des Strings aus.

/regex/i

ignoriert Groÿ- und Kleinschreibung.

Ersetzen

s/regex1/regex2/

ersetzt regex1 durch regex2.

1 $ t e x t = "The meat c o s t s 10 Mark , the f i s h c o s t s 15 Mark . " ; 2 $ t e x t =~ s/Mark/ Euro / ;

3 # "The meat c o s t s 10 Euro , the f i s h c o s t s 15 Mark . "

1 $ t e x t = "The meat c o s t s 10 Mark , the f i s h c o s t s 15 Mark . " ; 2 $ t e x t =~ s/Mark/ Euro /g ;

3 # "The meat c o s t s 10 Euro , the f i s h c o s t s 15 Euro . "

(5)

Gruppieren und Speichern

/(text)/

ndet und speichert text

Der erste Klammerinhalt wird in $1, der zweite in $2 u.s.w.

gespeichert.

1 # S u b s t i t u t i o n and g r o u p i n g

2 $sumM = 0 ; # i n i t i a l i z i n g the v a r i a b l e with z e r o 3 $sumE = 0 ; # i n i t i a l i z i n g the v a r i a b l e with z e r o 4 $ t e x t = "The meat c o s t s 10 Mark , the f i s h c o s t s 15 Mark . " ; 5 w h i l e ( $ t e x t =~ /(\ d+) Mark/g ) {

6 $sumM = $sumM + $1 ; 7 $sumE = $sumE + $1 / 2 ;

8 }

(6)

Übungseinheit

1

Überlegen Sie sich, wie das Programm namen.pl funktioniert (wählen Sie dazu namen.txt als Inputdatei) und ändern Sie es so, daÿ es die Namen in der Form Initial Nachname ausgibt.

2

Schreiben Sie ein Programm, das die Zahl der unbestimmten Artikel, die in einem Text vorkommen, zählt.

3

Schreiben Sie ein Programm, das alle Strophen des Liedes Auf

der Mauer auf der Lauer aus der ersten Strophe generiert.

(7)

Dialogsystem: Eliza (Weizenbaum 1966)

User: Men are all alike ELIZA: IN WHAT WAY

User: They're always bugging us about something or other ELIZA: CAN YOU THINK OF A SPECIFIC EXAMPLE?

User: Well, my boyfriend made me come here

ELIZA: YOUR BOYFRIEND MADE YOU COME HERE User: He says I'm depressed much of the time

ELIZA: I AM SORRY TO HEAR THAT YOU ARE DEPRESSED

Implementierungen:

http://www.hsweis.schule.neu-ulm.de/eliza/eliza3.html http://bs.cyty.com/menschen/e-etzold/archiv/science/rat.htm

(8)

Dialogsystem: Eliza (Weizenbaum 1966)

1

Wechsel von 1. zur 2. Person:

1 s/\ b I ( 'm| am)\ b / you a r e /g 2 s /\bmy\b / your /g

3 s /\ bmine \b / y o u r s /g

2

Generierung von Antworten:

1 s/ . * you a r e ( d e p r e s s e d | sad ) . * / i am s o r r y to h e a r you a r e $1/

2 s/ . * you a r e ( d e p r e s s e d | sad ) . * / why do you t h i n k you a r e $1/

3 s/ . * a l l . * / i n what way/

4 s/ . * a l w a y s . * / can you t h i n k o f a s p e c i f i c example /

(9)

Hausaufgabe (Abgabe: 10.6.2010

1

Schreiben Sie ein Programm, das ein Paÿwort abfragt und testet ob dieses die folgenden 3 Merkmale aufweist (verwenden Sie verschachtelte ifelse Anweisungen):

es ist zwischen 5 und 8 Zeichen lang und es endet auf einen Groÿbuchstaben und es enthält mindestens zwei Ziern.

2

ELIZA: Das Skript eliza.pl ist ein simples Eliza-Programm.

Überlegen Sie sich, wie man das Programm verbessern könnte (z.B. durch die Hinzunahme weiterer Antwortmöglichkeiten), und nehmen Sie mindestens eine Verbesserung vor. Bitte

dokumentieren Sie in ihrem Programm, worin Ihre Verbesserung

(10)

Weiterführende Informationen

Über den Turingtest

http://plato.stanford.edu/entries/turing-test/

Zum Loebner Preis

http://www.loebner.net/Prizef/loebner-prize.html Kritik am Loebner Preis von Stuart Shieber

http://www.eecs.harvard.edu/shieber/Biblio/Papers/

loebner-rev-html/loebner-rev-html.html Chatbot eines der Preisträger:

www.elbot.de

Referenzen

ÄHNLICHE DOKUMENTE

Zählen der Types: Anzahl unterschiedlicher Wortformen Wie oft kommt ein bestimmtes Wort im Text vor.. Tokens pro Type: Vorkommenshäugkeit

Fast 70 % aller Typen kommen höchstens 3 mal im Text vor (68,93%). Die Wörter, die höchsten 3 mal vorkommen, nehmen immerhin 5,24% des Gesamttextes ein.. Die 20 häugsten Wörter

Ablaut kann nicht als phonologische Regularität beschrieben werden, vergleiche: stoßen – stieß vs.. Problem:

ELIZA: YOUR BOYFRIEND MADE YOU COME HERE User: He says I'm depressed much of the time. ELIZA: I AM SORRY TO HEAR THAT YOU ARE

eine Computerdemonstration oder die Anleitung einer Gruppenaufgabe. • Jedes Referat wird im Vorfeld

Ein endlicher Automat ist deterministisch, wenn es, egal in welchem Zustand des Automaten man sich gerade befindet, für jede Eingabe aus dem Alphabet, immer einen eindeutigen

20 Minuten brauchte ich, um das Programm einzutippen, 2 Minuten zum Testen, 5 Minuten Syntaxfehler ausbessern, 2 Minuten Testen, no errors, 3 Minuten Compilieren und Linken,

§ Arbeiten Sie nicht mit der selben File als Input (Lesen durch Scanner) und Output (Schreiben mit PrintStream) zur selben Zeit. § Sie überschreiben die Input File und ersetzen