web-dev-qa-db-ja.com

モデルを手動でダウンロードせずに、Googleの事前トレーニング済みのWord2Vecモデルにアクセス/使用する方法

Word2Vecモデルを使用して、Google Cloud Platform(GCP)上のGoogle Computeサーバー上のテキストを分析したい。

ただし、 https://mccormickml.com/2016/04/12/googles-pretrained-Word2vec-model-in-python/ の非圧縮Word2vecモデルは3.5GBを超えており、手動でダウンロードしてクラウドインスタンスにアップロードする時間です。

自分でアップロードせずに、Google Computeサーバーでこの(または他の)事前トレーニング済みのWord2Vecモデルにアクセスする方法はありますか?

11
Scott Vinay

次のコードは、Colab(またはその他のJupyterノートブック)で約10秒でジョブを実行します。

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

pythonスクリプト内で必要な場合は、wgetリクエストを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