Python來襲,教你用Neo4j構建「復聯4」人物關係圖譜!沒有劇透!【文末贈書】

  • 2019 年 10 月 8 日
  • 筆記

講技術之前先引個好玩的熱點話題,帶你與時代接軌~

漫威系列電影《復仇者聯盟4》上映

你去看了嗎?

小編就盼着周末去好好享受

誰劇透,跟誰急!

復仇者聯盟 之 絕對不劇透

漫威英雄們為了不讓自己劇透也是使出了渾身解數。在洛杉磯全球首映禮上記者費盡心機想要從各位演員身上套點信息:「如果你活下來就眨一下眼睛,死了就眨兩下」。

「綠巨人」 :我就是不眨,看你怎麼樣!

「雷神」:我眨了23下,你猜我活沒活着~

「蟻人」:我不睜眼就不用眨眼了~

希望大家可以像奇異博士學習

做個合格的影迷哦

都誰看了復聯4?

據說,看復聯4的,分三種人:

(1)骨灰粉

看完曬票根發感慨的

(2)路人粉

還沒看,但是怕被劇透的

(3)純屬小白跟風

被漫威錯綜複雜的人物線,搞得一頭霧水

敲黑板,講技術重點了~!

來,先放一張成品圖,

幫你理清核心人物

一張圖帶你讀懂「婦聯4」人物關係!

人物節點和關係數據

人物節點數據:姓名和角色

name,role

霍華德·斯塔克,斯塔克工業創始人

佩姬·卡特,神盾局創始人

美國隊長,復仇者聯盟成員

鋼鐵俠,復仇者聯盟成員

巴基,復仇者聯盟成員

雷神,復仇者聯盟成員

蟻人,復仇者聯盟成員

綠巨人,復仇者聯盟成員

黑寡婦,復仇者聯盟成員

洛基,火神

鷹眼,復仇者聯盟成員

戰爭機器,復仇者聯盟成員

蜘蛛俠,復仇者聯盟成員

幻視,復仇者聯盟成員

紅骷髏,九頭蛇組織創始人

黑豹,瓦坎達國王

澤莫男爵,美國隊長宿敵

人物關係:姓名1,姓名2,關係類型

start,end,relation

鋼鐵俠,美國隊長,內戰

美國隊長,鋼鐵俠,內戰

蜘蛛俠,鋼鐵俠,師傅

鋼鐵俠,戰爭機器,好友

幻視,鋼鐵俠,AI管家

鋼鐵俠,霍華德·斯塔克,兒子

鋼鐵俠,綠巨人,搭檔

美國隊長,紅骷顱,宿敵

紅骷顱,美國隊長,宿敵

黑豹,美國隊長,庇護

澤莫男爵,美國隊長,敵對

美國隊長,澤莫男爵,敵對

美國隊長,佩姬·卡特,二戰戀人

美國隊長,巴基,好友

巴基,美國隊長,好友

洛基,雷神,弟弟

綠巨人,雷神,結識

黑寡婦,鷹眼,曖昧

@

啟動neo4j服務,打開http://127.0.0.1:7474

文件存放位置:neo4j安裝目錄的import文件夾下

導入節點數據,先不添加標籤

LOAD CSV WITH HEADERS FROM "file:///data_node.csv" AS line MERGE ({name:line.name,role:line.role})

給不同的角色添加不同的標籤

以「復仇者聯盟成員」為例:

MATCH (n { role: '復仇者聯盟成員' }) SET n :復仇者聯盟成員 RETURN n

MATCH (n { role: '神盾局創始人' })SET n :神盾局創始人 RETURN n

MATCH (n { role: '斯塔克工業創始人' })SET n :斯塔克工業創始人 RETURN n

MATCH (n { role: '火神' }) SET n:火神 RETURN n

MATCH (n { role: '九頭蛇組織創始人' })SET n :九頭蛇組織創始人 RETURN n

MATCH (n { role: '瓦坎達國王' }) SET n :瓦坎達國王 RETURN n

MATCH (n { role: '美國隊長宿敵' })SET n :美國隊長宿敵 RETURN n

查看所有節點

match (n) return n

點擊節點,可以設置節點顏色和大小。

導入關係數據,由於導入節點的時候,並沒有設置標籤,所以導入關係數據的時候,也不需要設置節點標籤。

正確語法:

LOAD CSV WITH HEADERS FROM 'file:///data_relation.csv'as line

MATCH (start {name: line.start})

MATCH (end {name: line.end})

MERGE (start) -[:r{relation:line.relation}]-> (end)

用以下語法,添加節點標籤Person,雖然語法不報錯,但是並沒有把關係添加進去:

LOAD CSV WITH HEADERS FROM 'file:///data_relation.csv'as line

MATCH (start:Person {name: line.start})

MATCH (end:Person {name: line.end})

MERGE (start) -[:r{relation:line.relation}]-> (end)

再查看所有節點和關係

match (n) return n

查看所有復仇者聯盟成員的名字

match (n:復仇者聯盟成員) return n

點擊標籤,也可以設置顏色和大小。

查看鋼鐵俠的全部關係

match p=({name:'鋼鐵俠'})-[:r]->()return p

點擊關係,也可以設置顏色和大小。

查看鋼鐵俠的2層內的關係

match p=({name:'鋼鐵俠'})-[*..2]->()return p

查看鋼鐵俠的好友關係

match p=({name:'鋼鐵俠'})-[:r{relation:'好友'}]->()return p

這波操作超酷~

重點來了!

這個技術,在哪裡可以學到?

Python如何連接Neo4j進行社交網絡分析,書中會有介紹哦!

好 書 推 薦 @上榜理由

超 值 推 薦

一本書帶你學會Python

+ 270分鐘授課視頻 = 49.00元

識別下方官方京東購買鏈接,還可享限時折扣哦!

特別提示:此書每本書均配有防盜版二維碼,請從官方渠道購買,否則視頻、源碼等資源全部無效。