我在neo4j中有代表已发表学术论文的节点,我想使用流式PageRank算法分析论文之间的引用。
节点之间的关系为-timeout
,属性为CITES
。我想通过对每个节点使用year
属性来对PageRank分数进行归一化:
year
。
现在,我知道neo4j具有聚合功能(PageRankScore - averagePageRankScore(for papers published in this year))/ standardDeviation (for papers published in this year)
和avg
。话虽如此,我如何才能针对每年的节点/ PageRank分数运行这些?
我想对大量节点执行此操作,因此我认为最好使用stDev
函数。另一种选择是使用Spark和Mazerunner,但除非完全必要,否则我想避免这样做。
我当前仅查询PageRank结果的查询如下:
algo.pageRank.stream()
我如何将其更改为:
(1)bin节点及其按属性CALL algo.pageRank.stream(
'MATCH (p:Paper) WHERE p.year < 2015 RETURN id(p) as id',
'MATCH (p1:Paper)-[:CITES]->(p2:Paper) RETURN id(p1) as source, id(p2) as target',
{graph:'cypher', iterations:20, write:false, concurrency:20})
YIELD node, score
WITH
*
ORDER BY score DESC
RETURN
node.title,
node.year,
score;
的Pagerank得分
(2)在每个容器上运行node.year
和avg
(3)在返回归一化的值之前使用stDev
和avg
进行归一化吗?
任何帮助将不胜感激!