Freiwillige Übung Subword‐Segmentierung - mkappus1/DatenmanagementMTHS24 GitHub Wiki
Hier ist eine einfache Anleitung, um das subword-nmt-Skript an einer kleinen Datei zu demonstrieren. Diese Schritte zeigen, wie Byte Pair Encoding (BPE) angewendet wird, um Subwords zu generieren.
Vorbereitung
-
Voraussetzungen installieren:
Installieren Sie subword-nmt, falls es noch nicht installiert ist:
pip install subword-nmt
-
Erstellen Sie kleine Beispieldateien: Erstellen Sie zwei Text-Dateien: eine mit Trainingsdaten (
train.txt
) und eine für die Testdaten (test.txt
) mit den folgenden Inhalten.
train.txt
:
I am enjoying the unpredictability of this novel.
The outcomes are often unexpected.
Oder verwenden Sie eine der Dateien, die Sie von Github herunterladen können - je nach Sprache:
test.txt
:
I enjoyed the unpredictability of life.
The result was unexpected and surprising.
Oder verwenden Sie eine der Dateien, die Sie von Github herunterladen können - je nach Sprache:
Schritt 1: Trainieren Sie das BPE-Modell
Das Skript learn_bpe.py
wird verwendet, um ein BPE-Modell zu trainieren. Geben Sie die Anzahl der gewünschten Zusammenführungen (--symbols
) an (diese kann wie unten angegeben bei 50 bleiben).
subword-nmt learn-bpe --input train.txt --output bpe.codes --symbols 50
Oder passen Sie den Befehl (und die folgenden Befehle) entsprechend an, wenn Sie mit den Dateien von Github arbeiten.
train.txt
: Die Eingabedatei mit Trainingsdaten.bpe.codes
: Die Ausgabedatei, die das gelernte BPE-Modell speichert.--symbols 50
: Gibt an, wie viele Subword-Regeln gelernt werden sollen.
Als Resultat wird die Datei bpe.codes erstellt.
Schritt 2: Wenden Sie das BPE-Modell an
Wenden Sie das trainierte BPE-Modell (bpe.codes) zunächst auf die Trainingsdaten und dann auf die Testdaten an, um sie in Subwords zu zerlegen.
- Für die Trainingsdaten:
subword-nmt apply-bpe --codes bpe.codes --input train.txt --output train.bpe
So sieht die Dateien train.bpe aus
- Für die Testdaten:
subword-nmt apply-bpe --codes bpe.codes --input test.txt --output test.bpe
train.bpe
und test.bpe
die segmentierten Subwords.
Nach diesen Befehlen enthalten die Dateien Schritt 3: Ergebnis überprüfen
Öffne die Datei train.bpe
, um die Ergebnisse anzusehen. Hier ein mögliches Beispiel:
Vorher (train.txt):
I am enjoying the unpredictability of this novel.
The outcomes are often unexpected.
Nachher (train.bpe):
I am enjoy@@ ing the un@@ predict@@ ability of this novel .
The out@@ comes are often un@@ expected .
@@
: Zeigt an, dass ein Wort in Subwords zerlegt wurde.- Häufige Teile wie
un
,predict
undable
werden wiederverwendet.
Geben Sie die beiden Dateien mit der Endung .bpe auf Moodle ab.
Zusammenfassung
Mit diesem Ansatz haben sie:
- Ein BPE-Modell trainiert (
bpe.codes
). - Subword-Segmentierung auf Trainings- und Testdaten angewendet.
- Subwords und ihre Rekonstruktion überprüft.
Das Skript kann auf grössere Datenmengen skaliert werden, ist aber auch bei kleinen Beispielen wie diesem hilfreich, um die Funktionsweise von Subwords zu demonstrieren.