[PYTHON] Satzvektorerstellung mit BERT (Keras BERT)

Ich habe versucht, einen japanischen Satzvektor mit japanisches BERT-trainiertes Modell zu erstellen. Ich habe gesehen, wie man mit BERT auf verschiedenen Websites einen Satzvektor erstellt, wusste aber nicht, wo die Modelldatei abgelegt werden soll, oder ich konnte nicht bei Null anfangen, also [Google Colaboratory](https: //colab.research) Ich möchte .google.com /) auf einfache Weise verwenden, ohne es in meinen Computer einlegen zu müssen.

Was ist Google Colaboratory?

Sie können Python-Programme in einer Cloud-Ausführungsumgebung mit einem Browser und einem Google-Konto ausführen, ohne etwas auf Ihrem Computer installieren zu müssen. Das Bild ist eine Jupyter-Notebook-Umgebung in der Cloud. Sobald Sie Python-Code schreiben, können Sie ihn im laufenden Betrieb ausführen. Es ist großartig, es kostenlos zu verwenden, da Google für die Ausbildung und Forschung im Bereich des maschinellen Lernens verwendet werden soll. Es ist ein Dienst, den Sie mit GPU und TPU verwenden können, und es gibt keine Option, ihn nicht zum Experimentieren und Studieren zu verwenden.

Bereiten Sie ein BERT-Modell vor

Bereiten Sie zunächst ein geschultes BERT-Modell vor. Zum Glück gibt es Leute, die ein trainiertes Modell auf japanischer Wikipedia erstellt und veröffentlicht haben, also werde ich dieses Modell verwenden.

Ich habe BERT mit SentencePiece in der japanischen Wikipedia gelernt und das Modell veröffentlicht

Auf dieser Seite befindet sich ein Link zu Google Drive. Laden Sie die Datei daher von dort herunter. Sie benötigen folgende Dateien: (Sie brauchen nicht die größte bz2-Datei!)

Erstellen Sie nach dem Herunterladen der Datei einen ** bert ** -Ordner unter ** Mein Laufwerk ** auf Ihrem Google Drive, erstellen Sie einen ** bert-wiki-ja ** -Ordner darin und erstellen Sie die obige Datei darin. Laden Sie alle hoch.

Laden Sie außerdem die folgende Datei von [hier] herunter (https://drive.google.com/drive/folders/1tGiWcYJ6Q3xnZK8nMtTQVDaPNm5pYfq9?usp=sharing) und laden Sie sie ebenfalls in den Ordner ** bert-wiki-ja ** hoch. Ich werde. Diese Datei enthält die Einstellungen, die für die Verwendung der zuvor hochgeladenen Modelldatei erforderlich sind.

Schließlich ist es in Ordnung, wenn Sie die folgenden Dateien in Google Drive haben. googledrive.PNG

Führen Sie ein Programm aus, das Satzvektoren erstellt

Von hier Laden Sie die folgende ipynb-Datei herunter, die den Hauptteil des Programms darstellt, und laden Sie sie an einen beliebigen Ort auf Google Drive hoch.

Richten Sie Google Drive für die Verwendung von Google Colaboratory ein und öffnen Sie diese Datei in Google Colaboratory. Führen Sie es beim Öffnen mit Alle ausführen ([Strg] + [F9]) aus.

Der Code wird in der richtigen Reihenfolge ausgeführt und an einer Stelle auf dem Weg wird "Google Drive in Pfad / Inhalt / Laufwerk einbinden" wie folgt angezeigt. Sie müssen sich authentifizieren, um die Google Drive-Dateien zu durchsuchen. Klicken Sie daher auf den angegebenen Link, befolgen Sie die Anweisungen auf dem Bildschirm, um Berechtigungen zu erteilen, und geben Sie den letzten Code ein, der unter "Geben Sie Ihren Autorisierungscode ein:" angezeigt wird. Wenn Sie es an der richtigen Stelle platzieren, wird es fortgesetzt.

Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=...

Enter your authorization code:

Der im Text in der letzten Codezelle festgelegte Satz ist der Satz, für den der Satzvektor erstellt wird.

text= 'Eine Endstation, die als Haustür von Tokio bezeichnet werden kann. Insbesondere ist es der Ausgangspunkt der Tokaido Shinkansen und Tohoku Shinkansen und die landesweit größte Basis im Shinkansen-Netzwerk.'
texts2matrix([text])

Der erstellte Satzvektor sieht folgendermaßen aus.

array([[ 7.48805702e-01,  6.90443218e-01, -2.08694339e-01,
         2.60837108e-01, -6.57196045e-01,  2.21781164e-01,
         2.99572378e-01, -5.03947437e-02,  2.57107586e-01,
        -3.71909142e-02,  4.70012784e-01, -4.32350069e-01,
        ...
        -2.44613029e-02, -5.86998463e-02,  3.70831758e-01,
        -2.27520689e-01,  3.76363575e-01,  2.21934259e-01,
         7.50128254e-02,  1.20648248e-02, -2.35060215e-01]], dtype=float32)

Ist es erfolgreich umgezogen? Wenn Sie "Text" umschreiben und diese Codezelle erneut ausführen, wird der Satzvektor neu berechnet und ausgegeben.

Verweise

Ich habe auf dieses Dokument verwiesen.

abschließend

Ich habe Ihnen gezeigt, wie Sie einen Satzvektor auf kürzestem Weg erstellen. Wenn jedoch etwas schief geht, kommentieren Sie dies bitte. Wenn der Text in einen Vektor umgewandelt werden kann, wird er auf verschiedene Arten verwendet. BERT befindet sich noch im Versuch und Irrtum, aber ich denke darüber nach, es zu versuchen, wenn ein Vektor auch mit einem Modell erstellt werden kann, das auf ein bestimmtes Feld abgestimmt wurde. (Informationen sind willkommen!)

Normalerweise mache ich bei dieser Firma Geschäfte in Bezug auf natürliche Sprache. Wir verwenden auch andere Technologien als BERT. Schauen Sie also bitte vorbei, wenn Sie interessiert sind. → Ifocus Network Co., Ltd.

Recommended Posts

Satzvektorerstellung mit BERT (Keras BERT)
Satzvektorerstellung mit fastText (auch Visualisierung)
Erstellung eines negativen / positiven Klassifikators mit BERT
Satzvektorerstellung mit BERT (Keras BERT)
Zusammenfassung bei Verwendung von Fabric
Zusammenfassung zum Lernen von RAPIDS
Pipenv Nutzungszusammenfassung (für mich)
Chat mit Socket erstellen
Satzerzeugung mit GRU (Keras)