Neo4j -使用GraphDataScience从Neo4j中投影图形

beq87vna  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(300)

所以我有一个节点图--“论文”和关系--“引文”。节点有属性:“x”是具有0/1个条目的列表,对应于单词是否出现在论文中,而“y”是整数标签(从0-6的类之一)。
我想使用GraphDataScience投影Neo4j中的图形。我一直在使用这个文档,并且我确实设法投影了图形的节点和顶点:

代码

from graphdatascience import GraphDataScience

AURA_CONNECTION_URI = "neo4j+s://xxxx.databases.neo4j.io"
AURA_USERNAME = "neo4j"
AURA_PASSWORD = "my_code:)"

# Client instantiation

gds = GraphDataScience(
    AURA_CONNECTION_URI,
    auth=(AURA_USERNAME, AURA_PASSWORD),
    aura_ds=True
)

# Shorthand projection --works

shorthand_graph, result = gds.graph.project(
    "short-example-graph",
    ["Paper"],
    ["Citation"]
)

当我打印(结果)时,显示
节点投影{“纸张”:{“标签”:“纸张”,“属性”:{}}}关系投影{'引文':{“方向”:'NATURAL','aggre... graphName短示例图节点计数2708关系计数10556项目Millis 34名称:0,数据类型:对象
但是,没有投影节点的属性。然后,我使用文档中描述的扩展语法:


# Project a graph using the extended syntax

extended_form_graph, result = gds.graph.project(
    "Long-form-example-graph",
    {'Paper': {properties: "x"}},
    "Citation"
)

print(result)

错误我得到错误:NameError:未定义名称'properties'

我尝试了各种不同的变体,有或没有““,但到目前为止都没有工作(文档也非常混乱,因为其中一个文档总是使用““,而在另一个地方我没有看到““)。
另外,请注意,我的所有属性在Neo4j db(AuraDS)中都是整数,因为我曾经有过不支持String属性的错误。
对投影节点特征(也称为属性)的正确方法进行一些说明将非常有用。
谢谢你,迪娜

7fhtutme

7fhtutme1#

Python字典中与GraphDataScience库一起使用的键应该用引号括起来。这与Cypher语法不同,Cypher语法中的map键不用引号括起来。
这应该对你有用。

extended_form_graph, result = gds.graph.project(
    "Long-form-example-graph",
    {'Paper': {"properties": "x"}},
    "Citation"
)

祝您一切顺利!
纳丹

相关问题