同一社群 (Same Community)

此功能在 Aura Graph Analytics 中不可用。

Same Community(相同社区)是一种判断两个节点是否属于同一社区的方法。这些社区可以通过使用社区检测 (Community detection) 算法中的一种来计算得出。

历史与解释

如果两个节点属于同一个社区,那么它们之间存在关系的概率(如果尚未建立关系)会更高。

值为 0 表示两个节点不在同一个社区。值为 1 表示两个节点在同一个社区。

该库包含一个用于计算两个节点之间接近度的函数。

语法

以下内容将运行算法并返回结果
RETURN gds.linkprediction.sameCommunity(node1:Node, node2:Node, communityProperty:String)
表 1. 参数
名称 类型 默认 可选 描述

node1

节点

null

一个节点

node2

节点

null

另一个节点

communityProperty

字符串

'community'

包含节点所属社区的属性

Same Community 算法示例

以下代码将创建一个示例图
CREATE (zhen:Person {name: 'Zhen', community: 1}),
       (praveena:Person {name: 'Praveena', community: 2}),
       (michael:Person {name: 'Michael', community: 1}),
       (arya:Person {name: 'Arya', partition: 5}),
       (karin:Person {name: 'Karin', partition: 5}),
       (jennifer:Person {name: 'Jennifer'})
以下示例将显示 Michael 和 Zhen 属于同一个社区
MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Zhen'})
RETURN gds.linkprediction.sameCommunity(p1, p2) AS score
表 2. 结果
score

1.0

以下示例将显示 Michael 和 Praveena 不属于同一个社区
MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Praveena'})
RETURN gds.linkprediction.sameCommunity(p1, p2) AS score
表 3. 结果
score

0.0

如果其中一个节点没有社区属性,则意味着它不与任何其他节点属于同一个社区。

以下示例将显示 Michael 和 Jennifer 不属于同一个社区
MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Jennifer'})
RETURN gds.linkprediction.sameCommunity(p1, p2) AS score
表 4. 结果
score

0.0

默认情况下,社区信息从 community 属性中读取,但也可以显式指定要读取的属性。

以下示例将根据 partition 属性显示 Arya 和 Karin 属于同一个社区
MATCH (p1:Person {name: 'Arya'})
MATCH (p2:Person {name: 'Karin'})
RETURN gds.linkprediction.sameCommunity(p1, p2, 'partition') AS score
表 5. 结果
score

1.0