Neo4j:测试 'Node Similarity' 流模式错误
Neo4j: Testing 'Node Similarity' on Stream mode error
我正在尝试在具有这种形式的二分数据库上测试 'Node similarity':
关键字-[APPEARS_IN]->文章
我想在有分数的文章之间建立关系 'SIMILAR'。我尝试了以下代码,使用节点 属性 title
:
CALL gds.nodeSimilarity.stream('test')
YIELD node1, node2, similarity
RETURN gds.util.asNode(node1).title AS Article1, gds.util.asNode(node2).title AS Article2, similarity
ORDER BY similarity DESCENDING, Article1, Article2
结果如下:
但是结果不好,我到处都是'None'...是因为'title'中字符串的长度吗?我数据库中的标题有时很长,例如:
我该怎么办?
我也尝试通过 'id' 属性来做到这一点,但是当我检查时,得分为“1”(最高可能)的文章之间似乎没有真正的相似性(它们是一点都不相似)。
因此您当前投影图形的方式:
CALL gds.graph.create('lpa_test','*',
{APPEARS_IN:{type: 'APPEARS_IN', orientation: 'NATURAL',
properties:['weights']}})
由于您的图表模式,您将比较关键字而不是文章。
(keyword)-[:APPEARS_IN]->(article)
关系的源节点是要比较的项目,关系的目标将被考虑用于项目的比较。这就是为什么 article1 和 article2 列都是空的,因为您可能为关键字使用了另一个 属性 名称。如果要比较文章,就得把关系倒过来。
CALL gds.graph.create('lpa_reverse','*',
{APPEARS_IN:{type: 'APPEARS_IN', orientation: 'REVERSE',
properties:['weights']}})
现在您将通过节点相似度算法得到您要查找的结果:
CALL gds.nodeSimilarity.stream('lpa_reverse')
YIELD node1, node2, similarity
RETURN gds.util.asNode(node1).title AS Article1,
gds.util.asNode(node2).title AS Article2, similarity
ORDER BY similarity DESCENDING, Article1, Article2
我正在尝试在具有这种形式的二分数据库上测试 'Node similarity':
关键字-[APPEARS_IN]->文章
我想在有分数的文章之间建立关系 'SIMILAR'。我尝试了以下代码,使用节点 属性 title
:
CALL gds.nodeSimilarity.stream('test')
YIELD node1, node2, similarity
RETURN gds.util.asNode(node1).title AS Article1, gds.util.asNode(node2).title AS Article2, similarity
ORDER BY similarity DESCENDING, Article1, Article2
结果如下:
但是结果不好,我到处都是'None'...是因为'title'中字符串的长度吗?我数据库中的标题有时很长,例如:
我该怎么办?
我也尝试通过 'id' 属性来做到这一点,但是当我检查时,得分为“1”(最高可能)的文章之间似乎没有真正的相似性(它们是一点都不相似)。
因此您当前投影图形的方式:
CALL gds.graph.create('lpa_test','*',
{APPEARS_IN:{type: 'APPEARS_IN', orientation: 'NATURAL',
properties:['weights']}})
由于您的图表模式,您将比较关键字而不是文章。
(keyword)-[:APPEARS_IN]->(article)
关系的源节点是要比较的项目,关系的目标将被考虑用于项目的比较。这就是为什么 article1 和 article2 列都是空的,因为您可能为关键字使用了另一个 属性 名称。如果要比较文章,就得把关系倒过来。
CALL gds.graph.create('lpa_reverse','*',
{APPEARS_IN:{type: 'APPEARS_IN', orientation: 'REVERSE',
properties:['weights']}})
现在您将通过节点相似度算法得到您要查找的结果:
CALL gds.nodeSimilarity.stream('lpa_reverse')
YIELD node1, node2, similarity
RETURN gds.util.asNode(node1).title AS Article1,
gds.util.asNode(node2).title AS Article2, similarity
ORDER BY similarity DESCENDING, Article1, Article2