三种创建Neo4j知识图谱方法详解

21 篇文章 0 订阅
18 篇文章 10 订阅

使用Neo4j创建知识图谱有以下三种方式:

1、通过Neo4j Desktop导入数据集;

2、通过Python py2neo graph.run()命令执行create语句

3、通过Python py2neo graph.create()命令执行创建节点及关系

根据目前实践,第一种、第二种适合批量操作,而第二种更适合在线操作,下面将一一详细介绍。

一、通过Neo4j Desktop导入数据集

(1)前序文章已介绍过Neo4j Desktop下载安装,在此不再赘述,如下图,在创建一个Project Graph后,打开Graph,点击Open Folder,下面有选项Import,选择Import则可以打开默认Import目录,我们需要上传的文件就需要保存在该路径下。

(2)在Neo4j Browser执行load语句,命令如下:

load CSV with headers from 'file:///directors.csv' as line create (actor:Person {name:line.name,year:line.year})

原始文件数据内容如下,要注意的是csv文件格式为GB1213,而导入数据格式要求为utf-8,所以导入前先将csv文件格式转换为utf-8,否则会乱码。我用的是notepad++打开csv文件,Encoding为utf-8。

导入之后查询可见下图。

 二、通过Python py2neo graph.run()命令执行create语句

(1)直接上代码

import py2neo
from py2neo import Graph,Node,Relationship
from base import openfile
import re

graph=Graph(
    "http://localhost:11010/",
    username="admin",
    password="password"
)

def read_data():
    file="d:/share/movie/directors.csv"
    punc = ':· - ...:-'
    with open ( file, 'r', encoding='utf-8' ) as f :
        context = f.read ( ).split('\n')
    for text in context[1:]:
        text1 = re.sub(r"[%s]+" % punc, "", text.strip( ).split(',')[0]) #名字中间不能带特殊符号,所以先去掉
        text2 = text.strip( ).split(',')[1]
        graph.run (
            "CREATE (" + text1 + ":Person {name:'" + text1 + "', year:" + text2 + "})" )

if __name__ == "__main__":
    read_data()

执行结果如下:

 三、通过Python py2neo graph.create()命令

因为更多的使用第二种方法,这块没有深入研究,附简单代码:

from py2neo import Graph,Node,Relationship,NodeMatcher
graph=Graph('http://localhost:11010',username='admin',password='password')
test_node_1 = Node(label = "Person",name = "time")
test_node_2 = Node(label = "Person",name = "title")
graph.create(test_node_1)
graph.create(test_node_2)
node_1_call_node_2 = Relationship(test_node_1,'CALL',test_node_2)
node_1_call_node_2['count'] = 1
graph.create(node_1_call_node_2)
  • 6
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SeasonRun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值