Dies ist eine Fortsetzung der Dokumentklassifizierung mit dem Microsoft Cognitive Toolkit (CNTK).
In Teil 2 werden die in Teil 1 vorbereiteten Dokumentdaten verwendet, um Dokumente nach CNTK zu klassifizieren. Es wird davon ausgegangen, dass CNTK und NVIDIA GPU CUDA installiert sind.
Natürliche Sprache: Doc2Vec Part1 --livedoor NEWS Corpus bereitete Trainingsdaten und Verifizierungsdaten vor.
In Teil 2 erstellen wir ein Doc2Vec-Modell und klassifizieren Sätze.
Doc2Vec Doc2Vec [1] [2] [3] ist eine Erweiterung von Word2Vec. Das diesmal implementierte Doc2Vec ist ein einfaches Modell, das die Ausgabe der eingebetteten Ebene aller in einem Dokument enthaltenen Wörter mittelt und klassifiziert, zu welcher Kategorie das Dokument gehört.
Der Anfangswert jedes Parameters verwendet die Standardeinstellung von CNTK. In den meisten Fällen hat es eine gleichmäßige Verteilung von Glorot [4].
Word2Vec hat Sampled Softmax [5] verwendet, um die Ausgabeebene zu beschleunigen, um Wörter vorherzusagen, aber dieses Dokument Da die Klassifizierung 9 Kategorien umfasst, habe ich die normale Softmax-Funktion und den Cross-Entropy-Fehler verwendet.
Adam [6] wurde als Optimierungsalgorithmus verwendet. Adams Lernrate beträgt 0,01, der Hyperparameter $ β_1 $ ist 0,9 und $ β_2 $ ist der Standardwert für CNTK.
Das Modelltraining lief 10 Epochen durch Mini-Batch-Training.
・ CPU Intel (R) Core (TM) i7-6700K 4,00 GHz ・ GPU NVIDIA GeForce GTX 1060 6 GB
・ Windows 10 Pro 1909 ・ CUDA 10.0 ・ CuDNN 7.6 ・ Python 3.6.6 ・ Cntk-gpu 2.7 ・ Pandas 0.25.0
Das Schulungsprogramm ist auf [GitHub] verfügbar (https://github.com/sho-watari/NaturalLanguage/tree/master/Doc2Vec).
doc2vec_training.py
Training loss and error
Die folgende Abbildung zeigt die Verlustfunktion und die Protokolle der falschen Erkennungsrate während des Trainings. Das Diagramm links zeigt die Verlustfunktion, das Diagramm rechts zeigt die Falscherkennungsrate, die horizontale Achse zeigt die Anzahl der Epochen und die vertikale Achse zeigt den Wert der Verlustfunktion bzw. die Falscherkennungsrate.
Validation accuracy and confusion matrix
Die folgenden Ergebnisse wurden erhalten, wenn die Leistung unter Verwendung der Verifizierungsdaten bewertet wurde, die bei der Erstellung der Daten in Teil 1 getrennt wurden.
Accuracy 90.00%
Die folgende Abbildung zeigt die gemischte Matrix der Verifizierungsdaten. Die Spaltenrichtung repräsentiert die Vorhersage und die Zeilenrichtung repräsentiert die richtige Antwort.
Ich habe versucht herauszufinden, welche Wörter in einem Satz wichtig sind, wenn Dokumente mithilfe der Rückausbreitung von Verläufen klassifiziert werden.
dojujo-tsushin
1 alleinstehende Frau
2 erwachsene Mädchen
3 Saori Abe
4 Frau
5 nicht heiraten
6 Alter
7 ich
8 verheiratet
9 Werte
10 Exemplare
Worte über Frauen werden in Artikeln des deutschen Newsletters hervorgehoben.
it-life-hack
1 Smartphone
2 Dienstleistungen
3 Dienstleistungen
4 Apps
5 google
6 google
7 google
8 google
9 google
10 google
Wörter über IT werden im IT Life Hack-Artikel hervorgehoben.
sports-watch
1 Training
2 Anzahl Plätze
3 Vereine
4 Vereine
5 nach Hause
6 Oben
7 Vision
8 Yoshida
9 Yoshida
10 Yoshida
Der Artikel von Sports Watch betont Wörter über Sport.
Natural Language : Doc2Vec Part1 - livedoor NEWS Corpus Natural Language : Word2Vec Part2 - Skip-gram model
Recommended Posts