neo4j构建农业知识图谱

农业知识图谱(Agriculture_KnowledgeGraph)项目环境构建

前言

从GitHub上(https://github.com/qq547276542/Agriculture_KnowledgeGraph#agricultural-knowledge-graph)下载项目解压后文件如下:
在这里插入图片描述
neo4j下载与安装:https://www.jianshu.com/p/27edc7572193

1、环境构建

  1. 创建环境
  • 创建一个单独的项目环境,命令如下:

conda create -n kg python=3.6

其他的一些操作的命令:

查看环境
conda info -e
激活环境
activate kg
退出环境
deactivate

  1. 在创建环境的环境中安装所需要包
  • 安装django

pip install django

将Django下的bin路径(我的是D:\Anaconda3\envs\kg\Lib\site-packages\django\bin)加入到Path的环境变量中,计算机—》属性—》高级系统设置-—》环境变量—》Path

  • 安装thulac

pip install thulac

  • 安装neo4j

pip install neo4j

  • 安装py2neo

pip install py2neo

我出现ValueError: The following settings are not supported: {‘username’: ‘neo4j’}
究其根本是py2neo的版本不同,出现上述问题时是由于py2neo版本太高,新版本的写法不是这种
解决办法:安装低版本的py2neo 例如4.3.0

命令:

pip install py2neo==4.3.0 -i https://pypi.douban.com/simple';

安装即可自动卸载之前的py2neo,并安装4.3.0版本的py2neo,问题解决。

  • 安装fasttest,我没有安装pyfasttext

pip install fasttext

  • 安装pinyin

pip install pinyin

  • 安装pymongo

pip install pymongo

  • 将创建的环境添加到vscode环境中,直接左下角选择解释器

2、导入数据

2.1导入节点HudongItem数据

将hudong_pedia.csv导入neo4j:开启neo4j,进入neo4j控制台。将hudong_pedia.csv放入neo4j安装目录下的/import目录。在控制台依次输入:

// 将hudong_pedia.csv 导入
LOAD CSV WITH HEADERS FROM “file:///hudong_pedia.csv” AS line
CREATE (p:HudongItem{title:line.title,image:line.image,detail:line.detail,url:line.url,openTypeList:line.openTypeList,baseInfoKeyList:line.baseInfoKeyList,baseInfoValueList:line.baseInfoValueList})

结果:Added 113037 labels, created 113037 nodes, set 791259 properties, completed after 18105 ms.

// 新增了hudong_pedia2.csv
LOAD CSV WITH HEADERS FROM “file:///hudong_pedia2.csv” AS line
CREATE (p:HudongItem{title:line.title,image:line.image,detail:line.detail,url:line.url,openTypeList:line.openTypeList,baseInfoKeyList:line.baseInfoKeyList,baseInfoValueList:line.baseInfoValueList})

结果:Added 36892 labels, created 36892 nodes, set 258244 properties, completed after 7007 ms.

// 对titile属性添加UNIQUE(唯一约束/索引)
// 创建索引
CREATE CONSTRAINT ON (c:HudongItem)
ASSERT c.title IS UNIQUE

结果:Added 1 constraint, completed after 1715 ms.
显示部分图:
在这里插入图片描述

2.2导入节点NewNode数据

进入/wikidataSpider/wikidataProcessing中,将new_node.csv,wikidata_relation.csv,wikidata_relation2.csv三个文件放入neo4j的import文件夹中(运行relationDataProcessing.py可以得到这3个文件),然后分别运行

// 导入新的节点
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///new_node.csv” AS line
CREATE (:NewNode { title: line.title })

结果:Added 96670 labels, created 96670 nodes, set 96670 properties, completed after 5508 ms.

//添加索引
CREATE CONSTRAINT ON (c:NewNode)
ASSERT c.title IS UNIQUE

结果:Added 1 constraint, completed after 1003 ms.
部分数据图如下:
在这里插入图片描述

2.3导入关系数据

导入hudongItem节点和NewNode节点之间的关系RELATION

//导入hudongItem和NewNode之间的关系RELATION
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///wikidata_relation2.csv” AS line
MATCH (entity1:HudongItem{title:line.HudongItem}) , (entity2:NewNode{title:line.NewNode})
CREATE (entity1)-[:RELATION { type: line.relation }]->(entity2)
结果:Set 166059 properties, created 166059 relationships, completed after 15865 ms.

HudongItem和HudongItem2之间的关系

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///wikidata_relation.csv” AS line
MATCH (entity1:HudongItem{title:line.HudongItem1}) , (entity2:HudongItem{title:line.HudongItem2})
CREATE (entity1)-[:RELATION { type: line.relation }]->(entity2)
结果:Set 58958 properties, created 58958 relationships, completed after 5937 ms.

导入实体和属性之间的关系,添加到关系RELATION中
将attributes.csv放到neo4j的import目录下

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///attributes.csv” AS line
MATCH (entity1:HudongItem{title:line.Entity}), (entity2:HudongItem{title:line.Attribute})
CREATE (entity1)-[:RELATION { type: line.AttributeName }]->(entity2);
结果:Set 73391 properties, created 73405 relationships, completed after 7113 ms.

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///attributes.csv” AS line
MATCH (entity1:HudongItem{title:line.Entity}), (entity2:NewNode{title:line.Attribute})
CREATE (entity1)-[:RELATION { type: line.AttributeName }]->(entity2);
结果:Set 11747 properties, created 11748 relationships, completed after 4101 ms.

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///attributes.csv” AS line
MATCH (entity1:NewNode{title:line.Entity}), (entity2:NewNode{title:line.Attribute})
CREATE (entity1)-[:RELATION { type: line.AttributeName }]->(entity2);
结果:Set 271 properties, created 271 relationships, completed after 2563 ms.

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///attributes.csv” AS line
MATCH (entity1:NewNode{title:line.Entity}), (entity2:HudongItem{title:line.Attribute})
CREATE (entity1)-[:RELATION { type: line.AttributeName }]->(entity2)
结果:Set 1464 properties, created 1464 relationships, completed after 2571 ms.

部分RELATION关系图:
在这里插入图片描述

2.4导入节点Weather数据

将wikidataSpider/weatherData/static_weather_list.csv放在指定的位置(import文件夹下)

//导入节点
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///static_weather_list.csv” AS line
MERGE (:Weather { title: line.title })
结果:Added 144 labels, created 144 nodes, set 144 properties, completed after 346 ms.

//添加索引
CREATE CONSTRAINT ON (c:Weather)
ASSERT c.title IS UNIQUE
结果:Added 1 constraint, completed after 322 ms.
显示图省略

2.5导入关系数据

导入Weather节点和HudongItem节点(植物)的关系Weather2Plant

//将wikidataSpider/weatherData/weather_plant.csv放在指定的位置(import文件夹下)
//导入hudongItem和新加入节点之间的关系
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///weather_plant.csv” AS line
MATCH (entity1:Weather{title:line.Weather}) , (entity2:HudongItem{title:line.Plant})
CREATE (entity1)-[:Weather2Plant { type: line.relation }]->(entity2)

导入城市(city)和weather节点之间的关系

//导入城市的气候
//将city_weather.csv放在指定的位置(import 文件夹下)
//(这步大约需要15分钟左右)
//导入城市对应的气候
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM “file:///city_weather.csv” AS line
MATCH (city{title:line.city}) , (weather{title:line.weather})
CREATE (city)-[:CityWeather { type: line.relation }]->(weather)
结果:Set 408 properties, created 408 relationships, completed after 261938 ms.

3、修改Neo4j用户

进入demo/Model/neo_models.py,修改第9行的neo4j账号密码,改成你自己的

4、启动django服务

直接进入到demo所在目录,运行django服务器:

python manage.py runserver

运行结果如下:

在这里插入图片描述
其中出现错误:

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.

运行命令:

python manage.py migrate

再一次启动服务器显示如下:

  • 浏览器中输入http://127.0.0.1:8000/,显示结果如下:
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值