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

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

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

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

相关推荐
vibecoding774 小时前
一文搞懂企业级 API 网关选型:12 个维度、4 类企业、7 步落地
人工智能·大模型·ai编程
Rocktech_ruixun4 小时前
机器人本地跑LLM大模型对主板硬件有什么要求?瑞迅科技RK3588/3568方案选型解析
人工智能·科技·嵌入式硬件·机器人·边缘计算
yxlalm4 小时前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
tedcloud1234 小时前
Wand-Enhancer 怎么搭建?开源 Wand 客户端增强与远程控制工具介绍
大数据·服务器·人工智能·开源·音视频
科技苑4 小时前
如何用Python编程实现一个简单的Web爬虫?
人工智能·python
迅利科技5 小时前
新能源汽车零部件研发,SIMULIA一站式仿真解决方案如何缩短研发周期
人工智能·汽车
嘉琪coder5 小时前
我做了一个 Chrome 扩展,把 YouTube 播放列表批量变成 AI 可读的本地 Markdown
chrome·开源·浏览器
Databuff5 小时前
AI SSH工具,集齐SSH、SFTP、知识库RAG、AI助手
网络·人工智能·ssh
Blockchina6 小时前
从一篇文章到一条完整视频:用 Codex 搭建可复用的 AI 视频生产线
人工智能
Proaiapi6 小时前
一张图介绍gpt-image-2.5
人工智能·gpt