[PYTHON] Natürliche Sprache: Maschinelle Übersetzung Teil 1 - Japanisch-Englisch Untertitel Corpus

Ziel

Wir haben die maschinelle Übersetzung mit dem Microsoft Cognitive Toolkit (CNTK) zusammengefasst.

In Teil 1 bereiten wir die maschinelle Übersetzung mit dem Microsoft Cognitive Toolkit vor.

Ich werde sie in der folgenden Reihenfolge vorstellen.

  1. Laden Sie den JESC-Datensatz herunter
  2. Erstellen eines Satzstückmodells
  3. Erstellen einer Datei, die von dem von CNTK bereitgestellten integrierten Reader gelesen werden soll

Einführung

Laden Sie den JESC-Datensatz herunter

Der japanisch-englische Untertitelkorpus ist ein großer zweisprachiger japanisch-englischer Korpus, der auch verbal ist. [1]

Japanese-English Subtitle Corpus

Gehen Sie zur obigen Seite, um die offiziellen Splits unter Download herunterzuladen und zu entpacken. Die Struktur des Verzeichnisses ist diesmal wie folgt.

Doc2Vec NMTT  |―JESC   dev   test   train  nmtt_corpus.py STSA Word2Vec

Erstellen eines Satzstückmodells

Dieses Mal haben wir eine Vorverarbeitung für das JESC-Dataset durchgeführt, z. B. die Reduzierung der Redundanz und das Entfernen von Nicht-Japanern.

In Bezug auf die Wortteilung Satzstück sowie Natürliche Sprache: Chat Bot Part1-Twitter API Corpus Erstellen Sie ein Unterwortmodell mit dem Satzstück.

Erstellen einer Datei zum Lesen durch den von CNTK bereitgestellten integrierten Reader

Nach der Konvertierung in Wort-IDs mithilfe des mit den Trainingsdaten trainierten Satzstückmodells können Sie eine Textdatei für den für das Training verwendeten CTFDeserializer erstellen.

Implementierung

Ausführungsumgebung

Hardware-

・ CPU Intel (R) Core (TM) i7-7700 3,60 GHz

Software

・ Windows 10 Pro 1909 ・ Python 3.6.6 ・ Satzstück 0.1.86

Programm zum Ausführen

Das implementierte Programm wird auf [GitHub] veröffentlicht (https://github.com/sho-watari/NaturalLanguage/tree/master/NMTT).

nmtt_corpus.py


Ergebnis

Die Funktion jesc_preprocessing generiert train.english.txt und train.japanese.txt, um das Satzstückmodell zu erstellen.

Dann trainieren Sie das Satzstückmodell. Das Training beginnt mit dem Setzen der Argumente wie unten gezeigt. Erstellen Sie ein Modell separat für Japanisch und Englisch. Ich habe die Anzahl der Wörter auf 32.000 festgelegt.

$ spm_train --input=/mnt/c/.../JESC/train.english.txt --model_prefix=english --vocab_size=32000

Am Ende des Trainings werden english.model, english.vocab und japanese.model, japanese.vocab erstellt.

Führen Sie abschließend die Funktion jesc_sentencepiece aus, um eine Textdatei zu erstellen, die von CTFDeserializer gelesen werden soll.

Now 10000 samples...
Now 20000 samples...
...
Now 2740000 samples...

Number of samples 2748930

Maximum Sequence Length 97

Jetzt, da Sie bereit sind zu trainieren, wird Teil 2 CNTK verwenden, um Sie in maschineller Übersetzung zu schulen.

Referenz

JESC sentencepiece

Natural Language : Chat Bot Part1 - Twitter API Corpus

  1. Reid Pryzant, Youngjoo Chung, Dan Jurafsky, and Denny Britz. "JESC: Japanese-English Subtitle Corpus", arXiv preprint arXiv:1710.10639 (2017).

Recommended Posts

Natürliche Sprache: Maschinelle Übersetzung Teil 1 - Japanisch-Englisch Untertitel Corpus
Natürliche Sprache: Maschinelle Übersetzung Teil 2 - Neuronaler maschineller Übersetzungstransformator
Natürliche Sprache: Word2Vec Part1 - Japanischer Korpus
Natürliche Sprache: BERT Part1 - Japanischer Wikipedia Corpus
Natürliche Sprache: Doc2Vec Part1 --livedoor NEWS Corpus
Natürliche Sprache: Word2Vec Part3 - CBOW-Modell
100 Sprachverarbeitung Knock 2020 Kapitel 10: Maschinelle Übersetzung (90-98)
Natürliche Sprache: Doc2Vec Part2 --Dokumentklassifizierung
Natürliche Sprache: Word2Vec Part2 - Skip-Gramm-Modell
Natürliche Sprache: ChatBot Part1-Twitter API Corpus
Natürliche Sprache: BERT Part2 - Unüberwachte Vorschulung ALBERT
[Verarbeitung natürlicher Sprache / NLP] Einfache Rückübersetzung durch maschinelle Übersetzung mit Python