ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

知识图谱gds使用记录

2026/8/4 23:47:48 拓冰建站 浏览量
知识图谱gds使用记录

安装

从下载站下载对应的包到plugin目录下,修改配置文件/etc/neo4j/neo4j.conf,末尾加入gds.*,重新启动
在这里插入图片描述
在浏览器输入CALL gds.list()命令进行测试
在这里插入图片描述

建立图映射

为了使用图算法,需要先将图数据库的内容映射为一个新图
如果是全图映射,可以写成

CALL gds.graph.project('all_aj', '*', '*')
YIELD graphName, nodeCount, relationshipCount;

返回结果是
在这里插入图片描述
上述代码中第二个参数是节点,第三个参数是关系,可以通过字符串或列表的形式根据单个或多个节点和关系建图。

列举可用图

CALL gds.graph.list()
YIELD graphName, nodeCount, relationshipCount, schema;

在这里插入图片描述

PageRank算法

PageRank算法考虑节点的入度和出度计算重要性,可以识别影响力较大的节点。使用下列代码,可返回排名前十的中心节点。

CALL gds.pageRank.stream('all_aj')
YIELDnodeId,score
RETURNnodeId, score
ORDER BYscore DESC
LIMIT10

在这里插入图片描述
为了更直观地查看节点名称,可以修改为以下形式:

CALL gds.pageRank.stream('all_aj')
YIELDnodeId,score
RETURNgds.util.asNode(nodeId).name AS name, score
ORDER BYscore DESC
LIMIT10

如果想要展示图,可以修改为以下形式

CALL gds.pageRank.stream('all_aj')
YIELDnodeId,score
RETURNgds.util.asNode(nodeId), score
ORDER BYscore DESC
LIMIT10

标签传播算法

算法的核心思想是通过在网络中传播标签来形成社区。每个节点都被初始化为一个唯一的标签。然后,标签通过连接的边在网络中传播。

在每次传播迭代中,每个节点将其标签更新为其邻居节点中最常见的标签。如果存在平局,算法会随机选择一个标签。这个过程会不断重复,直到标签达到收敛,即每个节点的标签与其邻居节点的大多数标签相同。

通过标签的传播,密集连接的节点组很快就会形成共识,并形成一个社区。在传播结束时,只有少数几个标签会保留下来,大多数标签会消失。具有相同标签的节点被认为属于同一个社区。

CALL gds.labelPropagation.stream('all_aj')
YIELD nodeId, communityId AS Community
RETURN gds.util.asNode(nodeId).name AS Name, Community
ORDER BY Community, Name