Noch so ein multilinguales Riesenkorpus: DCEP

Nicht nur die Generaldirektion Übersetzung der Europäischen Kommission, auch das Europäische Parlament hat nun ein großes multilinguales Textkorpus öffentlich verfügbar gemacht: das DCEP. Einen entsprechenden Hinweis enthält der Artikel „An overview of the European Union’s highly multilingual parallel corpora“ von Ende 2014, der bei Springer erschienen ist (das Manuskript ist auf der Website der Gemeinsamen Forschungsstelle, JRC, hier kostenlos einsehbar). Der folgende Blogartikel richtet sich an DCEP-Interessent*innen und bietet einerseits ein paar Hintergrundinformationen zum DCEP und andererseits eine detaillierte Anleitung für Übersetzer*innen, wie sie dieses Riesenkorpus auf einem Windows-System für das eigene CAT-Tool nutzbar machen können. Wer lediglich an den fertig extrahierten DCEP-TMX-Dateien für das Sprachenpaar Englisch-Deutsch interessiert ist, der kann sich sehr sehr viel Leserei ersparen und direkt ans Artikelende springen.

Allgemeines zum DCEP

Warum veröffentlicht die EU große Textkorpora?

europaeische-unionMit der Veröffentlichung von multilingualen Textkorpora möchten die Organe der Europäischen Union zum Erhalt der linguistischen und der kulturellen Vielfalt in der Union beitragen, die Demokratie in Europa mittels Informationstransparenz stärken und die Erschließung neuer Geschäftspotenziale ermöglichen (siehe An overview of the European Union’s highly multilingual parallel corpora).

Die Korpora bieten sich beispielsweise für vergleichende Sprachstudien oder zur Optimierung von Alignmentalgorithmen an und können, nach entsprechender Aufbereitung, auch als Konkordanzressource in den Übersetzungsprozess von Übersetzungsagenturen und Einzelübersetzer*innen eingebunden werden (weitere Nutzungsszenarien nennt der Artikel DCEP – Digital Corpus of the European Parliament).

Was beinhaltet das DCEP?

Das DCEP enthält in der am stärksten vertretenen Sprache (Englisch) 162 141 Dokumente mit insgesamt über 100 Millionen Wörtern. Englisch ist damit praktisch die Leitsprache. Die größte Anzahl an alignten Dokumentenpaaren mit dieser Leitsprache gibt es für Französisch (109 845), Italienisch (109 409), Griechisch (109 087), Deutsch (107 759), Niederländisch (107 115), Spanisch (107 079), Portugiesisch (105 566), Dänisch (104 259), Schwedisch (103 831) und Finnisch (102 830). Die übrigen Sprachen der EU sind im DCEP in Verbindung mit Englisch dagegen nur mit je rund 20 000 Dokumenten vertreten. (Quelle: optima.jrc.it/Resources/DCEP-2013/2015_03_dcep-2013-statistics.html)

Die alignten Dokumente stammen aus den Bereichen AGENDA (Tagesordnungen), COMPARL (Tagesordnungsentwürfe), IM-PRESS, PRESS und IMP-CONTRIB (verschiedene Pressedokumente), MOTION (Entschließungsanträge), PV (Plenartagungsprotokolle), REPORT (Berichte), RULES (Geschäftsordnung des Europäischen Parlaments), TA (angenommene Texte), WQ (schriftliche Anfragen), WQA (Antworten auf schriftliche Anfragen), OQ (mündliche Anfragen) und QT (Anfragen für die Fragestunde). Zahlen zu den alignten Dokumenten je Bereich enthalten die Seiten optima.jrc.it/Resources/DCEP-2013/2015_03_dcep-2013-statistics.html und www.lrec-conf.org/proceedings/lrec2014/pdf/943_Paper.pdf.

Wie ist die DCEP-Alignmentqualität?

Für das DCEP-Alignment wurde – wie schon beim JRC-Aquis-Alignment 2006 – Hunalign verwendet (weitere Hinweise zum Acquis communautaire enthält mein Artikel Das DGT-TM des Acquis communautaire von 2008).

Die Alignmentqualität wird sich erst in einem mehrmonatigen Praxistest des DCEP-TMs zeigen. Ich bin schon gespannt.

Detaillierte Anleitung zur DCEP-Nutzung auf einem Windows-System

Die Erzeugung eines bilingualen Korpus ist auf der JRC-Seite sehr schön beschrieben. Der einzige Haken bei der Sache: die Extraktionsanleitung bezieht sich ausschließlich auf UNIX-Systeme! 🙁

Wie die Extraktion des Korpus des Europäischen Parlaments auf einem Windows-Rechner gelingt und welche Tools dazu notwendig sind, beschreibe ich in den folgenden Abschnitten:

