python构建知识图谱_构建知识体系的知识图谱
任务:利用Neo4j构建图片所示内容

第一步:下载jdk
jdk1.8下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
如下图,根据系统的版本下载相对应的jdk

下载之后直接双击运行,可自定义安装目录,如:

第二步:配置系统java环境
1、新建系统变量JAVA_HOME

2、编辑系统变量Path,添加如下两条:

3、新建系统变量CLASSPATH

以上就已经配置好java环境了,然后cmd,java -version
出现:java version "1.8.0_221" 就表示java环境安装配置成功。
第三步:下载Neo4j安装文件
直接上官网下载社区版 的对应操作系统的Neo4j安装文件


然后解压,位置随便哪都可以,我是解压到如下位置:

第四步:Neo4j的配置,及服务启动
1、新建系统变量NEO4J_HOME

2、设置Neo4j的常用配置
(1)、设置默认的监听地址,在默认情况下,Neo4j只允许本地主机(localhost)访问,要想通过网络远程访问Neo4j数据库,需要修改监听地址为 0.0.0.0,这样设置之后,就能允许远程主机的访问。例如:
HTTP Connector. There can be zero or one HTTP connectors.
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=0.0.0.0:7474
(2)、设置安全验证,默认是启用的,我这里改为不启用,是因为默认第一次进去会让修改密码,我老是修改不起,所以就改为不验证了。(这一步非必须)
Whether requests to Neo4j are authenticated.
To disable authentication, uncomment this line
dbms.security.auth_enabled=false
(3)、将Neo4j安装为服务(Windows Services)
安装:neo4j install-service
卸载:neo4j uninstall-service
(4)、启动、停止服务
neo4j start
neo4j stop
neo4j restart
操作示例:

(5)、登录
默认的host是bolt://localhost:7687(我这里改为了:http://本机ip:7474),默认的用户是neo4j,默认的密码是:neo4j。进入以下界面,就可以开始通过Cypher命令,创建节点和关系,构建自己的知识图谱了。

第五步:通过Cypher命令,创建节点和关系,构建知识图谱
1、创建节点:
CREATE (j:Job { name: '自动化办公' }) return j;

2、创建关系:
match(j:Job{name:"自动化办公"}),(k:Knowledge{name:"Python基础"}) create (j)-[h:Have]->(k)
return j,k,h;

只利用这两种命令实际上就可以创建第一张图那样的知识图谱了。
补充知识:删除所有的节点:match n= () delete n
我先把之前创建的两个实体和一个关系删除:MATCH p=()-[r:Have]->() delete p
创建岗位节点:
CREATE (j1:Job { name: '自动化办公' }),(j2:Job { name: 'Web开发' }),(j3:Job { name: '爬虫' }),
(j4:Job { name: '数据分析' }),(j5:Job { name: '人工智能' }),(j6:Job { name: '大数据' })
return j1,j2,j3,j4,j5,j6;

创建知识节点:
CREATE (k1:Knowledge { name: 'Linux' }),(k2:Knowledge { name: 'CSS' }),(k3:Knowledge { name: 'xpath' })
,(k4:Knowledge { name: '网络' }),(k5:Knowledge { name: 'HTML' }),(k6:Knowledge { name: 'Windows办公软件' })
,(k7:Knowledge { name: '所属行业的业务知识' }),(k8:Knowledge { name: '统计' }),(k9:Knowledge { name: '机器学习' })
,(k10:Knowledge { name: '高数' }),(k11:Knowledge { name: '深度学习' }),(k12:Knowledge { name: 'Python基础' })
,(k13:Knowledge { name: '文件处理' }),(k14:Knowledge { name: 'Requests' }),(k15:Knowledge { name: 'Flask' })
,(k16:Knowledge { name: 'Django' }),(k17:Knowledge { name: 'bs4' }),(k18:Knowledge { name: 'scrapy' })
,(k19:Knowledge { name: 'MySql' }),(k20:Knowledge { name: 'MongoDB' }),(k21:Knowledge { name: 'Hive' })
,(k22:Knowledge { name: 'Hbase' }),(k23:Knowledge { name: 'Scala' }),(k24:Knowledge { name: 'spark' })
,(k25:Knowledge { name: 'Hadoop' }),(k26:Knowledge { name: 'JAVA' }),(k27:Knowledge { name: 'FLink' })
,(k28:Knowledge { name: 'Storm' }),(k29:Knowledge { name: 'Kafka' }),(k30:Knowledge { name: 'flume' })
return k1,k2;
创建岗位方向节点:
CREATE (j1:JobDirection { name: '视觉' }),(j2:JobDirection { name: '语音' }),(j3:JobDirection { name: 'NLP' })
,(j4:JobDirection { name: '推荐' }),(j5:JobDirection { name: '离线计算' }),(j6:JobDirection { name: '实时计算' })
return j1,j2,j3,j4,j5.j6;
查看一下所有节点:match (n) return n;

接下来就是创建关系,我这里就只用一种关系了,命令都一样的。例如:
match(j:Job{name:"自动化办公"}),(k:Knowledge{name:"Python基础"}) create (j)-[h:Have]->(k) return j,k,h;
match(j:Job{name:"Web开发"}),(k:Knowledge{name:"Python基础"}) create (j)-[h:Have]->(k) return j,k,h;
match(j:Job{name:"Web开发"}),(k:Knowledge{name:"Linux"}) create (j)-[h:Have]->(k) return j,k,h;
创建好所有的关系之后查看结果:MATCH (n) RETURN n

到此,从安装java环境,到安装Neo4j,到创建第一张图所示的知识图谱就已经完成了。
以上只是用了cypher命令来创建节点和关系,实际上应该是使用代码来创建的。这个后面再继续学习吧。
