web-dev-qa-db-fra.com

Comment accéder / utiliser le modèle Word2Vec pré-formé de Google sans télécharger manuellement le modèle?

Je souhaite analyser du texte sur un serveur Google Compute sur Google Cloud Platform (GCP) à l'aide du modèle Word2Vec.

Cependant, le modèle Word2vec non compressé de https://mccormickml.com/2016/04/12/googles-pretrained-Word2vec-model-in-python/ est supérieur à 3,5 Go et il faudra il est temps de le télécharger manuellement et de le télécharger sur une instance cloud.

Existe-t-il un moyen d'accéder à ce (ou à tout autre) modèle Word2Vec pré-formé sur un serveur Google Compute sans le télécharger moi-même?

11
Scott Vinay

Le code suivant fera le travail sur Colab (ou tout autre ordinateur portable Jupyter) en 10 secondes environ:

result = !wget --save-cookies cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=0B7XkCwpI5KDYNlNUTTlSS21pQmM' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1/p'
code = result[-1]
arg =' --load-cookies cookies.txt "https://docs.google.com/uc?export=download&confirm=%s&id=0B7XkCwpI5KDYNlNUTTlSS21pQmM" -O GoogleNews-vectors-negative300.bin.gz' % code
!wget $arg

Si vous en avez besoin dans le script python, remplacez les requêtes wget par la bibliothèque requests:

import requests
import re 
import shutil

url1 = 'https://docs.google.com/uc?export=download&id=0B7XkCwpI5KDYNlNUTTlSS21pQmM'
resp = requests.get(url1)
code = re.findall('.*confirm=([0-9A-Za-z_]+).*', str(resp.content))
url2 = "https://docs.google.com/uc?export=download&confirm=%s&id=0B7XkCwpI5KDYNlNUTTlSS21pQmM" % code[0]
with requests.get(url2, stream=True, cookies=resp.cookies) as r:
    with open('GoogleNews-vectors-negative300.bin.gz', 'wb') as f:
        shutil.copyfileobj(r.raw, f)
0
igrinis