老刘说知识图谱实践指引:知识图谱代表性全流程开源项目NER/RE关键模型与开放课程概述

一个比较具有实操性的知识图谱项目来练手,或者明确的路线做牵引对于知识图谱入门而言很重要,尤其是对于刚入门的人来说,对如何构建知识图谱还是相对陌生,这一需求更需要明确的指引。

而当前,知识图谱开源的东西较多,我们可以充分利用好开源的项目,借鉴前人的经验,进行实操,这也是老刘说NLP技术社区多个朋友的一些建议。

而就路线而言,我们可以不妨采用这样的路线:

首先,先了解知识图谱开源课程课件,对知识图谱各项技术有个大致的了解;

然后,实操一些常用的知识抽取关键模块开源项目,掌握目前性能较好的实体识别模型和关系抽取模型;

最后,再实践相对完整的知识图谱开源项目,以及开放性知识抽取开源项目完成整个知识图谱生命周期的全流程。

因此,解决“利用开源项目”来较快地认识知识图谱这一工作,本文主要从相对完整的知识图谱开源项目集合、一些常用的知识抽取关键模块开源项目、一些代表性的开放性知识抽取开源项目以及一些知识图谱开源课程课件四个角度出发,通过收集整理的方式给大家介绍,供大家参考。

目前开源的知识图谱项目主要包括医疗领域、农业领域、金融领域知识图谱,项目相对来说比较完整。

但需要注意的是,目前开放的项目基本上都是采用爬虫方法,经本体定义后存储相应图数据库,最后进行问答、可视化等操作,通过事件操作,可以对知识图谱的全流程能有个比较好的认识,并未涉及到抽取等细节。

项目主要介绍star较多的几个开源项目,包括QASystemOnMedicalKG医疗知识图谱问答、Agriculture_KnowledgeGraph农业知识图谱、Financial-Knowledge-Graphs小型金融知识图谱、stock-knowledge-graph小型的证券知识图谱等四个。

1、QASystemOnMedicalKG医疗知识图谱问答

项目收益:基于该项目,可以了解到如何针对现有的医药网站数据,如何设计知识图谱schema,如何使用cpyher语句插入neo4j数据库,以及如何基于特定领域图谱数据设计图谱问答问题类型,并进行实现。

2、Agriculture_KnowledgeGraph农业知识图谱

本项目是上海市《农业信息服务平台及农业大数据综合利用研究》子课题《上海农业农村大数据共享服务平台建设和应用》的研究成果。华师大课题组在前期国家重点研发计划《大数据知识工程基础理论及其应用研究》研究基础上,在本项目中,基于碎片化农业大数据,构建面向智慧农业的知识图谱及其应用系统。

项目收益:该项目给出了一些农业知识图谱的构建项目案例,包括其中的技术架构,包括数据的定义、基于Neo4j的数据导入、关系抽取、基于knn的实体分类以及数据导入的语句,从中可以熟悉如何设计知识图谱架构,如何进行实体分类以及实体关系抽取的实操;

3、Financial-Knowledge-Graphs小型金融知识图谱

Financial-Knowledge-Graphs小型金融知识图谱构建示例由作者jm199504开源共享,里面介绍了如何使用Tushare工具包获取开源金融数据,包括股票基本信息、股票持有股东信息、股票概念信息、股票公告信息、财经新闻信息、概念信息、沪股通和深股通成分信息、股票价格信息等数据,安装neo4j图数据库,读取csv文件进行图谱读写操作。

项目收益:通过该项目可以大致熟悉如何通过抓取线上数据,然后基于neo4j数据库进行数据导入,生成图谱,可以强化对neo4j图数据库的使用能力,包括如何使用neo4j图数据库的恶内置图算法能力;

4、stock-knowledge-graph小型的证券知识图谱

该项目与2中的项目类似,利用网络上公开的数据构建一个小型的证券知识图谱(知识库)。

该项目分成几个任务:

一个是从页中抽取董事会的信息,如给定的html文件中,需要对每一个股票/公司抽取董事会成员的信息,这部分信息包括董事会成员“姓名”、“职务”、“性别”、“年龄”共四个字段;一个是获取股票行业和概念的信息;一个是设计知识图谱,如创建“人”实体,这个人拥有姓名、性别、年龄;一个是创建可以导Neo4j的csv文件;一个是利用上面的csv文件生成数据库;一个是基于构建好的知识图谱,通过编写Cypher语句回答问题;

