前言
需要构建农业知识图谱,先来学习一下构建知识图谱的基本流程和套路,熟悉过程方便 科研 后续工作的开展,写下此篇博客作为我的笔记吧~
参考代码来源:github项目 jm199504/Financial-Knowledge-Graphs
1.知识图谱存储方式
知识图谱存储方式主要包含资源描述框架(Resource Description Framework,RDF)和图数据库(Graph Database)。
1.1 资源描述框架特性
- 存储为三元组(Triple)
- 标准的推理引擎
- W3C标准
- 易于发布数据
- 多数为学术界场景
1.2 图数据库特性
- 节点和关系均可以包含属性
- 没有标准的推理引擎
- 图的遍历效率高
- 事务管理
- 多数为工业界场景
2.图数据库neo4j
neo4j 是一款 NoSQL 图数据库,具备高性能的读写可扩展性,基于高效的图形查询语言 Cypher
,更多介绍可访问 neo4j 官网,官网还提供了 Online Sandbox 实现快速上手体验。
启动登录(Windows)
以管理员权限运行 cmd,输入neo4j.bat console
,启动 neo4j 服务。启动成功,终端出现如下提示即为启动成功。
注意:neo4j 启动前要求本地已安装 jdk,且有版本对应要求。这部分内容小伙伴们自行上网搜索哈。
3. 知识图谱数据准备
由于该项目是调用的开源数据接口Tushare,而农业领域尚未形成比较好的开源数据,所以这块的参考意义不大,我简单看了一下没有实践。
调用的数据是dataframe格式,作者利用不同的接口函数将其中的数据分别写入到不同的csv文件中。然后编写了几个计算股票系数的函数。
4.构建金融知识图谱
利用python链接neo4j数据库,读取csv中的数据,对缺失数据进行填充,对重复数据进行去重。然后构建节点和边。
关系的创建用到py2neo.NodeMatcher,利用公共属性将不同label标签链接到一起。使用这种方法的前提是所有实体都已经构建完成,只是每个实体都是独立的状态,彼此之间没有关联,并且每种label标签都存储在独立的csv文件中。最后作者还进行了股票间关联性分析,加强了股票之间的联系,减轻了neo4j中实体之间关联稀疏的问题。
5.总结
该项目内容写的很详细,其中在neo4j中构建节点间边的方法需要重点学习,与之前了解的方法不同,项目最后还附上了基于图数据库的一些算法链接,原作者太赞了,太周全了。果断star~