3

我正在尝试使用 Google 发布的 freebase 词嵌入,但我很难从 freebase 名称中获取单词。

model = gensim.models.Word2Vec.load_word2vec_format('freebase-vectors-skipgram1000.bin',binary=True)
model.vocab.keys()[:10]

Out[22]:
[u'/m/026tg5z',
 u'/m/018jz8',
 u'/m/04klsk',
 u'/m/08gd39',
 u'/m/0kt94',
 u'/m/05mtf0t',
 u'/m/05tjjb',
 u'/m/01m3vn',
 u'/m/0h7p35',
 u'/m/03ggvg3']

有谁知道它是否存在某种表格来将 freebase 表示映射到它们所代表的单词中?

问候,

赫迪

4

2 回答 2

2

有人实际上为我们做了一件好事,并将 ID 映射到预训练模型中的名称。您可以在此处下载该模型。

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

-en注意之前的额外内容.bin。然后是一些示例词汇:

>>> list(model.vocab.keys())[:10] 
['/en/the_final_country', '/en/independent_curators_international', 
'/en/coney_reyes', '/en/scalr', '/en/everyman_palace_theatre', 
'/m/0g55w3s', '/en/waltershausen', '/en/river_frome_stroud', 
'/en/grzegorz_turnau']
于 2016-08-10T21:27:07.130 回答
1

这些字符串是 Freebase 标识符,特别是 MID,而不是名称。您可以使用 Freebase MQLRead 或搜索 API 查找它们的名称,它们也包含在 Freebase 数据转储中。

您示例中的第一个 ID 代表英国电影导演 Jack Gold。 https://www.freebase.com/m/026tg5z

此 API 调用将返回带有他的姓名的 JSON:

https://www.googleapis.com/freebase/v1/mqlread?query=[{"id":"/m/026tg5z","name":null}] 
于 2015-06-10T16:00:58.363 回答