Lektion 2: Kommandozeile und TMX - mkappus1/datenmanagement-mt-25 GitHub Wiki
Willkommen zur zweiten Lektion im Kurs Datenmanagement für die MT. In dieser Lektion geht es um den Umgang mit TMX-Dateien und grundlegende Unix-Werkzeuge zur Bearbeitung und Analyse solcher Daten und anderer mehrsprachiger Korpora.
- Einführung in TMX (möglicherweise schon bekannt)
- Tool-Übersicht
- Manipulieren von TMX-Dateien mit Hilfe der Kommandozeile
- Exkurs:
- OPUS Korpora
- Grundlegende Korpusvorbereitung mit Unix-Befehlen
- Eine funktionierende Linux-Umgebung, z. B. (siehe Lektion 1):
- WSL auf Windows
- Terminal auf dem Mac
- oder ein natives Linux
In diesem Block beschäftigen wir uns mit dem Bearbeiten von Dateien in der Kommandozeile mit Hilfe verschiedenster Tools. Dabei wird der Fokus auf das TMX-Datei Format gelegt, da es:
- für viele Übersetzer:innen ein bekanntes und relevantes Format ist
- ein Format ist, das auch beim Training und bei der Feinanpassung von NMT-Systemen nützlich sein kann
- ein XML-Datei basiertes Format ist, und so viele Konzepte und Prozesse auch auf andere XML-basierte Formate übertragen werden können.
Hinweis: Viele der hier gezeigten Befehle und Prozesse sind besonders im Umgang mit grossen Dateien sinnvoll. Aus Gründen der Anschaulichkeit wird in diesem Kurs aber immer wieder auch mit kleineren Dateien gearbeitet für die es möglicherweise effizientere Prozesse und Werkzeuge gibt als die hier gezeigten. Bitte verwenden Sie trotzdem für die Übungen und Aufgaben wann immer möglich die vorgestellten Kommandozeilen-Tools. Natürlich können Sie diese Tools auch für andere Aufgaben als die aus diesem Kurs einsetzen.
Link zum nächsten Abschnitt (Einführung TMX)
TMX (Translation Memory eXchange) ist ein XML-basiertes Austauschformat.
Hier eine kurze (XML Einführung) für diejenigen die noch nicht mit XML gearbeitet haben.
TMX wird verwendet, um die Inhalte von Übersetzungsspeichern (Translation Memories, TMs) auszutauschen. Das Austauschformat wurde von der LISA (Localization Industry Standards Association) entwickelt und ermöglicht den Austausch von TMs zwischen verschiedenen Übersetzungsprogrammen und -umgebungen. Link zur offiziellen TMX Spezifikation
Hauptmerkmale des TMX-Formats:
-
Struktur: TMX-Dateien bestehen aus einer Hierarchie von XML-Tags, wobei
<tu>
(Translation Unit) einzelne Übersetzungseinheiten darstellt. Jede Einheit enthält<tuv>
(Translation Unit Variant) für verschiedene Sprachvarianten. - Interoperabilität: Da TMX plattform- und softwareunabhängig ist, können TMs aus einem CAT-Tool (z. B. SDL Trados, MemoQ) in ein anderes importiert werden.
- Metadaten: TMX kann auch Metadaten wie Erstellungsdatum, Bearbeiter oder Änderungen speichern.
Bedeutung für die Übersetzung:
- TMX als Format für Translation Memory Inhalte erleichtert die Wiederverwendung von bereits übersetzten Inhalten über verschiedene Werkzeuge hinweg, was die Konsistenz und Effizienz erhöht.
Bedeutung für NMT (Neural Machine Translation):
- TMX-Dateien stellen eine wertvolle Ressource für das Training von NMT-Systemen dar, da sie grosse Mengen an Satzpaaren in mehreren Sprachen enthalten können.
- Saubere, gut gepflegte TMX-Dateien können die Qualität der maschinellen Übersetzung verbessern, indem sie als paralleles Korpus dienen.
- NMT-Systeme können spezifische TMs integrieren, um Übersetzungen an kundenspezifische Terminologien und Schreibweisen anzupassen.
Hier ein kleines Beispiel für eine TMX-Datei (kann hier heruntergeladen werden):
<?xml version="1.0" encoding="UTF-8"?>
<tmx version="1.4">
<header creationtool="ExampleTool" creationtoolversion="1.0" segtype="sentence" o-tmf="ExampleTMF" adminlang="en-US" srclang="en" datatype="PlainText"/>
<body>
<tu>
<tuv xml:lang="en">
<seg>Hello, world!</seg>
</tuv>
<tuv xml:lang="de">
<seg>Hallo, Welt!</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="en">
<seg>How are you?</seg>
</tuv>
<tuv xml:lang="de">
<seg>Wie geht es dir?</seg>
</tuv>
</tu>
<tu>
<tuv xml:lang="en">
<seg>Thank you!</seg>
</tuv>
<tuv xml:lang="de">
<seg>Danke!</seg>
</tuv>
</tu>
</body>
</tmx>
Hier einige Fragen zur Struktur dieser TMX-Datei?
- Wie/wo werden Ausgangs- und Zielsprache in der TMX-Datei angegeben?
- Wie kann man den Unterschied zwischen den Tags
<tu>
und<tuv>
beschrieben?
Kurzer Exkurs zum Herunterladen von Dateien von der Kommandozeile aus:Herunterladen von Dateien von der Kommandozeile
TMX-Dateien dienen hauptsächlich als Austauschformat und sind nicht dafür gedacht, von Menschen gelesen oder manuell verarbeitet zu werden. Die Inhalte eines Translation Memories (TM), die dann im TMX-Format exportiert werden können, kann man im jeweiligen CAT-Tool anschauen und in gewissem Mass auch bearbeiten. Wenn man die Inhalte der TMX-Dateien verändern möchte hat man (je nach Art der Bearbeitung, Grösse der Datei, ...) die Wahl aus verschiedenen Werkzeugen.
TMX-Editoren
Es gibt einige wenige dedizierte TMX-Editoren, mit denen man TMX-Dateien bearbeiten kann.
Tool | Plattform | Funktionen | Status / Besonderheiten |
---|---|---|---|
Okapi Olifant | Windows | - TMX anzeigen, filtern, bearbeiten - Zusammenführen, splitten, sortieren - Unicode-fähig |
Teil des Okapi Frameworks |
Heartsome TMX Editor | Plattformübergreifend (Java) | - Bearbeiten, sortieren, suchen/ersetzen - GUI altmodisch, aber funktional |
Nicht mehr aktiv entwickelt, aber als Open Source verfügbar |
TMX Editor (Maxprograms) | Windows, macOS, Linux (Java) | - Einfache TMX-Bearbeitung mit GUI - Unterstützt TMX 1.1–1.4b |
Website: maxprograms.com |
OmegaT + External TMs | Plattformübergreifend (Java) | - Anzeige, Export und Referenz von TMX-Dateien - Kein dedizierter TMX-Editor |
In erster Linie ein CAT-Tool, aber TMX-fähig |
Text-Editoren
TMX-Dateien lassen sich aber auch mit normalen Texteditoren bearbeiten. Dabei empfehlen sich Editoren, die die Bearbeitung von XML unterstützen (z. B. mit Syntaxhervorhebung). Zum Beispiel ermöglichen die Texteditoren Notepad++ (nur Windows), Sublime Text (Windows und Mac) und Visual Studio Code (Windows, Mac und Linux) das direkte Bearbeiten von XML.
Diese Werkzeuge eignen sich in der Regel nur für TMX-Dateien bis zu einer bestimmten Grösse. Bei grösseren Dateien, wie sie z.B. für das Training oder Fine-tuning von NMT-Systemen benötigt werden, ist die Arbeit mit diesen Werkzeuge oft mühsam, da die Werkzeuge bei grossen Dateien nur sehr langsam reagieren.
Dedizierte Kommandozeilen Tools (für XML-basierte Formate)
Grössere (TMX-) Dateien lassen sich oft besser mit Kommandozeilentools zur Manipulation von Dateien bearbeiten, wie sie in Linux (und ähnlichen Umgebungen) standardmässig zur Verfügung gestellt werden. Darüber hinaus gibt es spezielle Kommandozeilen-Tools, mit deren Hilfe man TMX-Dateien (bzw. XML-Dateien im allgemeinen) bearbeiten kann. Die bekanntesten sind wahrscheinlich:
- xmllint (Kommandozeile) – zum Prüfen und Formatieren von TMX.
- xmlstarlet – vielseitiges Tool zum Bearbeiten, Extrahieren und Transformieren von XML.
Darüber hinaus lassen sich TMX-Dateien auch mit Hilfe von Python-Skripten manipulieren. Dazu sollte man sogenannte Bibliotheken für die Verarbeitung von XML-Dateien (xml.etree.ElementTree oder lxml) in Python importieren. Mehr dazu später in diesem Kurs.
Gerade kleinere TMX-Dateien können im CAT-Tool, mit TMX-Editoren oder normalen Texteditoren einigermassen effizient bearbeitet werden. Bei grösseren TMX-Dateien empfiehlt es sich jedoch, direkt in der Kommandozeile oder mit (Python-)Skripten zu arbeiten.
Hier ein kleines Quiz zum Thema TMX
Im folgenden finden Sie ein paar praktische Übungen, in denen Sie lernen werden, wie Sie mit TMX-Dateien (und anderen Text-basierten) Dateien in der Kommandozeilenumgebung umgehen können. Laden Sie die Dateien
-
TMX_klein.tmx
(https://raw.githubusercontent.com/mkappus1/datenmanagement-mt-25/refs/heads/main/Lektion2/tmx_klein.tmx) -TMX_klein2.tmx
(https://raw.githubusercontent.com/mkappus1/datenmanagement-mt-25/refs/heads/main/Lektion2/tmx_klein2.tmx) undTMX_gross.tmx
(https://raw.githubusercontent.com/mkappus1/datenmanagement-mt-25/blob/main/Lektion2/tmx_gross.tmx) über die Kommandozeile herunter (s. Anleitung oben) und speichern Sie sie in einem neuen Verzeichnis ab.
Lassen Sie sich zunächst über den Befehl ls
den Inhalt des neuen Verzeichnisses (mit den beiden TMX Dateien) anzeigen.

In der Kommandozeile gibt es eine Reihe von Befehlen, mit denen man Inhalte von (grossen) TMX-Dateien (aber auch anderen textbasierten Dateien) schnell anzeigen kann.
Inhalte grosser TMX-Dateien schnell auf dem Bildschirm anzeigen: Die Befehle cat
, more
und less
Exkurs: Die Befehle cat, more und less.
Verwendung: Zeigt den Inhalt einer Datei an oder verbindet mehrere Dateien.
Beispiel:
cat datei.txt
zeigt den Inhalt der Datei datei.txt an.Mit dem Befehl
cat datei1.txt datei2.txt > zusammen.txt
werden die Inhalte der Dateien datei1.txt und datei2 zusammengeführt und in eine neue Datei mit dem Namen zusammen.txt geschrieben. Ohne den Zusatz> zusammen.txt
würden die Inhalte der beiden Dateien einfach am Bildschirm zusammengefügt und angezeigt.Führen Sie die Befehle die folgenden Befehle nacheinander aus und notieren Sie die Ergebnisse (also was passiert). Gibt es Probleme mit der praktischen Nützlichkeit des Befehls
cat
?
cat tmx_klein.tmx

cat tmx_gross.tmx

cat tmx_klein.tmx tmx_klein2.tmx

cat tmx_klein.tmx tmx_klein2.tmx > tmx_neu.tmx

- lassen Sie sich den Inhalt des Verzeichnisses mit
ls
noch einmal anzeigen.

cat tmx_neu.tmx

Verwendung: Anzeige von Textdateien seitenweise mit der Möglichkeit zu scrollen. Praktischer als cat
bei grossen Dateien.
less grosse_datei.txt
Mit den Pfeiltasten und den Tasten Bild hoch/runter kann man zur vorherigen/nächsten Seite navigieren. Mit der Tasteq
kann less beendet werden.
→ Lektion zu Texteditoren aus dem letzten Jahr.
Der Befehl nano
in Unix (inklusive Linux und WSL) startet einen einfachen, textbasierten Texteditor direkt im Terminal. Mit nano
können Sie Textdateien anzeigen und bearbeiten. Es ist ein beliebter Editor, da er im Vergleich zu anderen Unix-Editoren wie vim
oder emacs
als sehr benutzerfreundlich gilt.
-
Öffnen einer Datei:
Sie können eine Datei mitnano
öffnen, indem Sie den Befehl zusammen mit dem Dateinamen eingeben:
nano dateiname.txt
Wenn die Datei nicht existiert, wird sie automatisch erstellt.
-
Bearbeiten von Dateien:
Sobald die Datei geöffnet ist, können Sie den Text direkt bearbeiten. Die Navigation erfolgt über die Pfeiltasten. -
Speichern von Änderungen:
Um die Änderungen zu speichern, drücken SieCtrl + O
(das bedeutet, dass Sie gleichzeitig dieCtrl
-Taste und dieO
-Taste drücken). Anschließend können Sie den Dateinamen bestätigen oder ändern, indem Sie die Enter-Taste drücken. -
Beenden des Editors:
Um den Editor zu schließen, drücken SieCtrl + X
. Falls Sie die Datei nicht gespeichert haben, fragtnano
, ob Sie Ihre Änderungen speichern möchten.
-
Ctrl + G
: Hilfemenü anzeigen. -
Ctrl + W
: In der Datei nach einem Textabschnitt suchen. -
Ctrl + K
: Eine Zeile ausschneiden. -
Ctrl + U
: Ausgeschnittenen oder kopierten Text einfügen. -
Ctrl + C
: Aktuelle Cursorposition anzeigen.
nano /home/user/dokument.txt
Dies öffnet die Datei dokument.txt
zur Bearbeitung. Wenn die Datei nicht existiert, wird sie neu erstellt.
nano
ist ideal für schnelle Änderungen an Konfigurationsdateien oder zum Erstellen und Bearbeiten einfacher Textdateien in einer Unix-Umgebung.
Mit Hilfe der Befehl **grep**
oder **findstr**
Kann man nach bestimmten Begriffen oder Tags innerhalb einer (TMX)-Datei suchen.
Exkurs: Was machen die Befehle grep und
findstr
:
Zum Beispiel:
grep -i "<seg>" beispiel.tmx
-
Wie kann man die Segmente, die einen bestimmtem Begriff enthalten in eine neue Datei schreiben (also "filtern")?
-
wc -l
: Zählen, wie viele Zeilen die Datei hat – als erste Schätzung der Grösse.
**Hier die Befehle sort, ... aus dem letzten Jahr vorstellen
Mit dem Befehl split
können grosse TMX-Dateien in kleinere Portionen aufgeteilt werden, um sie für Tests oder Analysen vorzubereiten
Verwendung: Der Befehl split teilt grosse Dateien in kleinere Stücke.
**Beispiel: **
split -l 1000 grosse_datei.txt teil_
Diese Anweisung teilt grosse_datei.txt
in Dateien mit je 1000 Zeilen. Die erzeugten Dateien heissen teil_aa
, teil_ab
, teil_ac
, ...
Bisher haben wir mit relativ kleinen Dateien gearbeitet. Um NMT-Systeme zu trainieren, werden aber grössere parallele Korpora von ausreichender Grösse benötigt. Diese können theoretisch selbst erstellt werden (einige der dafür benötigten Methoden werden im späteren Verlauf des Kurses vorgestellt), es gibt im Internet aber auch mehrere Repositories, aus denen wir parallele Korpora für verschiedene Sprachpaare und Fachgebiete beziehen können. Ein Repository sticht dabei besonders hervor: Opus Corpora.
Rufen Sie diese Ressource auf und sehen Sie sie sich genau an. Auf der Webseite gibt es eine Suchmaschine, in die Sie die gewünschte Ausgangs- und Zielsprache eingeben können. Wenn Sie Englisch als Ausgangssprache und Deutsch als Zielsprache eingeben, werden Sie sehen, dass Ihnen ihnen viele Korpora in dieser Sprachrichtung angezeigt werden (diejenigen, die lieber mit Italienisch oder Französisch arbeiten, können das natürlich entsprechend anpassen)
Sie sehen eine Tabelle mit grundlegenden Statistiken jedes Korpus mit der Anzahl der Segmente und der Token.
Jeder Korpusname auf der Webseite ist ein Link. Wenn Sie darauf klicken, gelangen Sie auf eine Seite, auf der die Details des angegebenen Korpus erklärt werden.
Eine Eigenschaft dieser Korpora ist, dass die Ausgangssprache des Korpus nicht unbedingt die eigentliche Originalsprache und die Zielsprache die Übersetzung sein muss. In einem englisch-deutschen Korpus kann es beispielsweise sein, dass in einem Segment Englisch das Original und Deutsch die Übersetzung ist, in einem anderen Segment kann es aber auch umgekehrt sein. Es ist sogar möglich, dass die beiden Sprachen in Wirklichkeit die Übersetzung aus einer dritten Sprache sind, die dann das Original wäre. Wenn wir uns die detaillierte Beschreibung des Korpus ansehen, können wir herausfinden, oder zumindest erahnen, ob es sich tatsächlich um die Originale handelt oder nicht.
Ein weiterer wichtiger Punkt ist, dass einige der Korpora wirklich riesig sind und das Herunterladen sehr viel Zeit und Speicherplatz auf Ihrem Computer erfordert.
Laden Sie nun ein (relativ) kleines Korpus herunter, z.B. das "ELRC-vaccination v1" mit ein paar Hundert Segmenten Segmenten (laden Sie jetzt nicht das ELRC-EMEA herunter, das viel grösser ist.
Sie werden sehen, dass Sie es im sogenannten Moses-Format und im TMX-Format herunterladen können.
Laden Sie beide Formate herunter, entpacken Sie die Dateien, falls nötig, und sehen Sie sie sich an, indem Sie sie in einem guten Texteditor öffnen (ich gebe Ihnen weiter unten einige Tipps, welche Texteditoren geeignet sind). Verwenden Sie keine Korpora mit mehr als 1 Mio. Segmenten, da der Editor sonst wahrscheinlich abstürzen wird. https://object.pouta.csc.fi/OPUS-ELRC-vaccination/v1/moses/en-it.txt.zip https://object.pouta.csc.fi/OPUS-ELRC-vaccination/v1/moses/en-fr.txt.zip https://object.pouta.csc.fi/OPUS-ELRC-vaccination/v1/moses/de-en.txt.zip
Aufgabe: Beschreiben Sie den Aufbau des Moses Dateiformats in wenigen Worten. Wie unterscheidet sich das Moses Format vom TMX-Format?
In diesem Abschnitt werden wir eine grundlegende Korpusvorverarbeitung mit Unix-Befehlen und einigen einfachen Dienstprogrammen durchführen. In diesem Kurs wollen wir ein NMT-System für das Fachgebiet Medizin und das Sprachpaar Englisch - Deutsch (oder Englisch - Italienisch) trainieren. Um mit der Vorverarbeitung zu beginnen, müssen wir auf unser Linux-Terminal zugreifen und das Korpus herunterladen. Zunächst einmal möchten wir das Opus Corpora EMEA-Korpus im Moses-Format herunterladen. Sie können die Website von Opus Corpora besuchen und mit Hilfe der Suchmaschine den Download-Link auswählen und ihn von der Website herunterladen, oder Sie kopieren den Download-Link und laden ihn mit wget herunter:
wget https://object.pouta.csc.fi/OPUS-EMEA/v3/moses/de-en.txt.zip
(Englisch - Deutsch)
wget https://object.pouta.csc.fi/OPUS-EMEA/v3/moses/en-it.txt.zip
(Englisch - Italienisch)
Wenn Sie eine Fehlermeldung erhalten, dass Sie wget nicht installiert haben, können Sie es installieren (unter Ubuntu 22.04 und anderen Debian-basierten Distributionen):
sudo apt-get install wget
Sobald das Korpus heruntergeladen wurde, müssen wir es entpacken, da es als Zip-Datei heruntergeladen wird. Gehen Sie dazu im Terminal in das Verzeichnis, in dem sich die Datei befindet, und geben Sie folgenden Befehl ein:
unzip de-en.txt.zip
unzip en-it.txt.zip
(Italienisch)
Achtung: Wenn die Anwendung unzip auf Ihrem Linux-System unzip nicht installiert ist und dieser Befehl eine Fehlermeldung ausgibt, können Sie es mit dem folgenden Befehl installieren:
sudo apt-get install unzip
Sobald die Dateien entpackt sind, sehen Sie mehrere Dateien, darunter (die Namen können je nach Sprachpaar oder Korpus, das Sie gewählt haben, variieren):
- EMEA.de-en.en: der englische Teil des Korpus
- EMEA.de-en.de: der deutsche Teil des Korpus
Wir können die Anzahl der Segmente (Zeilen) im Korpus mit Hilfe des Befehls wc
zählen. Der Befehl wc
, erlaubt es die Anzahl der Zeilen, Wörter und Bytes in den Dateien zu zählen, die mit dem Parameter _Datei _angegeben wurden. Die Syntax des Befehls sieht folgendermassen aus:
wc [Option] [Datei]
Dabei gibt es die folgenden Optionen:
- -c: Zählt lediglich die Bytes innerhalb einer Datei.
- -L: Gibt die Länge der längsten Zeile aus.
- -l: Zählt nur die Zeilen innerhalb der Datei.
- -m: Gibt ausschliesslich die Zeichen innerhalb der Datei an.
- -w: Zählt nur die Wörter in der Datei.
wc -l EMEA.de-en.??
1108752 EMEA.de-en.de
1108752 EMEA.de-en.en
2217504 total
Wie erwartet, haben die beiden Dateien die gleiche Anzahl von Zeilen, da es sich um Parllelkorpora handelt. Dieses parallele Korpusformat mit zwei zeilenweise ausgerichteten Dateien wird als Moses-Format bezeichnet.
Wir wollen nun dieses Korpus im Moses-Format in ein Korpus im tabellenförmigen Textformat zu konvertieren (mit _Paste_verbinden wir nacheinander jede Zeile der ersten Datei mit einem Tabulator und der entsprechenden Zeile der zweiten Datei). Gleichzeitig entfernen wir die Wiederholungen (mit sort | uniq
) und wir sortieren das Korpus nach dem Zufallsprinzip (mit shuf):
Eine kleine Übung zu diesem Vorgehen zusammen mit einer detaillierteren Erklärung der verwendeten Befehle finden Sie hier: Übung-Inhalt von 2 Dateien in einer Datei tabellenförmig zusammenfassen.
Ähnlich wie cat
ermöglicht das Kommandozeilenprogramm paste
die Ausgabe von Dateiinhalten auf die Standardausgabe. Während cat
jedoch Inhalte einfach aneinanderreiht, werden sie mit paste
spaltenweise aneinandergereiht. Das Grundschema des Befehls ist:
paste [OPTIONS] DATEI1 DATEI2 ...
Das von paste
verwendete Trennzeichen kann mit der Option -d angepasst werden. Standardmässig werden Tabulatoren verwendet. Mit der Option _-s _ (serial) kann ein zweiter Modus aktiviert werden. In diesem werden alle Zeilen der ersten Eingabedatei in einer eigenen Zeile in die Ausgabe übernommen. Jede Zeile der Ausgabe enthält somit nur den Inhalt einer Eingabedatei.
paste EMEA.de-en.en EMEA.de-en.de | sort | uniq | shuf > EMEA-uniq-eng-deu.txt
Wenn auf Ihrem System shuf nicht installiert ist, geben Sie ein:
apt-get install coreutils
Jetzt können wir die Anzahl der Zeilen in der resultierenden Datei zählen:
wc -l EMEA-uniq-eng-deu.txt
366888 EMEA-eng-deu.txt
Wie wir sehen können, ist die Anzahl der Segmente geringer, da es in der ursprünglichen Datei sich wiederholende Segmente gab. Tatsächlich gab es in diesem Korpus eine Menge wiederholter Segmente, da sich die Zahl von mehr als 1 Mio. Segmente auf etwas mehr als 350.000 Segmente reduziert hat.
Wir haben gelernt, wie man vom Moses-Format zu tabellarischem Text übergeht, aber es ist auch möglich, mit dem Befehl cut
von tabellarischem Text zu Moses überzugehen:
cut -f 1 EMEA-uniq-eng-spa.txt > EMEA-uniq.en
cut -f 2 EMEA-uniq-eng-spa.txt > EMEA-uniq.de
Unter Unix können Sie den Inhalt von Dateien, wie gross sie auch sein mögen, mit den folgenden Befehlen anzeigen:
cat: Dieser Befehl verkettet den Inhalt von Dateien und zeigt ihn auf dem Bildschirm an, wenn nicht angegeben ist, wo er abgelegt werden soll, etwa so
cat EMEA-uniq-eng-deu.txt
zeigt den Inhalt schnell und ohne Unterbrechung an. Um es zu stoppen, drücken Sie Strg+C
more
: zeigt den Inhalt der Datei an, hält aber an, wenn der Bildschirm voll ist, und um fortzufahren, müssen Sie Enter drücken. Der Befehl less bewirkt übrigens genau dasselbe.
more EMEA-uniq-eng-deu.txt
tail
: zeigt die letzten Zeilen der Datei an.
tail EMEA-uniq-eng-spa.txt
Wie wir gesehen haben, ist unser EMEA-Korpus nach dem Entfernen der wiederholten Segmente zu klein geworden. Wie können wir unser Korpus sinnvoll erweitern um eine ausreichende Datenmenge zu erhalten? Wenn wir uns die Ressourcen in Opus ansehen, sehen wir, dass wir das Korpus ELRC-EMEA zur Verfügung haben.
Um die Inhalte diese Korpus zu unserem bereinigten Korpus hinzuzufügen, führen Sie die folgenden Operationen aus (analog zum EMEA-Koprus):
Laden Sie das ELRC-EMEA Korpus im Moses Format herunter (ACHTUNG: wenn Sie dies im gleichen Verzeichnis wie die EMEA-Dateien tun, löschen Sie zuerst die en-es.txt.zip mit rm en-en.txt.zip
oder benennen Sie die ursprüngliche ZIP-Datei mit dem Befehl mv alterdateiname neuerdateiname
um (mv steht eigentlich für move))
wget https://object.pouta.csc.fi/OPUS-ELRC-EMEA/v1/moses/de-en.txt.zip
Entpacken Sie die heruntergeladenen ZIP-Datei:
unzip de-en.txt.zip
Zählen Sie die Inhalte der beiden heruntergeladenen Dateien.
wc ELRC-EMEA.de-en.*
Entfernen Sie Doubletten und führen Sie die beiden einsprachigen Dateien zusammen.
paste ELRC-EMEA.de-en.en ELRC-EMEA.de-en.de | sort | uniq | shuf > ELRC-EMEA-uniq-eng-deu.txt
wc -l ELRC-EMEA-uniq-eng-deu.txt
777372 ELRC-EMEA-uniq-eng-deu.txt
Nun wollen wir die beiden bereinigen Korpora wie folgt kombinieren:
cat EMEA-uniq-eng-deu.txt ELRC-EMEA-uniq-eng-deu.txt | sort | uniq | shuf > corpusEMEA-uniq-eng-deu.txt
Wir verwenden den Befehl cat statt wie vorher paste, weil wir die Inhalte beiden Dateien ja hintereinander zusammenführen wollen und nicht wie vorher Inhalte von beiden Dateien auf einer Zeile zusammenführen wollen.
Dann zählen wir, wie viele unetrschiedliche Segmente wir haben:
wc -l korpusEMEA-uniq-eng-eu.txt
1144260 corpusEMEA-uniq-eng-deu.txt
Am Ende haben wir ein Korpus mit etwas mehr als 1 Mio. Segmenten aus dem Bereich Medizin erhalten. Dieses Korpus wird die Grundlage für die Engine sein, die wir in diesem Kurs trainieren werden. Geben Sie Ihre Korpusdatei hier auf Moodle ab.
Ein zusammenfassenden Video zu diesen Schritten gibt es auf Moodle.