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モデルにアクセスする方法はありますか?
次のコードは、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)