领域知识图谱 - 中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)
领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)
A knowledge graph for Chinese cookbook(中式菜谱知识图谱),可以实现知识图谱可视化和知识库智能问答系统(KBQA)
效果展示:
本项目开发的系统名称为 AI Food Time,中文名为爱食光。如需体验可视化功能可直接访问点击可视化功能。
通过收集网上完全公开的有关中式菜谱的数据,经过数据清洗和分析,转换为知识图谱的存储结构,并提供可视化展示与搜索和智能问答等功能,为热爱美食与烹饪的人们提供方便快捷的中式菜谱服务,并以知识图谱的形式直观显示出不同菜品的关系及所用原料,在生活中具有很大的实际应用需求,包括:
一类菜品的不同具体做法,例如水煮鱼包括麻辣水煮鱼、小清新版水煮鱼和家常版水煮鱼等;
通过菜品与食材的关联关系,可以查询家中现有食材可以烹饪哪些菜品;
可以直接显示出每种菜品所需主料,辅料,配料及其具体数量和烹饪方法,与网上的一些菜谱网页相比更加简单直观;
可视化能够对各种菜品及关联关系有一个全局的认识,并能够显示每种菜品对应的图片;
智能问答系统可采用自然语言进行提问,系统反馈答案结果。
项目码源链接见文末
1. 可视化展示及搜索:
同一类实体用相同颜色的节点表示,鼠标位于某个节点上方时显示其相关联的其它实体和之间的关系名称;
具有同一类实体显示开关,节点显示模式转换,并支持搜索功能;
每种菜品的信息栏中显示菜品对应的成品图片,并利用 entities_aglin.py 进行了实体对齐,消除了食品原料中的冗余信息。
mini 版:包含 10 大类,50 种菜品之间的关联关系,包括菜品制作的各种食材和制作步骤,轻量级的 mini 版同时支持电脑和手机浏览器打开,如需体验可直接进入访问入口。
pro 版(开发中):包含 362 大类,八千多种菜品之间的关联关系,包括菜品制作的各种原料和制作步骤。
2. 智能问答系统(KBQA):
基于构建的中式菜谱知识图谱,设计知识库问答 KBQA 系统,根据提出的和菜品有关的问题,系统自动给出答案,对于无法给出回答的情况系统也能进行回应。
文件夹结构
/data:包含三元组数据 aifoodtime_ntriples.nt
/external_dict:包含所有菜品和原料的实体列表 entities_list.txt
query_main.py:KBQA 主函数
jena_sparql_endpoint.py:启动 jena_sparql 服务
question2sparql.py:自然语言问题到 SPARQL 查询的转换
question_temp.py:自然语言到 SPARQL 的问题模板
vizdata2entities.py:从可视化存储数据到实体列表文件的转换
word_tagging.py:中文分词,使用的是 jieba
基于构建的中式菜谱知识图谱,针对其中和菜品有关的各类问题,智能问答系统可以给出对应问题的答案。
本项目中的智能问答机器人名为小吃。
使用本系统需要预装软件:
Apache Jena Fuseki:Jena Fuseki 是一个 SPARQL 服务,通过 HTTP 提供使用 SPARQL 协议的 REST 式 SPARQLHTTP 更新,SPARQL 查询和 SPARQL 更新。
从官网下载最新版本的 fuseki 压缩包,并解压到目标文件夹。在 apache-jena-fuseki 的目标文件夹下用命令行输入命令
java -jar fuseki-server.jar
,启动 Fuseki 服务。接着,打开浏览器,访问:http://localhost:3030,创建一个持久化数据库,并上传/data/aifoodtime_ntriples.nt 三元组数据集,完成知识库的准备。JAVA:运行 fuseki 需要 java 环境,如果没有安装 JAVA8.0 及以上版本,请前往oracle官网上下载最新版本的 JDK 然后安装,并配置环境路径。系统的流程为:解析输入的自然语言问句生成 SPARQL 查询,进一步请求后台基于 TDB 知识库的 Apache Jena Fuseki 服务, 得到答案。如果知识库中不存在问题的答案或者对于提出的自然语言问题无法理解,系统也会给出相应回复。
2.1 可以提问的问题类型:
1.某一类菜包含的具体菜品;
2.某一个特色菜品的所有原料;
3.某一个特色菜品的主料,辅料和配料;
4.某一个特色菜品的特点;
5.某一个特色菜品的制作步骤。
2.2 使用方法:
在已经启动 Fuseki 服务的情况下,命令行输入python query_main.py
,就可以启动问答系统,开始问答过程:
问答示例 1:
问答示例 2:
问答示例 3:
问答示例 4:
问答示例 5:
问答示例 6:
问答示例 7:
项目码源链接见文末
更多优质内容请关注公号 &知乎:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。
版权声明: 本文为 InfoQ 作者【汀丶人工智能】的原创文章。
原文链接:【http://xie.infoq.cn/article/b0217155cafdfd50643c5d1ec】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论