总结知识图谱构建及应用的开源工具

知识图谱的构建是一个颇具吸引力的研究领域,随着该技术的持续发展,目前已经出现了大量开源工具支持相关流程。为此,本文将从以下十一个类别展开梳理与介绍:开放知识资源、本体建模工具、基础文本处理工具、知识抽取工具、大规模图谱存储系统、图计算与分析工具、知识融合工具、图谱检索工具、知识表示与推理工具,以及图谱可视化工具。

本文旨在记录关于知识图谱构建相关的知识,便于自己的学习和后续查询,防止自己遗忘。

  1. 知识图谱开源数据:开放知识库
  1. 本体构建工具

1.protégé

2.NeOn Toolkit

3.Altova SemanticWorks

4.TopBraid Composer

5.思维导图

  1. 文本处理基础工具

1、YEDDA/SUTDAnnotator

https://github.com/jiesutd/YEDDA

适合做个人实验的轻量级实体标注

Chinese-Annotator

https://github.com/crownpku/Chinese-Annotator

适合做文本分类标注

Brat

https://github.com/nlplab/brat

功能最全,学术界用的较多

doccano

https://github.com/doccano

除实体关系、事件要素、事件关系不能标之外均可

Marktool

https://github.com/chosendai/MarkTool

持续维护,功能最全

  1. 知识抽取的工具

4.1 普通知识抽取的工具

1、DeepKE

2、OpenNRE

3、DeepDive

4、UIE

4.2 大模型用于知识抽取的工具
KnowLM

  1. 大规模图谱存储工具

原则:图数据库不都是最佳选择,mongodb有时很受欢迎,RDF工业界基本不用

1、根据具体的数据规模及应用场景合理选择

2、不涉及多跳查询的场景可选择合适的关系型数据库

3、涉及多跳查询、最短路径、推理分析等可考虑RDF数据库

工业界常用图数据库

1、Neo4j图数据库

2、HugeGraph

3、NebulaGraph

  1. 图算法计算工具

1、PyTorch Geometric(PyG)

2、tf_geometric

3、Deep Graph Library(DGL)

4、CogDL

5、GraphEmbedding

6、Spark GraphX

7、networkx

8、Plato

  1. 知识融合工具

1、Dedupe

2、Falcon-Ao

3、LIMES

4、OpenEA

5、PRASEMap

  1. 大规模图谱搜索工具

1、Elasticsearch

2、FAISS

3、SPTAG

4、Vearch

5、Milvus

  1. 知识表示/推理工具
    Apache Jena,一个开源的Java语义网框架(open用于source Semantic Web Framework for Java)构建语义网和链接数据应用,

Jena提供了RDFS、OWL和通用规则推理机

1、DGL-KE

2、OpenKE

3、pykg2vec

4、GraphVite

5、Pytorch-BigGraph

  1. 图谱可视化工具

NetworkX

NetworkX是一个用于处理网络的Python工具。许多人在Python中处理图数据时使用NetworkX。它也是许多图AI工具的基础。

Graph-tool

Graph-tool是一个用于处理网络的Python包。它可以:处理图数据,并且进行计算。Graph-tool不同于其他Python工具。它的主要部分是用c++编写的,所以它非常快,并且使用内存的更少。

Graphviz

Graphviz使绘制图形变得容易。像一些pytorch的可视化库,还有xgboost等树型模型的可视化都是用了这个库

ipycytoscape

Cytoscape是一个查看和处理复杂网络的免费工具。它始于研究生物的科学家,但现在每个人都可以使用。

js是它的网页版本,ipy则是在Jupyter notebook中使用的版本。它可以让熟悉Pandas、NetworkX和NumPy等Python工具的人在notebook中显示网络数据,并通过简单的步骤更改其外观。

ipydagred3

Dagre是一个JavaScript的工具,它与一个名为dagre3 -d3的前端工具一起工作,该工具使用D3JS来显示箭头。而ipydagred3是一个在JupyterLab中使用dagred3封装。

ipySigma

Sigma.js是一个可以通过快速、流畅的图片绘制网络图的JavaScript工具。它可以很好地处理大量数据,并允许更改图的外观。

