Neo4j使用日志(二):学习用csv文件生成知识图谱
主要参考文章
学习思路 1.导入三元组csv文件 2.利用三元组提取关系,生成实体csv和相关关系csv 3.导入csv文件生成知识图谱
介绍:简单来说,三元组就是两个实体之间有具体的联系,我们只要把三元组提出出来生成csv就可以用啦。
1.导入三元组csv文件 本人的csv文件如下 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就是,删掉数据库重新导入即可。 ![数据库位置](https://img-blog.csdnimg.cn/20201218222411788.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDM5ODUyNw==,size_16,color_FFFFFF,t_70)
|