Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 如何规范PageRank分数_Neo4j_Cypher_Pagerank - Fatal编程技术网

Neo4j 如何规范PageRank分数

Neo4j 如何规范PageRank分数,neo4j,cypher,pagerank,Neo4j,Cypher,Pagerank,我在一组节点上运行PageRank,其中每个节点都有一个属性year。如何根据year属性计算所有PageRank分数的平均值?也就是说,如果有100个节点总共有20个不同的year值,我想计算20个平均PageRank值 然后,对于每个节点,我想根据PageRank得分和该年论文的平均PageRank得分之间的差异计算一个缩放分数(其中该年的平均值基于所有节点的PageRank得分,这些节点的year属性的值相同) 运行PageRank的代码是: 调用algo.pageRank.stream(

我在一组节点上运行PageRank,其中每个节点都有一个属性
year
。如何根据
year
属性计算所有PageRank分数的平均值?也就是说,如果有100个节点总共有20个不同的
year
值,我想计算20个平均PageRank值

然后,对于每个节点,我想根据PageRank得分和该年论文的平均PageRank得分之间的差异计算一个缩放分数(其中该年的平均值基于所有节点的PageRank得分,这些节点的
year
属性的值相同)

运行PageRank的代码是:
调用algo.pageRank.stream(
“匹配(p:Paper),其中p.year<2015返回id(p)作为id”,
'匹配(p1:Paper)-[:CITES]->(p2:Paper)返回id(p1)作为源,id(p2)作为目标',
{图:'cypher',迭代:20,写入:false,并发:20})
屈服点、得分
具有
*,
node.title作为标题,
node.year作为年份, 按页面排名得分 按页码排序\u排名说明 限制10000 回来 标题 年 页面排名;

如何更改此代码以返回缩放分数


非常感谢您的帮助!

此查询应返回每个
/
title
组合的
scaled\u得分(作为绝对值)(scaled得分越低,标题的
页面排名越接近该年的平均值):

调用algo.pageRank.stream(
“匹配(p:Paper),其中p.year<2015返回id(p)作为id”,
'匹配(p1:Paper)-[:CITES]->(p2:Paper)返回id(p1)作为源,id(p2)作为目标',
{图:'cypher',迭代:20,写入:false,并发:20})
屈服点、得分
具有
node.title作为标题,
node.year作为年份,
按页面排名得分
按页码排序\u排名说明
限制10000
根据年份,收集({title:title,page_rank:page_rank})作为数据,平均值(page_rank)作为平均值page_rank
将数据展开为d
返回年份,d.头衔作为头衔,ABS(d.佩奇排名-平均佩奇排名)/平均佩奇排名作为标度得分;
您可能还希望对结果进行排序(例如,按
年份
比例分数

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 
  node.title AS title,
  node.year AS year, 
  score AS page_rank
ORDER BY page_rank DESC
LIMIT 10000
WITH year, COLLECT({title: title, page_rank: page_rank}) AS data, AVG(page_rank) AS avg_page_rank
UNWIND data AS d
RETURN year, d.title AS title, ABS(d.page_rank-avg_page_rank)/avg_page_rank AS scaled_score;