【问题标题】:How to query to get the list of instance count of every freebase types?如何查询以获取每个 freebase 类型的实例计数列表?
【发布时间】:2015-06-26 14:16:57
【问题描述】:

我想使用 freebase 类型对语料库进行注释。但是几乎每个 freebase 中的实例都有几种类型。所以我决定选择最常见的类型作为实例的类型。有没有办法获取实例计数列表?我找到了这个查询,但它似乎不正确,因为结果只有 400 种类型。但我认为真正的类型远不止这些。

[{
  "id": null,
  "name": null,
  "type": "/freebase/type_profile",
  "/freebase/type_profile/instance_count": []
}]

【问题讨论】:

    标签: freebase


    【解决方案1】:

    我对这个前提提出了质疑,但让我们在回答完您的问题后再讨论。

    这是(接近)正确的查询。当我通过添加"return" : "count" 来询问计数时,我得到 17,972,这听起来很正确。也许您的查询框架以某种方式添加了"limit" : 400

    既然您想要最常见的,我们为什么不修改查询对它们进行排序。由于排序中的一个怪癖,空值排在最后(或在我们的反向排序中排在第一位),所以我们还将添加一个限定符来过滤掉它们。我们可以使用>0,但由于您可能对低频类型不感兴趣,我们还是使用>1000

    最终查询如下所示:

    [{
      "id": null,
      "name": null,
      "type": "/freebase/type_profile",
      "instance_count>": 1000,
      "instance_count": null,
      "sort": "-instance_count"
    }]
    

    这将返回按实例数降序排列的 849 种类型的有序列表。

    您可能需要对结果列表进行一些手工整理,以消除 /common/topic/common/document/book/isbn/book/pagination 等内容。中介类型不会也有 /common/topic ,因此您可以先对其进行过滤(但根据您的语料库中事物的类型,它们可能都是开始的主题(即实体)。

    现在回到最频繁== 最佳这个前提。根据您的应用程序,您实际上可能需要更具体(通常意味着较低频率)的类型,而不是更广泛的高频类型。例如,死者而不是人,或者政治家、作者或运动员,而不是人。您可能需要考虑使用 least 频繁类型(至少使用一些阈值时间)。您可能想要做的另一件事是将未经过精心策划的非公用类型(即植根于 /base/.../user/... 的类型)列入黑名单。

    编辑 - 警告词:

    这些计数最后一次更新是在 2012 年。对于像这样的练习,你只需要粗略的排序,但如果你需要当前的统计数据,你需要计算 Freebase 数据转储中出现的次数或数字取出单独的 Stats API,我不确定它是否公开/记录在 http://freebase-site.googlecode.com/svn/trunk/www/lib/queries/stats.sjs

    【讨论】:

    • 嗨。谢谢你。事实上,我刚刚开始我的第一个自然语言处理项目,我脑海中的许多概念都是模糊的。我被困在预处理部分。但是您对我的问题的回答和您的建议确实对我有很大帮助。非常感谢。
    猜你喜欢
    • 2018-06-16
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多