项目收益:该项目是个不涉及具体抽取的项目,但其中的图谱构建思想值得大家进行事件,例如,在图谱设计环节,

设计一个这样的图谱:

设计思想如下,可以通过抓取的数据进行设计

所以需要做些处理,并生成能够直接导入Neo4j的csv格式,即需要生成这个文件:executive.csv,stock.csv,concept.csv,industry.csv,executive_stock.csv,stock_industry.csv,stock_concept.csv

最后,在利用上面的csv文件生成数据库任务中,可以学习到如何使用neo4j-import的命令,来进行数据导入:

neo4j_home$bin/neo4j-adminimport--id-type=STRING--nodesexecutive.csv--nodesstock.csv--nodesconcept.csv--nodesindustry.csv--relationshipsexecutive_stock.csv--relationshipsstock_industry.csv--relationshipsstock_concept.csv

知识图谱构建中的关键步骤包括ner实体识别、实体关系抽取、事件抽取等,其中大家讨论最多的就是如何实现即插即用的实体识别和实体关系抽取,下面对一些代表性开源组件进行论述:

1、实体识别NER项目

实体识别模型当前比较主流的是两种,一种是BERT-NER系列,包括BERT+Softmax、BERT+CRF、BERT+Span、BERT+MRC等方法,另一种是基于指针网络的方法,如GlobalPointer、TPlinker:

1)BERT-NER-Pytorch实体识别

以下两个项目提供了BERT+Softmax、BERT+CRF、BERT+Span、BERT+MRC三种算法下的ner方法;

2)GlobalPointer_pytorch实体识别

类似于多头机制来做实体抽取,可以解决嵌套实体和非嵌套实体的问题,抽取的特征是头尾节点的点乘结果,TPlinker是加性特征,另外通过引入旋转位置编码RoPE可以提高了效果。

2、实体关系抽取项目

实体关系抽取,可以分成基于联合的方法以及基于pipeline串行的方法,前者代表的方法为pure,后者比较流行并且验证可行的方法包括casrel以及GPLinker。

1)casrel实体关系抽取

CasRel本质上也是基于参数共享的联合实体关系抽取方法,它通常被大家称作层叠指针网络,将关系作为主语到宾语的映射函数。具体分为两步:第一步识别句中所有可能的主语;第二步针对每个主题探测各种关系及其对应的宾语。最终设计了一个端到端的级联双标签(主语标签,关系宾语标签)框架。有点像多轮问答来做关系抽取,他这里先抽取subject,然后来预测每个p的起始位置。

2)GPLinker实体关系抽取

GPLinker是一种实体与关系联合抽取的方法,与casrel方法有可以匹敌的效果,先利用GlobalPointer抽取subject的首尾(i,j)和object的首尾位置(i,j),然后利用GlobalPointer抽取每一种关系p的实体的head的match的位置(hi,hj)和实体的尾部tail的match的位置(ti,tj)组合,最终输出交集的结果。

3)PURE实体关系抽取

PURE,是pipeline式关系抽取的模型,首先为每一个实体类型生成4个标记token,然后给定一组实体对,取出该实体对对应的4个标记token,接着顺序拼接所有实体对的标记token到文本token后面,之后将token传给特征提取器(一般为Bert),拿到每个token的隐向量输出,最后每4个标记token选择第1个和第3个标记token的隐向量进行拼接,传给分类层进行分类。

开放性知识抽取与预定义schema的抽取不同,其不需要预先定义好知识图谱本体,而是直接通过模型训练或者句法规则进行抽取。

1、spo_extract_platform开放三元组抽取

本项目作为笔者在开放领域的三元组抽取的一次尝试,标注内容大部分为人物头衔,人物关系,公司与人的关系,影视剧主演、导演信息,以句子级别进行标注,标注出句子中的主语,谓语,宾语,形成标注序列;利用标注好的语料,采用bert+dl的方法进行训练;采用序列标注算法(ALBERT+BiLSTM+CRF)进行S,P,O识别,对新的语料,预测主语,谓语,宾语,然后利用一定的策略,如文本二分类(ALBERT+BiGRU+ATT)进行关系抽取,形成实体关系;

