电网知识图谱项目总结(2)从局部文档RDF到全局知识图谱构建

电网知识图谱项目总结(2)从局部文档RDF到全局知识图谱构建

背景

上一篇总结了三元组抽取的具体操作,最终结果是每个文档内对应的三元组构成一个表格,这样有几百个文档。现在要汇总这些文档内的三元组,根据特定三元组构建与所有该类型相关的三元组对应的节点和边关系,然后将数据保存在表格中,所以需要抽取同类型的节点和边,过滤重复出现的节点和边。现在面临的问题和上次很相似,关系过多,需要一条一条处理,过于繁琐和重复,但这些都是避免不了的,还是踏踏实实一条一条写~

构建规范

下图是需要构建的节点Node和边Edge汇总。需要从所有的三元组中抽取出节点集和边集。最终需要的数据就是每个节点对应的编号属性集,节点和节点构成的边集(边中对应节点的编号),和数据结构中图类型graph一致。

在这里插入图片描述

在这里插入图片描述

构建框架

- AllPaths
- ReadNodes
- GlobalNodes    
- GlobalEdges    
- SameDataFilter 
初始文件
- RDF-Files(.xls)
结果文件
- Nodes (.xls)
- Edges (.xls)

相关类和文件关系如框架所示:

在这里插入图片描述

最终结果

最后得到的两个表格中部分sheet示例如下:

Nodes表

在这里插入图片描述

Edges表

在这里插入图片描述

总结

这个项目还是让我意识到了刷题的重要性,刷题是一个需要慢慢沉淀的过程,你做过的不同类型的题,会在往后学习、业务或项目中不经意地用到,某个场景中某个问题就类似于一个算法的逻辑,应用的方法是一样的。就拿这次的项目来说吧,首先考察的就是对字符串的处理,这需要对字符串的常用函数有一个了解,还有拆分、定位等一些情况的积累,其次就是集合的应用,这里面用的最多的就是集合(python中对应set())和字典(python中对应dict())。在得到全局边时和过滤数据时,不停地用集合;在得到边时,需要用字典建立一个节点间的映射,这就用到了字典。本次项目相当于一个大的字符串处理和图数据的构建,再根据每个三元组对应关系拆封为一个个小问题,主要是对数据的处理和过滤。框架逻辑和函数细化方面写的还是挺缜密的,一步步调用处理从而得到最终的结果。

总之所有的知识都不会白学的~

猜你喜欢

转载自blog.csdn.net/weixin_44368437/article/details/127773815