Mein Online-Handbuch Korpuslinguistik („Einführung in die Korpuslinguistik„) enthält ein Kapitel zur Erstellung von eigenen Korpora. Es ist dabei das Ziel, einfache Wege zu beschreiben, wie man aus unterschiedlichen Quellen ein Korpus bauen kann – Wege, die auch für technisch weniger erfahrene Linguistinnen und Linguisten gangbar sind.
Entscheidend für die möglichen Wege sind dabei zwei Dinge:
- In welchem Datenformat liegen die Ausgangsdaten vor? Ist es ein strukturiertes (Datenbank), semi-strukturiertes (XML, HTML etc.) oder unstrukturiertes (nicht ausgezeichneter Text, RTF, Word-Doc, PDFs etc.) Format?
- Welches Format verlangt die Analysesoftware, mit der gearbeitet werden soll?
Viele Konkordanzprogramme wie z.B. das recht verbreitete AntConc (mein Tutorial hier) lesen unstrukturierte Textdateien, allenfalls auch HTML, allerdings ohne die HTML-Tags zu beachten. Es ist damit unmöglich, Metadaten mit den Dokumenten zu assoziieren.
State-of-the-Art ist aber natürlich XML. Die Open Corpus Workbench, TXM (Unicode-XML-TEI text/corpus analysis platform) oder Weblicht lesen beispielsweise XML-Daten und können so codierte Metadaten und Auszeichnungen im Text (Titel, Absätze, Sätze etc.) auslesen.
Wenn es jedoch darum geht, einfache Wege aufzuzeigen, wie man z.B. von heruntergeladenen Webseiten zu sauber codierten XML-Dokumenten kommt, wird es schwierig. Ein nahe liegender Weg, den ich z. B. in meinem Aufsatz „Skandalisierung korpuslinguistisch: Eine empirisch-linguistischer Blick auf die Berichterstattung zur ‚Wulff-Affäre‘“ (Linguistik Online 61, 4/2013) beschreibe, geht so (für Unix-Systeme, Mac):
- Mit wget oder curl werden die HTML-Seiten auf den eigenen Rechner geladen.
- Konvertierung der HTML-Seiten nach XHTML, z.B. mittels TagSoup, einem in Java programmierten XML-Parser, der auch mit nicht validem HTML zurecht kommt.
- Extraktion der gewünschten Daten aus den XHTML-Dateien mit einem XSL-Stylesheet. So können der eigentliche Artikel-Text (ohne Navigation etc.) und die Metadaten (Titel, Publikationsdatum, Autor/in etc.) extrahiert werden.
Dieser Weg funktioniert besonders dann gut, wenn man eine Serie von gleich strukturierten Webseiten herunterladen möchte, z.B. Web-Foren, Online-Zeitungen etc. Etwas flexibler (und in den Funktionen mächtiger) ist z.B. der Web-Crawler Heritrix, der jedoch auch nochmals schwieriger zu bedienen ist.
Doch was ist der gangbare Weg für Linguistinnen und Linguisten, die keine Lust haben, sich in die Tiefen der XML-Verarbeitung mit XSLT, XPath etc. zu begeben? Eine mögliche Alternative, an der ich arbeite, ist:
- Download der Daten mit einen Tool wie dem Firefox-Plugin DownThemAll.
- Import der HTML-Dokumente in BaseX, einem XML-Datenbankprogramm, das auch Konvertierung der HTML-Dateien in XHTML erledigt. In BaseX kann man dann relativ intuitiv die XPath-Ausdrücke zusammenbauen, die notwendig sind, um die relevanten Textstellen aus den XHTML-Dateien zu finden.
- Danach muss jedoch trotzdem ein XSLT-Stylesheet erstellt werden – soll/kann man Studierende der Linguistik in die Grundregeln von XSLT einführen?
Es handelt sich also noch um eine offene Baustelle und Anregungen dazu sind sehr willkommen! Diese Seite aus meinem Online-Handbuch zur Korpuslinguistik führt wenigstens schon mal (hoffentlich auch für Laien verständlich) in XML für die Korpuslinguistik ein.
Update vom 23. Januar 2014: Inzwischen habe ich einen Weg von HTML zu XML in meinem Online-Handbuch beschrieben. Um XSLT kommt man nicht herum, aber ich hoffe, es verständlich beschrieben zu haben. Zudem habe ich dargestellt, wie man mit geschickter Anwendung von Regulären Ausdrücken von einer strukturierten Text-Datei zu XML kommt.