美文网首页Python学习互联网科技
Python来袭,教你用Neo4j构建“复联4”人物关系图谱!没

Python来袭,教你用Neo4j构建“复联4”人物关系图谱!没

作者: 919b0c54458f | 来源:发表于2019-04-27 19:27 被阅读9次

    讲技术之前先引个好玩的热点话题,带你与时代接轨~

    漫威系列电影《复仇者联盟4》上映

    你去看了吗?

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

    谁剧透,跟谁急!

    复仇者联盟 之 绝对不剧透

    漫威英雄们为了不让自己剧透也是使出了浑身解数。在洛杉矶全球首映礼上记者费尽心机想要从各位演员身上套点信息:“如果你活下来就眨一下眼睛,死了就眨两下”。

    “绿巨人” :我就是不眨,看你怎么样!

    image

    “雷神”:我眨了23下,你猜我活没活着~

    image

    “蚁人”:我不睁眼就不用眨眼了~

    image

    希望大家可以像奇异博士学习

    做个合格的影迷哦

    image

    都谁看了复联4?

    据说,看复联4的,分三种人:

    (1)骨灰粉

    看完晒票根发感慨的

    (2)路人粉

    还没看,但是怕被剧透的

    (3)纯属小白跟风

    被漫威错综复杂的人物线,搞得一头雾水

    敲黑板,讲技术重点了~!

    来,先放一张成品图,

    帮你理清核心人物

    一张图带你读懂“妇联4”人物关系!

    Python学习交流群:556370268,有大牛答疑,有资源共享!有想学习python编程的,想提升自己能力的,欢迎加入讨论学习。

    image

    人物节点和关系数据

    人物节点数据:姓名和角色

    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})

    image

    给不同的角色添加不同的标签

    以“复仇者联盟成员”为例:

    MATCH (n { role: '复仇者联盟成员' }) SET n :复仇者联盟成员 RETURN n

    image

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

    image

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

    image

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

    image

    MATCH (n { role: '九头蛇组织创始人' })SET n :九头蛇组织创始人 RETURN n

    image

    MATCH (n { role: '瓦坎达国王' }) SET n :瓦坎达国王 RETURN n

    image

    MATCH (n { role: '美国队长宿敌' })SET n :美国队长宿敌 RETURN n

    image

    查看所有节点

    match (n) return n

    image

    点击节点,可以设置节点颜色和大小。

    image

    导入关系数据,由于导入节点的时候,并没有设置标签,所以导入关系数据的时候,也不需要设置节点标签。

    正确语法:

    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)

    image

    用以下语法,添加节点标签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)

    image

    再查看所有节点和关系

    match (n) return n

    image

    查看所有复仇者联盟成员的名字

    match (n:复仇者联盟成员) return n

    image

    点击标签,也可以设置颜色和大小。

    image

    查看钢铁侠的全部关系

    match p=({name:'钢铁侠'})-[:r]->()return p

    image

    点击关系,也可以设置颜色和大小。

    image

    查看钢铁侠的2层内的关系

    match p=({name:'钢铁侠'})-[*..2]->()return p

    image

    查看钢铁侠的好友关系

    match p=({name:'钢铁侠'})-[:r{relation:'好友'}]->()return p

    image

    这波操作超酷~

    重点来了!

    这个技术,在哪里可以学到?

    如果你依然在编程的世界里迷茫,不知道自己的未来规划,对python感兴趣,这里推荐一下我的学习交流群:556370268,里面都是学习python的,从最基础的python【python,游戏,黑客技术,网络安全,数据挖掘,爬虫】到网络安全的项目实战的学习资料都有整理,送给每一位python小伙伴,希望能帮助你更了解python,学习python

    相关文章

      网友评论

        本文标题:Python来袭,教你用Neo4j构建“复联4”人物关系图谱!没

        本文链接:https://www.haomeiwen.com/subject/pbflnqtx.html