几行代码构建知识图谱:SmoothNLP知识三元组抽取与可视化完整Demo

发布时间:2026/8/27 16:29:20
几行代码构建知识图谱:SmoothNLP知识三元组抽取与可视化完整Demo 几行代码构建知识图谱SmoothNLP知识三元组抽取与可视化完整Demo【免费下载链接】SmoothNLP专注于可解释的NLP技术 An NLP Toolset With A Focus on Explainable Inference项目地址: https://gitcode.com/gh_mirrors/smo/SmoothNLPSmoothNLP是一个专注于可解释 NLP 技术的开源工具集其中的知识图谱KG模块可以仅用几行代码就从中文文本中抽取知识三元组主语-关系-宾语并一键生成可视化图谱。本文带你完成一次完整的知识抽取 Demo从安装、三元组抽取到 NetworkX 有向图与 matplotlib 可视化全程无需复杂配置。 什么是知识三元组抽取知识图谱的核心数据结构是N 元组。SmoothNLP 的 kg 模块 对每个抽取结果返回 5 个字段字段含义示例subject主语对象1上海培罗蒙西服公司object宾语对象2有限公司action连接关系是type关系类型state/prep/num/actionstate_conf_score置信概率0.9266得益于 SmoothNLP 可解释推理的设计每条三元组都能追溯到原始句子与词法关系这在基于深度黑盒模型的知识抽取工具中并不多见。 快速上手两步完成知识抽取第 1 步安装 SmoothNLPpip install smoothnlp第 2 步调用kg.extract抽取三元组from smoothnlp import kg text 上海培罗蒙西服公司成立于1928年总部位于上海是一家西服制作有限公司 rels kg.extract(text) for rel in rels: print(rel[subject], rel[action], rel[object], rel[_conf_score])输出结果上海培罗蒙西服公司 是 有限公司 0.92668116 上海培罗蒙西服公司 成立 于1928年 0.87661725 上海培罗蒙西服公司 是 于上海 0.77132225 参数小贴士text支持str或[str]长文本会被自动切句prettyTrue默认会对词组结果进行合并让三元组更通顺抽取逻辑封装在 smoothnlp/algorithm/kg/init.py 中可阅读源码理解细节。️ 可视化把三元组变成有向图拿到三元组列表后用kg.rel2graph构建 NetworkX 有向图再用kg.graph2fig渲染成图整个过程不需要手动配置布局from smoothnlp import kg g kg.rel2graph(rels) # 构建 nx.DiGraph 有向图 fig kg.graph2fig(g, x1000, y800) fig.savefig(kg_demo.png)rel2graph会按关系类型给边打上中文标签状态修饰 / 条件修饰 / 数字修饰 / 动作graph2fig内置 SimHei 中文字体并用 Dijkstra 最短路径作为 Kamada-Kawai 布局的距离权重节点按中心度自适应调整大小开箱即美观。 进阶 Demo多句批量抽取 节点分类V0.4 版本起kg.extract_ngram支持对一批句子批量抽取并识别节点类型配合kgexplore可视化库可以生成带节点分类与边关系图例的完整图谱from smoothnlp.algorithm import kg from kgexplore import visual ngrams kg.extract_ngram([ SmoothNLP在V0.3版本中正式推出知识抽取功能, SmoothNLP专注于可解释的NLP技术, SmoothNLP支持Python与Java, SmoothNLP将帮助工业界与学术界更加高效的构建知识图谱, SmoothNLP是上海文磨网络科技公司的开源项目, SmoothNLP在V0.4版本中推出对图谱节点的分类功能, KGExplore是SmoothNLP的一个子项目]) visual.visualize(ngrams, width12, height10)V0.4 版本支持的边关系事件触发、状态描述、属性描述、数值描述支持的节点种类产品、地区、公司与品牌、货品、机构、人物、修饰短语、其他。节点会自动着色分类右侧图例一目了然。 配套学习资料想动手复现本文 Demo推荐以下项目内资料官方知识图谱文档与示例输出tutorials/知识图谱/README.md百度百科公司页批量抽取实战 Notebooktutorials/知识图谱/baike-company.ipynbKG 模块源码含extract/rel2graph/graph2figsmoothnlp/algorithm/kg/init.py项目主入口与 NLP Pipelinesmoothnlp/nlp.py❓ 常见问题 FAQQ1kg.extract和普通 NER 有什么区别NER 只识别实体而知识三元组抽取输出的是「主语-关系-宾语」的完整结构并附带关系类型与置信度可直接入图谱。Q2中文图谱可视化乱码怎么办graph2fig已内置 SimHei 字体自动加载若自行使用 matplotlib可将 SimHei 字体注册到font_manager后再绘图参考 baike-company.ipynb 中的做法。Q3支持哪些版本知识图谱功能自 V0.3.0 起支持节点分类与边关系图例为 V0.4 版本特性。 恭喜到这里你已经用不到 20 行 Python 代码完成了从文本 → 知识三元组 → 可视化图谱的完整链路。无论是企业信息库、新闻事件抽取还是学术文献知识组织SmoothNLP 的 kg 模块都能作为可解释的起点帮你快速搭建自己的知识图谱原型。【免费下载链接】SmoothNLP专注于可解释的NLP技术 An NLP Toolset With A Focus on Explainable Inference项目地址: https://gitcode.com/gh_mirrors/smo/SmoothNLP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考