Ich kann folgende Aufgabe nicht lösen.
Sie erhalten eine Menge Dateien (Plenarsitzungsprotokolle), die Sie für die weitere Verarbeitung mittels einem Perl-Programm aufarbeiten sollen. Das Ergebnis sollte in einer Datei stehen.
1. Aufgabe Teil1 Aufbereitung zur Tokenisierung
Zuerst sind in jeder Datei Metadaten aufgelistet, diese sollen in der Ausgabedatei XML-artig aufbereitet stehen, dabei sollen innerhalb der Tags alle Leerzeichen gelöscht bzw. durch Unterstriche ersetzt werden (s.u.)
Der Soll-Kopf einer solchen Datei soll wie folgt aussehen (die hier auftretenden Werte finden sich in der Datei 17033.txt, natürlich sollen die Werte variable aus den entsprechenden Dateien ausgelesen und hier eingesetzt werden:
<file>
<head>
<name="17033.txt/(Plenarprotokoll_Nr.)/>
<source="(Deutscher_Bundestag)"/>
<type="(Stenografischer_Bericht)"/>
<content="(33.Sitzung)"/>
<place="(Berlin)"/>
<date="(Mittwoch,24.März_2010)"/>
</head>
<body>
Im <body> sollen auch Namen (mit dem Tag <ne>)gekennzeichnet werden, dazu erhalten Sie eine Tabelle, die die Namen aller Bundestagsabgeordneten, aber auch deren Parteizugehörigkeit und weitere Daten enthält, die für Sie jedoch nicht relevant sind. Ein Beispiel: <ne>Sabine_Leutheuser-Schnarrenberger</ne>
Weiterhin sollen alle Leerzeilen im Body gelöscht werden, Absätze jedoch erhalten bleiben.
Am Ende jeder Datei muss der <body> und der <file> tag abgeschlossen werden:
</body>
</file>
Die Ausgabedatei von Teil 1 sollten Sie abgeben, sowie Ihr Perl-Programm dazu
Teil 2: Tokenisierung
Die Ausgabedatei von Teil1 soll nun tokenisiert werden, d.h. ein Wort pro Zeile sollte erscheinen. Die in Teil1 beschriebenen XML-tags sollen in separaten Zeilen stehen, dabei können die oben eingefügten Unterstriche wieder durch Leerzeichen ersetzt werden, z.B.
<ne>
Sabine Leutheusser-Schnarrenberger
</ne>
Die Tokenisierung sollte so fein wie möglich erfolgen, schauen Sie sich den Text an - evtl. sind weitere Eigennamen, wie z.B. "DIE LINKE" bzw. "DIE LINKE." oder "Deutsche Bahn" noch als Namen zu kennzeichnen und jeweils in eine Zeile zu schreiben. Dabei können Sie z.B. prüfen, ob zwei Wörter, die aufeinander folgen und beide groß geschrieben sind, meistens Namen darstellen und für welche Ausnahme dies nicht gilt. Im Ergebnis sollten Sie die Ihnen zur Verfügung gestellte Namenstabelle erweitern und mit abgeben.
Bei Aufgabe 2 ist der Erfolg nicht so wichtig, allerdings sollten Sie aufgetretende Fehler und Probleme, die Sie nicht beheben können, dokumentieren. Die erfolgreichen Lösungen dokumentieren Sie bitte im Perl Programm.
Zur Übung noch zwei Hinweise:
In Windows Dateien tauchen öfter Carriage Returns und BOMs (Byte Order Marks) auf, die Sie entfernen sollten:
$_ =~ s/\r//g;
$_ =~ s/\xEF\xBB\xBF//g;
modedit Editiert von GwenDragon: Titel geändert; verschoben
Last edited: 2011-06-14 13:16:32 +0200 (CEST)