例如,给定:

接着,按照各个元素在句子出现的位置进行组合,比如华为的位置,离常务董事挨得近,那么形成一个三元组:

2、基于规则的开放因果抽取项目

基于因果关系知识库的因果事件图谱构建,用于构建因果事理图谱项目,本项目以构造和总结因果模板,结合中文语言特点,构建因果语言知识库的方式代替。本项目是对因果事件抽取以及因果知识图谱构建的一种尝试。

第1讲知识图谱概论、第2讲知识表示、第3讲知识建模、第4讲知识抽取基础:问题和方法、第5讲知识抽取:数据采集;

第6讲知识抽取:实体识别、第7讲知识抽取:关系抽取、第8讲知识抽取:事件抽取、第9讲知识融合;

第10讲知识图谱表示学习、第11讲知识存储、第12讲基于知识的智能问答、第13讲实体链接、第14讲知识推理共14个章节。

为了“利用开源项目”来较快地认识知识图谱这一工作,本文主要从相对完整的知识图谱开源项目集合、一些常用的知识抽取关键模块开源项目、一些代表性的开放性知识抽取开源项目以及一些知识图谱开源课程课件四个角度出发,通过收集整理的方式给大家介绍。

当然,开源的项目其实在复现的过程中兴许会出现一些实际的问题,如环境错误、数据缺失等,这时候我们可以进一步地动用搜索能力去补充,并加以耐心。

最后,感谢开源工作者的无私奉献。

就职于360人工智能研究院、曾就职于中国科学院软件研究所。

