Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

neo4jでスフィアの共演作品を出してみる

データの準備

ここが一番大変
Wikipediaから2016/05/07現在の登録情報を抜き出してcsv形式にします。

docs.google.com

import

LOAD CSV WITH HEADERS FROM "file:///anime.csv" AS csvLine
MERGE (s: 声優 {名前: csvLine.名前})
MERGE (a: アニメ {作品名: csvLine.作品名, 放映年: csvLine.放映年})
CREATE (s)-[:出演]->(a)

表示

MATCH (n) RETURN n

f:id:FScoward:20160507171537p:plain

設定を変更しないで表示させると350件表示までしてくれないのでInitial Node Displayを1000に変えておくとよし。

あやひーと他のメンバーとの共演作品をグラフ化

MATCH (a: 声優{名前: "高垣彩陽"})-[r:出演]->(b),
(b)<--(s)
WHERE (s.名前="豊崎愛生")
RETURN a,b,s

f:id:FScoward:20160507171449p:plain

MATCH (a: 声優{名前: "高垣彩陽"})-[r:出演]->(b),
(b)<--(s)
WHERE (s.名前="戸松遥")
RETURN a,b,s

f:id:FScoward:20160507171423p:plain

MATCH (a: 声優{名前: "高垣彩陽"})-[r:出演]->(b),
(b)<--(s)
WHERE (s.名前="寿美菜子")
RETURN a,b,s

f:id:FScoward:20160507171657p:plain

2010年の共演

MATCH (a: 声優{名前: "高垣彩陽"})-[r:出演]->(b),
(b)<--(s)
WHERE (b.放映年="2010年")
RETURN a,b,s

f:id:FScoward:20160507171927p:plain

4人全員が出演している作品

MATCH (a: 声優{名前: "高垣彩陽"})-[r:出演]->(b),
(b)<--(s: 声優{名前: "豊崎愛生"}),
(b)<--(s2: 声優{名前: "戸松遥"}),
(b)<--(s3: 声優{名前: "寿美菜子"})
RETURN a,b,s,s2,s3

f:id:FScoward:20160507175636p:plain

そふてにっ に4人出てたんだ・・・知らんかった