Strukturiertes Praktikum im Sommersemester 2021
Aktuelle Hinweise: Aufgrund der Pandemie und der damit verbundenen Einschränkungen in der Lehre wird das Praktikum mindestens bis Pfingsten als Online-Veranstaltung stattfinden. Bitte tragen Sie sich zeitnah in den Opal-Kurs ein, damit wir Sie per E-Mail erreichen können.
Überblick
In der Vorlesung Formale Systeme wurden kontextfreie Grammatiken als Modell zur Beschreibung formaler Sprachen eingeführt. Ziel dieses Praktikums ist die Anwendung kontextfreier Grammatiken in der natürlichen Sprachverarbeitung. Dazu werden wir aus Trainingsdaten eine Grammatik für die englische Sprache induzieren und einen Parser implementieren, der mithilfe dieser Grammatik Eingabesätze in ihre syntaktische Struktur zerlegt. Weiterhin werden wir verschiedene Methoden zur Verbesserung der Genauigkeit und der Laufzeit des Parsers untersuchen. Am Ende werden die genauesten und schnellsten Parser der Praktikumsteilnehmer in einem Wettbewerb gekürt.
Das Praktikum bietet eine Möglichkeit, die in den Vorlesungen Maschinelles Übersetzen natürlicher Sprachen und Parsing von natürlichen Sprachen vermittelten Konzepte am praktischen Beispiel zu vertiefen.
Organisation
Es gibt keine Einschreibung. Der Ablaufplan enthält alle relevanten Informationen:
- Einbringungsmöglichkeiten des Praktikums und Voraussetzungen,
- Teilaufgaben und deren Aufgabenstellungen,
- Termine der Tutorien und Abgabetermine der Teilaufgaben sowie
- die Dokumentation der erwarteten Kommandozeilenschnittstelle.
Es gibt einige verbindliche Tutorien, zu denen die Teilaufgaben des Praktikums vorgestellt werden. Die BigBlueButton-Links werden rechtzeitig per E-Mail an alle Eingeschriebenen bekanntgegeben. Die Einführungsveranstaltung findet am 19. April 2021 statt. Weitere Termine entnehmen Sie bitte dem Ablaufplan.
Materialien
An dieser Stelle werden Ihnen die Folien der Tutorien und weitere für das Praktikum benötigte Daten zur Verfügung gestellt. Der Zugriff auf die verlinkten Ressourcen ist ausschließlich im Netz der TU Dresden möglich. Informationen zur Verwendung von VPN finden Sie hier.
Folien der Tutorien
- Organisatorisches
- Folien zur Grammatikinduktion
- Folien zum Parsing
- Folien zu den Korpustransformationen
- Folien zu den Parseroptimierungen
Korpora
Als Trainings- und Testkorpus dienen annotierte Sätze des Wall Street Journals aus der Penn Treebank. Diese werden hier in aufbereiteter Form zur Verfügung gestellt. Bitte beachten Sie, dass die Lizenz der TU Dresden über die Nutzung der Penn Treebank Sie nicht zur Weitergabe dieser Daten berechtigt.
Die Daten sind wie folgt unterteilt:
- training.mrg
- Trainingskorpus (annotierte Sätze) für die Grammatinduktion.
- grammar.rules, grammar.lexicon, grammar.words
- Beispielgrammatik (binarisiert) für den Parser.
- testsentences
- Beispielsätze (i.e., Testkorpus) für den Parser.
- gold.mrg
- Gold-Parsebäume = annotierte Sätze des Testkorpus (nicht binarisiert, können also nicht zur Parser-Ausgabe passen!).
- gold_b.mrg
- Binarisierte Gold-Parsebäume.
Evaluation des Parsers (F1-Score)
Die vom Parser ausgegebenen Bäume stimmen im Normalfall nicht mit den Goldbäumen überein. Die Güte des Parsers wird daher über den F1-Score bestimmt, der z.B. mit discodop bestimmt werden kann:
discodop eval --fmt=bracket <DATEI MIT GOLDBÄUMEN> <DATEI MIT PARSEBÄUMEN>
Arbeitsumgebung
Die Strukturierung der Implementierung und die Wahl der verwendeten Tools ist Ihnen freigestellt. Es gelten lediglich die folgenden Anforderungen, um ein automatisches Testen zu ermöglichen.
- Das Arbeitsverzeichnis enthält auf oberster Ebene eine Datei namens
Makefile
. Diese enthält ein Target, das eine ausführbare Dateipcfg_tool
erstellt. Eine weitergehende Einführung in Make gibt es z.B. hier. - Das Programm
pcfg_tool
enthält die Lösungen zu allen Teilaufgaben. Einzelne Funktionen werden über Subkommandos aufgerufen (wie bei git). Ist eine Funktion nicht implementiert, soll das Programm mit dem Statuscode 22 beendet werden. Alles weitere zur Kommandozeilenschnittstelle steht im Ablaufplan. - Keine Datei auf der obersten Ebene des Arbeitsverzeichnisses beginnt mit
.eval_
.
Sie können selbst überprüfen, ob Ihre Implementierung die Spezifikationen hinsichtlich Ein- und Ausgabeformat erfüllt.
Dazu entpacken Sie die folgende Testsuite in Ihr Arbeitsverzeichnis und rufen make -f tests.mk
auf.
Bitte stellen Sie vor Einreichung einer Teillösung sicher, dass diese Tests erfolgreich durchlaufen.
Hinweis: die Tests überprüfen nicht die Korrektheit der Implementierung.
Kontakt
-
Prof. Dr.-Ing. habil. Dr. h.c./Univ. Szeged
Heiko Vogler
Tel.: +49 (0) 351 463-38232 -
Dipl.-Inf.
Richard Mörbitz
Tel.: +49 (0) 351 463-38487