gpt4 book ai didi

php - 在 Freebase 中检索/存储所有相关的 Actor

转载 作者:行者123 更新时间:2023-11-29 00:23:33 24 4
gpt4 key购买 nike

我正在尝试做一些(应该)非常简单的事情。也许我遗漏了什么。

我想获得一个人共事过的人的完整列表。我的最终目标是找到他最常合作的人(无论是何种关系)

例如:罗伯特·德尼罗 与乔·佩西合作过 7 次,但导演了他两次。结果我想要一个包含 9 个条目的表格。

我可以使用主题 API,但它只会返回电影列表。然后我必须执行 10 多个 API 查询才能获得每部电影的类型转换。花很长时间,代码是一场噩梦。

如果我使用 MQL 搜索,我只能搜索 Robert De Niro 主演 的电影,但不是他执导、编剧或制作的所有电影, 出演过。基本上我一次只能搜索1个角色。

有没有更好的方法?我需要以以下列表结束:

电影

Actor /剧组人员

Roles 链接 MoviesPeople

我目前在做什么:

  • 搜索 Robert De Niro 并获取机器 ID
  • 对该 MID 进行主题搜索,返回他参与过的电影 MID 列表
  • 对每部电影MID进行主题搜索,并记录directed_by、starring、produced_by等字段

如您所见,这是一项非常昂贵的操作。以这种方式避免重复也非常困难(尽管我正在努力)

编辑:这是我当前的 MQL 查询(出于某种原因,它仅在我也指定两个 Actor 名称时才有效,但这是另一个问题。

$query = array(array(
'a:starring'=>array('actor'=>'Joe Pesci'),
'b:starring'=>array('actor'=>'Robert De Niro'),
'directed_by'=>null,
'produced_by'=>array(),
'written_by'=>array(),
'executive_produced_by'=>array(),
'name'=>null,
'mid'=>null,
'starring'=>array(array('actor'=>array('mid'=>null,
'name'=>null))),
'type'=>'/film/film'
));

微量语言:

    [{
"a:starring":
{"actor":"Joe Pesci"},
"b:starring":
{"actor":"Robert De Niro"},
"directed_by":null,
"produced_by":[],
"written_by":[],
"executive_produced_by":[],
"name":null,
"mid":null,
"starring":
[{"actor":
{"mid":null,"name":null}}],
"type":"\/film\/film"}]

最佳答案

您可以在单个 MQL 查询中完成所有这些操作,并针对属性中的定向/写入/操作使用不同的子查询。只需确保将每个子查询设为可选即可。

例如:

[{
"a:starring": {
"actor": "Joe Pesci"
},
"b:starring": {
"actor": "Robert De Niro"
},
"directed_by": [{
"id": null,
"name": null,
"optional": true
}],
"produced_by": [{
"id": null,
"name": null,
"optional": true
}],
"written_by": [{
"id": null,
"name": null,
"optional": true
}],
"executive_produced_by": [{
"id": null,
"name": null,
"optional": true
}],
"name": null,
"mid": null,
"starring": [{
"actor": {
"mid": null,
"name": null
}
}],
"type": "/film/film"
}]

关于php - 在 Freebase 中检索/存储所有相关的 Actor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20135491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com