具有2种节点类型的neo4j社区检测

具有2种节点类型的neo4j社区检测,neo4j,cluster-analysis,Neo4j,Cluster Analysis,我是neo4j的新手。我一直在关注社区检测:使用《权力游戏》角色关系的游戏数据科学示例 在本例中,只有一种节点类型(字符),社区检测使用标签传播运行 CALL algo.labelPropagation( 'MATCH (c:Character) RETURN id(c) as id', 'MATCH (c:Character)-[rel]->(c2) RETURN id(c) as source, id(c2) as target, SUM(rel.weight) as weig

我是neo4j的新手。我一直在关注社区检测:使用《权力游戏》角色关系的游戏数据科学示例

在本例中,只有一种节点类型(字符),社区检测使用标签传播运行

CALL algo.labelPropagation(
  'MATCH (c:Character) RETURN id(c) as id',
  'MATCH (c:Character)-[rel]->(c2) RETURN id(c) as source, id(c2) as target, SUM(rel.weight) as weight',
  'OUTGOING',
  {graph:'cypher', partitionProperty: 'community'})
是否有可能在具有两种类型节点的图上进行社区检测(例如,角色和位置,我们想要角色社区的位置,以及角色通过其访问的位置间接链接的位置)

我尝试了以下查询:

CALL algo.labelPropagation(
  'MATCH (c:Character) RETURN id(c) as id',
  'MATCH (c:Character)-[*1..2]->(p:Character) RETURN id(c) as source, id(p) as target',
  'OUTGOING',
  {graph:'cypher', partitionProperty: 'community'})
它确实创建了角色社区,但并不像我使用

match (c:Character)-[r]->(l:Location) return *
这是正确的方法吗

谢谢