如何在不手动下载模型的情况下访问/使用Google预先训练的Word2Vec模型?

Sco*_*nay 10 python nlp google-compute-engine google-cloud-platform 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模型?

Fra*_*Fra 20

您也可以使用 Gensim 通过下载器 api 下载它们:

import gensim.downloader as api
path = api.load("word2vec-google-news-300", return_path=True)
print(path)
Run Code Online (Sandbox Code Playgroud)

或从命令行:

python -m gensim.downloader --download <dataname> # same as api.load(dataname, return_path=True)
Run Code Online (Sandbox Code Playgroud)

有关可用数据集的列表,请检查:https : //github.com/RaRe-Technologies/gensim-data


alv*_*vas 2

除了手动下载内容之外,您还可以在 Kaggle 数据集上使用预打包版本(不是来自 Google 的第三方)。

首先注册 Kaggle 并获取凭证https://github.com/Kaggle/kaggle-api#api-credentials

然后,在命令行上执行此操作:

pip3 install kaggle
mkdir -p /content/.kaggle/
echo '{"username":"****","key":"****"}' > $HOME/.kaggle/kaggle.json
chmod 600 /root/.kaggle/kaggle.json
kaggle datasets download alvations/vegetables-google-word2vec
unzip $HOME/content/vegetables-google-word2vec.zip
Run Code Online (Sandbox Code Playgroud)

最后,在Python中:

import pickle 
import numpy as np
import os

home = os.environ["HOME"]
embeddings = np.load(os.path.join(home, 'content/word2vec.news.negative-sample.300d.npy'))
with open(os.path.join(home, 'content/word2vec.news.negative-sample.300d.txt')) as fp:
    tokens = [line.strip() for line in fp]
embeddings[tokens.index('hello')]
Run Code Online (Sandbox Code Playgroud)

Colab 上的完整示例:https://colab.research.google.com/drive/178WunB1413VE2SHe5d5gc0pqAd5v6Cpl


P/S:要访问其他预打包的词嵌入,请参阅https://github.com/alvations/vegetables