Neo4j使用日志(二):学习用csv文件生成知识图谱

Neo4j使用日志(二):学习用csv文件生成知识图谱

主要参考文章

学习思路
1.导入三元组csv文件
2.利用三元组提取关系,生成实体csv和相关关系csv
3.导入csv文件生成知识图谱

介绍:简单来说,三元组就是两个实体之间有具体的联系,我们只要把三元组提出出来生成csv就可以用啦。

Neo4j使用日志(二):学习用csv文件生成知识图谱_第1张图片1.导入三元组csv文件
本人的csv文件如下
Neo4j使用日志(二):学习用csv文件生成知识图谱_第2张图片2.利用三元组提取关系,生成实体csv和相关关系csv
根据博文中所提到的python语句生成csv文件
在使用过程中出现读取文件名字中出现中文报错的问题
利用转义字符和除去不可见字符语句进行修改
csvfilename = r’E:\roles.csv’
csvfilename = csvfilename.strip(’\u202a’)#除去不可见字符
修改过后代码如下

#!/usr/bin/env python
# _*_ coding:utf-8 _*_

import pandas as pd
import csv

# 读取三元组文件
h_r_t_name = [":START_ID", "role", ":END_ID"]
h_r_t = pd.read_csv("E:\VIEW.csv", decimal="\t", names=h_r_t_name)#你的三元组csv读取
print(h_r_t.info())
print(h_r_t.head())

# 去除重复实体
entity = set()
entity_h = h_r_t[':START_ID'].tolist()
entity_t = h_r_t[':END_ID'].tolist()
for i in entity_h:
    entity.add(i)
for i in entity_t:
    entity.add(i)
print(entity)
# 保存节点文件
csvf_entity = open("E:\entity.csv", "w", newline='', encoding='utf-8')#生成节点文件
w_entity = csv.writer(csvf_entity)
# 实体ID,要求唯一,名称,LABEL标签,可自己不同设定对应的标签
w_entity.writerow(("entity:ID", "name", ":LABEL"))
entity = list(entity)
entity_dict = {}
for i in range(len(entity)):
    w_entity.writerow(("e" + str(i), entity[i], "my_entity"))
    entity_dict[entity[i]] = "e"+str(i)
csvf_entity.close()
# 生成关系文件,起始实体ID,终点实体ID,要求与实体文件中ID对应,:TYPE即为关系
h_r_t[':START_ID'] = h_r_t[':START_ID'].map(entity_dict)
h_r_t[':END_ID'] = h_r_t[':END_ID'].map(entity_dict)
h_r_t[":TYPE"] = h_r_t['role']
h_r_t.pop('role')
csvfilename = r'E:\roles.csv'
csvfilename = csvfilename.strip('\u202a')#除去不可见字符
h_r_t.to_csv(csvfilename, index=False)

3.导入csv文件生成知识图谱
(1)首先需要关闭Neo4j(正常情况把cmd关掉就能结束进程)
另外可以在cmd中输入Neo4j stop
在cmd中输入 Neo4j status 检查状态
如果关不掉可以参考以下文章关闭Neo4j
(2)导入csv文件
打开cmd输入
第一次导入csv失败了,后来把csv文件放在了import文件夹下,就能导入成功了。
在这里插入图片描述输入“Neo4j-admin.bat import --nodes E:\entity.csv --relationships E:\roles.csv”导入

Neo4j-admin.bat import --nodes E:\\entity.csv --relationships E:\\roles.csv

等运行一段时间之后,再次启动Neo4j,如果能启动就能够在browse里面看到相应的图谱啦
如果Neo4j不能启动,应该是哪出了问题,目前对于Neo4j的学习还比较浅,没能具体分析出来,最简单直接的方法就是把数据库删了,重新创建。
数据库在安装目录的data下的.gb就是,删掉数据库重新导入即可。
数据库位置

你可能感兴趣的:(数据库学习,neo4j)