[PYTHON] Natural Language: Machine Translation Part1 - Corpus de sous-titres japonais-anglais

Cible

Nous avons résumé la traduction automatique à l'aide du Microsoft Cognitive Toolkit (CNTK).

Dans la première partie, nous préparerons la traduction automatique à l'aide de Microsoft Cognitive Toolkit.

Je vais les présenter dans l'ordre suivant.

  1. Téléchargez le jeu de données JESC
  2. Création d'un modèle de morceau de phrase
  3. Création d'un fichier à lire par le lecteur intégré fourni par CNTK

introduction

Télécharger le jeu de données JESC

Le corpus de sous-titres japonais-anglais est un vaste corpus bilingue japonais-anglais comprenant le verbal. [1]

Japanese-English Subtitle Corpus

Allez sur la page ci-dessus pour télécharger et décompresser les partitions officielles sous Télécharger. La structure du répertoire cette fois est la suivante.

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

Création d'un modèle de morceau de phrase

Cette fois, nous avons effectué un prétraitement sur l'ensemble de données JESC, comme la réduction de la redondance et la suppression des non-japonais.

Concernant la division des mots, phrasepiece ainsi que Natural Language: Chat Bot Part1-Twitter API Corpus Créez un modèle de sous-mots à l'aide d'un phrase

Création d'un fichier à lire par le lecteur intégré fourni par CNTK

Après la conversion en ID de mot à l'aide du modèle de morceau de phrase entraîné avec les données d'entraînement, vous êtes prêt à créer un fichier texte pour le CTFDeserializer utilisé pour l'entraînement.

la mise en oeuvre

Environnement d'exécution

Matériel

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

Logiciel

・ Windows 10 Professionnel 1909 ・ Python 3.6.6 ・ Pièce de phrase 0.1.86

Programme à exécuter

Le programme implémenté est publié sur GitHub.

nmtt_corpus.py


résultat

La fonction jesc_preprocessing génère train.english.txt et train.japanese.txt pour créer le modèle Phrase Piece.

Entraînez ensuite le modèle de morceau de phrase. La formation commence par définir les arguments comme indiqué ci-dessous. Créez un modèle séparément pour le japonais et l'anglais. J'ai fixé le nombre de mots à 32 000.

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

A la fin de la formation, english.model, english.vocab et japanese.model, japanese.vocab seront créés.

Enfin, exécutez la fonction jesc_sentencepiece pour créer un fichier texte à lire par CTFDeserializer.

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

Number of samples 2748930

Maximum Sequence Length 97

Maintenant que vous êtes prêt à vous entraîner, la partie 2 utilisera CNTK pour vous former à la traduction automatique.

référence

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

Natural Language: Machine Translation Part1 - Corpus de sous-titres japonais-anglais
Natural Language: Machine Translation Part2 - Transformateur de traduction automatique neurale
Langage naturel: Word2Vec Part1 - Corpus japonais
Langage naturel: BERT Part1 - Corpus Wikipedia japonais
Langage naturel: Doc2Vec Part1 --livedoor NEWS Corpus
Langage naturel: Word2Vec Part3 - Modèle CBOW
100 Language Processing Knock 2020 Chapitre 10: Traduction automatique (90-98)
Langage naturel: Doc2Vec Part2 - Classification des documents
Langage naturel: Word2Vec Part2 - Modèle de saut-gramme
Langage naturel: ChatBot Part1-Twitter API Corpus
Langage naturel: BERT Part2 - Préentraînement non supervisé ALBERT
[Traitement du langage naturel / PNL] Comment effectuer facilement une traduction arrière par traduction automatique avec Python