前言

问答系统是NLP在业界最为重要的落地场景之一,但由于其全链路比较复杂,学习的时候难以入手。这是一个基础的图谱构建和问答系统的项目,为大家学习问答系统提供一个思路。
ps:之前断断续续写了知识图谱和问答系统的构建,干脆整合成一个完整的github项目,并对知识图谱进行系统性介绍

完整项目github地址:https://github.com/Chtholly1/KG-and-QA-demo
知识图谱搭建更加详细的介绍:https://blog.csdn.net/gzt940726/article/details/122884131
问答系统搭建更加详细的介绍:https://blog.csdn.net/gzt940726/article/details/123051808

主体

知识图谱的构建主要分为以下三个大的步骤:

  1. 结构化数据的获取
  2. 知识图谱(图数据库)的构建
  3. 问答系统的搭建

一.结构化数据
对第一步而言,如果只是想做个简单的练手项目,我们可以去网上下载一个现成的结构化数据(电影等),进一步的话可以自己去爬取结构化的相关数据(小心被封ip)。
但很多时候数据往往是非结构化的,这时候便要用到最经典的方法——信息抽取。信息抽取一般又分为三个方面:
1.实体链接
2.关系抽取
3.事件抽取
通过这些方法,我们就可以把结构化数据转化为非结构化的数据了。

本项目直接采用已有的结构化数据来构建知识图谱,如:

{"source":"https://warcraft.huijiwiki.com/wiki/%E9%98%BF%E8%BE%BE%E7%BD%97%E6%A0%BC","中文名":"阿达罗格","状态":["副本首领 可击杀"],"种族":["烈焰猎犬"],"英文名":"Adarogg","身份":["怒焰裂谷首领"]
}

二.知识图谱
这里直接摘抄知乎顾鹏的一段化来介绍知识图谱:

知识图谱在逻辑结构上可分为模式层与数据层两个层次:
数据层主要是由一系列的事实组成,而知识将以事实为单位进行存储。如果用(实体1,关系,实体2)、(实体、属性,属性值)这样的三元组来表达事实。可选择图数据库作为存储介质,例如开源的 Neo4j、Twitter 的 FlockDB、JanusGraph 等。
模式层构建在数据层之上,主要是通过本体库来规范数据层的一系列事实表达。本体是结构化知识库的概念模板,通过本体库而形成的知识库不仅层次结构较强,并且冗余程度较小。

个人理解这里的数据层指代的就是三元组信息。
模式层就是所有三元组信息的表达方式,一般用RDF将信息序列化,常用的RDF方法有:
RDF/XML,N-Triples,Turtle,RDFa,JSON-LD
本项目中使用的是Turtle.

三.问答系统
目前,问答系统在本质上就是检索系统的进阶版(至少在强人工智能出现之前应该一直是)。
一般可以拆解为四部分:

  1. 让机器理解 用自然语言所进行的提问。
  2. 把问题进行拆解成多个简单问题。
  3. 对每个问题去图数据库中进行检索,得到答案。
  4. 把这些答案按合理的方式进行汇总,并返回最终答案。

本项目做的比较简单,默认提问是简单问题,所以只包含了1,3两个部分。

小结

结构化数据问答系统上能做的事情相当多,需要结合具体的业务进行技术的调研和落地。

如何构建知识图谱和问答系统相关推荐

  1. 知识图谱入门2-1:实践——基于医疗知识图谱的问答系统

    注:欢迎关注datawhale:https://datawhale.club/ 系列: 知识图谱入门一:知识图谱介绍 知识图谱入门2-1:实践--基于医疗知识图谱的问答系统 知识图谱入门2-2:用户输 ...

  2. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part5-完结):信息检索与结果组装

    前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入 [知识图谱] ...

  3. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入

    前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 背景 前文已经介绍了该系统的环境准备.下面介绍图谱数据获取,数据主要从:http://jib.xyw ...

  4. “基于医疗知识图谱的问答系统”代码解析(一)

    "基于医疗知识图谱的问答系统"代码解析(一) build_medicalgraph.py -建立医疗知识图谱的代码解析 "基于医疗知识图谱的问答系统"代码解析( ...

  5. 【知识图谱】Neo4j的基本使用及思知1.4亿三元组数据构建知识图谱

    目录 0.前言 1.Neo4j的基本使用 1.1 下载和安装Neo4j 1.2 Neo4j配置 1.2.1 核心数据文件的位置 1.2.2 安全验证,默认是启用的 1.2.3 配置JAVA 堆内存的大 ...

  6. 基于医疗知识图谱的问答系统源码详解

    承接上一篇系统搭建和遇到的问题,本篇解析系统功能的实现,并做了部分修改. 项目是找的中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目QABasedOnMedicaKno ...

  7. python知识图谱问答系统代码_知识图谱和问答系统

    知识图谱和问答系统 发布时间:2018-06-19 05:32, 浏览次数:606 1. 前言 知识图谱(knowledge graph),是下一代搜索引擎.问答系统等智能应用的基础设施 ,目前出现的 ...

  8. 自底向上构建知识图谱全过程

    http://www.sohu.com/a/245246344_160850 阿里妹导读:知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据 ...

  9. 通俗讲解自底向上构建知识图谱全过程

    知识图谱的基础介绍,供学习参考. 转载自:https://mp.weixin.qq.com/s/7cBbtqvPQUVrLZUNDx8XDQ 知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向 ...

最新文章

  1. ACL 2022录用结果出炉:国内多支团队晒“战绩”,清华一实验组18篇入选
  2. sublime text3 运行lua_[电脑常识] 用这4个系统垃圾清理软件,让电脑操作系统运行如飞 !...
  3. 走过路过来看看各种实现跨域的方式~
  4. 摘: cmd环境 使用一点知识
  5. bcc挖矿用什么_BCC对BTC挖矿有何影响?
  6. MySQL深度剖析之SQL语句更新流程(2021)
  7. Android 系统性能优化(39)---Android内存优化之三:打开MAT中的Bitmap原图
  8. SQL注入分类,一看你就明白了。SQL注入点/SQL注入类型/SQL注入有几种/SQL注入点分类
  9. SD从零开始29-30
  10. 13.Serving Frontend Files
  11. Dotween常用方法详解
  12. vs 登录按钮验证_外服战网新增登录方式:关联Apple ID即可快速登录
  13. (丝滑版)Python使用Opencv画一个哆啦A梦(动态),并制作成可执行文件.exe
  14. 计算机磁盘分为硬盘和什么,win10磁盘分区合并的方法是什么_win10电脑分盘怎么合并...
  15. mysql索引失效口诀
  16. 发射光功率和接收灵敏度对光模块的实际使用有什么影响?
  17. photoshop 抠图
  18. mt7620a上tf卡驱动的支持
  19. bios 刷 灵耀14_华硕笔记本刷完BIOS后一直进不去系统,怎么解决?
  20. Windows编程之COM组件

热门文章

  1. 《JavaScript权威指南第7版》第1章 简介
  2. 平价蓝牙耳机什么牌子好?数码控盘点四大平价好用的蓝牙耳机
  3. MultiType显示多种数据类型,宅家36天咸鱼翻身入职腾讯
  4. centos 安装 es7
  5. 国产麒麟系统一键部署PXE脚本传统BIOS(legacy)引导 仅供参考
  6. ERWin -- erwin Data Modeler 数据建模
  7. 排名提升29位!真我realme再登谷歌X凯度BrandZ中国全球化品牌50强
  8. 也谈谈人人网的不正当竞争
  9. 看动画片日语必学50句
  10. 基于智慧磐石理念下的新型智能装备管理系统