微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Neo4j中标签传播算法的实现 1.创建命名图2.运行投影3.如果你愿意,可以改变你的图表

如何解决Neo4j中标签传播算法的实现 1.创建命名图2.运行投影3.如果你愿意,可以改变你的图表

enter image description here

我有一组通过 :connected_to 相互连接的节点 IP 地址,我想在它们上实现标签传播算法。但是运行下面的命令后没有结果

CALL algo.labelPropagation('Node','connected_to','OUTGOING'(write:true,partitionProperty:'community',weightProperty:'count'))

有人可以帮我吗?

enter image description here

解决方法

如果可以,请使用 GDS 库。

1.创建命名图。

如果您真的只有 :Node 标签,那么您可能想要处理这个问题。 (:设备?,:网关?等)

CALL gds.graph.create('projection','*','*')
// CALL gds.graph.create('projection',['Device','Gateway','Node'],'connected_to')
YIELD graphName,nodeCount,relationshipCount;

2.运行投影

CALL gds.labelPropagation.stream('projection')
YIELD nodeId,communityId AS Community
RETURN gds.util.asNode(nodeId).ip AS IP,Community
ORDER BY Community,IP

3.如果你愿意,可以改变你的图表。

CALL gds.labelPropagation.stream('projection')
YIELD nodeId,communityId AS Community
WITH gds.util.asNode(nodeId).ip AS IP,Community
MATCH (x:Node {ip: IP})
SET x.community = Community
RETURN Community,count(DISTINCT x)

来源:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。