Nous avons résumé BERT à l'aide du Microsoft Cognitive Toolkit (CNTK).
La première partie se prépare pour BERT.
Je vais les présenter dans l'ordre suivant.
Cette fois, nous utiliserons Wikipédia japonais comme corpus japonais.
Version japonaise de Wikipedia
Téléchargez jawiki-latest-pages-articles-multistream.xml.bz2 à partir du lien ci-dessus. Utilisez ensuite wikiextractor pour supprimer le langage de balisage.
$ python ./wikiextractor-master/WikiExtractor.py ./jawiki/jawiki-latest-pages-articles-multistream.xml.bz2 -o ./jawiki -b 500M
La structure du répertoire cette fois est la suivante.
BERT |―jawiki jawiki-latest-pages-articles-multistream.xml.bz2 |―wikiextractor-master WikiExtractor.py ... bert_corpus.py Doc2Vec NMTT STSA Word2Vec
En plus du prétraitement mis en œuvre jusqu'à présent, un prétraitement tel que la normalisation de la notation des crochets et des signes de ponctuation et la suppression des espaces entre les caractères kana-kanji a été exécuté.
Pour la division des mots, créez un modèle de sous-mots à l'aide de la phrase [1]. De plus, \ [CLS], \ [SEP], \ [MASK] sont définis comme des mots spéciaux.
Dans le pré-apprentissage de BERT [2], le modèle de langage est formé comme apprentissage non supervisé en masquant les phrases contenues dans le corpus, donc créez des données d'apprentissage pour cela.
Le modèle de langage masqué décide de remplacer 15% de la séquence de mots, avec 80% de chances de la laisser comme un mot spécial \ [MASK], 10% de chances de mot aléatoire et 10% de chances de la laisser telle quelle. Mettre.
De plus, cette fois, nous utiliserons la prédiction de l'ordre des phrases [3] au lieu de la prédiction de la phrase suivante.
・ Processeur Intel (R) Core (TM) i7-7700 3,60 GHz
・ Windows 10 Professionnel 1909 ・ Python 3.6.6 ・ Nltk 3.4.5 ・ Numpy 1.17.3 ・ Pièce de phrase 0.1.91
Le programme implémenté est publié sur GitHub.
bert_corpus.py
Lorsque le programme est exécuté, une phrase prétraitée est écrite sur chaque ligne et un corpus japonais est créé avec chaque sujet séparé par des lignes vides.
Le modèle Phrase Piece est ensuite formé pour créer jawiki.model et jawiki.vocab.
Enfin, un fichier texte est créé pour être lu par CTFDeserializer pour le pré-apprentissage.
Maintenant que vous êtes prêt à vous entraîner, la partie 2 utilisera CNTK pour pré-apprendre le japonais sans professeur.
Wikipedia japonais wikiextractor
Recommended Posts