1

我正在使用概念网http://conceptnet.io尝试使用它们的相关和边缘/查询端点来获取相关关键字。数据很棒,但是我遇到了一些我无法弄清楚的行为。

如果您在主站点上查询关键字“person”的“relatedto”,限制为 20,您会得到:

http://conceptnet.io/c/en/person?rel=/r/RelatedTo&limit=20

或者这个单词列表:

doll
character
statue
person
servant
body
farmer
child
man
baby
guard
name
doctor
captain
people
neighbour
boy

非常棒对吧?这是超级话题和有用的。

另一方面,如果您使用与 API 格式相同的查询来查询 API:

http://api.conceptnet.io/related/c/en/person?filter=/c/en&limit=20

为清楚起见而缩短(有关完整响应,请参见上面的链接):

{
  "@id": "/c/en/person",
  "related": [
    {
      "@id": "/c/en/person",
      "weight": 1.0
    },
    {
      "@id": "/c/en/sean_connery",
      "weight": 0.963
    },
    {
      "@id": "/c/en/steve_ballmer",
      "weight": 0.962
    },
    {
      "@id": "/c/en/norman_jewison",
      "weight": 0.962
    },
    {
      "@id": "/c/en/aretha_franklin",
      "weight": 0.962
    }
  ]
}

嗯。那里发生了什么?那用处要少得多。我们得到的只是名称,而不是非常相关的术语。

所以我的问题是:我如何获得类似的列表?

他们是否使用一些复杂的边缘分析(使用标准,与查询无关)来获取网站上的相关术语?

或者

我错过了一些我无法弄清楚的东西吗?

非常感谢任何帮助。

谢谢

4

1 回答 1

2

要查询标有/r/RelatedTo包含节点的现有边/c/en/person,您应该查询:http ://api.conceptnet.io/query?node=/c/en/person&rel=/r/RelatedTo

该查询的结果与网站相匹配。

端点不同,/related仅存在于 API 中。它应用一些机器学习来预测相关的节点,无论连接它们的边是否已经存在于 ConceptNet 中。比“人”更具体的概念更好。试试“老师”,例如: http ://api.conceptnet.io/related/c/en/teacher?filter=/c/en&limit=20

于 2019-03-11T19:13:53.847 回答