Verwenden Sie Python und word2vec (gelernt) mit Azure Databricks

Zweck dieses Artikels

Ich möchte die Verarbeitung mit word2vec ausführen, das bereits in Azure Databricks gelernt wurde. Früher habe ich in meiner lokalen Umgebung word2vec von Python verwendet, aber ich war süchtig danach, weil ich dachte, es würde mit Kopieren und Einfügen funktionieren, also schreibe ich es auf.

Wenn Sie die Schlussfolgerung zuerst schreiben, ** - Mounten Sie das BLOB, das das trainierte Modell hochgeladen hat, auf Databricks und laden Sie es ** ** - Beachten Sie, dass der Fehler "Datei nicht gefunden" angezeigt wird, wenn Sie den Befehl with open beim Laden nicht verwenden. **

word2vec Übersicht

Word2vec kann mit Wortähnlichkeit mathematisch umgehen

Wie der Name schon sagt, werden Wörter in Vektoren umgewandelt. Eine überaus wichtige Technologie, die für die Verarbeitung natürlicher Sprache unverzichtbar ist. Ersetzen Sie eine einfache Wortfolge durch einen Vektor, damit sie mathematisch behandelt werden kann.

"Reis" "Maschinelles Lernen" "Tiefes Lernen"   ↓     ↓        ↓ image.png

Dies ermöglicht ** die mathematische Berechnung der Ähnlichkeit zwischen Wörtern als räumliche Entfernung **. Es kann mathematisch definiert werden, dass die Wörter "maschinelles Lernen" und das Wort "tiefes Lernen" ähnliche Bedeutungen haben.

Es ist schwer, selbst zu lernen

Die Grundvoraussetzung von word2vec ist die Idee, dass die Bedeutung eines Wortes durch die umgebenden Wörter gebildet wird. Dies wird als "Verteilungshypothese" bezeichnet.

Um es klar auszudrücken, die Bedeutung eines Wortes kann durch Betrachten der Wörter um es herum abgeleitet werden.

Angenommen, Sie haben die folgende Anweisung: ** ・ [Maschinelles Lernen] Technologie ist für die Realisierung künstlicher Intelligenz unverzichtbar. ** ** ** Selbst wenn das Wort "maschinelles Lernen" unbekannt ist, wird spekuliert, dass dies eine Technologie im Zusammenhang mit künstlicher Intelligenz sein könnte.

Ebenso kann es eine Aussage wie diese geben: ** ・ Die Technologie namens [Deep Learning] hat die Erforschung der künstlichen Intelligenz dramatisch beschleunigt. ** ** **

Durch das Lernen einer so großen Anzahl von Sätzen wird es möglich, die Bedeutung unbekannter Wörter vorherzusagen. Es ist auch ersichtlich, dass [maschinelles Lernen] und [tiefes Lernen], in denen ähnliche Wörter in der Umgebung vorkommen, semantisch ähnlich zu sein scheinen.

Dieses Lernen erfordert jedoch das Lesen einer großen Menge von Dokumenten, und die Lernkosten sind hoch. Daher ist es grundlegend, zuerst ein trainiertes Modell zu verwenden.

Schritte zur Verwendung von word2vec mit Azure Databricks


Vorbereitung

  1. Erstellen Sie Azure Databricks-Ressourcen
  2. Erstellen Sie einen Container mit Speicherkonto
  3. Laden Sie das trainierte Modell herunter und lagern Sie es in einem Behälter


Ausführung

  1. Hängen Sie den Container in Azure-Datenbausteine ein
  2. Laden Sie das Modell mit Gensim
  3. Führen Sie word2vec aus

Vorbereitung

1. Erstellen Sie Azure Databricks-Ressourcen

Es gibt nichts, worüber man vorsichtig sein müsste. Sie können es normalerweise über das Azure-Portal erstellen. image.png

2. Erstellen Sie einen Container mit Speicherkonto

Auch hier gibt es nichts zu beachten. Erstellen Sie einen Container. Die öffentliche Zugriffsebene kann privat sein. image.png

3. Laden Sie das trainierte Modell herunter und lagern Sie es in einem Behälter

Laden Sie das trainierte Modell anhand des folgenden Artikels herunter. (Übrigens habe ich fastText verwendet)

Liste der gebrauchsfertigen Worteinbettungsvektoren https://qiita.com/Hironsan/items/8f7d35f0a36e0f99752c

Laden Sie die heruntergeladene Datei "model.vec" in den erstellten Container hoch.

Lauf

Von hier an Operationen am Databricks-Notebook.

1. Hängen Sie den Container in Azure-Datenbausteine ein

Dieser Artikel war sehr leicht zu verstehen.

Analysieren Sie die Daten in Blob mit einer Abfrage! https://tech-blog.cloud-config.jp/2020-04-30-databricks-for-ml/

python


