[PYTHON] Langage naturel: Doc2Vec Part1 --livedoor NEWS Corpus

Cible

Nous avons résumé la classification des documents à l'aide du Microsoft Cognitive Toolkit (CNTK).

Dans la première partie, nous préparerons la classification des documents à l'aide de CNTK.

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

  1. Télécharger le corpus d'actualités de livingoor
  2. Prétraitement des données textuelles, création d'un dictionnaire de mots
  3. Création d'un fichier à lire par le lecteur intégré fourni par CNTK

introduction

Télécharger le corpus d'actualités de Liveoor

corpus de nouvelles

・ Communication allemande ・ Piratage de la vie informatique ・ Chaîne d'appareils ménagers ・ Livedoor HOMME ・ ENTRER FILM ・ Pêche ・ Esmax ・ Montre de sport ・ Actualités du sujet

Il s'agit d'un corpus composé de 9 types d'articles. Chaque fichier article est couvert par la licence Creative Commons, dont l'affichage ou la modification est interdit.

corpus d'actualités liveoor

Accédez à la page ci-dessus et téléchargez / décompressez ldcc-20140209.tar.gz.

La structure des répertoires cette fois est la suivante.

Doc2Vec  |―text   |―...  doc2vec_corpus.py Word2Vec

Prétraitement des données textuelles, création d'un dictionnaire de mots

Le prétraitement des données de texte réutilise les fonctions implémentées dans Natural Language: Word2Vec Part1 --Japanese Corpus.

Pour le fractionnement de mots, utilisez Mecab, basé sur le dictionnaire NEologd, pour supprimer les mots vides.

De plus, pour l'évaluation des performances du modèle, 10 documents sont séparés de chaque catégorie en tant que données de vérification.

Cette fois, après Computer Vision: Image Caption Part1 --STAIR Captions, les mots qui n'apparaissaient pas plus d'une fois ont été remplacés par UNK.

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

Pendant la formation, nous utiliserons CTFDeserializer, l'un des leaders intégrés de CNTK. Cette fois, une étiquette de catégorie est attribuée à un document composé de plusieurs mots.

Le flux de traitement général du programme qui prépare Doc2Vec est le suivant.

  1. Préparation des données de formation et des données de vérification
  2. Prétraitement des données textuelles et création d'un dictionnaire de mots
  3. Rédaction de documents et d'étiquettes de catégorie

la mise en oeuvre

Environnement d'exécution

Matériel

・ Processeur Intel (R) Core (TM) i7-6700K 4,00 GHz

Logiciel

・ Windows 10 Professionnel 1909 ・ Python 3.6.6 ・ Mecab 0.996

Programme à exécuter

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

doc2vec_corpus.py


Commentaire

Je vais extraire et compléter certaines parties du programme à exécuter.

Entrée et sortie Doc2Vec

Le contenu du CTFDeserializer utilisé pour cette formation est le suivant.

0 |word 346:1	|label 0:1
0 |word 535:1
0 |word 6880:1
...
1 |word 209:1	|label 0:1
1 |word 21218:1
1 |word 6301:1
...

Le nombre à l'extrême gauche représente un document, plusieurs mots|Une étiquette de catégorie pour les documents composés de mots|L'étiquette est attribuée.

résultat

Lorsque le programme est exécuté, le dictionnaire de mots est créé et enregistré comme suit.

Number of total words: 73794
Number of words: 45044

Saved word2id.
Saved id2word.

Now 1000 samples...
Now 2000 samples...
...
Now 7000 samples...

Number of training samples 7277
Number of validation samples 90

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

référence

corpus d'actualités liveoor

Computer Vision : Image Caption Part1 - STAIR Captions Natural Language : Word2Vec Part1 - Japanese Corpus

Recommended Posts

Langage naturel: Doc2Vec Part1 --livedoor NEWS Corpus
Langage naturel: Word2Vec Part1 - Corpus japonais
Langage naturel: Doc2Vec Part2 - Classification des documents
Langage naturel: BERT Part1 - Corpus Wikipedia japonais
Langage naturel: Word2Vec Part3 - Modèle CBOW
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
Analyse des composants principaux avec Livedoor News Corpus --Préparation--
Python: traitement du langage naturel
RNN_LSTM2 Traitement du langage naturel