8

我正在尝试通过将预训练的 .bin 文件从 google word2vec 站点(freebase-vectors-skipgram1000.bin.gz)加载到 word2vec 的 gensim 实现中开始。模型加载良好,

使用 ..

model = word2vec.Word2Vec.load_word2vec_format('...../free....-en.bin', binary= True)

并创建一个

>>> print model
<gensim.models.word2vec.Word2Vec object at 0x105d87f50>

但是当我运行最相似的功能时。它无法在词汇表中找到单词。我的错误代码如下。

有什么想法我哪里出错了吗?

>>> model.most_similar(['girl', 'father'], ['boy'], topn=3)
2013-10-11 10:22:00,562 : WARNING : word ‘girl’ not in vocabulary; ignoring it
2013-10-11 10:22:00,562 : WARNING : word ‘father’ not in vocabulary; ignoring it
2013-10-11 10:22:00,563 : WARNING : word ‘boy’ not in vocabulary; ignoring it
Traceback (most recent call last):
File “”, line 1, in
File “/....../anaconda/python.app/Contents/lib/python2.7/site-packages/gensim-0.8.7/py2.7.egg/gensim/models/word2vec.py”, line 312, in most_similar
raise ValueError(“cannot compute similarity with no input”)
ValueError: cannot compute similarity with no input
4

2 回答 2

7

'...../free....-en.bin' 中的单词形式为

en/boardwalk_chapel en/mutsu_munemitsu en/goffstown en/yaw_axis en/john_e_fogarty_international_center en/francielle_manoel_alberto en/shinji_harada

因此,当您寻找“女孩”时,它不存在

于 2013-11-20T17:25:17.683 回答
2

为了扩展 Sergio 的答案,“单词”实际上是 Freebase 标识符,因此“女孩”由/en/girl(对于 freebase-vectors-skipgram1000-en.bin.gz)或其 MID 等效项/m/05r655(对于 freebase-vectors-skipgram1000 .bin.gz)

https://www.freebase.com/m/05r655

https://www.freebase.com/en/girl

于 2015-06-10T16:16:26.320 回答