Ziel dieser Arbeit ist die Erstellung einer digitalen Edition des Buches Praktisches Kochbuch für die gewöhnliche und feinere Küche , welche für kulinarische Analysen genutzt werden kann. Eine Transkription des Kochbuches wurde bereits vom Deutschen Textarchiv angefertigt. Ein beispielhafter Auszug ist in Abb. 1 zu sehen. Abb. 1a zeigt den Scan eines Rezeptes, Abb. 1b die textuelle Form und Abb. 1c eine bereits von uns überarbeitete Version der TEI-basierten Transkription.

Abb. 1: Transkription von Davidis's Kochbuch
Abb. 1a
Eingescanntes Rezept B-3
Abb. 1b
Textuelle Form Rezept B-3
Abb. 1c
TEI kodiertes Rezept B-3

Für kulinarische Analysen sind insbesondere Zutatenlisten wünschenswert, welche bei den Rezepten nicht vorhanden sind. Für eine maschinenlesbare Aufarbeitung wird ein Domänen-spezifisches Vokabular benötigt. Idealerweise können aus den mit dem Vokabular ausgezeichneten Rezepten anschließend die Zutatenlisten automatisch extrahiert werden. Da die manuelle Auszeichnung zeitaufwendig und fehleranfällig ist, forschen wir des Weiteren im Bereich Information Extraction an Möglichkeiten zum automatischen Auszeichnen. Beides sind keine trivialen Probleme.

Domänen-spezifisches Vokabular

Bestehende Vokabulare ermöglichen keine kulinarische Analyse. TEI hat kein spezifisches Vokabular um Rezepte auszuzeichnen. Schema.org/Recipe ist ein Vokabular, welches das Ziel hat, Treffer von Suchmaschinen anzureichern. Es wird davon ausgegangen, dass jedes Rezept eine Zutatenliste hat. In dieser wird jede Zeile beispielsweise mit Microdata angereichert; z. B. <span itemprop="recipeIngredient">2 EL Zucker</span>. Für den Computer stellt dieser Tag-Inhalt jedoch nur einen String dar. Für eine kulinarische Analyse müsste die Mengenangabe (2), die Einheit (EL), sowie die Zutat (Zucker) explizit ausgezeichnet sein. Das Auszeichnen von Zutaten im Fließtext, was wir mangels bestehender Zutatenliste machen müssen, muss darüber hinaus einige Sonderfälle beachten. Dies verdeutlichen folgende zwei Beispielsätze aus dem Kochbuch:

  1. „Der [Englische] Soja macht die Suppe gewürzreicher, kann jedoch gut wegbleiben, und statt Madeira kann man weißen Franzwein und etwas Rum nehmen.“
  2. „Das Kalbfleisch wie in No. 1, nach der Personenzahl, doch etwas reichlicher genommen, da solches weniger Kraft gibt, als Rindfleisch.“

In Erstens ist Soja eine optionale Zutat. Je nachdem ob sie verwendet wird, hat das Gericht eine unterschiedliche Geschmacksrichtung. In das Rezept gehören auch nicht Madeira, weißer Franzwein und Rum, sondern Madeira oder weißer Franzwein und Rum. Somit ist es nötig, bei der Auszeichnung zwischen optionalen und alternativen Zutaten zu unterscheiden. Des Weiteren sind alle drei Zutaten vage Begriffe. Rum gibt es zum Beispiel in vielen verschiedenen Preisklassen und mit unterschiedlichen Geschmacksausprägungen. Sofern vorhanden ist daher eine Präzisierung wünschenswert. Idealerweise wären Zutaten bereits weltweit frei verfügbare und eindeutige Ressourcen mit abrufbaren Nährwertangaben. Ein Mapping zwischen den verwendeten Zutaten pro Rezept und so einem Ressourcenbestand würde eine kulinarische Auswertung leicht und transparent machen. Leider gibt es unseres Wissens nach solche Ressourcen noch nicht.

In Zweitens ist Rindfleisch keine Zutat, sondern dient nur als Vergleich für eine ungefähre Mengenangabe. Wenn dieser Satz nur flüchtig gelesen wird, wird Rindfleisch hingegen leicht als Zutat eingeordnet (mir selber ist erst beim dritten Mal lesen aufgefallen, dass es gar keine Zutat ist). Dies zeigt zum einen, dass beim Auszeichnen leicht Fehler gemacht werden können und zum anderen, dass nicht alle Zutaten als Zutaten des Rezepts auszuzeichnen sind.

Information Extraction in der Koch-Domäne

Information Extraction beschäftigt sich damit, nützliche Informationen aus unstrukturiertem Text zu extrahieren. Es wurde erstmals in als eigene Disziplin erwähnt. Ein allgemeiner Überblick kann in gefunden werden. Die Algorithmen versuchen meist bestehende Semi-Strukturen auszunutzen. In der Koch-Domäne haben wir drei unterschiedlich automatisierte Ansätze gefunden, auf die wir genauer eingehen werden:

  • Regular Expression-based
  • Conditional Random Field-based
  • Dictionary- and rule-based

Nachdem die Zutaten von einem Programm extrahiert wurden, müssen die extrahierten Entities zum Auszeichnen nur noch entsprechend dem Domänen-spezifischen Vokabular zurückgeschrieben werden.

