预训练的skip-gram和skip-n-gram向量

Mar*_*ruf 3 word2vec pre-trained-model

我正在做一个项目,我需要一个预训练的skip-gram模型向量.我听说还有一个名为skip-n-gram模型的变体可以提供更好的结果.

我想知道我自己需要训练什么样的模型?因为我只需要它们来为我的模型初始化嵌入层.

我搜索得足够多但没有得到很好的例子.我需要你的建议.我在哪里可以获得这种预先训练过的模型,或者没有预先训练好的模型.

Har*_*man 6

如果你有足够的数据,你可以训练我们自己的单词向量.这可以使用gensim完成.它们为主题建模提供了非常简单但功能强大的API.

但是如果你想使用已经训练过的word2vec模型,你可以使用 Google发布的word2vec模型.它的容量为1.5GB,包括300万字的词汇和短语,他们使用Google新闻数据集对大约1000亿个单词进行训练.

您可以使用gensim加载此模型.下载经过培训的word2vec模型并使用以下代码开始.

import math
import sys
import gensim
import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim') 

from gensim.models.keyedvectors import KeyedVectors

words = ['access', 'aeroway', 'airport']

# load the model
model = KeyedVectors.load_word2vec_format(path_to_model, binary=True)

# to extract word vector
print(model[words[0]])  # vector representing access
Run Code Online (Sandbox Code Playgroud)

结果向量:

[ -8.74023438e-02  -1.86523438e-01 .. ]
Run Code Online (Sandbox Code Playgroud)

请注意,加载这样巨大的模型时,您的系统可能会冻结.

  • @Digao每个单词嵌入是一个大小为300*1的向量.因此,它将只包含该特定单词的特征信息.这里,( - 8.704023438e-02)没有提到概率,它是300个特征之一.这是一个很好的[教程](http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/)来看看你是否感兴趣. (2认同)