Ich verwende tflearn und tensorflow, um Dokumente zu klassifizieren. Allerdings habe ich Probleme mit der Größe des Dokuments und der Trainingszeit, die Länge meines größten Dokuments beträgt ~ 98000 Wörter und die Verwendung dieses für das Gebäude wird das Netzwerk extrem zeitaufwendig sein. Ich habe verschiedene Methoden untersucht, um die Dimensionen der Daten zu reduzieren, oder eine Technik, die schnell genug ist, um das Modell zu trainieren. Ich habe doc2vec und word2vec gesehen und die entsprechenden Modelle gebaut, bin mir aber nicht sicher, wie ich sie mit tflearn verwenden soll. Ich klassifiziere die Dokumente auch, indem ich das doc2vec- und das word2vec-Modell erstelle und den Merkmalsvektor durch Mittelung der Merkmalsvektoren aller Wörter erhält, die im Modellvokabular im Dokument vorhanden sind. Kann ich diesen letzten Merkmalsvektor für DNN verwenden oder hat jemand andere Vorschläge, die ich verwenden kann.So verwenden Sie das Tflearn-Deep-Learning für die Dokumentklassifikation
Antwort
Sie können einfach Dokumentklassifikationsmodelle mit TensorFlow erstellen und in die TF.Learn-Bibliothek integrieren.
Es gibt auch Beispiele für die verschiedenen Dokumentklassen-Modelle in den Beispielen Ordner: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/learn#text-classification
Das schnellste Modell für jede Länge Dokument Bag of Words Modell sein wird - eine, die im Durchschnitt Einbettungen von Wörtern. Dies ist die empfohlene Basis für alle Dokumentklassifikationsprobleme. Dann können Sie kompliziertere Modelle wie RNNs oder CNNs ausprobieren.
Hier Codebeispiel dafür:
def bag_of_words_model(features, target):
"""A bag-of-words model. Note it disregards the word order in the text."""
target = tf.one_hot(target, 15, 1, 0)
features = tf.contrib.layers.bow_encoder(
features, vocab_size=n_words, embed_dim=EMBEDDING_SIZE)
logits = tf.contrib.layers.fully_connected(features, 15, activation_fn=None)
loss = tf.losses.softmax_cross_entropy(target, logits)
train_op = tf.contrib.layers.optimize_loss(
loss,
tf.contrib.framework.get_global_step(),
optimizer='Adam',
learning_rate=0.01)
return ({
'class': tf.argmax(logits, 1),
'prob': tf.nn.softmax(logits)
}, loss, train_op)
Für weitere Details, wie es laufen, finden Sie hier - https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/learn/text_classification.py
Sie leicht mehr vollständig verbundenen Schichten (zB DNN Teil) durch Zusatz erweitern können tf.contrib.layers.fully_connected
vor logits
werden berechnet.
Sie können auch Einbettungen von vortrainierten Prüfpunkten mit word2vec oder anderen Einbettungen mithilfe von tf.contrib.framework.init_from_checkpoint
(10) initialisieren.
- 1. Dokumentklassifikation, mit genetischen Algorithmen
- 2. So verwenden Sie das Modell für QCombobox
- 3. ibm watson Dokumentklassifikation
- 4. So verwenden Sie dplyr für die Programmierung
- 5. Ähnlichkeitsmaß scikit-erlernen Dokumentklassifikation
- 6. So verwenden Sie die JComponent
- 7. So verwenden Sie die Systemkatalogsicht
- 8. So verwenden Sie das Formular für polymorphe Verknüpfungen
- 9. So verwenden Sie die Bildauswahl für die Collection View-Zellen
- 10. So verwenden Sie die Konfigurationsdatei für die Azure-Webanwendung
- 11. So verwenden Sie die Nichtmitgliedsfunktionssperre
- 12. So verwenden Sie das SimpleJdbcTemplate queryForMap
- 13. So verwenden Sie Tensorflow das Dienstprogramm batch_sequences_with_states
- 14. So ändern Sie die Hauptdatei für das Webpack-Modul
- 15. So verwenden Sie die Funktion add_product für Variationen in Woocommerce
- 16. So verwenden Sie die logische Indizierung für mehrere Kriterien
- 17. Android - So verwenden Sie die Kamera getSupportedPreviewSizes() für Hochformat
- 18. So verwenden Sie die Espresso-Leerlauf-Ressource für Netzwerkanrufe
- 19. So verwenden Sie die SerialPort-Klasse zuverlässiger
- 20. So verwenden Sie AfterMap, um Eigenschaften für die Auflistungseigenschaft zuzuordnen
- 21. So verwenden Sie SIFT für Bildvergleich
- 22. So verwenden Sie HTTPContext für SPList
- 23. So verwenden Sie numpy.sort für ndarray
- 24. So verwenden Sie NonNullByDefault für ein Paket
- 25. So verwenden Sie ojdbc.policy für Oracle-Verbindung
- 26. So verwenden Sie gcov mit QMake für die Codeabdeckung
- 27. So verwenden Sie die tolower-Funktion für nicht-ASCII-Zeichen
- 28. So verwenden Sie die CSS-Dropdown-Liste für Ajax-Suchergebnisse
- 29. So verwenden Sie die Domäne für WSO2 AM 2.1.0
- 30. So verwenden Sie die Schnittstelle in Konstante
Danke für die Antwort. Ich bin neu zu Deep Learning und Tflearn Ich habe dieses Beispiel [link] https://github.com/tflearn/tflearn/blob/master/examples/nlp/bidirectional_lstm.py verwendet und wollte die 1. Schicht des Netzwerks ändern und Verwenden Sie einen tiefen Netzwerk-Klassifikator, irgendwelche Vorschläge, wie Sie das vielleicht erreichen? Die Max_document_length ist das Hauptproblem und möchte eine Art von Dimensionsreduktion ist nichts anderes –
die erste Schicht in dem Modell, auf das Sie hingewiesen haben - ist Einbettungen. Die Klassifikation kann in der letzten Schicht 'net = Regression ('. Hinweis: 'tflearn' ist anders als TensorFlow eigene Bibliotheken. Aber in diesem Fall gilt das Gleiche - Um zu DNN zu ändern, müssen Sie nur mehr' full_connected' Schichten hinzufügen – ilblackdragon
Ich habe es früher herausgefunden, über Softmax und Klassifizierung.Was ich wissen möchte, ist, wenn es eine Möglichkeit gibt, die Anzahl der Features mit doc2vec oder word2vec oder einer anderen Technik zu reduzieren, bevor Sie es an die Einbettungsschicht übergeben –