如何解决Neo4j中标签传播算法的实现 1.创建命名图2.运行投影3.如果你愿意,可以改变你的图表
我有一组通过 :connected_to 相互连接的节点 IP 地址,我想在它们上实现标签传播算法。但是运行下面的命令后没有结果
CALL algo.labelPropagation('Node','connected_to','OUTGOING'(write:true,partitionProperty:'community',weightProperty:'count'))
解决方法
如果可以,请使用 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 举报,一经查实,本站将立刻删除。