使用 Neo4j 显示电影角色之间的交互级别

Show levels of interactions between movie characters with Neo4j

我正在做一个小项目来学习更多关于图形分析的知识。我有来自电视节目 Archer 的对话,我在其中添加了一个 speaker 字段和一个 speaking to 字段。为了显示交互级别,我使用了基本的字数统计。

我的数据是这样的:

TEXT           Speaker    Speaking_to     Wordcount
Bla bla        Archer     Lana            2
Bla            Archer     Lana, Cyril     1
Bla bla bla    Lana       Archer, Cyril   3

我会使用 speakerspeaking_to 的每个组合之间的字数总和来显示角色互动的强度彼此之间。

您将如何在 Neo4j 中进行?
如何为我有多个 speaking_to 字符的情况建模?我希望我所有的节点都是单个字符而不是组。

谢谢,

型号:

  • 两种类型的节点 - 人物和文本
  • 两种关系——谁说话,向谁诉求

MERGE (A:Person {name:'Archer'}) 
MERGE (L:Person {name:'Lana'}) 
MERGE (C:Person {name:'Cyril'})

MERGE (T1:Text {name: 'Bla bla', wc: 2}) 
MERGE (T2:Text {name: 'Bla', wc: 1}) 
MERGE (T3:Text {name: 'Bla bla bla', wc: 3})

MERGE (A)-[:Speaking]->(T1) 
  MERGE (T1)-[:Speaking_to]->(L)
MERGE (A)-[:Speaking]->(T2)
  MERGE (T2)-[:Speaking_to]->(C)
  MERGE (T2)-[:Speaking_to]->(C)
MERGE (L)-[:Speaking]->(T3)
  MERGE (T3)-[:Speaking_to]->(A)
  MERGE (T3)-[:Speaking_to]->(C)

定向交互强度:

MATCH (A:Person)-[:Speaking]->(S:Text)-[:Speaking_to]->(P:Person)
  RETURN A.name, P.name, sum(S.wc) as wordcount 
  ORDER BY wordcount DESC