THE END
1.图谱实现智能问答与分析服务刘焕勇医疗知识图谱文章浏览阅读688次,点赞10次,收藏10次。本次记录主要是复现一下刘焕勇老师在github上的开源项目,体验一下什么是知识图谱,以及最终完成的具体功能显示的一个效果,为后续的毕设开展做一个铺垫。_刘焕勇 医疗知识图谱https://blog.csdn.net/m0_51177881/article/details/136743774
2.刘焕勇研究方向:知识图谱大模型微调及评估RAG文档理解 github项目:https://liuhuanyong.github.io 技术社区:老刘说NLP 个人简介:刘焕勇,360人工智能研究院资深算法专家,知识图谱及文档理解算法方向负责人,曾就职于中国科学院。近年来主持或参与研制全行业事理图谱、360百科图谱、知识图谱平台、文档理解大模型、360智脑自研大模型https://liuhuanyong.github.io/
3.360亮相2024全国知识图谱与语义计算大会暨知识图谱国际联合会议大会以“知识图谱与大模型”为主题,包括讲习班、特邀报告、前沿趋势论坛、评测与竞赛、海报与系统展示等环节。700余名全球顶尖学者、行业专家和企业家出席大会,共同探讨知识图谱、语义计算、大模型等前沿科技的最新进展和未来趋势。360人工智能研究院资深算法专家、知识图谱及文档理解算法方向负责人刘焕勇应邀出席本次大会https://baijiahao.baidu.com/s?id=1813517687758874322&wfr=spider&for=pc
4.developer.xfyun.cn/thread/57921医疗知识图谱问答系统探究(一) 1、项目背景 为通过项目实战增加对知识图谱的认识,几乎找了所有网上的开源项目及视频实战教程。 果然,功夫不负有心人,找到了中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKnowledgeGraph。https://developer.xfyun.cn/thread/57921
5.知识图谱的构建流程?知识图谱schema这个东西对于一个从无到有进行知识图谱构建的人来说,是个十分头疼的事情,无论是业务人员,还是技术人员,都存在诸多困惑,schema是对领域或者行业知识的一个高度抽象化建模,是个十分耗时的过程。对话中抛出几个观点,知识架构师,知识产品经理是未来知识图谱 的一个十分必要的工种,技术人员用技术的方式去学习https://www.zhihu.com/question/299907037/answer/2264001927
6.大模型是否可以替代知识图谱同义词提取任务来自刘焕勇大模型是否可以替代知识图谱同义词提取任务:一个医疗领域的简单尝试及结论赏析 原创 刘焕勇老刘说NLP2023- ?收藏 2 评论 ?5 评论 o p 同时转发到我的微博 按热度 按时间 正在加载,请稍候 ü 简介: 研究方向包括语言资源监测与研究、社会计算、知识图谱,事理图谱。 更多a 微关系 他https://weibo.com/2111855055/N1EGgrFyG
7.基于医疗知识图谱的交互式智能导诊系统①? E-mail:?csa@iscas.ac.cn http://www.c-s-a.org.cn Tel:?+86-10-62661041 ? 基于医疗知识图谱的交互式智能导诊系统① 全威1,2,马志柔1,刘 杰1,叶 丹1,钟 华1 1(中国科学院?软件研究所?软件工程技术研究开发中心,?北京?100190) 2(中国科学院https://c-s-a.org.cn/csa/article/pdf/8229
8.knowledgegraphandqasystembasedonit。知识图谱构建关于知识图谱概念性的介绍就不在此赘述。目前知识图谱在各个领域全面开花,如教育、医疗、司法、金融等。本项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。本项目将包括以下两部分的内容: 基于垂直网站数据的医药知识图谱构建 https://github.com/cgq0816/QASystemOnMedicalKG/
9.知识图谱汇总系统精选疾病知识9700+,典型病例3600+,国家临床路径1200+,医学词典17万+,医学计算器270+,心电图760+,临床检验330+,临床决策知识2600+ 4. 平安医疗科技: 60万医学概念、530万医学关系 养生健康知识图谱 中科院研究所刘焕勇 https://github.com/liuhuanyong/QASystemOnMedicalKGhttps://www.jianshu.com/p/140a9127acdb
10.刘焕勇奇虎360算法专家研究方向:知识图谱、知识表示、深度学http://bda.pku.edu.cn/info/1069/1729.htm
11.知识图谱在RAG中的应用探讨腾讯云开发者社区在这篇文章中,我们来详细探讨知识图谱(KG)在RAG流程中的具体应用场景。 缘起 关于知识图谱在现在的RAG中能发挥出什么样的作用,之前看了360 刘焕勇的一个分享,简单的提了使用知识图谱增强大模型的问答效果的几个方面: 在知识整理阶段,用知识图谱将文档内容进行语义化组织; https://cloud.tencent.com/developer/article/2407487
12.知识图谱模块化推理及医疗应用研究.pdf知识图谱模块化推理及医疗应用研究.pdf 60页内容提供方:136***6583 大小:3.26 MB 字数:约9.05万字 发布时间:2024-08-04发布于江苏 浏览人气:0 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)知识图谱模块化推理及医疗应用研究.pdf 关闭预览 知识图谱模块化推理及医疗https://m.book118.com/html/2024/0731/8121047140006115.shtm
13.金融机器智能官方的博客社区动态,知识图谱,PaperDigest作者简介:刘焕勇,360 人工智能研究院资深算法专家,知识图谱及文档理解算法方向负责人,曾就职于中国科学院。近年来主持或参与研制全行业事理图谱、360 百科图谱、知识图谱平台、文档理解大模型、360 智脑自研大模型等项目。申请发明专利十余项、核心论文数篇,开源项目 60 余项。在国际 OGB-Wikikg2 实体链接以及国内 CChttps://blog.51cto.com/u_16470786
14.OpenSPG知识图谱作者简介:刘焕勇,360 人工智能研究院资深算法专家,知识图谱及文档理解算法方向负责人,曾就职于中国科学院。近年来主持或参与研制全行业事理图谱、360 百科图谱、知识图谱平台、文档理解大模型、360 智脑自研大模型等项目。申请发明专利十余项、核心论文数篇,开源项目 60 余项。在国际 OGB-Wikikg2 实体链接以及国内 CChttps://blog.itpub.net/70036190/cid--1/list-1/
15.首批演讲嘉宾震撼登场!2024全球机器学习技术大会北京站官宣刘焕勇 360 人工智能研究院知识图谱及文档理解算法方向负责人 嘉宾简介 曾就职于中国科学院,主持研制全行业事理图谱、360 百科图谱、知识图谱平台、360 版式分析模型等项目,360 智脑大模型前核心成员,申请发明专利十余项、论文数篇,对外开源项目 70 余项。近年来 在 OGB-Wikikg2 实体链接、ICPR 多行数学表达式识别https://t.cj.sina.com.cn/articles/view/1798777247/6b37299f019030knm