Abschließend geht es noch um die Frage, ob sich der ganze Konvertierungsaufwand überhaupt lohnt.

Welche Dateien muss ich herunterladen?

Das DCEP wird auf der Seite ec.europa.eu/jrc/en/language-technologies/dcep vorgestellt. Dort ist auch die DCEP-Download-Seite verlinkt.

Es gibt zwei alternative Verfahren für den DCEP-Download: eine nicht empfohlene Methode, auf die ich hier nicht weiter eingehe, und eine Methode, bei der ich

  • die segmentierten Dokumente für mindestens zwei Sprachen (beispielsweise DE und EN),
  • die Satzalignmentdaten für das gewünschte bilinguale Korpus (in meinem Beispiel DE-EN) und
  • ein Tool zur Extraktion paralleler bilingualer Satzpaare (DCEP-extract-scripts.tar.bz2)

auf den eigenen Rechner herunterladen muss.

In meinem Beispiel sind also folgende Dateien für die Erstellung des englisch-deutschen DCEP-Auszugs erforderlich:

  • DCEP-DE-EN.tar.bz2
  • DCEP-extract-scripts.tar.bz2
  • DCEP-sentence-DE-pub.tar.bz2
  • DCEP-sentence-EN-pub.tar.bz2

Auf der DCEP-Download-Seite sind alle verfügbaren Sprachenpaare und das notwendige Extraktionstool verlinkt.

Dateien mit 7-Zip entpacken

Alle heruntergeladenen Dateien liegen komprimiert vor. Mit Windows-Bordmitteln lassen sie sich nicht extrahieren, wohl aber mit 7-Zip. Dieses kostenlose Tool kann von der offiziellen 7-Zip-Website oder auch als portable Version beispielsweise von heise.de heruntergeladen werden.

Mit 7-Zip kann ich nun in einem ersten Schritt alle BZ2-Archive extrahieren.

7zip-extraktion

Dabei werden in der Standardeinstellung (Path mode: Full pathnames) vier neue Ordner angelegt, die jeweils gleichnamige TAR-Archivdateien enthalten:

  1. DCEP-DE-EN.tar,
  2. DCEP-extract-scripts.tar,
  3. DCEP-sentence-DE-pub.tar und
  4. DCEP-sentence-EN-pub.tar

Auch diese vier Dateien extrahiere ich mit 7-Zip. Der besseren Übersichtlichkeit wegen lasse ich bei der Angabe des Speicherorts den TAR-Ordner weg. Der folgende Screenshot zeigt das 7-Zip-Fenster vor der Löschung der überflüssigen Ordnerpfadangabe DCEP-DE-EN.tar\ (der zu löschende Text ist grün unterstrichen):

7zip-extraktion_tar-dateien

Danach lösche ich die überflüssigen BZ2- und TAR-Archivdateien und erhalte so innerhalb meines DCEP-Ordners folgende Unterordner:

dcep-extraktionsergebnis

Welche Ordnerstruktur muss ich beachten?

Der src-Ordner innerhalb des DCEP-extract-scripts-Ordners enthält zwei Python-Dateien:

  • ladder2text.py und
  • languagepair.py

Damit die Extraktion reibungslos gelingt, empfehle ich, diese beiden Dateien in einen Ordner namens DCEP-Extraktion zu kopieren, in dem zusätzlich die folgenden Ordner zusammengeführt sind:

dcep-ordnerstruktur

Python

Die letzte Hürde vor der eigentlichen Extraktion ist die Python. Bei den meisten Linux-Distributionen ist Python offensichtlich im Standardumfang enthalten, nicht so jedoch bei Windows. Nach JRC-Angaben muss die Python-Version 2.[567] installiert sein, damit die Python-basierten Skripte laufen.

Python steht auf der Python-Website zum kostenlosen Download bereit. Mit dem Windows Installer ist die Installation kein Problem.

Das bilinguale Korpus erzeugen

Endlich ist es soweit: ich kann mein bilinguales Korpus extrahieren. Im Windows Explorer klicke ich hierzu mit gedrückter Umschalttaste den Ordner DCEP-Extraktion an und wähle im Kontextmenü den Befehl Eingabeaufforderung hier öffnen. Den Extraktionprozess starte ich durch Eingabe des Befehls languagepair.py DE-EN > meindateiname.txt:

dcep-extraktion_starten

An dieser Stelle benötigt man sehr viel Geduld – bei mir hat es drei Stunden gedauert, bis der Extrakt fertig war.

