Neo4j Desktop:用cypher或python创建知识图谱

目录

··打开neo4j

··用cypher创建知识图谱

 ··用python建立知识图谱


·······打开neo4j·······

2e5f48a5c34e477095574406bee73915.png

····Add项目

        ··填写name和password(我这里name是text123 password是123)

8125e29ab7854091b2339d70470e57de.png------>382afe8c30694940a9e2e75da7e419eb.png

····点击start

a33c2d02deef4429ad18d8061c4fbc1d.png

····点击open

 d0da0a701ebd45b7b98c8d9996dd8b83.png

         ··open后 就会打开neo4j browser:我们后续创建的知识图谱就会显示在这里

ca3d5f6c4b9d4c43a7b0f77aee9e97fc.png

·······用cypher创建知识图谱·······

····处理bird.csv文件

        bird.csv文件 提取码:tmsg

8c820313afca4281b11baebec87115cd.png

 1.csv文件放入import文件夹中

      ·· 点击  ... -> open folder -> import

b81659f907d84fa3905fc96e714266a0.png

 2.csv用记事本方式打开

        ··右击--打开方式--记事本

e22bdcf78de247ff9eeb8dcc43f8c6fd.png

         ··点击另存为、编码设成utf-8,保存。

486ead91fe1e4278a71c696be198b890.png----->19c82d9fdf074831828e87696b79d134.png

····创建结点

        ··创建结点:

LOAD CSV WITH HEADERS FROM 'file:/bird.csv' AS line
CREATE (a1:鸟名 {name:line.鸟名,hongMo:line.虹膜,zui:line.嘴,jiao:line.脚})

//第一行是寻找import文件夹里的“bird.csv”文件
//第二行 name、hongMo等,是“鸟名”的属性。
//“line.鸟名”的“鸟名”是csv文件里的“鸟名”那一列的第一个元素

        ··查看效果:

cd250e901a2d4767b0f59c5a495a7ddc.png

         ··继续创建余下6种结点:

LOAD CSV WITH HEADERS FROM 'file:/bird.csv' AS line
MERGE (a2:目 {name:line.目,niaoMing:line.鸟名})
MERGE (a3:科 {name:line.科,niaoMing:line.鸟名})
MERGE (a4:属 {name:line.属,niaoMing:line.鸟名})
MERGE (a5:虹膜 {name:line.虹膜,niaoMing:line.鸟名})
MERGE (a6:嘴 {name:line.嘴,niaoMing:line.鸟名})
MERGE (a7:脚 {name:line.脚,niaoMing:line.鸟名})

//为什么都有一个“niaoMing”的属性?:避免结点错乱,一对多等现象,好奇者可以把“,niaoMing:line.鸟名”删掉,再运行一下试试试试
//MERGE与CREATE区别:MERGE不会建立完全重复的结点。

        ··结点可以改颜色哦

16d0d2befe7344c5bc8b8accc72a2c57.png---->095ce74d2b4242319edd15faaf522068.png

····创建关系

load csv with headers from "file:/bird.csv" as line with line
with*match (from:鸟名{name:line.鸟名}),(to:目{niaoMing:line.鸟名})
merge (from)-[r:目]->(to)

//为什么是“niaoMing:line.鸟名”而不是“name:line.目”:同样是为了避免出错
//前者效果如左图,后者如右图

158233acafc749d8bb48c8544f1b7c31.png---69b3d29d518847d1a611d164b209d9b6.png

         ··继续创建关系,最后结果:

3497aa7eb1c74be289b14ab41fc928ff.png

        ··注意:关闭neo4j时,先点stop,等待一段时间,再点×

e6e34e493b064d2abd25159e09cb4f1f.png

 ·······用python建立知识图谱·······

····关于jupyter

1.安装网页版的jupyter

        1.打开Windows命令行窗口cmd(也有其它方法安装网页版的jupyter,这里我只提供以下这一种)

b3c2e59920a049a89ec34095c1894ec7.png

        2.输入以下代码,等待下载完成

pip install jupyter

        3.python -m pip list可以查看已下载组件

python -m pip list

2.终端启动jupyter notebook

        ··启动完!!!!终端一定不要关!!!!

        ··(后面的操作中,有时会需要重启终端,但如果是开始建立知识图谱了,那终端是万万不能关的!)

jupyter notebook

d66ccd372e9442039c29e6047f1ebc5a.pngd816b762d5f444af854bdb27c1cd6e1d.png

       ··(如果是第一次用jupyter notebook,我们要去浅浅配置一下)

3.配置jupyter notebook

1.命令行窗口输入jupyter notebook --generate-config

jupyter notebook --generate-config

        ··然后我们打开 C:\Users\用户名\ .jupyter(我们路径会有点小区别,我的是C:\Users\86187\.jupyter 认真找嗷)

        ··找到jupyter_notebook_config.py 打开(如果双击打不开,就找到自己的python代码编译器 比如vsCode或者IDLE等,再在编译器中open该文件)

9f3bef301f6245b585744f14cc797f9a.png

         ··找到#c.NotebookApp.notebook_dir = ''这句话(我们的行数可能不一样,认真找哦)

0b9687002f8d4bed8c3b93f6a08de1d0.png

         ··删掉“#”然后在单引号里填一个目录,比如我的是D盘的jupyterCode文件夹,填好记得保存。

c20e4c30eb864227abc57dd7a1eba616.png

         ··然后我们重启jupyter notebook,就会进入我们的工作目录啦!

