简单构建基于RDF和SPARQL的KBQA(知识图谱问答系统)

本文介绍了如何使用Python构建基于RDF和SPARQL的知识图谱问答系统(KBQA)。通过预定义的问题示例,利用REFO库进行对象正则表达式匹配生成SPARQL查询,结合Apache Jena Fuseki服务获取答案。文章详细阐述了从分词、匹配到执行查询的整个过程,并提供了代码示例和下载链接。
摘要由CSDN通过智能技术生成

本文主要通过python实例讲解基于RDF和SPARQL的KBQA系统的构建。该项目可在python2和python3上运行通过。

注:KBQA即是我们通常所说的基于知识图谱的问答系统。这里简单构建的EasyKBQA,数据来源于网络,源码地址看下面补充说明。

 

流程原理:

该问答系统可以解析输入的自然语言问句,主要运用REFO库的"对象正则表达式"匹配得到结果, 进而生成对应 SPARQL 查询语句,再通过API请求后台基于TDB知识谱图数据库的 Apache Jena Fuseki 服务, 得到结果。

实际过程:

1. 预定义 3 ​类共 5 ​个示例问题,​包括:
  ● "谁是苑茵?",
  ● "丁洪奎是谁?",
  ● "苏进木来自哪里?",
  ● "苑茵哪个族的?",
  ● "苑茵是什么民族的人?".
2. 利用结巴分词对中文句子进行分词, ​同时进行词性标注;
3. 将词的文本和词性打包, ​视为"词对象",对应 :class:Word(token,​ ​pos)​;
4. 利用 REfO ​模块对词进行对象级别 (object-level) ​的正则匹配,判断问题属于的​种类​并产生对应的 SPARQL,对应 :class:Rule(condition,​ ​action)​ÿ

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值