基于知识图谱的简单知识问答系统

本文介绍了如何构建一个基于知识图谱的简单知识问答系统,涵盖数据导入、本体构建、D2RQ转换、Apache Jena Fuseki的使用以及Python中的SPARQL查询。通过实例讲解了电影和人物数据的处理过程,涉及的工具有Protege、D2RQ、Apache Jena Fuseski和SPARQLWrapper。
摘要由CSDN通过智能技术生成

作者寄语:

刚开始接触知识图谱不久,看过一些知识图谱视频及论文后,想自己亲手做实验来验证下所学的知识。于是开始在网上查看各种实验,找到了一个比较全面的实验,能更让人理解这里面的层层关系:如何构建本体,如何获取数据,如何将数据表转成三元组关系,如何使用三元组关系进行查询,如何最终与python相连接等等。这是一个以电影及人物为知识库的知识问答系统。

使用到的工具及版本:

网上虽然做这个实验的不少,但是本人查看了很多,几乎每个人用的版本不同出现的问题也不同,出现问题时有以下几个解决方案:1.去官网查看配置文件是否需要更改,有时是因为版本太新导致实验中的配置文件不能使用。2.下载之前的版本。3.查看别人的解决方案。

我使用到的工具:

mysql8.0(建议下载5.0+版本,否则之后使用d2rq会出现问题,因为d2rq源码支持5.1版本)

navicat for mysql

protege5.5.0

JAVA JDK 1.8

d2qr

Apache-jena及Apache-jena-fuseki3.7.0

python

pycharm编辑器

第三方库SPARQLWrapper

工具的下载这里就不多说了,网上很多详细教程,大家自行查看。

步骤一:数据的导入及构建本体

数据的导入:

运行sql文件导入数据表。数据表一共有5个:演员表、电影信息表、电影-演员表、电影类型表、电影-类型表。

或者根据自己的需要军进行自定义数据表。

导入后结果如下:

sql文件

构建本体:

使用protege构建本体,最终结果是生成一个ontology.owl的文件。

构建过程如下:

1.点击“Entities”tab标签,选择“Classes”标签。在"owl:thing"下,我们创建三个类:movie、person、genre。右下方还可以设置描述该类的特性。

2.然后切换到"Object Properties"页面,我们在此界面创建类之间的关系,即,对象属性。这里我们创建了三个对象属性:"hasActedIn""hasActor""hasGenre"。"domain"表示该属性是属于哪个类的,"range"表示该属性的范围定义。Inverse Of表示该属性与"hasActor"互为相反属性。"SubProperty Of"指子属性关系。"Equivalent To"指相等属性关系。这里根据自己需求进行定义。

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值