加载预先训练的单词嵌入

时间:2017-10-26 17:11:55

标签: python encoding word2vec gensim

我想从谷歌新闻

加载预训练的单词嵌入
model = gensim.models.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
print (model.wv.vocab)

但错误显示:

UnicodeEncodeError: 'ascii' codec can't encode character '\u2022' in position 62425: ordinal not in range(128)

我该如何解决这个问题?因为我想列出单词嵌入中的所有单词并进行句子嵌入的平均值。

1 个答案:

答案 0 :(得分:0)

我正以相同的方式加载它们并且没有那个问题 - 我怀疑它是print语句。可能你的stdout只为ascii设置,无论是在jupyter还是在终端上。为了避免这个问题,我建议打开一个像

这样的编码文件
with open("vocab.txt", "w", encoding="utf8") as vocab_out:
    for word in model.wv.vocab:
        vocab_out.write(word + "\n")