智绘山河
硕士,AI算法工程师。曾获华为杯中国研究生数学建模竞赛一等奖,省优秀毕业生等。写过几篇中文核心,发过几篇国际会议,还有几个授权专利。喜欢搞搞代码,写写博客,没事还会搞搞LaTeX。愿景:用数学和代码构建智能系统,用逻辑创造价值。
展开
-
【NLP】一种基于联合方式的三元组抽取模型——CasRel
关系抽取是自然语言处理中一个比较基础的任务,除了关系抽取之外还有类似的任务如:属性抽取等。这些任务也都可看成三元组抽取,即(subject,predicate,object)。基于pipeline的分布抽取方式,在已知两个实体subject和object,去预测predicate。联合抽取方式,一个模型同时将subject,predicate和object抽取出来。现实的场景中还存在重叠关系情况,那么针对这种情况该如何解决呢?原创 2023-02-05 18:37:44 · 1641 阅读 · 1 评论 -
【知识图谱导论-浙大】第三、四章:知识图谱的抽取与构建
隐藏状态集合Q,对应所有可能的标签集合,大小为N;观测状态集合V,对应所有可能的词的集合,大小为M;对于一个长度为T的序列,I对应状态序列(即标签序列),O对应观测序列(即词组成的句子);状态转移概率矩阵AaijN∗NAaijN∗N:转移概率是指某一个隐藏状态(如标签“B-Per”)转移到下一个隐藏状态(如标签“I-Per” )的概率。例如,B-ORG标签的下一个标签大概率是I-ORG,但一定不可能是I-Per;发射概率矩阵BbjkN∗MBbj。原创 2023-01-09 10:58:12 · 1401 阅读 · 0 评论 -
【知识图谱导论-浙大】第二章:知识图谱的表示
简而言之,知识表示(Knowledge Representation, KR)就是用易于计算机处理的方式来描述人脑知识的方法。KR不是数据格式,不等同于数据结构,也不是编程语言,对于人工智能而言,数据与知识的区别在于KR支持推理。,对KR的作用是这样描述的。Role I,事务的名称Role II,事务有了名字之后,在此基础上进行一层层抽象,一群学生中,一些人是本科生,一些人是硕士生,一些人是博士生,他们哪些学校的学生,这种对事务的进行抽象,建立万事万物之间的联系,就是本体的构建(ontology)原创 2023-01-07 11:46:29 · 1174 阅读 · 0 评论 -
【知识图谱导论-浙大】第一章:知识图谱概论
话说回来,什么是知识呢(what is knowledge)?针对这个哲学问题,柏拉图说:Knowledge is justified true belief。其实仔细一想,人类的自然语言、创作的绘画与音乐、数学语言、物理模型、化学公式等都是人类知识的表示形式和传承方式。具有获取、表示和处理知识的能力是人类心智区别于其它物种心智的最本质特征,也是人脑智能的最本质特征。原创 2023-01-06 20:14:40 · 1641 阅读 · 0 评论 -
【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part5-完结):信息检索与结果组装
总得来说,这个项目把使用知识图谱进行QA的一些流程介绍的比较清楚,但是在完成问答的过程中技术相对老旧,不过效果依然还不错。https,有兴趣的可以下载运行看看哦,上面有运行介绍哦。为了能够进一步提升效果的话可以引入很多新技术。例如在问题分类环节可以引入基于深度学习的问题分类方法,在进行问题解析的时候,可以引入基于深度学习的NER实体识别方式以及进一步处进行实体对齐等,这里不作进一步展开。https。...原创 2022-07-24 19:52:11 · 963 阅读 · 0 评论 -
【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part4):结合问题分类的问题解析与检索语句生成
原程序中设计的问题也相对简单,对应问题的解析也不复杂。在问题分类中输出的结果这一环节中其实已经默认做了实体对齐操作(问句中的实体与数据库中的实体相对应),主要的工作就是根据不同实体对应关系生成对应的neo4j关系查询或者实体属性查询的语句即可。前文中已经对问题分类做了处理,下面就需要针对具体类别的问题进行进一步的解析,以生成对应的neo4j的查询语句。针对百日咳可以吃什么问题,我们通过规则生活对应的cypher查询语句。......原创 2022-07-24 15:37:47 · 764 阅读 · 0 评论 -
【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part3):基于规则的问题分类
对于意图识别获问题分类来说,本质上就是对文本进行分类,可以使用传统的机器学习算法以及深度学习算法来处理该问题,但是在缺乏语料标注的情况下,使用规则可能是最好的方式。在知识图谱数据入库的模块中提供了实体数据导出功能,导出的数据即为一些实体数据,除此之外源代码中还提供了一些否定词deny.txt,我也将该文件放到dict文件夹下。问题的问题主要是接下来的对应类别的问题解析,已经问题搜索做准备。问题分类的第一步是判断问句内容中是否有图数据库中的实体内容,如果没有就无法做出相关的查询解答。效果也基本上符合预期。..原创 2022-07-24 11:30:32 · 1677 阅读 · 0 评论 -
【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入
由于导入数据库时间比较长,这里就没有尝试运行导入到数据库模块程序,只将对应的实体输入到KGQAMedicine/data/dict目录下。我将原项目中的数据放到KGQAMedicine/data/medicial.json中,并将路径配置的配置文件中。从数据形式上来看,该文件中的数据应该是从mongodb中导出。我们使用原项目中已经爬取和处理完毕的数据。下面介绍图谱数据获取,数据主要从http//jib.xywy.com/爬取。按照原来的计划是将数据爬取相关的代码也过一下的,于是做了以下相关配置。.....原创 2022-07-23 19:26:42 · 1710 阅读 · 0 评论 -
【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备
在我阅读这个项目时(2022-7-17),该项目的start数目大4.2k,fork达1.6k。从数据上来看,大家是比较认可该项目的。当然,原作者也是很厉害的,是中国科学院软件研究的所刘焕勇老师。该项目从无到有搭建一个以疾病为中心的一定规模医药领域知识图谱,并以该知识图谱完成自动问答与分析服务。适合一个初学人员了解该类项目的pipline过程。该项目立足医药领域,以垂直型医药网站为数据来源,以疾病为核心,构建起一个包含7类规模为4.4万的知识实体,11类规模约30万实体关系的知识图谱。......原创 2022-07-17 23:38:14 · 3735 阅读 · 2 评论 -
【NLP】一个支持低资源、长篇章、多模态的开源知识抽取工具——DeepKE
http.主要功能分为三个类别单句、篇章级、多模态。对于单句支持常用的实体抽取、属性抽取、关系抽取三个任务。如实体抽取效果篇章级、多模态则主要是关系抽取任务。https.该工具设计的框架如下DeepKE包含命名实体识别、关系抽取和属性抽取三个模块,分别是三个任务。每个模块都有自己的子模块。例如,关系抽取模块中有标准的、少样本、文档级和多模态子模块。每个子模块由三部分组成一组可用作tokenizer的工具、数据加载器、训练和预测时使用编码的一种处理模块。deepke,然后激活。......原创 2022-07-14 21:48:58 · 3611 阅读 · 3 评论 -
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part7项目优化与打包
前序文章:本部分主要是对项目进行优化,已经打包发布到github上。在学习flask时我们知道,flask支持自定义命令行命令去实现一些功能。在实现该功能之前,我们先将neo4j数据库进行清空,在neo4j页面端执行如下命令:在KGQAHLM/serve目录下创建db.py文件,内容如下:然后就是把该内容注册到app应用中,如下:效果测试,即在终端输入:即可,如下:数据库查看:那么原来的KGQAHLM/build_graph.py就可以删除了。这一步就是配置项目在其他环境中,通过pip i原创 2022-07-10 21:45:33 · 2279 阅读 · 0 评论 -
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part6基于图谱的问答实现
前序文章:本部分则是整个项目的核心内容——基于图谱的问答。需要实现的是对于“简单问题”进行解析,然后从图谱数据库中查询与该人员及其相关人员信息,返回到前端并显示该人员的基本信息。除此之外,用户可以点击返回的结果人员节点,页面能够显示该用户的个人基本信息。那么现在就开始吧。根据源码实现问答形式,其实是比较简单的。原代码中使用ltp对问题进行分词,选取具有名次词性的关键词进行处理。ltp配置稍许麻烦,我使用jieba分词工具对问题进行分词,然后再按照原文提取问句中人物及关系,然后构建cypher neo4j查原创 2022-07-10 19:24:17 · 2349 阅读 · 0 评论 -
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part5人物关系全貌与问答初入
前序文章:本部分主要是实现页面中查看所有任务关系并在前端展示的功能以及进行问答模块的准备。当图谱数据量比较大的时候,就不适合将所有的数据放到前端展示,因为前端在面临大量数据时渲染可能会存在一些问题。源代码中使用加载离线的关系数据。为了便于查看,我截图如下:我将这个数据放到KGQAHLM/serve/static/data.json中。供待会页面加载使用。这时该功能的前端代码如下:KGQAHLM/templates/relation.html效果查看:那么到这里几个基本功能就实现了,下面就要开始整个原创 2022-07-10 11:19:07 · 1883 阅读 · 2 评论 -
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part4检索人物关系实现
前序文章:这个阶段开始,我们会查询很多neo4j数据库中的内容。为了方便,下面对以往的程序进行优化。将与neo4j连接放到config中,其他地方使用时,导入即可。调整如下:KGQAHLM/utils/config.py那么对应的KGQAHLM/build_graph.py中的代码调整如下:后续查询和处理问答相关数据的功能实现,我会统一放到一个包中,KGQAHLM/KGQA。原代码中已经为各人物爬取好了对应的图片,我将该图片资源放到:KGQAHLM/serve/static 目录下,并更名为people原创 2022-07-10 10:02:12 · 2064 阅读 · 1 评论 -
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part3前端搭建与可视化
前序文章:本部分内容主要是参见flask服务搭建可视化前端部分。程序中我也尽可能地使用前后端分类的方式去实现前后端的结合,也就是使用ajax的方式前端提交请求,后端接受请求并返回。原程序使用boot strap框架。那么就需要把很多css,js文件放到静态文件夹中。于是在对应文件夹中创建static、templates文件夹,如下:后面若有需要的调整的内容,再做说明。主要是在模板部分将静态文件中引入。页面模板暂时设置四个block供后文继承。如下(KGQAHLM/serve/templates/base原创 2022-07-10 07:53:05 · 2499 阅读 · 1 评论 -
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part2知识获取与图谱构建、服务搭建
前序文章:其中原项目提供了关系数据如下:其中五列数据表示:人物1,人物2,人物1与人物2关系,人物1所属家族,人物2所属家族。关系说明:以第一列为例,贾演是贾代化的父亲。下面我们就将这个数据放到neo4j中。这些需要去连接,需要安装这个包:程序中,我使用去读取配置文件,其中为了保持配置全局唯一性,使用单例的写法。后面就是创建构建关系文件,构建neo4j图谱数据了,如下:后期可能会将构建图谱内容使用flask去生成命令行的方式构建,暂时在开发的过程查看构建情况,便于调试。导入关系后,我们再查看原创 2022-07-09 23:14:47 · 3264 阅读 · 2 评论 -
【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part1项目介绍与环境准备
看到这篇文章的你,相信对知识图谱相关概念不在陌生。知识图谱相关内容在实际开发中包含两个部分:1.知识图谱构建,2.知识图谱使用。知识图谱构建过程中涉及内容、技术都比较多。知识图谱的应用也逐渐在我们的生活中随处可见,其中基于知识图谱的问答系统就是其中的一个应用。基于知识图谱的问答系统称做KGQA(knowledge graph question answer),也有人称其为KBQA(knowledge based question answ).基于知识图谱的问答系统通常是使用的是领域知识图谱。下面就结合Git原创 2022-07-09 19:28:14 · 4019 阅读 · 0 评论