postgresql 如何在Apache Age中实现Pagerank(基于关系查找节点得分的算法)

hivapdat  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(126)

页面排名是一种算法,用于根据当前节点与其他节点的关系来查找当前节点得分。它主要用于查找论文的分数,其中论文引用分数通过查看连接到该论文(节点)的论文和正在连接到该论文的论文(节点)来查找。
在计算节点得分时有两件事很重要论文中的输出链接.报纸上的链接。
这是我们要应用页面排名的数据。

CREATE
(home:Page {name:'Home'}),
  (about:Page {name:'About'}),
  (product:Page {name:'Product'}),
  (links:Page {name:'Links'}),
  (a:Page {name:'Site A'}),
  (b:Page {name:'Site B'}),
  (c:Page {name:'Site C'}),
  (d:Page {name:'Site D'}),

  (home)-[:LINKS {weight: 0.2}]->(about),
  (home)-[:LINKS {weight: 0.2}]->(links),
  (home)-[:LINKS {weight: 0.6}]->(product),
  (about)-[:LINKS {weight: 1.0}]->(home),
  (product)-[:LINKS {weight: 1.0}]->(home),
  (a)-[:LINKS {weight: 1.0}]->(home),
  (b)-[:LINKS {weight: 1.0}]->(home),
  (c)-[:LINKS {weight: 1.0}]->(home),
  (d)-[:LINKS {weight: 1.0}]->(home),
  (links)-[:LINKS {weight: 0.8}]->(home),
  (links)-[:LINKS {weight: 0.05}]->(a),
  (links)-[:LINKS {weight: 0.05}]->(b),
  (links)-[:LINKS {weight: 0.05}]->(c),
  (links)-[:LINKS {weight: 0.05}]->(d);

这是在neo4j中使用pagerank算法的方法。

CALL gds.pageRank.stream('myGraph')
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS name, score
ORDER BY score DESC, name ASC

此结果将显示在查询中。

name        score
"Home"      3.215681999884452

"About"     1.0542700552146722

"Links"     1.0542700552146722

"Product"   1.0542700552146722
0tdrvxhp

0tdrvxhp1#

我不认为Apache AGE目前存在PageRank的库实现。您可以查看Neo4j的实现here,了解如何使用Python驱动程序在AGE中实现它。

相关问题