2

ここでの最初の投稿なので、これで十分な詳細であることを願っています。

今日、私が取り組んでいるプログラムの映画情報を取得するためにfreebase-pythonを使い始めました。取得する必要があるのは、映画に出演した俳優のリストです。これを行う方法についていくつかのチュートリアルとガイドに従い、監督または映画の監督の映画のリストを取得できますが、俳優または映画のキャストで同じことをしようとすると、 「ヌル」の結果。

私は Python と Freebase MQL クエリ エディターの両方で同じ問題を抱えています。Stack Overflow では、最初の投稿で各例の下にリンクを投稿できなかったので、エディターで記述された以下のすべての例へのリンクをここで見つけることができます。

Python でのワーキングディレクター クエリ:

import freebase
fb = freebase.mqlread
q = {'type':'/film/film', 'name':'Inception', 'directed_by':[]}
fb(q)

Python でのワーキングディレクターのフィルモグラフィー クエリ:

import freebase
fb = freebase.mqlread
q = {'type':'/film/director', 'name': 'Christopher Nolan', 'film':[]}
fb(q)

これらのテストに基づいて、私はアクターで同じことをしようとしましたが、奇妙な結果になりました:

Python でキャスト リスト クエリが機能しない:

import freebase
fb = freebase.mqlread
q = {'type':'/film/film', 'name':'Inception', 'starring':[]}
fb(q)

Python で俳優のフィルモグラフィー クエリが機能しない:

import freebase
fb = freebase.mqlread
q = {'type':'/film/actor', 'name':'Leonardo DiCaprio', 'film':[]}
fb(q)

奇妙なことに、俳優/映画の正確な数は返ってきますが、名前はありません。問題が何であるか誰にも分かりますか?どうもありがとう、アドバイスをいただければ幸いです。

4

1 に答える 1

1

これは、映画と俳優が直接接続されているのではなく、名前のない「メディエーター」ノードを介して接続されているためです。これは、1) 映画、2) 俳優、3) 役割/キャラクターの 3 つが一度に接続されるためです。

MQL を作成する前に、使用するドメイン/タイプのスキーマを確認して、情報がどのように保存されているかを確認する必要があります。

また、名前だけを一致させると、リメイクなどで重複することにも注意してください。すべてを明確にするために、ID を追跡する必要があります。変更されたクエリは次のとおりです。

[{
  "type": "/film/film",
  "name": "Inception",
  "mid":  null,
  "starring": [{
    "actor": null,
    "mid":   null
  }]
}]​
于 2012-12-05T19:59:48.787 に答える