2.3 Konvertieren von TMX in Tabelle - mkappus1/DatenmanagementMTHS24 GitHub Wiki
In diesem Abschnitt erfahren Sie, wie Sie Translation Memories im TMX-Standardformat in tabellarische Textdateien konvertieren.
Warum machen wir das? NMT-Systeme werden in der Regel mit zweisprachigen Dateien trainiert. Diese können je nach Herkunft in verschiedenen Formaten vorliegen. Exporte aus CAT-Tools liegen in der Regel im TMX-Format vor, Dateien, die über andere Alignmentwerkzeuge erstellt wurden, liegen möglicherweise in einem tab-delimitierten Textformat (Ausgangssegment - Tabulator - Zielsegment) vor. Abhängig vom NMT-System, das trainiert werden soll (aber auch für bestimmte Zwischenschritte in der Vorbereitung) kann es notwendig sein, Dateien vom TMX-Format ins tabulatorgetrennte Format zu überführen (und umgekehrt).
Solche tabellarischen Textdateien können dann problemlos für das Training von maschinellen Übersetzungsprogrammen verwendet werden.
Für diese Aufgabe werden wir die MTUOC-TMX2tabtxt Skripte und Programme von Antoni Oliver von der UOC verwenden, obwohl es viele andere Programme gibt, mit denen wir diese Aktion durchführen können. Sie können die Programme direkt von der Seite von Antoni Oliver oder aus unserer Sammlung manuell herunterladen. Ich gehe davon aus, dass Sie sich in einem Unix-Terminal befinden und diese Programme direkt mit folgenden dem Befehl erhalten können:
git clone https://github.com/mtuoc/MTUOC-TMX2tabtxt.git
Damit wird ein Verzeichnis mit dem Namen MTUOC-TMXtabtxt angelegt, das eine Reihe von Skripten enthält.
Eine weitere Möglichkeit ist, die Dateien mit dem Befehl wget https://github.com/mkappus1/DatenmanagementMTHS24/blob/main/Woche%202/Skripte/MTUOC-TMX2tabtxt-main.zip
aus unserem Github Projekt herunterzuladen.
Bei dieser Vorgehensweise müssen Sie die Datei noch mit dem Befehl unzip MTUOC-TMX2tabtxt-main.zip
entpacken.
Alternativ können Sie auch eine Zip-Datei aus dem Menü herunterladen, das sich öffnet, wenn Sie auf die Schaltfläche Code im browser klicken und die Dateien dann über den Windows-Explorer in das entsprechende Verzeichnis kopieren. Auch diese Datei müssen Sie dann noch entpacken.
Für diese Aktivität können Sie entweder Ihre eigenen TMX-Dateien verwenden (z.B. die, die Sie in der Vorbereitung aus Ihrem CAT-Tool exportiert haben) oder die, die wir Ihnen zur Verfügung stellen:
Einzelne TMX Dateien
ZIP-Dateien mit je 5 TMX-Dateien
Laden Sie diese Dateien (in "Ihrer" Sprachkombination) herunter und legen Sie sie in das Verzeichnis, in dem auch MTUOC-TMX2tabtxt-Skripte liegen (_MTUOC-TMXtabtxt)
Hinweis: Prinzipiell müssten sich die Dateien in UNIX/Linux auch über den Befehl wget gefolgt von der Linkadresse der Raw-version der Datei herunterladen lassen (s. Screenshot unten). Die Linkadresse der "Raw" erhalten Sie, indem Sie dem Link folgen und dort auf die Schaltfläche "Raw" kicken.
Im Browser erscheint dann eine (rohe) Textversion der Datei. Den in der Adresszeile vorkommenden Link, können Sie als Argument für den Befehl wget verwenden.
Für die beiden TMX- Dateien in der Sprachrichtung EN →DE bzw. EN→IT müssten die folgenden Befehle funktionieren:
wget https://raw.githubusercontent.com/mkappus1/DatenmanagementMTHS24/refs/heads/main/Woche%202/Skripte/TMX-EN-DE.tmx
wget https://raw.githubusercontent.com/mkappus1/DatenmanagementMTHS24/refs/heads/main/Woche%202/Skripte/TMX-EN-IT.tmx
Die ZIP-Dateien (mit den 5 TMX-Dateien) sollten sich am besten direkt in Ihr Windows Verzeichnis herunterladen und dann in den entsprechenden Ordner im UNIX/Linux Verzeichnis ablegen. Entpacken Sie die Datei XY-XY-TMX.zip mit dem Befehl unzip und es wird ein Ordner mit den 5 Dateien darin erstellt.
Wenn Sie die ZIP Dateien über wget und den Link zu den Dateien herunterladen, erhalten Sie beim Entpacken wahrscheinlich eine Fehlermeldung. Alternativ gibt es daher auf Github auch je einen Ordner mit den 5 in den ZIP-Dateien enthaltenen TMX-Dateien (tmx_teil_1.tmx bis tmx_teil_5.tmx) für die beiden Sprachrichtungen:
Von hier können Sie sich die 5 TMX-Dateien einzeln über den Befehl wget (und den Link zur "RAW" Version, siehe oben) herunterladen und ablegen.
Legen Sie für die 5 Dateien aus den ZIP-Dateien im Ordner mit den Skripten (MTUOC-TMXtabtxt) einen Unterordner (z.B. mit dem Namen TMX) an und legen Sie sie dort ab.
HINWEIS: Bevor Sie die Python-Skripte verwenden, vergessen Sie nicht, alle Voraussetzungen zu installieren oder zu überlegen, ob Sie eine virtuelle Umgebung erstellen möchten. Diesen Teil sprechen wir in der Online-Vorlesung an.
Um TMX in Text zu konvertieren, ist es wichtig zu wissen, welche Sprachen die TMX-Datei enthält und welche(n) Code(s) es für jede Sprache verwendet. So kann z.B. später in den resultierenden tabulatorgetrennten Dateien Die Reihenfolge der Sprachen angepasst werden. Zu diesem Zweck können Sie die folgenden Skripte aus dem Ordner verwenden.
Wir haben das Pythonskript MTUOC-TMXdetectlanguages.py. So ein Pythonskript können wir in der Kommandozeilenumgebung mit dem Befehl: python Name_des-Skripts.py_
aufrufen. Mit Hilfe des Parameters -h
können Sie in diesem Fall herausfinden, wie Sie es verwenden und welche Parameter das Skript zur Verfügung stellt.
Wenn Sie wissen wollen, welche Sprachcodes in der Datei TMX-EN-DE.tmx enthalten sind, geben wir ein:
python3 MTUOC-TMXdetectlanguages.py -i TMX-EN-DE.tmx
Das Programm liefert uns die beiden in der Datei vorhandenen Codes zurück:
de
es
Je nachdem wie die Datei erstellt wurde, könnten pro Sprache auch mehrere Codes in einer Datei enthalte sein (z.B. de, de-CH, de-de)
Wenn wir die Codes aller TMX-Dateien in einem Verzeichnis wissen wollen, verwenden wir das Programm MTUOC-TMXdetectlanguagesDIR.py, das auch die Option -h hat, mit dem die verfügbaren Parameter erfährt:
python3 MTUOC-TMXdetectlanguagesDIR.py -h
Verwendung: MTUOC-TMXdetectlanguagesDIR.py [-h] -d INPUTDIR
MTUOC-Programm zur Ermittlung des Sprachcodes aller TMX-Dateien in einem bestimmten Verzeichnis.
Optionen:
-h, --help diese Hilfemeldung anzeigen und beenden
-d INPUTDIR, --dir INPUTDIR
Das Eingabeverzeichnis, in dem sich die TMX-Dateien befinden.
Um nun die Codes aller TMX-Dateien in dem Verzeichnis zu erfahren, in dem wir die 5 TMX Dateien aus der ZIP-Datei abgelegt haben geben wir den untenstehenden Befehl ein. Dabei gehen wir davon aus, dass das Verzeichnis mit den 5 TMX-Dateien TMX heisst und sich direkt im Verzeichnis mit den Skripten (MTUOC-TMX2tabtxt) liegt
python3 MTUOC-TMXdetectlanguagesDIR.py -d TMX/
Als Ausgabe erhalten sie in etwas folgendes:
tmx_teil_5.tmx
TMX/tmx_teil_5.tmx
tmx_teil_2.tmx
TMX/tmx_teil_2.tmx
tmx_teil_1.tmx
TMX/tmx_teil_1.tmx
tmx_teil_3.tmx
TMX/tmx_teil_3.tmx
tmx_teil_4.tmx
TMX/tmx_teil_4.tmx
de
en
Das heisst in allen 5 Dateien kommen nur die Codes de und en
vor.
Um eine einzelne TMX-Datei in tabellarischen Text zu konvertieren, verwenden wir das Programm MTUOC-TMX2tabtxt.py:
python3 MTUOC-TMX2tabtxt.py -h
usage: MTUOC-TMX2tabtxt.py [-h] -i INPUTFILE -o OUTPUTFILE -s SLCODE [SLCODE ...] -t TLCODE [TLCODE ...] [--noTags]
[--simpleTags] [--noEntities] [--fixencoding]
MTUOC program for converting a TMX into a tab text.
options:
-h, --help show this help message and exit
-i INPUTFILE, --in INPUTFILE
The input TMX file.
-o OUTPUTFILE, --out OUTPUTFILE
The output text file.
-s SLCODE [SLCODE ...], --sl SLCODE [SLCODE ...]
The code for the source language.
-t TLCODE [TLCODE ...], --tl TLCODE [TLCODE ...]
The code for the target language.
--noTags Removes the internal tags.
--simpleTags Replaces tags with <t>, </t> or <t/>.
--noEntities Replaces html/xml entities by corresponding characters.
--fixencoding Tries to restore errors in encoding.
Für die Konvertierung müssen wir also mindestens die zu konvertierende Datei als Input (-i
) und den Namen der neuen Ausgabedatei im tabulator-getrennten Format (-o
) angeben. Dazu benötigen wir den Code für die Ausgangs und die Zielsprache (die wir oben ermittelt haben). Zusätzlich zur Konvertierung ermöglicht das Skript Ihnen, Tags zu entfernen, html-Entities in die entsprechenden Zeichen umzuwandeln und zu versuchen, Kodierungsprobleme zu beheben. Die grundlegende Konvertierung wird wie folgt durchgeführt:
python3 MTUOC-TMX2tabtxt.py -i TMX-EN-DE.tmx -o EN-DE.txt -s en -t de
Wenn wir nun alle TMX-Dateien in einem Verzeichnis konvertieren wollen, verwenden wir das Programm MTUOC-TMX2tabtxtDIR.py.
python3 MTUOC-TMX2tabtxtDIR.py -h
usage: MTUOC-TMX2tabtxtDIR.py [-h] -d INPUTDIR -o OUTPUTFILE -s SLCODE [SLCODE ...] -t TLCODE [TLCODE ...] [--noTags]
[--simpleTags] [--noEntities] [--fixencoding]
MTUOC program for converting all the TMX files in a given directory into a tab text.
options:
-h, --help show this help message and exit
-d INPUTDIR, --dir INPUTDIR
The input directory where the TMX files are located.
-o OUTPUTFILE, --out OUTPUTFILE
The output text file.
-s SLCODE [SLCODE ...], --sl SLCODE [SLCODE ...]
The codes for the source language.
-t TLCODE [TLCODE ...], --tl TLCODE [TLCODE ...]
The codes for the target language.
--noTags Removes the internal tags.
--simpleTags Replaces tags with <t>, </t> or <t/>.
--noEntities Replaces html/xml entities by corresponding characters.
--fixencoding Tries to restore errors in encoding.
So wird es gemacht:
python3 MTUOC-TMX2tabtxtDIR.py -d TMX/ -o TMX-gesamt.txt -s en -t de --noTags --noEntities
TMX/tmx_teil_1.tmx
TMX/tmx_teil_2.tmx
TMX/tmx_teil_3.tmx
TMX/tmx_teil_4.tmx
TMX/tmx_teil_5.tmx
Und wir werden den Inhalt aller TMX-Dateien in einer einzigen Datei TMX-gesamt.txt haben
Diese Dateien könnten sich wiederholende Segmente enthalten, so dass es sinnvoll sein kann, sie zu löschen (wie wir das bereits in der Lektion zur Korpusvorbereitung gemacht haben):
cat TMX-gesamt.txt | sort | uniq | shuf > TMX-gesamt-uniq.txt
3.4 Konvertierung von SDLTM-Translation Memories Es ist auch möglich, Trados Studio Translation Memories (SDLTM) mit den Programmen aus der Sammlung MTUOC-SDLTM2tabtxt in tabellarischen Text zu konvertieren.