EiP Übung

Ähnliche Dokumente
EiP Übung

ACHTE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

Musterlösung Klausur 11/ Fragen zu utf-8: 1.1. Welche zwei Methoden gibt es, um STDIN und STDOUT auf utf-8 zu setzen.

EiP Übung

KLAUSUR ZUM BACHELORMODUL,,EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2011/12, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

Musterlösung Klausur 13/

KLAUSUR ZUM BACHELORMODUL EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2013/14, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

KLAUSUR ZUM BACHELORMODUL EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2015/16, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

KLAUSUR ZUM BACHELORMODUL EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2016/17, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

EiP Übung

Kommandozeileneingabe. Einführung in Perl Kommandozeileneingabe etc. Kommandozeileneingabe Optionen. Kommandozeileneingabe Bsp (1)

SIEBTE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

EiP Übung

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Musterlösung

FÜNFTE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

perl sorting HOWTO.txt

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

ÜBUNG 3 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

07 Funktionen (Teil I)

10 Block 10: Verwendung von Modulen in Perl

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

Referenz (1) Einführung in Perl Referenzen. Zwei Typen von Referenz. Referenz (2) Referenz = Verweis auf andere Daten

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

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Perlkurs Dateiverarbeitung. Dr. Marc Zapatka Deutsches Krebsforschungszentrum Molekulare Genetik Gruppenleiter Bioinformatik

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).

Komplexe Datenstrukturen

Variablen - %Hashes Was ist ein Hash? 'Assoziative Arrays'

ÜBUNG 6 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

Nachtrag: Funktionen ord und chr. Einführung in Perl für Linguisten Dateihandle, etc. Nachtrag: for und foreach (1) Nachtrag: for und foreach (2)

EiP Übung Sichern Sie im Verzeichnis aufg3 den Inhalt des Artikels im Wochenmagazin "der Freitag" über google in der Datei artikel.

Kommunikation von Prozessen: Signale und Pipes

Öffnen einer Datei. Programm mit einer Fehlermeldung beendet. open( IN, "datei.txt" ) or die( "open-fail: $!" );

Komplexe Datenstrukturen

Einführung in Perl O'REILLY" 2. Auflage. Randal L. Schwartz & Tom Christiansen. Deutsche Übersetzung von Matthias Kalle Dalheimer

Reguläre Ausdrücke Suchmuster, Pattern Matching

1 Bizz Buzz Woof (ca =18 Punkte) def read file(file_in): fp = open(file_in, r ) l = fp.read() fp.close() return l

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Sequentielle Textdateien HARALD NAHRSTEDT. Erstellt am

Informatik II Übung 2

Die Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):

Dateneingabe und Transformation Übersicht

Teil III: Evaluationstest

Fehlersuche. Einführung in Perl Debugger. Start des Debuggers (1) Beispiel (1) #! /usr/local/bin/perl -wd. (M-x perl-mode) - Menü: Perl - Debugger

Programmieren mit Python Modul 4. Funktionen. Selbstständiger Teil

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

1 Berechnung von Summen (ca = 10 Punkte)

Übungen zu Computeranwendung und Programmierung WS 17/18. CSV-Dateien einlesen und die darin enthaltenen Daten auswerten.

DHBW Karlsruhe, Angewandte Informatik Programmieren in JAVA W. Geiger, T. Schlachter, C. Schmitt, W.

Komplexe Datenstrukturen

5. Übungsblatt zu Algorithmen I im SoSe 2016

Wh.: for-schleife. Listen (1) Wh.: Schachtelung von for-schleifen. Listen (2) Bereichsoperator.. Programmierkurs für absolute Anfänger

Einführung in die Programmierung. (K-)II/Wb17

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

Einführung in die Computerlinguistik Tokenizer und Textstatistik mit Perl

Schreibweise in IGOR: 6.02E-23

GI Vektoren

Einführung in die Computerlinguistik Tokenizer und Textstatistik mit Perl

Tutoraufgabe 1 (Hoare-Kalkül):

6 UTF8 und Stringverarbeitung

Transkript:

Musterlösung zu Blatt 8: 1. Spalten Sie mit split alle Zeilen der Datei wittgenstein.txt in Wörter auf und erzeugen Sie eine Frequenzliste der Wörter. 1.1 Sortieren Sie die Frequenzliste nach der Häufigkeit und speichern Sie die nach der Häufigkeit sortierten keys im Array @alle_sortierten_woerter # Programm: erzeugt Frequenzliste und speichert nach Häufigkeit in @alle_sortierten_woerter my ($zeile, %lexikon, @woerter, $element, @alle_sortierten_woerter); #gibt Fehlermeldung aus wenn Datei nicht gefunden wurde @woerter = split(/[\pz\pp]+/, $zeile); foreach $element (@woerter) $lexikon$element++; @alle_sortierten_woerter = sort $lexikon$a <=> $lexikon$b keys %lexikon; foreach $element (@alle_sortierten_woerter) print "Wort $element mit der Häufigkeit $lexikon$element\n"; 1