Neben dieser Standardextraktion gibt es noch weitere Extraktionsmöglichkeiten, die ich im Abschnitt Filtermöglichkeiten bei der Korpuserstellung kurz anreiße.

Die erzeugte Riesendatei in Einzeldateien aufsplitten

Meine erzeugte Datei deen-bisaetze.txt kann ich auf meinem Windows-Rechner weder mit dem systemeigenen Editor noch mit meinem Lieblingseditor PSPad nicht öffnen, da sie zu groß ist. Auch der Versuch mit Microsoft Excel scheiterte (da die Größe von „1 048 576 Zeilen und 16 386 Spalten“ überschritten wurde).

Erfolg bringt das Freeware-Tool fileSPLIT, das von der Website des Herstellers intelli-bit oder alternativ von der heise.de-Website heruntergeladen werden kann.

Mit fileSPLIT lässt sich die Datei in 40-MB-Stücke zerlegen:

filesplit-einstellungen

Das Resultat sind 21 Dateien, die als s.0 bis s.20 durchnummeriert sind. Da es sich um TXT-Dateien handelt, benenne ich sie in s1.txt bis s21.txt um – die Umbenennungswarnung kann ich getrost bejahen:

datei_umbenennen

Dateianschlüsse kontrollieren

Durch die Zerlegung der Gesamtdatei strikt nach Größe werden die jeweils erste und die letzte TU in den meisten Einzeldateien zerstückelt wie zum Beispiel im folgenden Fall:

  • vorletzte TU in einer Datei (letzte vollständige TU):
    Betrifft: Erdbeben in Pakistan > Subject: Earthquake in Pakistan
  • letzte TU (unvollständig):
    Vor kurzem hat Kofi Annan, Generalsekretär der Vereinten Nationen, verzweifelt dazu aufgerufen, Mittel für Hilfsmaßnahmen angesichts der schrecklichen Lage, in der sich die Überlebenden des jüng
  • erste TU in der nächsten Datei:
    sten furchtbaren Erdbebens befinden, zur Verfügung zu stellen. > The Secretary-General of the UN, Mr Kofi Annan, recently made a desperate appeal for funds to help with the horrendous situation that prevails for the survivors of the recent horrific earthquake.


In meinem Beispiel sind also die zwanzig Textanschlüsse in den 21 Einzeldateien in einem Texteditor zu kontrollieren und manuell zu korrigieren.

Die zweisprachigen TXT-Dateien ins TMX-Format konvertieren

Wie erzeuge ich aus den tabstoppgetrennten bilingualen TXT-Dateien nun TMX-Dateien? Ein zuverlässiges Werkzeug für diese Aufgabe ist Olifant, das ich in meinem Blog hier schon einmal vorgestellt habe.

Das Ergebnis werden separate TMX-Dateien sein, in meinem Fall 21 Stück. Hier die Vorgehensweise in Einzelschritten:

  1. Ich öffne Olifant.
  2. Ich erstelle eine neue Datei mit File > New.
  3. Ich wähle die gewünschte Sprachrichtung (in meinem Fall EN-DE):
    olifant_01
  4. Ich importiere die „zweispaltige“ TXT-Datei mit File > Import
    olifant_02
  5. … und lege dabei im Dialogfenster für jede der beiden Spalten als Feldtyp Text fest und gebe die Sprache an (die Auswahl erfolgt jeweils über Drop-Down-Menüs):
    olifant_03
  6. Abschließend speichere ich die Datei mit File > Save oder Strg+S im TMX-Format.

An dieser Stelle ist zu überlegen, ob ich die in der gerade erzeugten TMX-Datei enthaltenen Dubletten direkt löschen möchte (siehe folgenden Abschnitt). Falls nicht, wiederhole ich die oben genannten Schritte zwei bis sechs für alle einzelnen TXT-Dateien. Praktischer finde ich es, an dieser Stelle in der gerade erzeugten Datei die TU-Doppelungen nun zu löschen und erst dann die nächste TXT-Datei zu konvertieren.

Außerdem könnte ich an dieser Stelle die TMX-Datei auch direkt im Wordfast-TXT-Format abspeichern, falls ich vorhabe, das DCEP mit Wordfast zu nutzen. Ich wähle dazu File > Save As… und gebe als Format Wordfast TM Files (*.txt) an.

Dubletten entfernen

Die einzelnen DCEP-Dateien enthalten relativ viele Doppelungen – rund ein Viertel bis ein Drittel, in Einzelfällen sogar über die Hälfte der in einer Datei enthaltenen TUs sind Duplikate (in meiner s5.txt-Datei waren es beispielsweise 170 201 von 268 633 TUs). Da die einzelnen TUs im DCEP sowieso keine Herkunftsangabe enthalten (mehr dazu weiter unten), kann ich auf diese Duplikate verzichten und sortiere sie vorab aus.

