实践篇(5):基于REfO的简单知识问答

本文介绍了如何将基于REfO的KBQA系统应用于自建知识图谱,详细阐述了代码结构和实现原理,包括利用jieba进行分词、通过规则匹配转换为SPARQL查询以及与Jena Fuseki服务器的交互过程。
摘要由CSDN通过智能技术生成

image

本文主要参考SimmerChan大神文章:https://zhuanlan.zhihu.com/p/33224431
Pelhans 大神的博客:http://pelhans.com/2018/09/03/kg_from_0_note3/

1 简介

基于浙江大学在openKG上提供的 基于REfO的KBQA实现及示例。代码部分浙大方面已经完成绝大部分,这里主要将其应用到自己的知识图谱上。在运行KBQA代码前,应按照前面的教程将电影类知识图谱导入到Jena的TDB数据库中,并运行fuseki服务器,这样我们才能进行访问查询。

1.1代码结构

 jena_sparql_endpoint.py
        query_main.py
        question2sparql.py
        question_temp.py
        word_tagging.py
        external_dict/
            csv2txt.py
            movie_title.csv
            movie_title.txt
            person_name.csv
            person_name.txt
            __init__.py
  • "KB_query"文件夹包含的是完成整个问答demo流程所需要的脚本。
  • "external_dict"包含的是人名和电影名两个外部词典。csv文件是从mysql-workbench导出的,按照jieba外部词典的格式,我们将csv转为对应的txt。
  • “word_tagging”,定义Word类的结构(即我们在REfO中使用的对象);定义"Tagger"类来初始化词典,并实现自然语言到Word对象的方法。
  • “jena_sparql_endpoint”,用于完成与Fuseki的交互。
  • “question2sparql”,将自然语言转为对应的SPARQL查询。
  • “question_temp”&#x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值