[PYTHON] Création de vecteurs de phrases avec BERT (Keras BERT)

J'ai essayé de créer un vecteur de phrase japonais à l'aide du modèle japonais formé par BERT. J'ai vu comment créer un vecteur de phrase avec BERT sur divers sites, mais je ne savais pas où placer le fichier de modèle, ou je ne pouvais pas partir de zéro, donc [Google Colaboratory](https: //colab.research) Je voudrais utiliser .google.com /) de manière simple pour le faire sans avoir à le mettre dans ma machine.

Qu'est-ce que Google Colaboratory?

Vous pouvez exécuter des programmes Python dans un environnement d'exécution cloud avec un navigateur et un compte Google sans avoir à installer quoi que ce soit sur votre machine. L'image est un environnement de bloc-notes Jupyter sur le cloud. Dès que vous écrivez du code Python, vous pouvez l'exécuter à la volée. C'est génial qu'il soit gratuit, car Google est destiné à être utilisé pour l'enseignement et la recherche en apprentissage automatique. C'est un service que vous pouvez utiliser GPU et TPU, et il n'y a aucune option à ne pas utiliser pour l'expérimentation et l'étude.

Préparer un modèle BERT

Tout d'abord, préparez un modèle entraîné de BERT. Heureusement, il y a des gens qui ont créé et publié un modèle formé sur Wikipedia japonais, donc je vais utiliser ce modèle.

J'ai appris BERT avec SentencePiece sur Wikipedia japonais et j'ai publié le modèle

Il y a un lien ** google drive ** sur cette page, veuillez donc télécharger le fichier à partir de là. Vous aurez besoin des fichiers suivants: (Vous n'avez pas besoin du plus gros fichier bz2!)

Après avoir téléchargé le fichier, créez un dossier ** bert ** sous ** Mon Drive ** sur votre Google Drive, créez un dossier ** bert-wiki-ja ** dedans et créez le fichier ci-dessus. Téléchargez tout.

De plus, téléchargez le fichier suivant depuis ici et téléchargez-le également dans le dossier ** bert-wiki-ja **. Je vais. Ce fichier sera le fichier contenant les paramètres requis pour utiliser le fichier de modèle téléchargé précédemment.

Enfin, ce n'est pas grave si vous avez les fichiers suivants dans Google Drive. googledrive.PNG

Exécutez un programme qui crée des vecteurs de phrases

À partir de là Téléchargez le fichier ipynb suivant, qui est le corps principal du programme, et importez-le à n'importe quel emplacement sur Google Drive.

Configurez Google Drive pour utiliser Google Colaboratory et ouvrez ce fichier dans Google Colaboratory. Lorsqu'il s'ouvre, exécutez-le avec Tout exécuter ([Ctrl] + [F9]).

Le code s'exécute dans l'ordre, et à un endroit sur le chemin, "Montez Google Drive dans chemin / contenu / lecteur" s'affiche comme suit. Vous devez vous authentifier pour parcourir les fichiers Google Drive. Cliquez sur le lien fourni, suivez les instructions à l'écran pour accorder des autorisations et saisissez le dernier code affiché sous "Entrez votre code d'autorisation:" Si vous le mettez à la place, cela continuera.

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

Enter your authorization code:

La phrase définie dans le texte dans la dernière cellule de code est la phrase pour laquelle le vecteur de phrase est créé.

text= 'Une gare terminale qui peut être appelée la porte d'entrée de Tokyo. En particulier, c'est le point de départ du Tokaido Shinkansen et du Tohoku Shinkansen, et c'est la plus grande base du réseau Shinkansen à l'échelle nationale.'
texts2matrix([text])

Le vecteur de phrase créé ressemble à ceci.

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)

At-il bougé avec succès? Si vous réécrivez «texte» et exécutez à nouveau cette cellule de code, le vecteur de phrase sera recalculé et sorti.

Les références

J'ai fait référence à ce document.

en conclusion

Je vous ai montré comment créer un vecteur de phrase de la manière la plus courte possible, mais si quelque chose ne va pas, veuillez commenter. Si le texte peut être transformé en vecteur, il sera utilisé de différentes manières. BERT est toujours en cours d'essais et d'erreurs, mais je pense essayer si un vecteur peut être créé même avec un modèle qui a été affiné pour un domaine spécifique. (Les informations sont les bienvenues!)

Je fais généralement des affaires liées au langage naturel dans cette entreprise. Nous utilisons également des technologies autres que BERT, alors jetez un œil si vous êtes intéressé. → Ifocus Network Co., Ltd.

Recommended Posts

Création de vecteurs de phrases avec BERT (Keras BERT)
Création de vecteurs de phrases à l'aide de fastText (également visualisation)
Création d'un classificateur négatif / positif à l'aide de BERT
Création de vecteurs de phrases avec BERT (Keras BERT)
Résumé lors de l'utilisation de Fabric
Résumé de l'apprentissage RAPIDS
Résumé de l'utilisation de Pipenv (pour moi-même)
Créer un chat en utilisant socket
Génération de phrases avec GRU (keras)