mysql三国人物库_一文带你使用neo4j生成三国人物社交关系图

本文介绍了如何利用docker搭建neo4j图数据库,并通过三国人物关系数据,使用awk处理和生成SQL语句,最终在neo4j中创建节点和关系,构建出三国人物的社交关系图。
摘要由CSDN通过智能技术生成

简介

最近给孩子买了三国演义,可是三国人物关系太复杂,就想着把三国人物关系做成一张图,这样方便看,整好neo4j图数据库非常适合社交关系的处理,下面就一起来看看,如何使用neo4j生成三国人物社交关系图。

neo4j安装

现在docker很流行,也很方便,在这里,我就用docker快速搭建一个neo4j图数据库服务。

拉取neo4j镜像[root@mysql ~]#docker pull neo4j

[root@mysql ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

neo4j               latest              ce22583052bf        6 days ago          546MB

创建neo4j的docker容器[root@mysql ~]#docker run -id -d --publish=7474:7474 --publish=7687:7687 neo4j

[root@mysql ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

bc33fcdae7f4        neo4j                "/sbin/tini -g -- /d鈥 4 hours ago         Up 4 hours          0.0.0.0:7474->7474/tcp, 7473/tcp, 0.0.0.0:7687->7687/tcp   hopeful_roentgen

到这里,图数据库的服务已经搭建好了,剩下的就是将数据导入。

准备三国人物数据

在这里,我已经准备好了三国演义中蜀国主要人物的关系表,将这些数据库拷贝到linux系统的a.txt文件刘备 关羽 结义兄弟

刘备 张飞 结义兄弟

刘备 卢植 主公

刘备 马超 主公

刘备 庞统 主公

刘备 黄忠 主公

刘备 赵云 主公

刘备 魏延 主公

刘备 蒋琬 主公

刘备 法正 主公

刘备 马良 主公

刘备 孟获 主公

刘备 啥摩柯 主公

刘备 糜竺 主公

刘备 糜芳 主公

甘夫人 刘备 妻

糜夫人 刘备 次妻

孙尚香 刘备 妻

关羽 关兴 父子

关平 关羽 义子

张飞 张苞 父子

马腾 马超 父子

马腾 韩遂 异性兄弟

庞德 庞统 叔父

马谡 马良 弟弟

祝融 孟获 妻

糜芳 糜夫人 兄妹

糜竺 糜芳 兄弟

刘备 诸葛亮 主公

黄月英 诸葛亮 妻

黄承彦 黄月英 父女

姜维 诸葛亮 弟子

诸葛亮 诸葛瑾 兄弟

诸葛亮 诸葛瞻 父子

刘备 刘禅 父子

甘夫人 刘禅 母子

刘禅 姜维 主公

诸葛瞻 刘禅 女婿

刘备 中山王:刘胜 后代

刘胜 刘启 父子

刘启 刘辩 宗亲

刘辩      刘协      让位

使用awk获取不重复的人物名称cat a.txt |awk '{print $1"\n"$2}'|sort|uniq > b.sql

生成neo4j图数据节点插入语句[root@mysql ~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三国志11的数据。 一共有七张表:朝代(42个)、势力(42个)、城市(42个)、港口(35个)、关隘(10个)、武将(848个)、宝物(43个)。 表的列名使用的原版中文列名,大家可以自己改下列名。 以下是每个表的字段: 朝代:[序号],[名称],[说明] 势力:[序号],[君主],[军师],[爵位],[国号],[技术点] 城市:[序号],[名称],[太守],[势力],[最大士兵],[士兵],[金钱],[兵粮],[剑],[枪],[戟],[弩],[军马],[冲车],[井阑],[投石],[木兽],[走舸],[楼船],[斗舰],[耐久],[气力],[治安],[州],[邻接城市],[邻接城市1],[邻接城市2],[邻接城市3],[邻接城市4],[邻接城市5] 港口:[序号],[名称],[势力],[耐久],[士兵],[气力],[金钱],[兵粮],[剑],[枪],[戟],[弩],[军马],[冲车],[井阑],[投石],[木兽],[走舸],[楼船],[斗舰],[太守] 关隘:[序号],[名称],[势力],[耐久],[士兵],[气力],[金钱],[兵粮],[剑],[枪],[戟],[弩],[军马],[冲车],[井阑],[投石],[木兽],[走舸],[楼船],[斗舰],[太守] 武将:[序号],[姓名],[势力],[所属],[所在],[身份],[官职],[忠诚],[功绩],[统御],[武力],[智力],[政治],[魅力],[体力],[头像],[性别],[登场年],[出生年],[死亡年],[死因],[血缘],[父亲],[母亲],[配偶],[义兄弟],[世代],[相性],[亲近武将],[亲近武将1],[亲近武将2],[亲近武将3],[亲近武将4],[厌恶武将],[厌恶武将1],[厌恶武将2],[厌恶武将3],[厌恶武将4],[登场预定君主],[枪兵适性],[戟兵适性],[弩兵适性],[骑兵适性],[兵器适性],[水军适性],[特技],[舌战得意话题],[义理],[野望],[起用],[性格],[音声],[口调],[汉室],[战略倾向],[地元执着] 宝物:[序号],[名称],[种类],[价值],[拥有武将],[所在都市],[状态]
人物关系谱是一种基于数据的数据可视化方式,可以用于展示人物之间的关系。而neo4j是一种流行的数据,可以用于存储和查询大规模的数据。下面是一个简单的介绍和演示: 人物关系谱通常由节点和边组成,其中节点表示人物,边表示人物之间的关系。在neo4j中,节点和边都可以有属性,这些属性可以用于描述节点和边的特征。例如,一个人物节点可以有姓名、性别、出生日期等属性,一个关系边可以有关系类型、开始时间、结束时间等属性。 要创建一个人物关系谱,首先需要定义节点和边的标签和属性。例如,可以定义一个Person节点标签,包含name、gender、birthday等属性,定义一个Relation边标签,包含type、start_time、end_time等属性。然后,可以使用Cypher语言编写语句来创建节点和边,并将它们添加到neo4j数据中。例如,下面是一个简单的Cypher语句,用于创建两个人物节点和一条关系边: ``` CREATE (p1:Person {name: 'Alice', gender: 'female', birthday: '1990-01-01'}) CREATE (p2:Person {name: 'Bob', gender: 'male', birthday: '1995-02-02'}) CREATE (p1)-[r:Relation {type: 'friend', start_time: '2020-01-01', end_time: '2021-01-01'}]->(p2) ``` 这个语句创建了两个Person节点,一个名为Alice,一个名为Bob,以及一条Relation边,表示Alice和Bob之间有一个朋友关系,开始于2020年1月1日,结束于2021年1月1日。 创建完节点和边之后,可以使用Cypher语句查询和修改数据。例如,下面是一个简单的Cypher语句,用于查询所有的Person节点和Relation边: ``` MATCH (p:Person)-[r:Relation]->(q:Person) RETURN p, r, q ``` 这个语句查询了所有的Person节点和Relation边,并将它们返回。 最后,可以使用各种工具和来可视化人物关系谱。例如,可以使用Python的matplotlib和py2neo来绘制形,也可以使用JavaScript的d3.js和neovis.js来创建交互式形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值