2012-07-15 4 views
11

나는 IMDbAPI.com을 실행하고 Bing의 검색 API를 사용하여 제목 검색에서 IMDb ID를 찾았습니다. Bing은 현재 Azure Marketplace (8 월 1 일)에 API를 변경하고 더 이상 무료로 사용할 수 없습니다. Freebase를 사용하여 API를 테스트하여 처음 8 시간 동안 100K 한도에 도달했습니다 (내 사이트는 현재 하루에 약 300 만 건의 요청을 처리하지만 제목 검색은 200-300k에 불과합니다)Freebase : "imdb_id"가 포함 된 데이터 덤프 파일은 무엇입니까?

이것이 바로 이유입니다.

대부분의 파일을 Film 폴더에 다운로드했지만 "/ authority/imdb/title"imdb id 네임 스페이스 데이터가 저장되는 위치를 찾을 수 없습니다. 나는 현재 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}

이입니다.

어떤 사람이이 정보가 포함되어 있는지 알고 있나요? 어떻게 영화 제목/ID에서 다시 링크 할 수 있습니까? 4 기가 바이트 파일의 파일 http://download.freebase.com/datadumps/latest/freebase-datadump-quadruples.tsv.bz2

에서

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

, 그래서 준비 :

답변

7

imdb_id 속성이 /authority/imdb/title 네임 스페이스의 키에 의해 백업됩니다, 그래서 당신은 라인을 찾고 그 다운로드를 잠시 기다려야합니다. 모든 것이 MID에 의해 열쇠가되어 있으므로, 데이터베이스에없는 경우 먼저 그 것을 알아 내야합니다. 추신 대신 데이터 MQL를 이용한 등가 질의 덤프

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

EDIT 인 찾아보기 디렉토리에있는 파일들이 사라지고 있다는 것을 확신합니다. 따라서 정보를 찾을 수있을지라도 파일에 의존하지 않을 것입니다.

+1

필자는 4GB (33gig 추출) 파일을 피하려고했지만 어쨌든 다운로드하고 지난 3 시간 동안 아무 것도 열어 보지 못하도록 파싱했습니다. Microsoft의 Log Parser 2.2를 사용하여 큰 상처를 입었습니다. LogParser.exe -i : TSV "Select Col1, Col4 INTO C : \ imdbList.csv C : \ freebase.tsv WHERE Col3은 '% imdb/title %'와 같은" "-o : CSV -headers : OFF -iHeaderFile : "C : \ header.txt" 이제 모든 Freebase ID와 IMDb의 ID가있는 3MB CSV 파일이 있습니다. – bfritz

+0

다음으로 "Film"에서 "Title", "Release Year"및 "Aliases"를 가져와야합니다. tsv "다음 SQL에서 데이터에 가입 할 수 ... 그리고 마침내 검색 할 수 :)하지만"Films.tsv "찾아보기 폴더에서 여분의 파일에 의존하고 있습니다 곧 이러한 멀리 갈 수 있습니까? – bfritz

+0

아마도 압축 파일을 처리하는 것이 더 빠르며 (물론 디스크 공간이 적어 짐) 압축을 풀지 않을 것입니다. 어떤 Linux 시스템 (또는 Windows의 Cygwin)도 이상한 독점 유틸리티를 다운로드하지 않고도이를 처리 할 수 ​​있습니다. 해당 명령은 bzgrep "authority/imdb/title"입니다. freebase-datadump-quadruples.tsv.bz2 | cut -f 1,4> imdbList.csv 랩톱에서조차도 4GB 파일의 압축을 풀고 검색하여 20 분 이내에 142K 쌍의 ID를 출력 할 수 있습니다. –

0

이전의 대답은 잘 작동, 그것은 이러한 쿼리의 빠르다는 버전이 될 수 단지 : 그것은 전술과 다를하지 않는

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

MQL 요청의 나머지 했나요되지 않습니다. 희망이 도움이됩니다.