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

  1. Voraussetzungen installieren:

    Installieren Sie subword-nmt, falls es noch nicht installiert ist:

    pip install subword-nmt
    
  2. 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.

grafik

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.

Datei test.txt im Text-Editor nano

Oder verwenden Sie eine der Dateien, die Sie von Github herunterladen können - je nach Sprache:

Inhalt des Verzeichnisses


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.

  1. Für die Trainingsdaten:
    subword-nmt apply-bpe --codes bpe.codes --input train.txt --output train.bpe
    

So sieht die Dateien train.bpe aus grafik

  1. Für die Testdaten:
    subword-nmt apply-bpe --codes bpe.codes --input test.txt --output test.bpe
    

Nach diesen Befehlen enthalten die Dateien train.bpe und test.bpe die segmentierten Subwords.

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 und able werden wiederverwendet.

Geben Sie die beiden Dateien mit der Endung .bpe auf Moodle ab.

Zusammenfassung

Mit diesem Ansatz haben sie:

  1. Ein BPE-Modell trainiert (bpe.codes).
  2. Subword-Segmentierung auf Trainings- und Testdaten angewendet.
  3. 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.