Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]目录1数据爬取1.1漫威人物关系图谱网站1.2爬取人物关系数据2Neo4j的安装及服务启动2.1Neo4j下载安装2.2开启Neo4j服务3数据准备3.1加入列名3.2放入本地Neo4j的import文件4数据可视化4.1加载”names_message.csv”文件4.2加载”relation_message.csv”文件…

大家好,又见面了,我是你们的朋友全栈君。

目录

1 数据爬取

1.1 漫威人物关系图谱网站

1.2 爬取人物关系数据

2 Neo4j的安装及服务启动

2.1 Neo4j下载安装

2.2 开启Neo4j服务

3 数据准备

3.1 加入列名

3.2 放入本地Neo4j的import文件

4  数据可视化

4.1 加载”names_message.csv”文件

4.2 加载”relation_message.csv”文件

4.3 查看人物关系图谱

4.4 筛选人物关系


前言:

最近复联4大火,笔者看到 “法纳斯特” 的博客得到启示,于是想动手做一个可视化分析漫威人物关系的知识图谱,做一枚硬核漫威铁粉。

1 数据爬取

1.1 漫威人物关系图谱网站

1.网址传送门:

https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2018/04/marvel-cinematic-universe-whos-who-interactive/index.html

注:网站被墙,因此很多朋友反应网站打不开,但是用梯子是可以访问的。另,我会将爬下来的csv文件的 github 地址直接贴在下文中,需要的朋友自取哈。

2.网站介绍:网站是基于 Graph 技术开发的,主要是关于漫威人物、漫威电影的图谱。

3.网站一览

首页:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

 人物关系:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

点击头像,可看到人物的详细信息:(钢铁侠!!

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

漫威宇宙系列电影:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

1.2 爬取人物关系数据

注:浏览器推荐使用Google Chrome

1.打开F12调试,选择“Network”(注意是在首页):

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

2.关键词搜索(Ctrl + f),输入“marvel-data.json”:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

3.进入“marvel-data.json”,复制json接口的URL:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

在这里,我们主要需要爬取的数据是“characters”与“relationship”:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

 4.python代码

跑代码之前需要先配置 python 环境,在这里笔者使用的 IDE 是 PyCharm,PyCharm 的安装见此处:Win10环境Python+Tensorflow+Jupyter入门安装详解,代码中的 url 即刚才在网站上复制的 json 接口

import json
import requests

headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

url = 'https://graphics.straitstimes.com/STI/STIMEDIA/Interactives/2018/04/marvel-cinematic-universe-whos-who-interactive/data/marvel-data.json'
response = requests.get(url=url, headers=headers)
result = json.loads(response.text)

num = 0
names = []
item = {0: 'friend', 1: 'enemy', 2: 'creation', 3: 'family', 4: 'work', 5: 'love'}

for i in result['relationship']:
    subject = result['relationship'][i]['id']
    object = result['relationship'][i]['target_id']

    if subject not in names:
        names.append(subject)
    if object not in names:
        names.append(object)

    relation = int(result['relationship'][i]['relationship'])
    with open('relation_message.csv', 'a+') as f:
        f.write(subject + ',' + object + ',' + item[relation] + '\n')

for j in names:
    num += 1
    with open('names_message.csv', 'a+') as f:
        f.write(j + ',' + str(num) + '\n')

for k in result['characters']:
    id = result['characters'][k]['id']
    name = result['characters'][k]['name']
    status = result['characters'][k]['status']
    species = result['characters'][k]['species']
    with open('message.csv', 'a+') as f:
        f.write(id + ',' + name + ',' + status + ',' + species + '\n')

5.运行完毕后会产生三个csv文件

csv文件 github 地址:https://github.com/leungll/Marvel-File

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

至此,数据爬取部分已经完成。

2 Neo4j的安装及服务启动

2.1 Neo4j下载安装

1.进入官网下载:https://neo4j.com/download-center/#releases

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

 若点击之后网站没有弹出下载提示,则点击此处下载:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

2.解压安装包:

注意:切记安装路径不要含任何中文字符或空格(例如文件名为“Program Files”),否则远程服务器访问本地数据库时会乱码,导致无法读取数据

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

2.2 开启Neo4j服务

1.管理员身份打开Windows PowerShell:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

2.启动:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Import-Module '(neo4j文件目录)\bin\Neo4j-Management.psd1'
Invoke-Neo4j console

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

3.访问服务器:

localhost:7474

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

 4.输入密码:

初始用户名:neo4j,初始密码:neo4j

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

5.之后服务器会要求你修改密码:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

3 数据准备

生成的三个csv文件中,“names_message.csv”即角色,“relation_message.csv”即人物关系情况。

3.1 加入列名

1.在“names_message.csv”中

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

2.在“relation_message.csv”中

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

3.2 放入本地Neo4j的import文件

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

4  数据可视化

4.1 加载”names_message.csv”文件

LOAD CSV  WITH HEADERS FROM 'file:///names_message.csv' AS data CREATE (:people{name:data.name, id:data.id});

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

182个人物节点已生成。

4.2 加载”relation_message.csv”文件

LOAD CSV  WITH HEADERS FROM "file:///relation_message.csv" AS relations
MATCH (entity1:people{name:relations.subject}) , (entity2:people{name:relations.object})
CREATE (entity1)-[:rel{relation: relations.relation}]->(entity2)

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

1144对人物关系已建立完毕。

4.3 查看人物关系图谱

1.取消限制(去掉”LIMIT 25″)

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

运行:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

2.显示人物及关系

选择全屏:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

替换人物名称:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

替换人物关系:

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

4.4 筛选人物关系

1.托尼·斯达克的朋友:

match p=(n:people{name:"tonys"})-[:rel{relation:"friend"}]->() return p;

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

其中「thor」为「雷神」,「stever」为「美队」,「blackw」为「黑寡妇」,「vision」为「幻视」,「peterp」为「蜘蛛侠」,「bruceb」为「绿巨人」

2.美队的女友:

match p=(n:people{name:"stever"})-[:rel{relation:"love"}]->() return p;

Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂]