ipyssigma是JupyterLab的一个封装,它将Sigma.js与Python的NetworkX包结合在一起。可以web浏览器中查看网络结构。

Netwulf

netulf是可以以有趣的交互式方式查看NetworkX图对象。它非常容易使用,可以直接从Python或Jupyter Notebook调用。

它对研究很有用,因为它可以快速预览和改变网络结构。只需给它一个Graph对象,就可以设计还可以进行保存。

nxviz

nxviz是一个使用Matplotlib轻松绘制图数据的Python包,它可以制作不同类型的图形,如Circos, Arc, Matrix, Hive和Parallel plot。

Py3plex

Py3plex是Python中用于探索和显示复杂网络的工具。它通过点或线的额外信息来分解、绘制和研究网络。

Py4cytoscape

Py4cytoscape是一个Python版本的Cytoscape工具。它可以让你在不学习新方法的情况下在R和Python之间切换网络的计算任务。它提供了许多在Python或Jupyter notebook中使用的功能。这个工具包非常适合R和Python双修的小伙伴使用。

pydot

pydot是Graphviz的Python接口,用纯Python编写。它可以解析并转储为Graphviz使用的DOT语言。

PyGraphistry

PyGraphistry是一个用于大图的Python库。可以帮助快速获取数据、提出问题、修改数据并看到全局。它需要graphhistry的服务器配合,所以可以处理大量的数据,并且支持gpu计算,所以计算的速度很快。

python-igraph

Python-igraph是在Python中使用igraph的一种方式。Igraph是一个用C语言制作的研究复杂网络的免费工具。它还可以与R、Mathematica和C/ c++一起使用。

pyvis

pyvis是一个Python包,用于创建和可视化交互式图形网络。

SNAP

SNAP是一种用于分析和处理大型网络的通用高性能系统。图由节点和节点之间的有向/无向/多边组成。网络是节点和/或边缘上有数据的图。

用c++编写的SNAP库是为快速工作和清晰的网络图而设计的。它处理有很多点和线的大网络,找出它们的形状,形成新的网络,并且可以在工作时改变一些东西。

NRD Studio

它是一款跨平台的可视化和探索软件,适用于各种复杂网络(包括知识图谱)的可视化和分析。NRD Studio 支持多种数据输入格式,例如 CSV、JSON、Excel等,并具有丰富的可视化布局和过滤器可供选择。使用NRD Studio,你可以快速构建出一个可视化的知识图谱,并通过布局算法使节点以更加直观的方式排列。例如,在 NRD Studio 中,你可以使用圈层图布局算法让节点自我组织成一个规则的布局,并使用不同的颜色和大小来表示不同类型的节点,还可以添加标签、节点描述信息提示以增强可读性。

Gephi

Gephi是一个开源的网络分析和可视化软件,允许用户探索和分析复杂的网络。它为可视化和操作网络数据提供了一个用户友好的界面,使其成为研究人员、数据科学家和分析人员的流行工具。

相关推荐
融云21 小时前
融云 2025 回顾:「韧性」生长,「邪修」破局
人工智能·融云im·im选型
qdprobot21 小时前
开源的在线串口调试助手支持macOS苹果电脑Windows系统Linux 浏览器webSerial
linux·运维·服务器·人工智能·mixly·小智ai·webserial
aitoolhub21 小时前
AI在线设计中的Prompt技巧:如何让输出更精准
人工智能·计算机视觉·prompt·aigc·语义分割·设计语言
jllllyuz21 小时前
基于差分进化算法优化神经网络的完整实现与解析
人工智能·神经网络·算法
L.fountain21 小时前
图像自回归生成(Auto-regressive image generation)实战学习(四)
人工智能·深度学习·学习·数据挖掘·回归
sensen_kiss21 小时前
INT305 Machine Learning 机器学习 Pt.11 循环神经网络(RNN,Recurrent Neural Network)
人工智能·rnn·机器学习
胡琦博客21 小时前
基于华为开发者空间云开发环境(容器)探索前端智能化
前端·人工智能·华为云
2301_782129951 天前
AI 写真下半场:从「捏脸」到「控体」的维度跨越
人工智能