首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在gremlin中找到节点的中间中心性?

如何在gremlin中找到节点的中间中心性?
EN

Stack Overflow用户
提问于 2019-01-09 00:01:26
回答 1查看 357关注 0票数 1

节点V的中间中心性被定义为通过V的所有节点对之间的最短路径的比例。

我已经看过了tinkerpop食谱文档,但我觉得它没有帮助/不起作用。也就是说,它返回一个

代码语言:javascript
复制
......1> 

当我运行查询时。

运行的查询为:

代码语言:javascript
复制
g.V().as("v").repeat(both().simplePath().as("v")).emit().
           filter(project("x","y","z").by(select(first, "v")).
                                       by(select(last, "v")).
                              by(select(all,"v").count(local)).as("triple").
                  coalesce(select("x","y").as("a").
                             select("triples").unfold().as("t").
                             select("x","y").where(eq("a")).
                             select("t").
                           store("triples")). 
                  select("z").as("length").
                  select("triple").select("z").where(eq("length"))).
           select(all, "v").unfold().
           groupCount().next()

我使用的是劳伦斯提供的航线数据,如本指南http://kelvinlawrence.net/book/Gremlin-Graph-Guide.pdf所示。它不包含中心性度量。我从下面的代码开始,a)不给出任何循环路径,b) emit()调制器“输出”所有遍历的顶点

代码语言:javascript
复制
g.V().repeat(both().simplePath()).emit() 

我如何从这里开始计算节点的介数中心/或者从其他地方开始。

EN

回答 1

Stack Overflow用户

发布于 2019-01-09 01:26:43

您实际上修改了Gremlin Recipes站点上的查询,select("t")store("triples")之间应该有一个逗号,而不是一个句号。但是,这个查询可能不会在air-routes图上工作,因为它有太多的路径。如下文所述,该查询仅适用于非常小的(子)图。即使你有足够的内存进行计算,我认为你也必须等待很长一段时间(几个小时?)直到你看到结果。

对于这种大小的图,您应该考虑使用不同的中心性算法。最后,算法之间的结果没有太大差异,通常情况下,你的图越大,你就越不关心每个顶点的准确中心值。例如,经典的PageRank算法在较大的图形上运行得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54095451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档