2. Schreiben Sie ein PERL Programm, das alle großgeschriebenen Wörter im Array @alle_sortierten_woerter findet und die Wörter zusammen mit Ihrer Häufigkeit in der Datei "grosse_woerter.txt" speichert. # Programm: speichert große Wörter in grosse_woerter.txt my ($zeile, %lexikon, @woerter, $element, @alle_sortierten_woerter); open(ausgabe, ">:utf8", "grosse_woerter.txt") or die "File not found!"; @woerter = split(/[\pz\pp]+/, $zeile); foreach $element (@woerter) $lexikon$element++; @alle_sortierten_woerter = sort $lexikon$a <=> $lexikon$b keys %lexikon; foreach $element (@alle_sortierten_woerter) if ($element =~ /^\plu/) #nur grosser Anfangsbuchstabe #if ($element =~ /^\plu+$/) #Wort mit nur Großbuchstaben print AUSGABE "Das Wort $element mit der Häufigkeit $lexikon$element.\n"; close AUSGABE; 2

3. Wie lauten die regulären Ausdrücke, die folgende Wörter im Array @alle_sortierten_woerter finden (geben Sie nur den regulären Ausdruck an!). Testen Sie Ihre Ausdrücke mit Ihrem PERL-Programm aus 3.1. alle Wörter mit 3 Buchstaben $element =~ /^\pl3$/ 3.2. alle Wörter in denen ein Selbstlaut vorkommt. $element =~ /[aeiouäöü]/i oder: $element =~ /^[^aeiouäöü]*[aeiouäöü][^aeiouäöü]*s$/i) (genau ein Selbstlaut) 3.3. alle Wörter mit Umlauten $element =~ /[äöü]/i 3.4. alle Wörter die mit 'net' enden. $element =~ /net$/ 3.5. alle Wörter die drei bis fünf Buchstaben lang sind und mit einem Vokal beginnen. $element =~ /^[aeiouäöü]\pl2,4$/i 3.6. alle Wörter die mit einem Großbuchstaben beginnen und mit dem Suffix 'ung' enden. $element =~ /^\plu\pl*ung$/ oder $element =~ /^\plu\pl*ung\pl*$/ (auch z.b. Umleitungen und Umleitungs) 3.7. alle Wörter die nur aus Großbuchstaben bestehen und maximal 8 Buchstaben lang sind. $element =~ /^\plu1,8$/ 3.8. alle Wörten in denen kein Vokal vorkommt. $element =~ /^[^aeiouäöü]+$/i oder $element!~ /[aeiouäöü]/i 3

4. Schreiben Sie ein PERL Programm, das die Anzahl aller kleingeschriebenen Wörter in der Datei wittgenstein.txt ermittelt. Geben Sie die Anzahl aus. # Programm: liest die Anzahl alle kleingeschriebenen Wörter aus my ($zeile, %lexikon, @woerter, $element); my $zaehler = 0; @woerter = split(/[\pz\pp]+/, $zeile); foreach $element (@woerter) $lexikon$element++; foreach $element (sort $lexikon$a <=> $lexikon$b keys %lexikon) if ($element =~ /^\pll/) $zaehler++; print "Anzahl kleingeschriebener Wörter: $zaehler\n"; 4

5. Geben Sie alle Zeilen der Datei aus, die mit einem Grossbuchstaben beginnen. # Programm: gibt alle Zeilen aus die mit Grossbuchstaben beginnen my ($zeile); if($zeile =~ /^\plu/) print"$zeile\n"; 6. Geben Sie alle Zeilen der Datei aus, in denen das Wort "der", "die" oder "das" vorkommt. # Programm: gibt alle Zeilen aus in denen der/ die/ das vorkommt my ($zeile); if($zeile =~ /\b[dd]er\b \b[dd]ie\b \b[dd]as\b/) # oder: #if($zeile =~ /\b[dd](er ie as)\b/) print"$zeile\n"; 5

7. Geben Sie alle Wörter der Datei aus, die von einem Satzzeichen gefolgt sind! # Programm: gibt alle Wörter aus die von einem Satzzeichen gefolgt sind my ($zeile, %lexikon, @woerter, $element); @woerter = split(/ /, $zeile); # dafür müssen wir Satzzeichen in den Hash mitaufnehmen foreach $element (@woerter) $lexikon$element++; foreach $element (sort $lexikon$a <=> $lexikon$b keys %lexikon) if ($element =~ /\pl+(\pp \pz)$/) print "$element\n"; 6

8. Schreiben Sie ein Programm, das ein "Lieblingswort" einliest und nachsieht, ob das von rückwärts gelesene Lieblingswort als Teil eines Wortes in einer großen Datei vorkommt. Beispiel: "LOVE" => "EVOL" => Revolution => "R.EVOL.ution" # Programm: testet ob rückwärts gelesenes Wort in Wort der Datei vorkommt my ($zeile, %lexikon, @woerter, $element, $elementneu); open(artikel, "<:utf8", "sz_1mio.txt") or die "File not found!"; @woerter = split(/[\pz\pp]+/, $zeile); foreach $element (@woerter) $lexikon$element++; print"bitte geben Sie Ihr Lieblingswort ein:>>>\n"; my $liebling = <>; chomp($liebling); $liebling = lc($liebling); my $lieblingrw = reverse($liebling); print $lieblingrw; foreach $element (sort $lexikon$a <=> $lexikon$b keys %lexikon) if ($element =~ /($lieblingrw)/) $elementneu = uc($lieblingrw); $elementneu = ".$elementneu."; $element =~ s/$1/$elementneu/; print "$element\n"; 7