[PYTHON] Themenextraktion von japanischem Text 1 Grundlagen

Aidemy 2020/10/30

Einführung

Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur AI-spezialisierten Schule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dieses Mal ist es der erste Beitrag zur Themenextraktion von japanischem Text. Freut mich, dich kennenzulernen.

Was diesmal zu lernen ・ Tiefes Lernen in der Verarbeitung natürlicher Sprache ・ Einbettung, RNN, LSTM, Softmax usw.

Tiefes Lernen in der Verarbeitung natürlicher Sprache

Embedding -__ Einbetten__ bedeutet __ "eingebettet" . Dies ist der erste Prozess, der ausgeführt wird, wenn ein neuronales Netzwerk aufgebaut wird, das Wörter verarbeitet. Insbesondere wird das Symbol word in die Dimension d (ca. 100 bis 300) __ eingebettet. -Embedding erfolgt wie __ "model.add (Embedding (Argument))" . Die Argumente sind wie folgt. - Input_dim: Anzahl der Vokabeln (Worttyp) - Output_dim__: Die Größe der Dimension d des Wortvektors -__ Input_length__: Länge jedes Satzes

RNN -__ RNN__ ist ein "__rekursives neuronales Netz __", ein neuronales Netzwerk, das häufig beim tiefen Lernen der Verarbeitung natürlicher Sprache verwendet wird. __ Hervorragend geeignet für die Verarbeitung von Eingabezeichenfolgen (Reihen variabler Länge) mit beliebiger Länge __.

LSTM -__ LSTM__ ist eine Art von RNN und hat eine Funktion, um die Mängel von RNN auszugleichen. Da RNN ein neuronales Netzwerk tief in der Zeitrichtung ist, hat es den Nachteil, den in den frühen Stadien eingegebenen Wert zu "vergessen". Das heißt, RNN ist nicht gut im Langzeitgedächtnis, aber LSTM kann sowohl das Kurzzeitgedächtnis als auch das Langzeitgedächtnis ausführen, wie der Name "LongShortTermMemory" andeutet.

Implementierung von LSTM

-LSTM kann auch aus Keras importiert und einfach implementiert werden. Wie beim Einbetten kann es mit __ "model.add (LSTM ())" __ verwendet werden. Die Argumente sind wie folgt. ・ Einheiten: Anzahl der Dimensionen des verborgenen Zustandsvektors (ca. 100 bis 300) -__ Return_sequences__: "True" gibt die Ausgabesequenz (versteckter Zustandsvektor) für __alle Eingabesequenzen __ aus, und "False" gibt __ nur den versteckten Zustandsvektor zum letzten Mal T aus.

BiLSTM -LSTM gibt die Eingabeserie x von 1 bis zum Ende in der Reihenfolge ein, aber umgekehrt ist es auch möglich, die Methode __ zur Eingabe in der Reihenfolge von hinten zu verwenden. Bei dieser Anwendung wird häufig eine Methode namens __ "BiLSTM" __ verwendet, die Informationen von __ bidirektional __ eingibt. Im Japanischen heißt es __ "Zwei-Wege-rekursives neuronales Netz" __. -Der Vorteil von BiLSTM besteht darin, dass sowohl "von Anfang an weitergegebene Informationen" als auch "von hinten weitergegebene Informationen" gleichzeitig erfasst werden können. -Für die Implementierungsmethode verwenden Sie keras __ "model.add (Bidirectional (argument))" __. Im ersten Argument wird __LSTM () __ im vorherigen Abschnitt unverändert gespeichert, und im zweiten Argument gibt __ "merge_mode" __ an, wie das bidirektionale LSTM verbunden werden soll.

Softmax-Funktion

-In Deep Learning, das diesmal nicht nur in der natürlichen Sprache klassifiziert wird, wird die __Softmax-Funktion __ in der Schicht verwendet, die der Ausgabeschicht des neuronalen Netzes am nächsten liegt. Diese Funktion wurde auch in "Deep Learning Basics" verwendet.

Attention

Was ist Aufmerksamkeit?

-__ Aufmerksamkeit__ bedeutet __ "Aufmerksamkeitsmechanismus" __. Dies ist ein häufiger Mechanismus bei der Maschinenübersetzung und automatischen Zusammenfassung.

Umsetzung der Aufmerksamkeit

・ Der spezifische Code lautet wie folgt スクリーンショット 2020-10-30 10.41.49.png

Dropout ・ (Überprüfung) Dropout ist eine Methode, mit der einige Daten zufällig auf __ "0" __ gesetzt werden, um ein Überlernen zu verhindern. -Wenn Sie das sequentielle Modell verwenden, kann es mit __ "model.add (Dropout (ratio)") __ verwendet werden. Wenn Sie jedoch die Funktions-API wie dieses Mal verwenden, __ "Dropout (ratio) (x)" __ Sie können es so verwenden.

Zusammenfassung

Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Themenextraktion von japanischem Text 1 Grundlagen
Themenextraktion des japanischen Textes 2 Praktische Ausgabe
Python-Grundlagen ①
Grundlagen von Python ①
Grundlagen der Python-Scraping-Grundlagen
# 4 [Python] Grundlagen der Funktionen
Grundlagen von Netzwerkprogrammen?
Die Gründung der Perceptron-Stiftung
Japanische Lokalisierung von Pycharm
Python: Japanischer Text: Charakteristisch für Sprache aus Wortkontinuität
Grundlagen der Regressionsanalyse
Grundlagen von Python: Ausgabe
Python: Japanischer Text: Morphologische Analyse
Grundlagen des maschinellen Lernens (Denkmal)
Japanische Anzeige von Matplotlib, Seaborn
Japanische Lokalisierungseinstellung von PyCharm
Über den japanischen Weg von Pyminizip
Über die japanische Unterstützung von Cometchat
Python: Grundlagen der Verwendung von Scikit-Learn ①
Strichzeichnungsextraktion der Illustration
Lernen mit dem Lehrer 1 Grundlagen des Lernens mit dem Lehrer (Klassifizierung)
Japanische Übersetzung des sysstat-Handbuchs
XPath-Grundlagen (1) - Grundkonzept von XPath
Japanische Übersetzung des Linux-Handbuchs
Python x GIS-Grundlagen (1)