【发布时间】:2020-06-29 20:07:56
【问题描述】:
我想在 Neo4j 中使用种子标签和权重属性将标签传播应用于我的数据。我的数据看起来像图片。
关系“Appears_in”具有权重属性(整数,如图像中的 8),某些文章节点具有种子标签属性(字符串,例如 Iphone)。
我想传播此种子标签以创建包含相同主题的文章的集群,例如 Iphone 集群。更准确地说,我想将种子标签传播到另一个文章节点,但文章之间没有直接关系。他们通过交流中的词语“在某处”联系在一起......
首先,我运行了弱连接组件,以保持我的数据中唯一的一个大网络:
CALL gds.wcc.stream('lpa_test')
YIELD nodeId, componentId
RETURN componentId, count(*) as size
ORDER BY size DESC
LIMIT 1000
因此,我尝试保持具有 2170 个节点的网络,并使用 cypher 投影将二分图投影到单分图。在下一步中,我运行了标签传播算法。这是代码:
CALL gds.labelPropagation.write({
nodeQuery:"MATCH (n:ARTICLE) WHERE n.familyComponent = 0
RETURN id(n) as id",
relationshipQuery:"MATCH (a:Article)<-[:APPEARS_IN]-(b:KEYWORD)-[:APPEARS_IN]->(c:Article)
RETURN id(a) as source, id(c) as target, count(distinct b) as word_weight",
relationshipWeightProperty: "word_weight",
writeProperty: "lpa"})
结果不好。
我想为标签传播算法提供种子标签(字符串)和权重(关系中的)。
我想要几个集群(如果我有 5 个种子标签(字符串),我猜想 5 个集群)
我有 5 个带有种子标签(字符串)的节点,我想通过网络传播这些种子标签。
例如:5 个种子标签(字符串)将是“Iphone”、“Coronavirus”、“Disney”、“Crisis”、“Summer”。
如何编写标签传播来传播这些种子标签(字符串)?
【问题讨论】:
-
请在代码块中编写代码,而不是对代码进行图像处理。
-
你好,我编辑了。
标签: neo4j graph-algorithm