Hauptregion der Seite anspringen

Praktikum Verarbeitung natürlicher Sprache im Sommersemester 2023

Ü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

Das Praktikum findet wöchentlich am Dienstag in der 2. und 3. Doppelstunde im Raum APB/E069 statt. Es gibt einige verbindliche Veranstaltungen, außerhalb derer bietet der Raum eine Möglichkeit zur selbstständigen Arbeit. Die Einführungsveranstaltung findet am 11. April um 9:20 Uhr statt.

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.

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

Achtung: das vierte Tutorium wird um eine Woche auf den 20.06. verschoben!

Korpora

Als Trainings- und Testkorpus dienen annotierte Sätze des Wall Street Journals aus der Penn Treebank (PTB). 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 in die Ordner large und small unterteilt. Sie enthalten jeweils eine Grammatik, die aus unterschiedlich großen Segmenten der PTB trainiert wurde, Sätze zum Testen des Parsers und die Gold-Parsebäume für diese Sätze. Im Fall von large sind zusätzlich die Bäume enthalten, die zum Training der Grammatik verwendet worden sind.

Die konkreten Inhalte der einzelnen Dateien stellen sich wie folgt dar.

training.mrg
Trainingskorpus (annotierte Sätze) für die Grammatinduktion.
training_b.mrg
Binarisiertes Trainingskorpus für die Grammatinduktion (sollte grammar.rules, grammar.lexicon und grammar.words liefern).
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 Datei pcfg_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

Stand: 20.06.2023 10:33 Uhr