我尝试使用word2vec,但在尝试对任何单词执行任何操作时都会出错。这似乎是一个编码问题,这就是我所做的:
import gensim, logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
model = gensim.models.Word2Vec.load_word2vec_format('freebase-vectors-skipgram1000/knowledge-vectors-skipgram1000.bin', binary=True)
model.init_sims(replace=True)
print(model)
# prints: Word2Vec(vocab=1422903, size=1000, alpha=0.025)
print(model.index2word[0])
# prints: u'/m/0dgps15'
# I would expect a readable word, how to fix that?
print(model.similarity('word', 'sound'))
# An error happen: KeyError: 'word'
我还尝试使用binary=False
加载模型,但这会在加载时出错。
答案 0 :(得分:3)
word2vec使用没有任何问题。文件格式为二进制(可以使用this nice utility转换为文本。)
您已经下载了经过预先培训的"实体"矢量文件。我建议您使用Google News中的单词或短语向量(也可在word2vec网站上找到)。
[1] import gensim
[2] model = gensim.models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
[3] print(model.similarity('word', 'sound'))
0.152615140536