知识图谱实战1:构建红楼梦人物知识图谱

一、安装Neo4j

在Windows环境中安装Neo4j 并创建两个节点和他们之间的关系
这个是先安装neo4j desktop 然后访问 brower

注意 : neo4j和jdk的版本要对应 neo4j 4.x.x都要求jdk11以上
我安装的是 https://neo4j.com/artifact.php?name=neo4j-community-3.5.6-windows.zip jdk版本1.8

下载后 解压 管理员方式打开命令行 进入文件地址 输入 neo4j.bat console 然后直接访问 http://localhost:7474/ 修改密码后即可输入语句创建节点
知识图谱实战1:构建红楼梦人物知识图谱_第1张图片

CREATE (n:Person { name: 'Andres', title: 'Developer' }) return n;
CREATE (n:Person { name: 'Vic', title: 'Developer' }) return n;
match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)-[r:Friend]->(m) return r;
match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)<-[r:Friend]-(m) return r;

知识图谱实战1:构建红楼梦人物知识图谱_第2张图片

二、安装anaconda

windows10 安装anaconda3教程
注意 :如果电脑上已经安装python 注意anaconda 和 python的版本对应 没有卸载时安装提示
知识图谱实战1:构建红楼梦人物知识图谱_第3张图片

为了避免后面出现什么奇奇怪怪的问题 我先卸载了电脑上已经安装的所有版本的python 然后重新安装annacondaAnaconda3-5.3.1-Windows-x86_64.exe
anaconda清华镜像下载

教程中配置环境变量我的 \Library中 没有 usr这个文件夹 可以不设置这一项 有些说需要在第二项 Scripts\加上反斜杠 但是我不加也可以

E:\Anaconda(Python需要) 
E:\Anaconda\Scripts(conda自带脚本) 
E:\Anaconda\Library\mingw-w64\bin(使用C with python的时候)
E:\Anaconda\Library\usr\bin 
E:\Anaconda\Library\bin(jupyter notebook动态库)

知识图谱实战1:构建红楼梦人物知识图谱_第4张图片

Anaconda Navigator卡住、闪退或者一直停在loading applications

anaconda点开后 一直停留在 loading applications 上面

运行上面这两个链接中的命令耗时很长 在anaconda prompt中设置清华镜像
依次执行

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

再使用 conda info
在这里插入图片描述
但是我没运行完那几个命令 运行到一半一直卡住就直接关掉 重启电脑 就可以正常打开anaconda navigator 了

三、构建知识图谱

参考地址

四大名著人物关系三元组数据集下载地址

需要先安装py2neo这个库来操作neo4j 直接pip install py2neo 安装这个库的过程出现了很多问题 主要还是各个库版本冲突的问题
在这里插入图片描述
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
jupyter-console 5.2.0 requires prompt-toolkit<2.0.0,>=1.0.0, but you have prompt-toolkit 3.0.18 which is incompatible.

出现这种错误 可以使用下面这个命令 直接升级版本

pip install --upgrade jupyter-console

在jupyter notebook中

import csv
import py2neo
from py2neo import Graph,Node,Relationship,NodeMatcher
#账号密码改为自己的即可
g=Graph('http://localhost:7474',user='neo4j',password='neo4j')
with open('E:/triples.csv','r',encoding='utf-8') as f:
    reader=csv.reader(f)
    for item in reader:
        if reader.line_num==1:
            continue
        print("当前行数:",reader.line_num,"当前内容:",item)
        start_node=Node("Person",name=item[0])
        end_node=Node("Person",name=item[1])
        relation=Relationship(start_node,item[3],end_node)
        g.merge(start_node,"Person","name")
        g.merge(end_node,"Person","name")
        g.merge(relation,"Person","name")

知识图谱实战1:构建红楼梦人物知识图谱_第5张图片
执行完成后
知识图谱实战1:构建红楼梦人物知识图谱_第6张图片

neo4j查询语句

#以下为neo4j代码,如需代码运行,请放入g.run(...)内运行,将...替换为下列代码
MATCH (p: Person {name:"贾宝玉"})-[k:丫鬟]-(r)
return p,k,r
MATCH (p1:Person {name:"贾宝玉"}),(p2:Person{name:"香菱"}),p=shortestpath((p1)-[*..10]-(p2))
RETURN p

你可能感兴趣的:(知识图谱)