Zur Eliminierung dieser überflüssigen TUs nutze ich wieder Olifant:

  1. Mit Strg+E (oder Entries > Flag Entries) öffne ich das Filterauswahlfenster:
  2. Ich klicke Duplicate Source and Target (case sensitive) an und bestätige mit OK.
    Das Original des Doppeleintrags soll dabei nicht gekennzeichnet werden (siehe dünne rote Linie im Screenshot)!
  3. Ich klicke auf das „Set Filter For Flagged Entries“-Icon (im Screenshot violett markiert):

    (Alternativ könnte ich auch über View > Set Filter For Flagged Entries gehen.)
  4. Mit Strg+A markiere ich alle gefilterten Einträge.
  5. Ich lösche alle markierten Einträge mit der Entf-Taste.
  6. Ich deaktiviere den Filter mit F5 oder klicke stattdessen auf das „Use Filter (F5)“-Icon (im Screenshot hellgrün markiert):
  7. Ich klicke auf den Spaltenkopf Key, um die ursprüngliche Reihenfolge wieder herzustellen (für den Fall, dass ich in der TMX-Datei „chronologisch“ lesen möchte).
  8. Ich speichere die Datei (entweder mit Strg+S unter dem ursprünglichen Namen oder aber über File > Save As… unter einem neuen Namen).

Was tun, wenn ich später wissen will, woher die einzelnen TUs stammen?

Schön wäre es, wenn die TU-Quelle (Nummer des Dokuments, aus der die TU stammt) als TU-Attribut angegeben wäre, doch bisher fehlt diese Information leider in den extrahierten TMX-Dateien. Der Erhalt dieser Information ist nur indirekt möglich, indem bei der Eingabe des Befehls languagepair.py im Kommandozeilenfenster die Option --no-merge mit angegeben wird. Mit dieser Option werden für alle alignten Dokumente im Ordner bitexts\DE-EN\ separate TMX-Dateien erzeugt, deren Name eine nummerische Kennnummer ist, die dann über die Datei \indices\DE-EN einer Dokumentnummer des Europäischen Parlaments zugeordnet werden kann:
ep-dokumentnummern
Dieses Vorgehen ist zum einen sehr umständlich und zum anderen mit einer riesigen Menge an TMX-Einzeldateien verbunden. Für mich ist dieser Ansatz daher unpraktikabel. In wichtigen Fällen würde ich stattdessen wahrscheinlich den Umweg über Linguee nehmen und dort eine relativ lange Zeichenfolge aus der bereits über die Konkordanzsuche gefundenen TU als Suchausdruck eingeben.

Filtermöglichkeiten bei der Korpuserstellung

Bei der Korpusextraktion können verschiedene Filter angewandt werden, unter anderem ein Zahlenfilter, der kurze, nur aus Zahlen bestehende Titel und Nummerierungen während des Extraktionsvorgangs löscht. Der entsprechende Extraktionsbefehl lautet dann beispielsweise languagepair.py --numbering-filter DE-EN > deen-bisaetze-ohne-zahlen:

bisaetze_ohne_zahlen

Ein weiterer Filter ist der Längenfilter --length-filter-level=00, wobei anstelle von 00 eine Zahl für einen Längenverhältnisprozentwert einzugeben ist. Mit diesem Längenfilter werden dann bei der Extraktion alle Satzpaare verworfen, deren Längenverhältnis (Berechnung mit Zeichenzahl) unter dem angegeben Wert liegt.

Diese und weitere Filter sind auf der JRC-Seite zur DCEP-Extraktion unter „Advanced Usage“ beschrieben.

Lohnt sich der ganze Konvertierungsaufwand für Übersetzer*innen?

Ob sich die DCEP-Konvertierung für Otto Normalübersetzer und Erna Normalübersetzerin lohnt, hängt von den individuellen Sprachkombinationen, Fachgebieten und zu übersetzenden Textsorten sowie vom jeweiligen CAT-Tool ab. Ich habe die DCEP-TMs in Wordfast Classic eingebunden und plane, nach einem mehrmonatigen Praxistest in diesem Blog über meine Erfahrungen zu berichten.

Bezug der extrahierten DCEP-TMX-Dateien für die Sprachrichtung EN-DE

Wer Interesse an den von mir extrahierten und individualisierten 21 DCEP-TMX-Einzeldateien (die jeweils dateiintern um Dubletten bereinigt sind) hat, melde sich per Mail bei mir. Ich kann die Dateien nicht kostenlos, aber zu einem fairen Preis weitergeben.

Hinterlassen Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.