知识图谱——领域知识问答系统简单介绍
一、概念介绍
【知识图谱】
A knowledge graph consists of a set of interconnected typed entities and their attributes.
即,知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识
表示为一个SPO三元组(Subject-Predicate-Object)。
【RDF】
RDF(Resource Description Framework),即资源描述框架,其本质是一个数据模型(Data Model)。它提供了一
个统一的标准,用于描述实体/资源。简单来说,就是表示事物的一种方法和手段。RDF形式上表示为SPO三元组,
有时候也称为一条语句(statement)。
知识图谱的推理主要分为两类:基于本体的推理和基于规则的推理。OWL/RDFS推理的推理机(reasoner),就能
够执行基于本体的推理。
二、本体建模和数据准备
推荐本体建模工具【Protege】
【知识图谱基础之RDF,RDFS,OWL】
关系数据库到RDF,d2rq这个工具把mysql的数据转为RDF。
d2rq:Accessing Relational Databases as Virtual RDF Graphs
下载【D2RQ】,进入其目录,运行下面的命令生成默认的mapping文件:
generate-mapping -u root -o kg_demo_movie_mapping.ttl jdbc:mysql:///kg_demo_movie
D2RQ支持的数据库有Oracle、MySQL、PostgreSQL、SQL Server、HSQLDB、Interbase/Firebird。
使用下面的命令将我们的数据转为RDF:
.\dump-rdf.bat -o kg_demo_movie.nt .\kg_demo_movie_mapping.ttl
三、Apache jena SPARQL
Apache Jena(后文简称Jena),是一个开源的Java语义网框架(open source Semantic Web Framework
for Java),用于构建语义网和链接数据应用。
下载Jena的最新版本(fuseki和其他的功能模块不在同一个文件中,需要分别下载apache-jena和
apache- jena- fuseki)。
进入“apache-jena-X.X.X”文件夹的bat目录,使用“tdbloader.bat”将之前我们的RDF数据以TDB的方式存储。
命令如下:
.\tdbloader.bat --loc="D:\apache jena\tdb" "D:\d2rq\kg_demo_movie.nt"
【RDF查询语言SPARQL】
SPARQL即SPARQL Protocol and RDF Query Language的递归缩写,专门用于访问和操作RDF数据,是语义网
的核心技术之一。
例子(仅供参考):
周润发演了什么电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?x WHERE { ?s :personName '周润发'.?s :hasActedIn ?m.?m :movieTitle ?x }功夫有那些演员PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?x WHERE { ?m :movieTitle '功夫'.?m :hasActor ?a.?a :personName ?x }成龙和李连杰合作的电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?x WHERE { ?p1 :personName '成龙'.?p2 :personName '李连杰'.?p1 :hasActedIn ?m.?p2 :hasActedIn ?m.?m :movieTitle ?x }巩俐参演电影大于0.8的电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?x WHERE { ?p :personName '巩俐'.?p :hasActedIn ?m.?m :movieTitle ?x.?m :movieRating ?r.filter(?r > 0.8) } 成龙演了多少部电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT COUNT(?x) WHERE { ?s :personName ' 成龙'.?s :hasActedIn ?x. }李连杰简介PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?x WHERE { ?s :personName '李连杰'.?s :personBiography ?x. }功夫简介PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?x WHERE { ?s :movieTitle '功夫'.?s :movieIntroduction ?x. }
四、KBQA Demo
python代码见github
知识图谱——领域知识问答系统简单介绍相关推荐
- 知识图谱入门2-1:实践——基于医疗知识图谱的问答系统
注:欢迎关注datawhale:https://datawhale.club/ 系列: 知识图谱入门一:知识图谱介绍 知识图谱入门2-1:实践--基于医疗知识图谱的问答系统 知识图谱入门2-2:用户输 ...
- 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part4):结合问题分类的问题解析与检索语句生成
前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入 [知识图谱] ...
- python知识图谱问答系统代码_知识图谱和问答系统
知识图谱和问答系统 发布时间:2018-06-19 05:32, 浏览次数:606 1. 前言 知识图谱(knowledge graph),是下一代搜索引擎.问答系统等智能应用的基础设施 ,目前出现的 ...
- 如何构建知识图谱和问答系统
前言 问答系统是NLP在业界最为重要的落地场景之一,但由于其全链路比较复杂,学习的时候难以入手.这是一个基础的图谱构建和问答系统的项目,为大家学习问答系统提供一个思路. ps:之前断断续续写了知识图谱 ...
- 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part5-完结):信息检索与结果组装
前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入 [知识图谱] ...
- 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入
前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 背景 前文已经介绍了该系统的环境准备.下面介绍图谱数据获取,数据主要从:http://jib.xyw ...
- “基于医疗知识图谱的问答系统”代码解析(一)
"基于医疗知识图谱的问答系统"代码解析(一) build_medicalgraph.py -建立医疗知识图谱的代码解析 "基于医疗知识图谱的问答系统"代码解析( ...
- 菜哥学知识图谱(通过“基于医疗知识图谱的问答系统”)(二)(搭建系统)
上接菜哥学知识图谱(通过"基于医疗知识图谱的问答系统")(一) 3.搭建项目2 被小学生拖累连跪5把,近期不搞了- 继续搭建项目.先把neo4j启动起来. 编辑build_medi ...
- 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备
背景 上一个实践项目是:[知识图谱]实践篇--基于知识图谱的<红楼梦>人物关系可视化及问答系统实践.这个属于入门级的项目,可以了解一下neo4j的一些基本操作,以及简单的问答处理.下面进行 ...
最新文章
- 计算机等级必须在学校考吗,计算机等级考试可以跳过一级考二级吗
- 互联网老师论坛高调炫耀收入:硕士毕业三年,月入九万多!
- SAP PM 初级系列21 - 一个技术关闭的维修工单不能再被修改了!
- 日常生活小技巧 --WIN7出现“发生验证错误 要求的函数不受支持”问题
- 每天一道LeetCode-----最长无重复子串
- emWin 2天速成实例教程002_多个页面窗口切换
- Orchard中如何配置远端发布
- 互联网日报 | 6月4日 星期五 | 蚂蚁消费金融获批开业;腾讯云四个国际数据中心同步开服;滴滴App上线“老人打车”模式...
- SQL Server中的部分存储过程
- 对JSP和Servlet的理解
- 用python解决约瑟夫环
- javaScript判断输入框是否为空
- paip.模块化设计中常用属性与常用方法
- matlab高通滤波函数,巴特沃斯高通滤波器—matlab实现
- 简单的一种图像冷暖色温转换(MATLAB)
- node.js egg框架接入微信公总号
- SSR是什么?Vue中怎么实现?
- html长图转换成pdf,iOS将HTML页面转换成PDF文件保存到本地并分享传输文件
- PHPexcel 导出身份证处理
- CPU性能是否受年龄影响?