[PYTHON] In Bezug auf Transformator

In Bezug auf Transformator (grobe Zusammenfassung)

・ Was ist ein Transformator? Vor kurzem habe ich die Verarbeitung natürlicher Sprache studiert und etwas über Transformation gelernt, also habe ich es ein wenig zusammengefasst. Ich studiere, daher würde ich mich freuen, wenn Sie auf Fehler hinweisen könnten. Ein Transformator ist ein Gerät, das eine Zeichenkette in den Transformator eingibt, diese konvertiert und eine andere Zeichenkette ausgibt. Zum Beispiel Wenn ich die Zeichenfolge "Ich bin John Cena" eingebe, fühlt es sich im Übersetzer wie "Ich bin John Sina" an.

In Bezug auf die morphologische Analyse Die Zeichenfolge muss zuerst in Wörter zerlegt werden. Im Fall von Englisch ist es nicht notwendig, den Satz in Wörter zu unterteilen, da der Satz in Wörter wie "Ich bin John Cena" unterteilt ist. Im Fall von Japanisch ist der Satz jedoch wie "Ich bin John Cena". Nicht durch Worte getrennt. Daher wird eine morphologische Analyse durchgeführt, um sie in Worteinheiten zu zerlegen. Einfach ausgedrückt ist die morphologische Analyse die Arbeit, einen Satz in Wörter zu unterteilen und den Teil jedes morphologischen Elements zu bestimmen. Als konkretes Beispiel, wenn morphologische Analyse von "Ich bin John China", "Ich", "ist", "John China", "ist", ". Es wird "".

Wie gehe ich mit Wörtern um? ??

Nachdem ein Satz in Wörter zerlegt wurde, wird die Behandlung der Wörter in numerische Werte umgewandelt. Zum Beispiel ist dies = [0,2, 0,4, 0,5] = [0,1, 0,7, 0,35]. Was diese Eigenschaften darstellen, sind die Eigenschaften jedes Wortes. Diese [0,2, 0,4, 0,5] und [0,1, 0,7, 0,35] werden Wortvektoren genannt.

Wie werden Wörter in Wortvektoren konvertiert? Einfach ausgedrückt, alle natürlichen Sprachen, die Sie analysieren möchten, werden morphologisch analysiert und die angezeigten Wörter werden gesammelt. Vektorisieren Sie dann die Wörter wie eine heiße Codierung.

Wenn zum Beispiel das einzige Wort, das in dem Satz erscheint, den Sie diesmal analysieren möchten, "Ich bin John Cena" ist. I = [ 1 , 0 , 0 , 0 ] am = [ 0 , 1 , 0 , 0 ] John Cena = [ 0 , 0 , 1 , 0 ] . = [ 0 , 0 , 0 , 1 ]
Es kann wie folgt in einen One-Hot-Vektor konvertiert werden. Ändern Sie diesen Wortvektor mit einem Encoder. Infolgedessen kann das Wort in einen Merkmalsbetrag geändert werden. Der Vektor, der durch Ändern dieses One-Hot-Vektors mit einem Codierer erhalten wird, wird als Einbettungsvektor bezeichnet.

Als Beispiel I = [1, 0, 0, 0] ⇒ Encoder ⇒ $ x_1 $ = [0,3, -0,3, 0,6, 2,2]

Dieses $ x_1 $ ist der Einbettungsvektor

Die Idee wie diese wird hier detailliert beschrieben (ich habe sie als Referenz verwendet) https://ishitonton.hatenablog.com/entry/2018/11/25/200332

Wie gehe ich mit Zeichenketten um? ?? Bisher war es möglich, Wörter in Vektoren umzuwandeln, aber wie wird die Zeichenfolge konvertiert? X = "Ich bin John Cena." ⇒ ["Ich", "bin", "John Cena" ",". "](In Wörter unterteilt) ⇒ $ x_1 $, $ x_2 $, $ x_3 $, $ x_4 $ (Wort in Vektor konvertieren $ x_n $ bettet Vektor ein) ⇒ X = [$ x_1 $, $ x_2 $, $ x_3 $, $ x_4 $] Auf diese Weise wird es in eine Matrix umgewandelt.

In Bezug auf Transformatoren

image.png

Ein Transformator gibt eine bestimmte Zeichenfolge zurück, wenn eine Zeichenfolge eingegeben wird. Der Inhalt besteht aus vielen Codierern und Decodierern, wie in der obigen Abbildung gezeigt. Die eingegebene Zeichenfolge wird zuerst in den Encoder eingegeben. Der Inhalt des Encoders wird unten gezeigt image.png

Diese Selbstaufmerksamkeit befasst sich mit der Beziehung zwischen Wörtern in der Eingabezeichenfolge. Die starke Beziehung zwischen Wörtern betrachtet auch die Ähnlichkeit jedes Wortvektors. Um die Ähnlichkeit zu überprüfen, sollte daher das innere Produkt der Matrix überprüft werden. Die Transformation wird dann unter Verwendung eines allgemeinen neuronalen Netzwerks transformiert.

Der Decodierer verwendet dann die Eingabe vom Codierer, um das nächste Wort vorherzusagen. image.png

Diese E-D-Aufmerksamkeit befasst sich mit der Beziehung zwischen Eingabe und Ausgabe.

Ein grober Transformator sieht so aus. Wenn du es richtig wissen willst https://qiita.com/omiita/items/07e69aef6c156d23c538

Ich habe das fast als Referenz benutzt! Wahnsinnig leicht zu verstehen! https://www.youtube.com/watch?v=BcNZRiO0_AE

Recommended Posts

In Bezug auf Transformator
In Bezug auf Pyston 0.3
[Hinweis] In Bezug auf Tensorflow
In Bezug auf die VirusTotal-API