mount_name= "(Beliebiger Name des Mount-Zielverzeichnisses)"
storage_account_name = "(Name des Speicherkontos)"
container_name = "(Containername)"
storage_account_access_key = "(Speicherkonto-Zugriffsschlüssel)"

mount_point = "/mnt/" + mount_name
source = "wasbs://" + container_name + "@" + storage_account_name + ".blob.core.windows.net"
conf_key = "fs.azure.account.key." + storage_account_name + ".blob.core.windows.net"


mounted = dbutils.fs.mount(
  source=source,
  mount_point = mount_point,
  extra_configs = {conf_key: storage_account_access_key}
)

2. Laden Sie das Modell mit Gensim

python


import gensim
word2vec_model = gensim.models.KeyedVectors.load_word2vec_format("mount_name/container_name/model.vec", binary=False)

Wenn ich es oben ausführe, wird aus irgendeinem Grund eine Fehlermeldung angezeigt. Warum ist die Halterung richtig gemacht? (Übrigens, wenn es lokal ist, funktioniert es richtig.)

FileNotFoundError: [Errno 2] No such file or directory:

Verwenden Sie also den Befehl with open wie unten gezeigt, um ihn einmal mit f_read zu empfangen und dann zu laden.

python


import gensim
with open("mount_name/container_name/model.vec", "r") as f_read:
  word2vec_model = gensim.models.KeyedVectors.load_word2vec_format(f_read, binary=False)

Databricks File System (DBFS) - API für lokale Dateien https://docs.microsoft.com/ja-jp/azure/databricks/data/databricks-file-system#local-file-apis

Diesmal war es ein Erfolg.

3. Führen Sie word2vec aus

Versuch es. Versuchen Sie, das Wort "Japanisch" am nächsten zu bringen.

python


word2vec_model.most_similar(positive=['japanisch'])

Out [3]: [('Chinese', 0.7151615619659424), ("Japanisch", 0,5991291999816895), ("Foreign", 0,5666396617889404), ("Japanisch", 0,5619238018989563), ("Koreanisch", 0,5443094968795776), ("Chinese", 0,5377858877182007), ("Resident in Japan", 0.5263140201568604), ("Chinese", 0,5200497508049011), ("Residenz", 0,5198684930801392), ('International Student', 0.5194666981697083)]

Recommended Posts

Verwenden Sie Python und word2vec (gelernt) mit Azure Databricks
Verwenden von Python und MeCab mit Azure Databricks
Verwenden Sie Python und MeCab mit Azure-Funktionen
Einfach! Verwenden Sie gensim und word2vec mit MAMP.
[Python] Verwenden Sie JSON mit Python
Verwenden Sie Mecab mit Python 3
Verwenden Sie Python 3.8 mit Anaconda
Verwenden Sie Python mit Docker
Verwenden Sie Python / Django mit dem Windows Azure Cloud Service!
Ubuntu 20.04 auf Himbeer-Pi 4 mit OpenCV und mit Python verwenden
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Verwenden Sie die Trello-API mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Verwenden Sie die Twitter-API mit Python
Emotionsanalyse von Python (word2vec)
Python mit Pyenv und Venv
Verwenden Sie die Unterschall-API mit Python3
Funktioniert mit Python und R.
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Diesmal habe ich mit Prorate Python III und IV gelernt
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Verwenden Sie MLflow mit Databricks ④ - Anrufmodell -
Python: So verwenden Sie Async mit
Verwenden der SQL-Datenbank von Azure mit SQL Alchemy
Roboter läuft mit Arduino und Python
Verwenden Sie eine Point Grey-Kamera mit Python (PyCapture2).
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Scraping mit Node, Ruby und Python
[Python / matplotlib] FuncAnimation verstehen und verwenden
Scraping mit Python, Selen und Chromedriver
[Python] Mit Pokemon erlernte objektorientierte Programmierung
Lesen und verwenden Sie Python-Dateien aus Python
JSON-Codierung und -Decodierung mit Python
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
Perceptron-Lernexperiment mit Python
Python-Datenstruktur mit Chemoinfomatik gelernt
Effiziente Netzaufnahme mit Python
Lesen und Schreiben von NetCDF mit Python
Verwenden Sie Python in pyenv mit NeoVim
Verwenden Sie Azure Blob Storage aus Python
1. Mit Python 1-1 gelernte Statistiken. Grundlegende Statistiken (Pandas)
Verwenden Sie die Windows 10-Sprachsynthese mit Python
Ich habe mit PyQt5 und Python3 gespielt
Verwenden Sie OpenCV mit Python 3 in Window
Mehrfachintegration mit Python und Sympy
Verwenden Sie PostgreSQL mit Lambda (Python + psycopg2)
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Sugoroku-Spiel und Zusatzspiel mit Python
FM-Modulation und Demodulation mit Python