1

我正在尝试使用 freebase 和 gensim 的 word2vec 来使用以下代码查找两个单词的向量之间的相似度得分。

model = gensim.models.Word2Vec()
model = models.Word2Vec.load_word2vec_format('freebase-vectors-skipgram1000-en.bin.gz', binary=True)

在基于 freebase 创建模型后,我的代码给了我任何单词的关键错误。

model.similarity('microsoft', 'apple')

这是给我KeyError: 'microsoft'

但是当我使用 googlenews 而不是 freebase 时,它​​可以正常工作。知道为什么吗?

4

2 回答 2

2

model.similarity('/en/microsoft', '/en/apple')

于 2015-07-01T18:05:10.753 回答
0

该特定模型具有 Freebase /en ID 作为单词的标签。还有另一个版本使用 MID(即 /m ID)。您可以使用 Freebase API 或数据转储找到与单词/实体相关联的英语(或任何其他语言)标签(您不能只是在单词的前面加上“/en/”,就像您可能从 @scottyli 猜到的那样)回答)。

您可能还想看看这个问题和答案:Using freebase vectors with gensim

于 2015-07-01T19:33:54.387 回答