ほぼ週刊ハマりどころメモ

画像認識と自然言語処理を研究する中でハマったところを共有します.ほぼ自分用のメモ.

pythonでグラフデータベースを構築[Python][GraphDataBase][Neo4j]

f:id:Vastee:20180509140835g:plain

本記事では、グラフデータベースNeo4jを用いて、簡単なグラフをpythonで記述する方法を紹介。

まずはNeo4jのインストールから済ませよう

vastee.hatenablog.com

Neo4jのインストールが終わったら、Neo4jのpythonラッパーneo4jrestclientをインストール

pip install neo4jrestclient

これで準備完了。

では、pythonでグラフを描いてみよう。

from neo4jrestclient.client import GraphDatabase

url = "http://127.0.0.1:7474/db/data/" #http://localhost:...と記述すると認識してもらえなかった

gdb = GraphDatabase(url) #ここでエラーが出る場合はsudo pythonを試してみよう

gdb.query("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r", data_contents=True)

alice = gdb.nodes.create(name="Alice", age=30)
bob   = gdb.nodes.create(name="Bob", age=30)
ken   = gdb.nodes.create(name="Ken", age=35)

alice.labels.add("Person")
bob.labels.add("Person")
ken.labels.add("Person")

bob.relationships.create("Knows", alice, since=1980)
alice.relationships.create("Knows", bob, since=1983)
alice.relationships.create("Knows", ken, since=2015)

上のプログラムは実行しても何の反応も無い。

グラフを見る為にはWebアプリを使わなければならない。

FirefoxなどのWebブラウザのURL欄に http://localhost:7474/browser/ を打ち込もう。

そしてでてきたUIのコマンド入力欄に

MATCH (n)-[r]-(m) RETURN n, r, m

と打てば、スクリプトで作成したグラフが表示される。

もし、何もグラフが出てこなければ、上のスクリプトをsudoで実行してみよう。

f:id:Vastee:20181001170230p:plain

以上。