中式菜谱知识图谱),可以实现知识图谱可视化和知识库智能问答系统(KBQA)
效果展示:
本项目开发的系统名称为AIFoodTime,中文名为爱食光。如需体验可视化功能可直接访问点击可视化功能。通过收集网上完全公开的有关中式菜谱的数据,经过数据清洗和分析,转换为知识图谱的存储结构,并提供可视化展示与搜索和智能问答等功能,为热爱美食与烹饪的人们提供方便快捷的中式菜谱服务,并以知识图谱的形式直观显示出不同菜品的关系及所用原料,在生活中具有很大的实际应用需求,包括:
一类菜品的不同具体做法,例如水煮鱼包括麻辣水煮鱼、小清新版水煮鱼和家常版水煮鱼等;
通过菜品与食材的关联关系,可以查询家中现有食材可以烹饪哪些菜品;
可以直接显示出每种菜品所需主料,辅料,配料及其具体数量和烹饪方法,与网上的一些菜谱网页相比更加简单直观;
可视化能够对各种菜品及关联关系有一个全局的认识,并能够显示每种菜品对应的图片;
智能问答系统可采用自然语言进行提问,系统反馈答案结果。
项目码源链接见文末
跳转链接点击
1.可视化展示及搜索:
同一类实体用相同颜色的节点表示,鼠标位于某个节点上方时显示其相关联的其它实体和之间的关系名称;具有同一类实体显示开关,节点显示模式转换,并支持搜索功能;每种菜品的信息栏中显示菜品对应的成品图片,并利用entities_aglin.py进行了实体对齐,消除了食品原料中的冗余信息。
mini版:包含10大类,50种菜品之间的关联关系,包括菜品制作的各种食材和制作步骤,轻量级的mini版同时支持电脑和手机浏览器打开,如需体验可直接进入访问入口。
pro版(开发中):包含大类,八千多种菜品之间的关联关系,包括菜品制作的各种原料和制作步骤。
2.智能问答系统(KBQA):
基于构建的中式菜谱知识图谱,设计知识库问答KBQA系统,根据提出的和菜品有关的问题,系统自动给出答案,对于无法给出回答的情况系统也能进行回应。
文件夹结构/data:包含三元组数据aifoodtime_ntriples.nt/externaldict:包含所有菜品和原料的实体列表entitieslist.txtquery_main.py:KBQA主函数jenasparqlendpoint.py:启动jena_sparql服务question2sparql.py:自然语言问题到SPARQL查询的转换question_temp.py:自然语言到SPARQL的问题模板vizdata2entities.py:从可视化存储数据到实体列表文件的转换word_tagging.py:中文分词,使用的是jieba
基于构建的中式菜谱知识图谱,针对其中和菜品有关的各类问题,智能问答系统可以给出对应问题的答案。本项目中的智能问答机器人名为小吃。使用本系统需要预装软件:
ApacheJenaFuseki:JenaFuseki是一个SPARQL服务,通过HTTP提供使用SPARQL协议的REST式SPARQLHTTP更新,SPARQL查询和SPARQL更新。从