2.代码补全(可以不做)

        ··打开cmd,输入pip install jupyter_contrib_nbextensions,等待安装成功;

pip install jupyter_contrib_nbextensions

        ··(要关闭jupyter notebook)在cmd中输入jupyter contrib nbextension install --user --skip-running-check,等待配置成功;

jupyter contrib nbextension install --user --skip-running-check

        ··启动jupyter notebook,在选项栏中多出了Nbextension的选项

c9644410d18e4b6585228ef26c2fb6a2.png​ 

        ··点开该选项,勾选Hinterland即可。

0f6eca60174e489b8238c73c94a2df3c.png

        ··如果是下面这样,点红线画着的地方,就可以勾选Hinterland了。

9355f389767d4992bcb1bf69bae49963.png​ 

····创建知识图谱

1.打开neo4j

        ··这个界面开着不要关 (neo4j browser)

fbb552f534b1412eb5746c745635a7c1.png

2.终端打开jupyter notebook

53794426adde476eb968c7b265a07da6.png

        ··点击new->python 3

85c931c8dc5c4e4f868079c3841d60d9.png

        ··输入代码

21cc4894d2c54fb895e11735abc7e9a0.png​ 

from py2neo import *
import numpy as np
import pandas as pd


def create_bird(): 
    df = pd.read_csv('bird.csv',engine='python')
    graph = Graph("http://localhost:7474",auth=("neo4j", "123"))
    graph.delete_all()
    graph.begin()
    for i, line in df.iterrows(): 
        cql = '''
                MERGE (a:NiaoMing{name:\'%s\',hongMo:\'%s\',zui:\'%s\',jiao:\'%s\'})
                MERGE (b:Mu{name:\'%s\',NiaoMing:\'%s\'})
                MERGE (a)-[:目]-> (b)
                MERGE (c:Ke{name:\'%s\',NiaoMing:\'%s\'})
                MERGE (a)-[:科]-> (c)
                MERGE (d:Shu{name:\'%s\',NiaoMing:\'%s\'})
                MERGE (a)-[:属]-> (d)
                MERGE (e:HongMo{name:\'%s\',NiaoMing:\'%s\'})
                MERGE (a)-[:虹膜]-> (e)
                MERGE (f:Zui{name:\'%s\',NiaoMing:\'%s\'})
                MERGE (a)-[:嘴]-> (f)
                MERGE (g:Jiao{name:\'%s\',NiaoMing:\'%s\'})
                MERGE (a)-[:脚]-> (g)
            ''' % (line['鸟名'],line['虹膜'],line['嘴'],line['脚'],line['目'],line['鸟名'],
                   line['科'],line['鸟名'],line['属'],line['鸟名'],line['虹膜'],line['鸟名'],
                   line['嘴'],line['鸟名'],line['脚'],line['鸟名'])
        graph.run(cql)     
    
if __name__ == '__main__':
    create_bird()

         ··如果这时候你急着运行的话,我想你会发现有很多报错的(嘻嘻)下面我们一个一个来解决:

3.和neo4j建立连接

        ··打开代码中的网址http://localhost:7474,(注意这时候桌面版的neo4j的neo4j browser是没有关的,关了就打不开网站了)

        ··username填“neo4j

        ··password是填当初Add项目时,自己输入的密码。比如我的text123项目密码是123,我就填123,同时代码里对应的就是auth=("neo4j", "123"),如果你的密码是其他的,比如4556aa,那代码这里就要改成auth=("neo4j", "4556aa"),同时网站那里,填的password也是“4556aa”

4e4b6a4f01be4ba6a778ee4148f5fcce.png

        ··填完之后点击connect,然后这个网站也不要关

        ··我们继续回到jupyter 写代码的那个界面,注意这三行代码

      5ada2c9d1c354d5b9dcd92dbc115596b.png

4.安装py2neo、numpy、pandas

        ··打开终端安装py2neo、numpy、pandas(这仨都是啥这里不做赘述。)

pip install py2neo
pip install numpy
pip install pandas

5.处理csv文件

        ··bird.csv文件 提取码tmsg这个文件要放在工作目录那里,比如我的工作目录是D盘的“jupyterCode”文件夹,我就把csv文件放在这个文件夹里

0160db724ed24c15accbec6d5eeb74cc.png​ 

        ··右击,记事本方式打开该csv文件,点击“另存为”,设置编码为utf-8,保存。

fb38cd81e8cb443d9db8682f8bafe81c.png​-->e76123f8336e4b14ab5612702217acbd.png

6.点击运行,查看结果

        ··现在再点击运行,在网页和桌面版neo4j browser都可以看到效果啦!(如果我没漏掉什么过程的话...)

 3b68ff6631774c41b04ed1f2f810ab6d.png

        ··注意:关闭neo4j时,先点stop,再点×

e2419b6bfc1f4d85a5353747dbb40367.png

····写在最后(与正文无关)

        到这里,基本就结束啦。我呢,目前是个大二小白,跟着老师做项目接触到了知识图谱和neo4j,自己搜罗了很多资料,一步一步自学过来,踩了很多很多的坑,处理了很多很多的错误,才走到今天...

        后来逐渐萌发了写这篇文章的想法,希望可以帮助到有需要的人!

        当然我跟大佬们比起来就是小渣渣,这篇文章也可能会考虑不全漏掉什么,后续发现了会再补充~欢迎大家纠错,谢谢!

  • 12
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青鱼鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值