其余的查询类似我们熟知的SQL语句,大家可以多多尝试。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153310.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java正则表达式详解

    java正则表达式详解一、正则表达式术语1)元字符:非一般字符,具有某种意义的字符。如:\bX:\b边界符,以X开始的单词2)正则表达式语法大全 字符 说明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,”n”匹配字符”n”。”\n”匹配换行符。序列”\\”匹配”\”,”\(“匹配”(“。 …

  • 微型计算机的主要因素,微型计算机的性能主要取决于( )。

    微型计算机的主要因素,微型计算机的性能主要取决于( )。【单选题】运用移动平均线研判股价趋势时,股价在一段时间下跌后,若短期均线开始上翘,继而穿越长期均线,形成:【单选题】在完成高度保密和紧急任务时往往不适用的领导方式是()【判断题】汽油和柴油发动机的负荷特性区别在于调节方式不同,汽油机属于质调节,柴油机属于量调节【判断题】为了让烙铁头充分接触焊点,焊接时可适当施加压力。【单选题】按构成空间视线限制的方向性可将植物构成空间分为水平空间和()…

  • pycharm2022 02激活码【2022最新】

    (pycharm2022 02激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html4KDDGND3CI-eyJsa…

  • JavaScript高级程序设计学习总结一

    JavaScript高级程序设计学习总结一一,JavaScript的实现JavaScript和ECMAScript通常都被人认为是相同的含义,JavaScript的含义比ECMAScript规定要多的多。一个完整的的JavaScript实现应该由三个不同的部分组成。核心(ECMAScript的) 文档对象模型(DOM) 浏览器对象模型(BOM)二,ECMAScript中是由ECMA-262定义的,ECMASc…

  • AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子

    AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子AGI:走向通用人工智能的【生命学&哲学&科学】第一篇——生命、意识、五行、易经、量子经典的物理统一在原子上,量子的物理统一在量子上,化学统一在元素上,而生命统一在DNA上,DNA本身拆干了,其实就是一群元素,按照经典物理和量子物理所进行的组合。科学本质上是一种经验主义的认识论,属于哲学的一个分支。量子理论,要通过哲学语言,量子属于形而上看不到、摸不着的东西。元气的基本五行,是世界万物的行成与演变的方式。生命的本质是化学,化学的本质是物理,物理的本质用数学描述,数学的本质是由我们的某种语言写出

  • apk 查看签名,以及apk签名方法

    apk 查看签名,以及apk签名方法1、查看apk签名    jarsigner-verify-verbose-certsout/target/product/hq6735_65u_b1p_l1/system/app/FineOSSystemManager/FineOSSystemManager.apk2、添加签名    1.找到系统签名文件,文件路径:在源码的\build\targe

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号