我正在使用ConceptNet http://conceptnet.io尝试使用它们的relatedto和edge / query端点获取相关的关键字。数据很棒,但是我遇到了一些我不知道的行为。
如果您在主站点上查询关键字“ person”(最多20个),则查询“ relatedto”,您将得到:
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
}
]
}
嗯。那里发生什么了?没那么有用了。我们只是名字而不是非常相关的术语。
所以我的问题是:如何获得类似的列表?
他们是否使用一些复杂的边缘分析(使用标准的,与查询无关的)来在网站上获取相关术语?
OR
我错过了我找不到的东西吗?
非常感谢任何帮助。
谢谢
答案 0 :(得分:1)
要查询包含节点/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