做网站哪家便宜厦门,世代网络高端企业网站建设设计功能公司,建设优惠券网站,商务酒店网站建设本文主要通过python实例讲解基于RDF和SPARQL的KBQA系统的构建。该项目可在python2和python3上运行通过。注#xff1a;KBQA即是我们通常所说的基于知识图谱的问答系统。这里简单构建的EasyKBQA#xff0c;数据来源于网络#xff0c;源码地址看下面补充说明。目录#xff1a…本文主要通过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)5. 如果成功匹配并成功产生 SPARQL 查询语句, 立刻请求 Fuseki 服务并返回结果打印相关内容程序运行1、配置第三方库pip install refo jieba sparqlwrapper2、安装JAVA JDK1.8配置好环境变量。3、项目根目录主要包括backend文件夹和test.py文件(同一级)backend是Jena的Fuseki 模块运行第4步4、cd backend/apache-jena-fuseki-3.5.0windows下启动SPARQL endpoint服务fuseki-server.bat --loc../DB /demo log.txt 21对应Linux命令为nohup ./fuseki-server --loc../DB /demo log.txt 21 5、运行根目录代码python test.py结果如下图补充说明1、启动fuseki服务器参数--loc../DB设置在线服务数据库位置参数/demo2、自然语言问句进行正则匹配的逻辑REfO. 主要参考根目录下的代码:words.py3、后续改进可参考: 使用邻接链表表示自然语言问句, 通过遍历有向图或子图匹配方法构造 SPAPQL 查询语句代码下载地址https://download.csdn.net/download/starbaby01/10621927