Open Source im professionellen Einsatz
Linux-Magazin 04/2008

Freitextantworten mit neuronalen Netzen auswerten

Verständnisfrage

,

Als Prüfer Programmcode oder Multiple-Choice-Fragen elektronisch auszuwerten ist nicht allzu schwer. Doch das Korrektursystem zur Linux-Vorlesung an der Hochschule Heidelberg versteht nicht nur vorformulierte Textbausteine, sondern auch Freitextantworten.

640

Übungsaufgaben einsammeln und nach ein bis zwei Wochen korrigiert zurückgeben ist im Grunde für Studierende und Dozenten unbefriedigend. Bis die Studenten die Ergebnisse sehen, ist die Erinnerung an die Übungsaufgabe bereits verblasst. Für die Lehrenden fällt viel Routinearbeit an.

Für die Übung zur Linux-Vorlesung an der Hochschule Heidelberg entstand daher im Jahr 2003 eine Software, die die lästige Korrekturarbeit übernahm. Ein Cron-gesteuerter Regressionstest nahm den von den Studenten geschriebenen Programmcode unter die Lupe. Als didaktischer Vorteil ergab sich für die Studenten eine unmittelbare Rückmeldung, sie erhielten die Ergebnisse, noch während sie im PC-Raum saßen.

Leider ließ sich diese maschinelle Bewertung für Verständnisfragen zunächst nur sehr beschränkt umsetzen. Die Software verstand lediglich kurze, exakt vordefinierte Antworten. Bei normalen, umgangssprachlichen Antworten führte kein Weg an der zeitraubenden Auswertung von Hand vorbei.

Einer der beiden Autoren, 2006 selbst Teilnehmer der Linux-Vorlesung, schlug schließlich vor, ein neuronales Netz [1] für die Auswertung der Antwortsätze einzusetzen. So entstanden eine plattformunabhängige C++-Software [2], die aus zwei Kommandozeilenprogrammen besteht, einem Trainingprogramm und einem Programm, das mit Hilfe eines neuronalen Netzes die Antwortsätze der Studenten analysiert. Abbildung 1 skizziert die Funktionsweise.

Abbildung 1: Vollautomatische Korrektur: Ein Cronjob holt die Dateien aus den Homes der Studenten. Je nachdem, ob es sich um Programmcode oder Antwortsätze in Deutsch oder Englisch handelt, wertet sie ein Regressionstest oder ein neuronales Netz aus. HTML-Seiten präsentieren die Ergebnisse.

In der Praxis

Um das neuronale Netz für eine Aufgabenstellung zu trainieren, sind in der Regel nur drei Textdateien anzupassen: Die Datei »right.txt« enthält Muster richtiger Antworten, »wrong.txt« ausgewählte falsche. Die Antworten sind darin normalerweise als ganze Sätze ausformuliert. Die Datei »dictionary.txt« schließlich übersetzt die Wörter der Antwortsätze in Bitketten, die sich an die Eingabeneuronen des Netzes anlegen lassen. Für jede gestellte Frage gibt es eigene Versionen dieser drei Dateien.

Ein Antwortsatz entspricht nicht immer einem grammatikalischen Satz, die Software kann auch Antworten verarbeiten, die aus mehreren Sätzen bestehen. Die Wörterbuchdatei definiert auch Synonyme, gleichbedeutende Wörter erhalten die gleiche Bitfolge.

Mit Synonymen lässt sich die Zahl der nötigen Mustersätze deutlich verringern. Sind zum Beispiel die Begriffe CPU und Prozessor als Synonyme festgelegt, dann versteht das neuronale Netz die Sätze "Die CPU führt die Berechnungen durch" und "Der Prozessor führt die Berechnungen durch" ohne zusätzlichen Trainingsaufwand.

Es liegt auf der Hand, dass die Synonyme auch Wörter aus Fremdsprachen beinhalten dürfen und damit eine Auswertung in verschiedenen Sprachen ohne zusätzliche Mustersätze erleichtern. Abbildung 2 gibt einen Überblick über den Aufbau des Spracherkennungsmoduls.

Abbildung 2: Maschinelle Spracherkennung: Ein Wörterbuch setzt eine Wortfolge in binären Code um. Das trainierte neuronale Netz erkennt, ob es sich um eine richtige oder eine falsche Antwort handelt.

Ohne Fleiß ...

Je nach Komplexität der Fragestellung sind für das Erstellen der Musterantworten mehrere Stunden Arbeitszeit nötig. Für das eigentliche Training braucht das neuronale Netz jedoch keine weiteren Informationen. Finden sich unter den Antworten keine unerwarteten richtigen Lösungen, die ein Nachtraining erforderlich machen, so ist damit die Arbeit des Korrektors schon erledigt.

Tabelle 1 zeigt, wie die drei Dateien für die Frage "What is GNU?" aussehen könnten. Das Beispiel verdeutlicht auch den Umgang mit der Negation. Da das "not" in der richtigen Antwort vorkommt, erlernt das neuronale Netz es beim Training als sinnkonstitutives Element. Das dies auch wirklich geschieht, stellt der Satz "GNU is Unix" in der Datei »wrong.txt« sicher.

Tabelle 1:
Konfigurationsdateien

 

right.txt

wrong.txt

dictionary.txt

GNU is not Unix

GNU is Unix

GNU

 

GNU is an animal

is

 

I have no idea

not

 

GNU is not Linux

Unix

   

Linux

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Deep Dream: Google veröffentlicht Visualisierung für neuronale Netze

    Google hat auf Github eine Software zur Visualisierung von neuronalen Netzen unter freier Lizenz bereitgestellt.

  • Magisches Netz

    3, 4, 8, 11 - nur wer den dahintersteckenden Algorithmus errät, weiß die nächste Zahl. Doch neuronale Netze setzen Reihen auch fort, ohne den Rechenweg zu kennen - näherungsweise, quasi aus dem Bauch heraus. Sie gleichen damit dem menschlichen Gehirn, dessen Architektur ihr Vorbild ist.

  • Machine Learning

    Der Arbeitgeber von Autor Chris Hinze litt wie vermutlich alle Homepage-Baukasten-Anbieter unter Spammern und illegalen Inhalten. Ein Praxisbericht, der auf der Theorie des Deep Learning beruht.

  • Snapshot

    Anhand von Trainingsdaten in Form von täglich im Auto erfassten Kilometerständen versucht Michael Schillis KI-Programm Muster im Fahrverhalten zu erkennen und Prognosen abzugeben.

  • Deep Learning

    Deep Learning gilt als Hype-Technologie, lässt sich aber auch im Alltag einsetzen und löst nicht nur Automatisierungsaufgaben der Industrie. Gimp-Nutzer Sebastian Mogilowski zeigt in diesem Artikel, wie er mit Hilfe neuronaler Netze seine alten Schwarz-Weiß-Bilder nachträglich koloriert.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.