【问题标题】:Applying PageRank to a topic hierarchy tree(using SPARQL query extracted from DBpedia)将 PageRank 应用于主题层次树(使用从 DBpedia 提取的 SPARQL 查询)
【发布时间】:2020-09-09 09:40:23
【问题描述】:

因为我有一个 DBpedia 查询,我想使用 PageRank 算法对这些结果进行排名。

对于“Machine_learning”的概念,通过使用下面的 SPARQL 查询,我可以找出 DBpedia 中的所有 ParentNodes、ChildNodes 和 SiblingNodes。

select * where {
{ ?childNodes skos:broader <http://dbpedia.org/resource/Category:Machine_learning> . ?childNodes skos:broader ?siblingConceptsFormChildNodes}
UNION
{<http://dbpedia.org/resource/Category:Machine_learning> skos:broader ?parentNodes . ?siblingConceptsFormParentNodes skos:broader ?parentNodes}
}

对于可视化,主题层次结构如下: Regulated concept map

您可能会发现主题层次结构基于 SKOS:broader 和 SKOS:narrower 属性。

我的目的是通过 PageRank 对主题层次结构中存在的所有节点进行排名。上述查询的结果是有限的。

我还发现了这个似乎与我的问题有关的问题: How to use DBpedia properties to build a topic hierarchy?

不过,我觉得我们之间的做法有点不同。

我还为上面的主题层次结构调整了PageRank算法:

PageRank algorithm

提前谢谢你!

【问题讨论】:

  • 您现在有具体问题吗?我的意思是,您从之前的问题中获得的 SPARQL 查询确实返回了您想要的。那你在这里问什么?
  • 感谢您的评论。我将计算这些节点的重要性,以便我询问是否可以通过 sparqlwrapper 使用 python 来实现它?
  • 可能吗?我的意思是,为什么不 - 您只需要运行数千个计算计数的 SPARQL 查询,对吗?这肯定需要很长时间。您还应该将 DBpedia 数据集加载到本地三重存储中。我怀疑使用共享 DBpedia 端点是运行重负载的最佳服务
  • 您还应该查看文献,我知道至少有一些方法可以计算 DBpedia 的 pagerank(以及其他分数)。此外,一些三重商店确实将这些页面排名计算作为附加功能。例如 GraphDB(RDFRank) 和 Virtuoso 确实有这样的功能来计算基于链接的分数。这肯定比通过 HTTP 运行您需要的所有 SPARQL 查询更有效。我猜批量查询很可能会超时
  • 我不想运行数千个 SPARQL 查询。我只是针对特定关键字/概念构建主题层次结构,并计算主题层次结构中包含的节点的所有重要性。非常感谢您提供帮助的 cmets!我将使用 python 尝试一下。

标签: python sparql dbpedia pagerank sparqlwrapper


【解决方案1】:

如果您还没有解决问题,您可以考虑将 DBpedia 数据加载到 Anzograph 中,然后使用内置服务。在此处查看文档和示例https://docs.cambridgesemantics.com/anzograph/v2.2/userdoc/pagerank.htm

免责声明:我在 Cambridge Semantics Inc. 工作。

【讨论】:

  • 感谢您的建议。您建议我的方法似乎有帮助,但不适合我的情况。我认为比较它们之间的结果对我很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多