【发布时间】:2016-03-02 19:27:48
【问题描述】:
我在 python 中使用 gensim word2vec 库并使用预训练的 GoogleNews-vectors-negative300.bin 模型。但是,
我的语料库中有没有词向量的词,我是 得到 keyError 我该如何解决这个问题?
这是我迄今为止尝试过的,
1: 加载GoogleNews-vectors-negative300.bin per-trained 模型:
model = Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
print "model loaded..."
2:利用推文中所有词向量的平均值构建训练集词向量,然后进行缩放
def buildWordVector(text, size):
vec = np.zeros(size).reshape((1, size))
count = 0.
for word in text:
try:
vec += model[word].reshape((1, size))
count += 1.
#print "found! ", word
except KeyError:
print "not found! ", word #missing words
continue
if count != 0:
vec /= count
return vec
trained_vecs = np.concatenate([buildWordVector(z, n_dim) for z in x_train])
请说明如何在预训练的 Word2vec 模型中添加新词?
【问题讨论】:
-
发布到目前为止您尝试过的代码。 Gensim 关于 word2vec (radimrehurek.com/gensim/models/word2vec.html) 的文档涵盖了您想要实现的目标。如果您正在寻找预训练的向量,您可以在此处获取它们 - code.google.com/p/word2vec
-
我遵循了相同的教程。但我认为我并没有完全执行每一步。我刚刚从预训练模型中获得了词向量。现在,我想用一些单词或句子来扩展预训练模型。
标签: python nlp gensim word2vec word-embedding