日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

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

發(fā)布時間:2023/12/15 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂](python详细安装教程) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,又見面了,我是你們的朋友風君子。

目錄

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 技術開發(fā)的,主要是關于漫威人物、漫威電影的圖譜。

3.網站一覽

首頁:

人物關系:

點擊頭像,可看到人物的詳細信息:(鋼鐵俠!!

漫威宇宙系列電影:

1.2 爬取人物關系數據

注:瀏覽器推薦使用Google Chrome

1.打開F12調試,選擇“Network”(注意是在首頁):

2.關鍵詞搜索(Ctrl + f),輸入“marvel-data.json”:

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

在這里,我們主要需要爬取的數據是“characters”與“relationship”:

4.python代碼

跑代碼之前需要先配置 python 環(huán)境,在這里筆者使用的 IDE 是 PyCharm,PyCharm 的安裝見此處:Win10環(huán)境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

至此,數據爬取部分已經完成。

2 Neo4j的安裝及服務啟動

2.1 Neo4j下載安裝

1.進入官網下載:https://neo4j.com/download-center/#releases

若點擊之后網站沒有彈出下載提示,則點擊此處下載:

2.解壓安裝包:

注意:切記安裝路徑不要含任何中文字符或空格(例如文件名為“Program Files”),否則遠程服務器訪問本地數據庫時會亂碼,導致無法讀取數據

2.2 開啟Neo4j服務

1.管理員身份打開Windows PowerShell:

2.啟動:

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

3.訪問服務器:

localhost:7474

4.輸入密碼:

初始用戶名:neo4j,初始密碼:neo4j

5.之后服務器會要求你修改密碼:

3 數據準備

生成的三個csv文件中,“names_message.csv”即角色,“relation_message.csv”即人物關系情況。

3.1 加入列名

1.在“names_message.csv”中

2.在“relation_message.csv”中

3.2 放入本地Neo4j的import文件

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

182個人物節(jié)點已生成。

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)

1144對人物關系已建立完畢。

4.3 查看人物關系圖譜

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

運行:

2.顯示人物及關系

選擇全屏:

替換人物名稱:

替換人物關系:

4.4 篩選人物關系

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

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

其中「thor」為「雷神」,「stever」為「美隊」,「blackw」為「黑寡婦」,「vision」為「幻視」,「peterp」為「蜘蛛俠」,「bruceb」為「綠巨人」

2.美隊的女友:

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

其余的查詢類似我們熟知的SQL語句,大家可以多多嘗試。

總結

以上是生活随笔為你收集整理的Python + Neo4j(安装)可视化分析漫威十年人物关系图谱[通俗易懂](python详细安装教程)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。