Кто-нибудь знает, как лучше всего получить идентификаторы актеров из дампов данных Freebase, а затем получить идентификаторы и биографии IMDB из API Freebase?
Получение идентификаторов актеров и биографий из дампов данных или Freebase API
Ответы (1)
Актеры будут иметь тип /film/actor и выглядеть в дампе следующим образом:
ns:m.010q36 rdf:type ns:film.actor.
Вы можете найти их все за несколько минут из сжатого дампа с помощью простого grep:
zgrep $'rdf:type\tns:film.actor.' freebase-rdf-<date of dump>.gz | cut -f 1 | cut -d ':' -f 2 > actor-mids.txt
Это создаст список MID в форме m.010q36
, который представляет MID /m/010q36
.
Используя список MID, найдите все строки, которые имеют этот MID в первом столбце и одно из желаемых свойств во втором. Вы можете сделать это, используя Python, grep или инструмент/язык по вашему выбору. Конечно, если вы используете такой язык программирования, как Python, вы можете выполнить начальный поиск.
Идентификаторы Википедии и IMDB хранятся как то, что Freebase называет ключами, и выглядят так (включая MusicBrainz и Netflix):
ns:m.010q36 ns:type.object.key "/wikipedia/en/Mr$002ERodgers".
ns:m.010q36 ns:type.object.key "/authority/imdb/name/nm0736872".
ns:m.010q36 ns:type.object.key "/authority/musicbrainz/87467525-3724-412d-ad3e-595ecb6a3bfd".
ns:m.010q36 ns:type.object.key "/authority/netflix/role/30006685".
Ключи могут быть закодированы (например, ключ Википедии выше). Вы можете найти документацию на вики Freebase о том, как с ними работать.
zgrep "/authority/imdb/name" freebase-rdf-2013-06-30-00-00.gz | cut -f 1,3
даст вам список MID, и они соответствуют идентификаторам IMDB.
- person Tom Morris; 15.07.2013
cd
, чтобы сначала переключиться на каталог, содержащий файл, чтобы убедиться, что вы находитесь в нужном месте. В моей системе корень диска будет d: (что Cygwin принимает как особый случай) или /cygdrive/d
- person Tom Morris; 16.07.2013