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

时间:2016-05-08 15:24:00

标签: graph neo4j graph-databases

我正在开展一个小项目,以了解有关图形分析的更多信息。我有来自电视节目Archer的对话,我添加了一个扬声器字段和一个字段说话。为了显示交互级别,我使用的是基本的wordcount。

我的数据如下:

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

我会在发言人 speak_to 的每个组合之间使用wordcount总和,以显示彼此之间角色互动的强度。

你将如何进行Neo4j?
如何模拟我有多个 speak_to 字符的情况?我希望我的所有节点都是单个字符,而不是组。

谢谢,

1 个答案:

答案 0 :(得分:1)

<强>型号:

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

enter image description here

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