[PYTHON] Natürliche Sprache: Doc2Vec Part1 --livedoor NEWS Corpus

Ziel

Wir haben die Dokumentklassifizierung mit dem Microsoft Cognitive Toolkit (CNTK) zusammengefasst.

In Teil 1 bereiten wir die Dokumentklassifizierung mit CNTK vor.

Ich werde sie in der folgenden Reihenfolge vorstellen.

  1. Laden Sie den Newskorpus von Looroor herunter
  2. Vorverarbeitung von Textdaten, Erstellung eines Wortwörterbuchs
  3. Erstellen einer Datei, die von dem von CNTK bereitgestellten integrierten Reader gelesen werden soll

Einführung

Laden Sie den Newskorpus "Livedoor" herunter

Livedoor News Corpus

・ Deutsche Kommunikation ・ IT-Life-Hack ・ Haushaltsgerätekanal ・ Livedoor HOMME ・ FILM EINGABE ・ Pfirsichfarben ・ Esmax ・ Sportuhr ・ Themennachrichten

Dies ist ein Korpus, der aus 9 Arten von Artikeln besteht. Jede Artikeldatei unterliegt einer Creative Commons-Lizenz, deren Anzeige oder Änderung untersagt ist.

Livedoor News Corpus

Rufen Sie die obige Seite auf und laden Sie ldcc-20140209.tar.gz herunter / entpacken Sie es.

Die Verzeichnisstruktur ist diesmal wie folgt.

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

Vorverarbeitung von Textdaten, Erstellung eines Wortwörterbuchs

Bei der Vorverarbeitung von Textdaten werden die in Natürliche Sprache: Word2Vec Part1 - Japanischer Korpus implementierten Funktionen wiederverwendet.

Verwenden Sie zum Aufteilen von Wörtern Mecab, das auf dem NEologd-Wörterbuch basiert, um das Entfernen von Stoppwörtern durchzuführen.

Für die Bewertung der Modellleistung werden außerdem 10 Dokumente als Verifizierungsdaten von jeder Kategorie getrennt.

Diesmal wurden nach Computer Vision: Bildunterschrift Teil1 - STAIR-Untertitel Wörter, die nicht mehr als einmal vorkamen, durch UNK ersetzt.

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

Während des Trainings werden wir CTFDeserializer verwenden, einen der in CNTK integrierten Führungskräfte. Dieses Mal wird einem Dokument, das aus vielen Wörtern besteht, eine Kategoriebeschriftung zugewiesen.

Der allgemeine Verarbeitungsablauf des Programms, das sich auf Doc2Vec vorbereitet, ist wie folgt.

  1. Vorbereitung von Trainingsdaten und Verifizierungsdaten
  2. Vorverarbeitung von Textdaten und Erstellung eines Wortwörterbuchs
  3. Dokumente und Kategoriebeschriftungen schreiben

Implementierung

Ausführungsumgebung

Hardware-

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

Software

・ Windows 10 Pro 1909 ・ Python 3.6.6 ・ Mecab 0,996

Programm zum Ausführen

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

doc2vec_corpus.py


Kommentar

Ich werde einige Teile des auszuführenden Programms extrahieren und ergänzen.

Doc2Vec Ein- und Ausgabe

Der Inhalt des CTFDeserializers, der für diese Schulung verwendet wird, lautet wie folgt.

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
...

Die Zahl ganz links steht für ein Dokument mit vielen Wörtern|Ein Kategorielabel für Dokumente, die aus Wörtern bestehen|Label ist vergeben.

Ergebnis

Wenn das Programm ausgeführt wird, wird das Wortwörterbuch wie folgt erstellt und gespeichert.

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

Jetzt, da wir bereit sind zu trainieren, wird Teil 2 CNTK verwenden, um Doc2Vec zu trainieren.

Referenz

Livedoor News Corpus

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

Recommended Posts

Natürliche Sprache: Doc2Vec Part1 --livedoor NEWS Corpus
Natürliche Sprache: Word2Vec Part1 - Japanischer Korpus
Natürliche Sprache: Doc2Vec Part2 --Dokumentklassifizierung
Natürliche Sprache: BERT Part1 - Japanischer Wikipedia Corpus
Natürliche Sprache: Word2Vec Part3 - CBOW-Modell
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
Hauptkomponentenanalyse mit Livedoor News Corpus - Vorbereitung--
Python: Verarbeitung natürlicher Sprache
RNN_LSTM2 Verarbeitung natürlicher Sprache