知识图谱(3) -- python代码样例

这里是使用了王昊奋老师发布在OpenKG上的demo“基于REfO的KBQA实现及示例”,基本跟王老师的说明差异不大,其中加入一些我自己的见解(笔记)。

一. 部署

1. 从网站上将老师的项目下载下来。

2. 根据Readme,md的教程执行一趟(很可惜我失败了,可能是因为系统的关系,不过问题不大,因为SimmerChan的样例我实践成功了就行),所以, 下面大概记录一下test.py中各段代码的功能。

二. 代码逻辑说明

1. 预定义3类共5个示例问题。包括

● "谁是苑茵?",

● "丁洪奎是谁?",

● "苏进木来自哪里?",  

● "苑茵哪个族的?",

● "苑茵是什么民族的人?". 

这一步应该类似于确定需求的步骤,我们首先确定我们需要回答的问题主要有那几个类型,然后方便后面进行规则书写。

2. 利用结巴分词对中文句子进行分词,同时进行词性标注。

3. 将词的文本和词性,视为“词对象”。对应:class:Word(token,pos),这是为了后面用于REfO模块匹配。

4. 利用REfO模块对词进行对象级别的正则匹配。判断问题属于3中类型中的哪一种,并产生对应的SPARQL。对应:class:Rule(condition, action)。其中,condition是正则表达式的匹配式,action是选择的问题模板。其实REfO就是一个对象级别的正则表达式,功能与re相似。

5. 如果成功匹配并成功产生SPARQL查询语句,立刻请求Fuseki服务并返回结果。打印相关内容。

三. 可能有帮助的内容

Python字符串格式化--format()方法

四. 参考资料

1. 知识图谱-给AI装个大脑

2. 基于REfO的KBQA实现及示例

猜你喜欢

转载自blog.csdn.net/qq_28634403/article/details/84971512