Unten stehend ist zur Veranschaulichung eine interaktive Grafik. Diese zeigt alle nötigen Schritte und Zwischenergebnisse von der Transformation des gedruckten Buchs bis hin zur ausgezeichneten digitalen Version als Webseite. Als Erstes muss das gedruckte Buch transkribiert werden. Anschließend entwickeln wir eine Auszeichnungssprache, die eine kulinarische Analyse ermöglicht. Danach beschäftigen wir uns mit Programmen, welche die Rezepte automatisch auszeichnen. Abschließend werden die ausgezeich­neten Rezepte in eine Webseite umgewandelt. Aufbauend auf dieser kann eine kulinarische Analyse durchgeführt werden, was nicht mehr Teil dieser Informatik-Arbeit ist. Wenn in dem jeweiligen Arbeitsschritt eine Transformation stattgefunden hat, ist rechts die Grundlage zu sehen und links, die neue, transformierte Version.


Transkription
Gedrucktes Buch
Eingescan­ntes Buch
Transkription des DTA
Unsere Transkription

Auszeichnungs­sprachen
Stand der Forschung
cueML

Information Extraction
Stand der Forschung
Unsere Prototypen

Digitale Rezepte
* Da das originale Buchcover nicht erhalten ist, ist hier das Buchcover der von Marie Walters überarbeiteten Ausgabe (1933) zu sehen.

Neue Version

Seiten des Buches eingescannt

Vorherige Version

* Da das originale Buchcover nicht erhalten ist, ist hier das Buchcover von Marie Walters überarbeiteten Ausgabe (1933) zu sehen.

Neue Version

Transkription des Deutschen Textarchivs

Vorherige Version

Seiten des Buches eingescannt

Vorherige Version

Transkription des DTA

Link zum Kapitel Auszeichnen von Rezepten

Informationen werden durch eine Auszeichnungssprache mit wohldefiniertem Vokabular und Beziehungen zwischen den Vokabeln zugänglich gemacht.

Existierende Auszeichnungssprachen in der Koch-Domäne:

Link zum Kapitel Domänen-spezifisches Vokabular cueML

Koch-Domänen-spezifisches Vokabular für kulinarische Analysen.

Neue Version

Manuell mit cueML ausgezeichnet

Vorherige Version

Unsere Transkription

Link zum Kapitel Information Extraction in der Koch-Domäne

Bestehende Ansätze um in der Koch-Domäne automatisiert Entities/Vokabeln sowie ihre Beziehungen untereinander zu extrahieren. Nach dem diese extrahiert sind, können sie automatisiert, mit cueML ausgezeichnet, zurückgeschrieben werden.

Link zu den digitalen Rezepten

Mit cueML ausgezeichnete Rezepte mittels JSON in HTML umgewandelt.

Vorherige Version

Mit cueML ausgezeichnetes Rezept

Beitrag zur Forschung

Der Beitrag dieser Arbeit zu dem aktuellen Forschungsstand lässt sich wie folgt zusammenfassen:

  • Die Feststellung, dass bestehende Auszeichnungssprachen nicht für eine kulinarische Analyse geeignet sind.
  • Entwicklung einer Auszeichnunggssprache für kulinarische Analysen.
  • Die Erkenntnis, dass Information Extraction mittels Conditional Random Fields für unsere Problemstellung nicht zielführend ist.
  • Erstellung eines dictionary- and rule-based Prototypen.
  • Dokumentation sowie Durchführung aller nötigen Arbeitsschritte, wie ein gedrucktes Buch digital zu einer Webseite aufgearbeitet werden kann.

Wie diese Arbeit zu lesen ist

Diese Webseite ist das Ergebnis meiner Master-Arbeit mit dem Titel Definition der TEI-basierten „culinary editions Markup Language“ (cueML), Bewertung von Verfahren für die automatische Extraktion von Zutatenlisten aus Rezepten und die Auszeichnung des „Praktischen Kochbuchs für die gewöhnliche und feinere Küche“ von Henriette Davidis (1849).

Abb. 2a zeigt die chronologische Reihenfolge, in welche diese Arbeit zu lesen ist. Die Problemstellung wird am Anfang dieser Seite erläutert. Unter dem Menüpunkt Digitale Edition sind die weiteren Abschnitte zu finden. Der erste Abschnitt behandelt aufbauend auf der Version des Deutschen Textarchivs unsere Transkription des gedruckten Buchs von Frau Davidis. Im zweiten Abschnitt stellen wir bestehende Auszeichnungssprachen in der Koch-Domäne vor. Da diese nicht für eine kulinarische Analyse geeinigt sind, definieren wir für diesen Zweck im dritten Abschnitt die Auszeichnungssprache cueML. Der vierte Abschnitt beschäftigt sich mit der Information Extraction in der Koch-Domäne, mit dem Ziel später Rezepte automatisch mit cueML auszeichnen zu können. Darauf aufbauend werden im fünften Abschnitt zwei Prototypen zur Extraktion von Entities in der Koch-Domäne entwickelt. Die Evaluation dieser Prototypen ist Gegenstand des sechsten Abschnitts. Der siebte Abschnitt enthält einige Kommentare unsererseits zu dieser Arbeit. Der Menüpunkt Rezepte zeigt die von uns aufgearbeiteten und in HTML transformierten Rezepte Frau Davidis'. Der Menüpunkt Blog gibt Einblicke in unsere Arbeitsweise. Diese beiden Menüpunkte sind als bonus Material für den interessierten Leser zu verstehen.

Abb. 2b zeigt, wie der Aufbau der Arbeit inklusive der Unterabschnitte als klassiches Inhaltsverzeichnis aussieht.

Abb. 2: Aufbau der Webseite