2012-07-15 18 views
11

Uruchamiam IMDbAPI.com i używam Bing's Search API do wyszukiwania identyfikatorów IMDb z wyszukiwania tytułów. Bing obecnie zmienia swoje API na Azure Marketplace (1 sierpnia) i nie jest już dostępny za darmo. Rozpocząłem testowanie mojego API za pomocą Freebase, aby rozwiązać te identyfikatory i osiągnąłem limit 100 000 w ciągu pierwszych 8 godzin (moja strona obecnie otrzymuje około 3 miliony żądań dziennie, ale tylko 200-300 000 to wyszukiwanie tytułu).Freebase: Jaki plik zrzutu danych zawiera "imdb_id"?

To jest właśnie przyczyna oferują pliki zrzutu danych,

Pobrałem większość plików w folderze Film, ale nie mogę znaleźć miejsca, w którym przechowują dane obszaru nazw "/ authority/imdb/title" imdb id.

https://www.googleapis.com/freebase/v1/mqlread?query={"type":"/film/film","name":"True%20Grit","imdb_id":null,"initial_release_date>=":"1969-01","limit":1}

To jak mam obecnie dostępu do identyfikatora.

Czy ktoś wie, który plik zawiera te informacje? i jak połączyć się z nim z tytułem/identyfikatorem filmu?

Odpowiedz

7

To imdb_id nieruchomość jest wspierany przez klucz w obszarze nazw /authority/imdb/title, więc szukasz linii:

/m/015gxt  /type/object/key  /authority/imdb/title tt0065126 

w pliku http://download.freebase.com/datadumps/latest/freebase-datadump-quadruples.tsv.bz2

to plik 4 GB, więc być przygotowany poczekać chwilę na pobranie. Zauważ, że wszystko jest kluczowane przez MID, więc najpierw musisz to zrozumieć, jeśli nie masz go w bazie danych.

Równoważnik zapytania przy użyciu MQL zamiast danych wysypiska jest https://www.googleapis.com/freebase/v1/mqlread?query=%7B%22type%22%3a%22/film/film%22,%22name%22%3a%22True%20Grit%22,%22imdb_id%22%3anull,%22initial_release_date%3E=%22%3a%221969-01%22,%22mid%22:null,%22key%22:[{%22namespace%22:%22/authority/imdb/title%22}],%22limit%22:1%7D&indent=1

Edycja: P.S. Jestem prawie pewny, że pliki w katalogu Przeglądaj znikną, więc nie będę na nich polegał, nawet jeśli znajdziesz tam informacje.

+1

Próbowałem uniknąć pliku 4gig (wyodrębnionego 33gig), ale mimo to go pobrałem i spędziłem ostatnie 3 godziny, próbując znaleźć NICZEGO, aby go otworzyć/przeanalizować. Skończyłem z wykorzystaniem Log Parsera 2.2 firmy Microsoft, który działał świetnie! LogParser.exe -i: TSV "WYBIERZ Col1, Col4 INTO C: \ imdbList.csv FROM C: \ freebase.tsv WHERE Col3 lubi"% imdb/title% "" -o: CSV -headers: OFF -iHeaderFile: "C: \ header.txt" Teraz mam plik CSV o rozmiarze 3 mb, który ma wszystkie identyfikatory wolnej bazy i identyfikator IMDb. – bfritz

+0

Następnie muszę uzyskać "tytuł", "rok wydania" i "aliasy" z "filmu. tsv ", wtedy mogę połączyć dane w SQL ... I wreszcie mogę szukać :) Ale polegam na dodatkowym pliku z folderu Browse" Films.tsv ", czy wkrótce odejdą? – bfritz

+0

To prawdopodobnie szybciej (i na pewno mniej miejsca na dysku) do przetwarzania skompresowanego pliku, więc nie rozpakowałbym go. Każdy system Linux (lub Cygwin na Windows) może przetwarzać to trywialnie bez pobierania dziwnych własnych narzędzi. Odpowiednim poleceniem jest bzgrep "authority/imdb/title" freebase-datadump-quadruples.tsv.bz2 | cut -f 1,4> imdbList.csv Nawet na laptopie potrafi dekompresować i przeszukiwać ten plik 4GB i wyprowadzać 142K par identyfikatorów w czasie poniżej 20 minut. –

0

poprzednią odpowiedź działa dobrze, to po prostu, że snappier wersja takiego zapytania mogą być:

query = [{ 
      'type': '/film/film', 
      'name': 'prometheus', 
      'imdb_id': null, 
      ... 
     }]; 

Reszta wniosek MQL nie wymieniono, ponieważ nie różni się od wyżej wymienionych. Nadzieja, która pomaga.

Powiązane problemy