前言
系统环境:windows10
这篇文章主要记录 自己学习neo4j环境部署及初步入门使用。
主要参考的链接如下:
- 魔兽世界简易知识图谱
- neosemantics环境配置:tps://www.jianshu.com/p/d47bbf0081f2
首先放个效果图:
正文
一.neo4j安装及配置
jdk15 + neo4j 4.2.3+neosemantics 4.2.0.1
1.jdk15(neo4j的依赖环境)
(安装前确保自己计算机上面没有jdk)
下载地址:http://jdk.java.net/java-se-ri/15
下载解压即可,无需安装。
然后配置环境变量:
首先 进入我的电脑->右键 属性->高级系统设置->环境变量
系统变量->新建:
变量名写JAVA_HOME,不用变。
但变量值需要写自己解压的jdk的绝对路径!!!
接着再新建一个:
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib
这俩都不用改。
写完后点击确定,然后找到系统变量下的的PATH(不用新建),双击PATH
在其中添加如下两行:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
点击确定。
写完后测试是否设置成功,打开cmd,输入java -version:
如果如图显示则表示配置成功。
2.neo4j 4.2.3
下载地址:https://we-yun.com/index.php/blog/releases-56.html
这个下载也是一个zip文件,无需安装即可使用,也需要简单配置下环境变量即可,还是如上图打开环境变量的界面:
系统变量->新建:
变量名:NEO4J_HOME
变量值:D:\neo4j-community-4.2.3-windows\neo4j-community-4.2.3
变量值还是需要替换成自己解压neo4j的绝对路径!!!
然后双击系统变量下的PATH,添加:
%NEO4J_HOME%\bin
写完后记得点确定以保存设置。
然后就可以打开cmd进行测试了:
输入 neo4j.bat console,大致所示,不一定完全一样,能started起来不报错即可
接下来是neo4j的一个插件配置,这个插件可以辅助高效的向neo4j中导入rdf文件。
3.neosemantics 4.2.0.1
下载地址:https://github.com/neo4j-labs/neosemantics/releases
下载后缀是jar的文件。
下载后将其直接放在neo4j根目录下的/plugins文件夹下。
打开 /conf/neo4j.conf,在其中(一般在文件末)添加:
dbms.unmanaged_extension_classes=n10s.endpoint=/rdf
然后cmd重启neo4j即可。
二.rdf知识图谱导入neo4j
首先在魔兽世界简易知识图谱中下载
《魔兽世界人物信息知识库RDF 【下载量:48】》
将其放到neo4j的/import文件夹下
接下来复制cmd启动了neo4j弹出的url链接在浏览器红打开:
http://localhost:7474/
进入后需要输入用户和密码,初始值均为neo4j。
然后就能进入项目界面了:
正上方有光标的地方就是控制台,我们可以在上面输入指令。
首先检查下neosemantics 是否配置成功,在命令行输入:
:GET http://localhost:7474/rdf/ping
返回
{“ping”:“here!”}
然后在使用neosemantics 导入rdf文件之前,需要先初始化:
CALL n10s.graphconfig.init();
然后需要创建唯一性约束:
CREATE CONSTRAINT n10s_unique_uri ON (r:Resource) ASSERT r.uri IS UNIQUE;
之后才能导入rdf文件:
call n10s.rdf.import.fetch( "file:///rdf文件绝对路径","Turtle")
然后就可以在左边点击那些彩色的标签进行可视化啦!示意图:
总结
本文主要介绍了如何搭建一个neo4j的基础环境,并快速的导入一个现成的rdf文件进行可视化的demo。
但这并不是知识图谱的全部环节,一般来说最难的部分反而是在如何获取结构化数据上,常见的方法有:
- 从百科类网站上爬取数据,然后将其结构化
- 用关系抽取,事件抽取等算法从非结构化或半结构化数据上抽取三元组,然后将其结构化等。
当然,除了本文已经展示的步骤以外,还有一些需要读者自己去查看细节的地方:
- 如何生成rdf文件,现在最常用的是turtle格式的。
- neo4j有一套查询语言,掌握基础语法也是必要的。
最后,知识图谱除了可以可视化以外,还可以结合自然语言处理和查询的算法,来构建问答系统,这也是知识图谱最大的价值所在,之后本人也会继续深入学习。