Wordnet 同义词集 ID 有什么规则吗?

hik*_*aru 1 wordnet imagenet

我是 Imagenet 和 Wordnet 数据库的新手。我试图更粗略地重新分类 Imagenet 的图像和类别(例如“植物”、“鱼”、“人”……)。

我知道可以在 下载图像http://www.image-net.org/synset?wnid=[wnid],并且此文件将同义词集 ID 映射到相应的名词,但是是否有任何管理 ID 的规则(例如,ID 的每个数字是否表示某个类别或子类别?) .

小智 5

正如官方API文档所说,wnid是ImageNet中的标识,而不是nltk。您可以根据API文档中的ImageNet和WordNet之间映射将word映射到wnid

为了唯一标识同义词集,我们使用“WordNet ID”(wnid),它是 WordNet 的 POS(即词性)和 SYNSET OFFSET 的串联。

首先,在 nltk 中获取同义词集和偏移量:

from nltk.corpus import wordnet as wn

plant_list = wn.synsets('plant')
# plant_list is: [Synset('plant.n.01'), Synset('plant.n.02'), Synset('plant.n.03'), Synset('plant.n.04'), Synset('plant.v.01'), Synset('implant.v.01'), Synset('establish.v.02'), Synset('plant.v.04'), Synset('plant.v.05'), Synset('plant.v.06')]

offset = plant_list[0].offset()
Run Code Online (Sandbox Code Playgroud)

其次,连接POS和偏移量

由于 ImageNet 仅考虑名词,因此只需选择名词同义词集plant_list并连接wnid = "n{:08d}".format(offset)即可获得wnid.

因为有一个同义词列表,你会得到几个wnid“植物”。