gpt4 book ai didi

python - MQL 查询的“空”结果。 Freebase 架构 :/film/film/starring &/film/actor/film

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:55 25 4
gpt4 key购买 nike

第一次发帖,所以我希望这是足够的细节。

我开始使用 freebase-python今天是为了获取我正在制作的节目的电影信息。我需要抓取的一件事是主演电影的 Actor 名单。我已经按照一些教程和指南来执行此操作,并且可以获得导演或电影导演的电影列表,但是当我尝试对 Actor 或电影 Actor 做同样的事情时,我得到“空”结果。

我在 Python 和 Freebase MQL 查询编辑器中都遇到了同样的问题,您可以在下面看到我尝试过的内容。可以找到以下在编辑器中编写的所有示例的链接 here ,因为 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)

基于这些测试,我尝试对 Actor 做同样的事情,但结果很奇怪:

不工作 Python 中的 Actor 列表查询:

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

不工作 Actor 在 Python 中的片目查询:

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

奇怪的是,我得到了准确数量的 Actor /电影,但没有名字。有谁知道问题可能是什么?非常感谢,如果有任何建议,我将不胜感激。

最佳答案

那是因为电影和 Actor 并不是直接相连的,而是通过一个没有名字的“中介”节点。这是因为同时需要连接三件事:1) 电影,2) Actor ,以及 3) 角色/角色。

在编写任何 MQL 之前,您需要查看要使用的域/类型的架构,以了解信息的存储方式。

另请注意,如果您只是匹配名称,您将获得翻拍的副本等。您应该跟踪 ID 以消除所有歧义。这是修改后的查询:

[{
"type": "/film/film",
"name": "Inception",
"mid": null,
"starring": [{
"actor": null,
"mid": null
}]
}]​

关于python - MQL 查询的“空”结果。 Freebase 架构 :/film/film/starring &/film/actor/film,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728471/

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