マッピングがhttps://gist.github.com/maraoz/388eddec39d60c6d52d4とhttp://image-net.org/challenges/LSVRC/2015/browse-synsetsからのデータでは簡単のようです:
{0: {'id': '01440764-n',
'label': 'tench, Tinca tinca',
'uri': 'http://wordnet-rdf.princeton.edu/wn30/01440764-n'},
1: {'id': '01443537-n',
'label': 'goldfish, Carassius auratus',
'uri': 'http://wordnet-rdf.princeton.edu/wn30/01443537-n'},
2: {'id': '01484850-n',
'label': 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias',
'uri': 'http://wordnet-rdf.princeton.edu/wn30/01484850-n'},
...
は、完全なファイルのためのhttps://gist.github.com/fnielsen/4a5c94eaa6dcdf29b7a62d886f540372を参照してください。
このマッピングが実際に正しいかどうかは十分に確認していません。
このマッピングを用いて構築された:
import ast
from lxml import html
import requests
from pprint import pprint
url_index = ('https://gist.githubusercontent.com/maraoz/'
'388eddec39d60c6d52d4/raw/'
'791d5b370e4e31a4e9058d49005be4888ca98472/gistfile1.txt')
url_synsets = "http://image-net.org/challenges/LSVRC/2014/browse-synsets"
index_to_label = ast.literal_eval(requests.get(url_index).content)
elements = html.fromstring(requests.get(url_synsets).content).xpath('//a')
label_to_synset = {}
for element in elements:
href = element.attrib['href']
if href.startswith('http://imagenet.stanford.edu/synset?wnid='):
label_to_synset[element.text] = href[42:]
index_to_synset = {
k: {
'id': label_to_synset[v] + '-n',
'label': v,
'uri': "http://wordnet-rdf.princeton.edu/wn30/{}-n".format(
label_to_synset[v])
}
for k, v in index_to_label.items()}
pprint(index_to_synset)